From ed36dbbd9c9dc21b2eebae1b31586fea1c6b51c3 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Wed, 25 Sep 2019 23:35:41 -0400 Subject: mv std/ lib/ that's all this commit does. further commits will fix cli flags and such. see #2221 --- lib/std/array_list.zig | 460 + lib/std/ascii.zig | 284 + lib/std/atomic.zig | 9 + lib/std/atomic/int.zig | 41 + lib/std/atomic/queue.zig | 377 + lib/std/atomic/stack.zig | 179 + lib/std/base64.zig | 458 + lib/std/bloom_filter.zig | 257 + lib/std/buf_map.zig | 103 + lib/std/buf_set.zig | 79 + lib/std/buffer.zig | 158 + lib/std/build.zig | 2743 + lib/std/build/fmt.zig | 35 + lib/std/c.zig | 149 + lib/std/c/darwin.zig | 58 + lib/std/c/freebsd.zig | 12 + lib/std/c/linux.zig | 32 + lib/std/c/netbsd.zig | 8 + lib/std/c/windows.zig | 1 + lib/std/child_process.zig | 770 + lib/std/coff.zig | 277 + lib/std/crypto.zig | 51 + lib/std/crypto/benchmark.zig | 198 + lib/std/crypto/blake2.zig | 495 + lib/std/crypto/chacha20.zig | 436 + lib/std/crypto/gimli.zig | 168 + lib/std/crypto/hmac.zig | 99 + lib/std/crypto/md5.zig | 281 + lib/std/crypto/poly1305.zig | 234 + lib/std/crypto/sha1.zig | 302 + lib/std/crypto/sha2.zig | 726 + lib/std/crypto/sha3.zig | 305 + lib/std/crypto/test.zig | 22 + lib/std/crypto/x25519.zig | 676 + lib/std/cstr.zig | 94 + lib/std/debug.zig | 2422 + lib/std/debug/failing_allocator.zig | 65 + lib/std/debug/leb128.zig | 256 + lib/std/dwarf.zig | 682 + lib/std/dynamic_library.zig | 280 + lib/std/elf.zig | 902 + lib/std/event.zig | 23 + lib/std/event/channel.zig | 349 + lib/std/event/fs.zig | 1431 + lib/std/event/future.zig | 121 + lib/std/event/group.zig | 131 + lib/std/event/lock.zig | 186 + lib/std/event/locked.zig | 43 + lib/std/event/loop.zig | 923 + lib/std/event/net.zig | 358 + lib/std/event/rwlock.zig | 296 + lib/std/event/rwlocked.zig | 58 + lib/std/fmt.zig | 1643 + lib/std/fmt/errol.zig | 704 + lib/std/fmt/errol/enum3.zig | 881 + lib/std/fmt/errol/lookup.zig | 606 + lib/std/fmt/parse_float.zig | 433 + lib/std/fs.zig | 988 + lib/std/fs/file.zig | 394 + lib/std/fs/get_app_data_dir.zig | 70 + lib/std/fs/path.zig | 1144 + lib/std/hash.zig | 42 + lib/std/hash/adler.zig | 107 + lib/std/hash/auto_hash.zig | 381 + lib/std/hash/benchmark.zig | 273 + lib/std/hash/cityhash.zig | 387 + lib/std/hash/crc.zig | 180 + lib/std/hash/fnv.zig | 58 + lib/std/hash/murmur.zig | 345 + lib/std/hash/siphash.zig | 383 + lib/std/hash/wyhash.zig | 231 + lib/std/hash_map.zig | 552 + lib/std/heap.zig | 948 + lib/std/heap/logging_allocator.zig | 53 + lib/std/http.zig | 5 + lib/std/http/headers.zig | 614 + lib/std/io.zig | 1307 + lib/std/io/c_out_stream.zig | 43 + lib/std/io/in_stream.zig | 200 + lib/std/io/seekable_stream.zig | 103 + lib/std/io/test.zig | 640 + lib/std/json.zig | 1407 + lib/std/json/test.zig | 1904 + lib/std/lazy_init.zig | 86 + lib/std/linked_list.zig | 530 + lib/std/macho.zig | 694 + lib/std/math.zig | 964 + lib/std/math/acos.zig | 186 + lib/std/math/acosh.zig | 94 + lib/std/math/asin.zig | 183 + lib/std/math/asinh.zig | 134 + lib/std/math/atan.zig | 255 + lib/std/math/atan2.zig | 289 + lib/std/math/atanh.zig | 121 + lib/std/math/big.zig | 7 + lib/std/math/big/int.zig | 2314 + lib/std/math/big/rational.zig | 946 + lib/std/math/cbrt.zig | 163 + lib/std/math/ceil.zig | 120 + lib/std/math/complex.zig | 183 + lib/std/math/complex/abs.zig | 19 + lib/std/math/complex/acos.zig | 22 + lib/std/math/complex/acosh.zig | 22 + lib/std/math/complex/arg.zig | 19 + lib/std/math/complex/asin.zig | 28 + lib/std/math/complex/asinh.zig | 23 + lib/std/math/complex/atan.zig | 142 + lib/std/math/complex/atanh.zig | 23 + lib/std/math/complex/conj.zig | 18 + lib/std/math/complex/cos.zig | 22 + lib/std/math/complex/cosh.zig | 177 + lib/std/math/complex/exp.zig | 143 + lib/std/math/complex/ldexp.zig | 80 + lib/std/math/complex/log.zig | 24 + lib/std/math/complex/pow.zig | 23 + lib/std/math/complex/proj.zig | 25 + lib/std/math/complex/sin.zig | 23 + lib/std/math/complex/sinh.zig | 176 + lib/std/math/complex/sqrt.zig | 146 + lib/std/math/complex/tan.zig | 23 + lib/std/math/complex/tanh.zig | 125 + lib/std/math/copysign.zig | 74 + lib/std/math/cos.zig | 128 + lib/std/math/cosh.zig | 127 + lib/std/math/exp.zig | 218 + lib/std/math/exp2.zig | 455 + lib/std/math/expm1.zig | 328 + lib/std/math/expo2.zig | 35 + lib/std/math/fabs.zig | 101 + lib/std/math/floor.zig | 171 + lib/std/math/fma.zig | 172 + lib/std/math/frexp.zig | 178 + lib/std/math/hypot.zig | 168 + lib/std/math/ilogb.zig | 138 + lib/std/math/inf.zig | 13 + lib/std/math/isfinite.zig | 41 + lib/std/math/isinf.zig | 131 + lib/std/math/isnan.zig | 27 + lib/std/math/isnormal.zig | 38 + lib/std/math/ln.zig | 190 + lib/std/math/log.zig | 72 + lib/std/math/log10.zig | 218 + lib/std/math/log1p.zig | 230 + lib/std/math/log2.zig | 214 + lib/std/math/modf.zig | 210 + lib/std/math/nan.zig | 24 + lib/std/math/pow.zig | 264 + lib/std/math/powi.zig | 188 + lib/std/math/round.zig | 126 + lib/std/math/scalbn.zig | 92 + lib/std/math/signbit.zig | 50 + lib/std/math/sin.zig | 150 + lib/std/math/sinh.zig | 132 + lib/std/math/sqrt.zig | 136 + lib/std/math/tan.zig | 122 + lib/std/math/tanh.zig | 160 + lib/std/math/trunc.zig | 100 + lib/std/mem.zig | 1537 + lib/std/meta.zig | 544 + lib/std/meta/trait.zig | 363 + lib/std/mutex.zig | 171 + lib/std/net.zig | 247 + lib/std/os.zig | 2738 + lib/std/os/bits.zig | 27 + lib/std/os/bits/darwin.zig | 1180 + lib/std/os/bits/freebsd.zig | 941 + lib/std/os/bits/linux.zig | 1187 + lib/std/os/bits/linux/arm-eabi.zig | 568 + lib/std/os/bits/linux/arm64.zig | 448 + lib/std/os/bits/linux/errno.zig | 428 + lib/std/os/bits/linux/riscv64.zig | 390 + lib/std/os/bits/linux/x86_64.zig | 663 + lib/std/os/bits/netbsd.zig | 825 + lib/std/os/bits/wasi.zig | 307 + lib/std/os/bits/windows.zig | 160 + lib/std/os/darwin.zig | 8 + lib/std/os/freebsd.zig | 5 + lib/std/os/linux.zig | 1045 + lib/std/os/linux/arm-eabi.zig | 96 + lib/std/os/linux/arm64.zig | 87 + lib/std/os/linux/riscv64.zig | 86 + lib/std/os/linux/test.zig | 46 + lib/std/os/linux/tls.zig | 285 + lib/std/os/linux/vdso.zig | 91 + lib/std/os/linux/x86_64.zig | 97 + lib/std/os/netbsd.zig | 5 + lib/std/os/test.zig | 225 + lib/std/os/uefi.zig | 45 + lib/std/os/uefi/protocols.zig | 32 + .../uefi/protocols/absolute_pointer_protocol.zig | 53 + lib/std/os/uefi/protocols/edid_active_protocol.zig | 17 + .../os/uefi/protocols/edid_discovered_protocol.zig | 17 + .../os/uefi/protocols/edid_override_protocol.zig | 28 + .../os/uefi/protocols/graphics_output_protocol.zig | 79 + lib/std/os/uefi/protocols/rng_protocol.zig | 73 + .../os/uefi/protocols/simple_pointer_protocol.zig | 44 + .../protocols/simple_text_input_ex_protocol.zig | 77 + .../uefi/protocols/simple_text_output_protocol.zig | 143 + lib/std/os/uefi/status.zig | 46 + lib/std/os/uefi/tables.zig | 9 + lib/std/os/uefi/tables/boot_services.zig | 125 + lib/std/os/uefi/tables/configuration_table.zig | 82 + lib/std/os/uefi/tables/runtime_services.zig | 51 + lib/std/os/uefi/tables/system_table.zig | 46 + lib/std/os/uefi/tables/table_header.zig | 8 + lib/std/os/wasi.zig | 80 + lib/std/os/windows.zig | 886 + lib/std/os/windows/advapi32.zig | 23 + lib/std/os/windows/bits.zig | 734 + lib/std/os/windows/error.zig | 3567 + lib/std/os/windows/kernel32.zig | 214 + lib/std/os/windows/lang.zig | 140 + lib/std/os/windows/ntdll.zig | 24 + lib/std/os/windows/ole32.zig | 6 + lib/std/os/windows/shell32.zig | 3 + lib/std/os/windows/status.zig | 5 + lib/std/os/windows/sublang.zig | 244 + lib/std/os/zen.zig | 260 + lib/std/packed_int_array.zig | 646 + lib/std/pdb.zig | 721 + lib/std/priority_queue.zig | 370 + lib/std/process.zig | 616 + lib/std/rand.zig | 1105 + lib/std/rand/ziggurat.zig | 166 + lib/std/rb.zig | 602 + lib/std/segmented_list.zig | 409 + lib/std/sort.zig | 1216 + lib/std/special/build_runner.zig | 227 + lib/std/special/c.zig | 736 + lib/std/special/compiler_rt.zig | 1668 + lib/std/special/compiler_rt/README.md | 15 + lib/std/special/compiler_rt/addXf3.zig | 213 + lib/std/special/compiler_rt/addXf3_test.zig | 85 + lib/std/special/compiler_rt/arm/aeabi_dcmp.zig | 108 + lib/std/special/compiler_rt/arm/aeabi_fcmp.zig | 108 + lib/std/special/compiler_rt/ashlti3.zig | 41 + lib/std/special/compiler_rt/ashlti3_test.zig | 46 + lib/std/special/compiler_rt/ashrti3.zig | 42 + lib/std/special/compiler_rt/ashrti3_test.zig | 58 + lib/std/special/compiler_rt/aulldiv.zig | 55 + lib/std/special/compiler_rt/aullrem.zig | 56 + lib/std/special/compiler_rt/comparedf2.zig | 122 + lib/std/special/compiler_rt/comparedf2_test.zig | 101 + lib/std/special/compiler_rt/comparesf2.zig | 122 + lib/std/special/compiler_rt/comparesf2_test.zig | 101 + lib/std/special/compiler_rt/comparetf2.zig | 99 + lib/std/special/compiler_rt/divdf3.zig | 328 + lib/std/special/compiler_rt/divdf3_test.zig | 34 + lib/std/special/compiler_rt/divsf3.zig | 201 + lib/std/special/compiler_rt/divsf3_test.zig | 34 + lib/std/special/compiler_rt/divti3.zig | 25 + lib/std/special/compiler_rt/divti3_test.zig | 21 + lib/std/special/compiler_rt/extendXfYf2.zig | 96 + lib/std/special/compiler_rt/extendXfYf2_test.zig | 154 + lib/std/special/compiler_rt/fixdfdi.zig | 11 + lib/std/special/compiler_rt/fixdfdi_test.zig | 65 + lib/std/special/compiler_rt/fixdfsi.zig | 11 + lib/std/special/compiler_rt/fixdfsi_test.zig | 73 + lib/std/special/compiler_rt/fixdfti.zig | 11 + lib/std/special/compiler_rt/fixdfti_test.zig | 65 + lib/std/special/compiler_rt/fixint.zig | 74 + lib/std/special/compiler_rt/fixint_test.zig | 152 + lib/std/special/compiler_rt/fixsfdi.zig | 11 + lib/std/special/compiler_rt/fixsfdi_test.zig | 67 + lib/std/special/compiler_rt/fixsfsi.zig | 11 + lib/std/special/compiler_rt/fixsfsi_test.zig | 75 + lib/std/special/compiler_rt/fixsfti.zig | 11 + lib/std/special/compiler_rt/fixsfti_test.zig | 83 + lib/std/special/compiler_rt/fixtfdi.zig | 11 + lib/std/special/compiler_rt/fixtfdi_test.zig | 75 + lib/std/special/compiler_rt/fixtfsi.zig | 11 + lib/std/special/compiler_rt/fixtfsi_test.zig | 75 + lib/std/special/compiler_rt/fixtfti.zig | 11 + lib/std/special/compiler_rt/fixtfti_test.zig | 65 + lib/std/special/compiler_rt/fixuint.zig | 51 + lib/std/special/compiler_rt/fixunsdfdi.zig | 11 + lib/std/special/compiler_rt/fixunsdfdi_test.zig | 39 + lib/std/special/compiler_rt/fixunsdfsi.zig | 11 + lib/std/special/compiler_rt/fixunsdfsi_test.zig | 39 + lib/std/special/compiler_rt/fixunsdfti.zig | 11 + lib/std/special/compiler_rt/fixunsdfti_test.zig | 46 + lib/std/special/compiler_rt/fixunssfdi.zig | 11 + lib/std/special/compiler_rt/fixunssfdi_test.zig | 35 + lib/std/special/compiler_rt/fixunssfsi.zig | 11 + lib/std/special/compiler_rt/fixunssfsi_test.zig | 36 + lib/std/special/compiler_rt/fixunssfti.zig | 11 + lib/std/special/compiler_rt/fixunssfti_test.zig | 41 + lib/std/special/compiler_rt/fixunstfdi.zig | 11 + lib/std/special/compiler_rt/fixunstfdi_test.zig | 49 + lib/std/special/compiler_rt/fixunstfsi.zig | 11 + lib/std/special/compiler_rt/fixunstfsi_test.zig | 22 + lib/std/special/compiler_rt/fixunstfti.zig | 11 + lib/std/special/compiler_rt/fixunstfti_test.zig | 32 + lib/std/special/compiler_rt/floatdidf.zig | 22 + lib/std/special/compiler_rt/floatdidf_test.zig | 53 + lib/std/special/compiler_rt/floatsiXf.zig | 109 + lib/std/special/compiler_rt/floattidf.zig | 71 + lib/std/special/compiler_rt/floattidf_test.zig | 84 + lib/std/special/compiler_rt/floattisf.zig | 71 + lib/std/special/compiler_rt/floattisf_test.zig | 60 + lib/std/special/compiler_rt/floattitf.zig | 71 + lib/std/special/compiler_rt/floattitf_test.zig | 96 + lib/std/special/compiler_rt/floatundidf.zig | 24 + lib/std/special/compiler_rt/floatundidf_test.zig | 50 + lib/std/special/compiler_rt/floatunditf.zig | 28 + lib/std/special/compiler_rt/floatunditf_test.zig | 32 + lib/std/special/compiler_rt/floatunsidf.zig | 33 + lib/std/special/compiler_rt/floatunsitf.zig | 29 + lib/std/special/compiler_rt/floatunsitf_test.zig | 28 + lib/std/special/compiler_rt/floatuntidf.zig | 62 + lib/std/special/compiler_rt/floatuntidf_test.zig | 81 + lib/std/special/compiler_rt/floatuntisf.zig | 61 + lib/std/special/compiler_rt/floatuntisf_test.zig | 72 + lib/std/special/compiler_rt/floatuntitf.zig | 62 + lib/std/special/compiler_rt/floatuntitf_test.zig | 99 + lib/std/special/compiler_rt/lshrti3.zig | 41 + lib/std/special/compiler_rt/lshrti3_test.zig | 46 + lib/std/special/compiler_rt/modti3.zig | 30 + lib/std/special/compiler_rt/modti3_test.zig | 37 + lib/std/special/compiler_rt/mulXf3.zig | 289 + lib/std/special/compiler_rt/mulXf3_test.zig | 86 + lib/std/special/compiler_rt/muldi3.zig | 54 + lib/std/special/compiler_rt/muldi3_test.zig | 51 + lib/std/special/compiler_rt/mulodi4.zig | 44 + lib/std/special/compiler_rt/mulodi4_test.zig | 85 + lib/std/special/compiler_rt/muloti4.zig | 49 + lib/std/special/compiler_rt/muloti4_test.zig | 76 + lib/std/special/compiler_rt/multi3.zig | 59 + lib/std/special/compiler_rt/multi3_test.zig | 53 + lib/std/special/compiler_rt/negXf2.zig | 21 + lib/std/special/compiler_rt/popcountdi2.zig | 24 + lib/std/special/compiler_rt/popcountdi2_test.zig | 27 + lib/std/special/compiler_rt/stack_probe.zig | 206 + lib/std/special/compiler_rt/truncXfYf2.zig | 125 + lib/std/special/compiler_rt/truncXfYf2_test.zig | 239 + lib/std/special/compiler_rt/udivmod.zig | 197 + lib/std/special/compiler_rt/udivmoddi4.zig | 11 + lib/std/special/compiler_rt/udivmoddi4_test.zig | 20612 ++++++ lib/std/special/compiler_rt/udivmodti4.zig | 18 + lib/std/special/compiler_rt/udivmodti4_test.zig | 65300 +++++++++++++++++++ lib/std/special/compiler_rt/udivti3.zig | 13 + lib/std/special/compiler_rt/umodti3.zig | 15 + lib/std/special/init-exe/build.zig | 14 + lib/std/special/init-exe/src/main.zig | 5 + lib/std/special/init-lib/build.zig | 14 + lib/std/special/init-lib/src/main.zig | 10 + lib/std/special/panic.zig | 31 + lib/std/special/start.zig | 212 + lib/std/special/start_lib.zig | 16 + lib/std/special/start_windows_tls.zig | 36 + lib/std/special/test_runner.zig | 29 + lib/std/spinlock.zig | 32 + lib/std/statically_initialized_mutex.zig | 105 + lib/std/std.zig | 122 + lib/std/testing.zig | 150 + lib/std/thread.zig | 363 + lib/std/time.zig | 221 + lib/std/time/epoch.zig | 26 + lib/std/unicode.zig | 593 + lib/std/unicode/throughput_test.zig | 37 + lib/std/valgrind.zig | 267 + lib/std/valgrind/callgrind.zig | 64 + lib/std/valgrind/memcheck.zig | 185 + lib/std/zig.zig | 15 + lib/std/zig/ast.zig | 2252 + lib/std/zig/parse.zig | 3009 + lib/std/zig/parse_string_literal.zig | 76 + lib/std/zig/parser_test.zig | 2650 + lib/std/zig/perf_test.zig | 36 + lib/std/zig/render.zig | 2226 + lib/std/zig/tokenizer.zig | 1602 + 371 files changed, 187591 insertions(+) create mode 100644 lib/std/array_list.zig create mode 100644 lib/std/ascii.zig create mode 100644 lib/std/atomic.zig create mode 100644 lib/std/atomic/int.zig create mode 100644 lib/std/atomic/queue.zig create mode 100644 lib/std/atomic/stack.zig create mode 100644 lib/std/base64.zig create mode 100644 lib/std/bloom_filter.zig create mode 100644 lib/std/buf_map.zig create mode 100644 lib/std/buf_set.zig create mode 100644 lib/std/buffer.zig create mode 100644 lib/std/build.zig create mode 100644 lib/std/build/fmt.zig create mode 100644 lib/std/c.zig create mode 100644 lib/std/c/darwin.zig create mode 100644 lib/std/c/freebsd.zig create mode 100644 lib/std/c/linux.zig create mode 100644 lib/std/c/netbsd.zig create mode 100644 lib/std/c/windows.zig create mode 100644 lib/std/child_process.zig create mode 100644 lib/std/coff.zig create mode 100644 lib/std/crypto.zig create mode 100644 lib/std/crypto/benchmark.zig create mode 100644 lib/std/crypto/blake2.zig create mode 100644 lib/std/crypto/chacha20.zig create mode 100644 lib/std/crypto/gimli.zig create mode 100644 lib/std/crypto/hmac.zig create mode 100644 lib/std/crypto/md5.zig create mode 100644 lib/std/crypto/poly1305.zig create mode 100644 lib/std/crypto/sha1.zig create mode 100644 lib/std/crypto/sha2.zig create mode 100644 lib/std/crypto/sha3.zig create mode 100644 lib/std/crypto/test.zig create mode 100644 lib/std/crypto/x25519.zig create mode 100644 lib/std/cstr.zig create mode 100644 lib/std/debug.zig create mode 100644 lib/std/debug/failing_allocator.zig create mode 100644 lib/std/debug/leb128.zig create mode 100644 lib/std/dwarf.zig create mode 100644 lib/std/dynamic_library.zig create mode 100644 lib/std/elf.zig create mode 100644 lib/std/event.zig create mode 100644 lib/std/event/channel.zig create mode 100644 lib/std/event/fs.zig create mode 100644 lib/std/event/future.zig create mode 100644 lib/std/event/group.zig create mode 100644 lib/std/event/lock.zig create mode 100644 lib/std/event/locked.zig create mode 100644 lib/std/event/loop.zig create mode 100644 lib/std/event/net.zig create mode 100644 lib/std/event/rwlock.zig create mode 100644 lib/std/event/rwlocked.zig create mode 100644 lib/std/fmt.zig create mode 100644 lib/std/fmt/errol.zig create mode 100644 lib/std/fmt/errol/enum3.zig create mode 100644 lib/std/fmt/errol/lookup.zig create mode 100644 lib/std/fmt/parse_float.zig create mode 100644 lib/std/fs.zig create mode 100644 lib/std/fs/file.zig create mode 100644 lib/std/fs/get_app_data_dir.zig create mode 100644 lib/std/fs/path.zig create mode 100644 lib/std/hash.zig create mode 100644 lib/std/hash/adler.zig create mode 100644 lib/std/hash/auto_hash.zig create mode 100644 lib/std/hash/benchmark.zig create mode 100644 lib/std/hash/cityhash.zig create mode 100644 lib/std/hash/crc.zig create mode 100644 lib/std/hash/fnv.zig create mode 100644 lib/std/hash/murmur.zig create mode 100644 lib/std/hash/siphash.zig create mode 100644 lib/std/hash/wyhash.zig create mode 100644 lib/std/hash_map.zig create mode 100644 lib/std/heap.zig create mode 100644 lib/std/heap/logging_allocator.zig create mode 100644 lib/std/http.zig create mode 100644 lib/std/http/headers.zig create mode 100644 lib/std/io.zig create mode 100644 lib/std/io/c_out_stream.zig create mode 100644 lib/std/io/in_stream.zig create mode 100644 lib/std/io/seekable_stream.zig create mode 100644 lib/std/io/test.zig create mode 100644 lib/std/json.zig create mode 100644 lib/std/json/test.zig create mode 100644 lib/std/lazy_init.zig create mode 100644 lib/std/linked_list.zig create mode 100644 lib/std/macho.zig create mode 100644 lib/std/math.zig create mode 100644 lib/std/math/acos.zig create mode 100644 lib/std/math/acosh.zig create mode 100644 lib/std/math/asin.zig create mode 100644 lib/std/math/asinh.zig create mode 100644 lib/std/math/atan.zig create mode 100644 lib/std/math/atan2.zig create mode 100644 lib/std/math/atanh.zig create mode 100644 lib/std/math/big.zig create mode 100644 lib/std/math/big/int.zig create mode 100644 lib/std/math/big/rational.zig create mode 100644 lib/std/math/cbrt.zig create mode 100644 lib/std/math/ceil.zig create mode 100644 lib/std/math/complex.zig create mode 100644 lib/std/math/complex/abs.zig create mode 100644 lib/std/math/complex/acos.zig create mode 100644 lib/std/math/complex/acosh.zig create mode 100644 lib/std/math/complex/arg.zig create mode 100644 lib/std/math/complex/asin.zig create mode 100644 lib/std/math/complex/asinh.zig create mode 100644 lib/std/math/complex/atan.zig create mode 100644 lib/std/math/complex/atanh.zig create mode 100644 lib/std/math/complex/conj.zig create mode 100644 lib/std/math/complex/cos.zig create mode 100644 lib/std/math/complex/cosh.zig create mode 100644 lib/std/math/complex/exp.zig create mode 100644 lib/std/math/complex/ldexp.zig create mode 100644 lib/std/math/complex/log.zig create mode 100644 lib/std/math/complex/pow.zig create mode 100644 lib/std/math/complex/proj.zig create mode 100644 lib/std/math/complex/sin.zig create mode 100644 lib/std/math/complex/sinh.zig create mode 100644 lib/std/math/complex/sqrt.zig create mode 100644 lib/std/math/complex/tan.zig create mode 100644 lib/std/math/complex/tanh.zig create mode 100644 lib/std/math/copysign.zig create mode 100644 lib/std/math/cos.zig create mode 100644 lib/std/math/cosh.zig create mode 100644 lib/std/math/exp.zig create mode 100644 lib/std/math/exp2.zig create mode 100644 lib/std/math/expm1.zig create mode 100644 lib/std/math/expo2.zig create mode 100644 lib/std/math/fabs.zig create mode 100644 lib/std/math/floor.zig create mode 100644 lib/std/math/fma.zig create mode 100644 lib/std/math/frexp.zig create mode 100644 lib/std/math/hypot.zig create mode 100644 lib/std/math/ilogb.zig create mode 100644 lib/std/math/inf.zig create mode 100644 lib/std/math/isfinite.zig create mode 100644 lib/std/math/isinf.zig create mode 100644 lib/std/math/isnan.zig create mode 100644 lib/std/math/isnormal.zig create mode 100644 lib/std/math/ln.zig create mode 100644 lib/std/math/log.zig create mode 100644 lib/std/math/log10.zig create mode 100644 lib/std/math/log1p.zig create mode 100644 lib/std/math/log2.zig create mode 100644 lib/std/math/modf.zig create mode 100644 lib/std/math/nan.zig create mode 100644 lib/std/math/pow.zig create mode 100644 lib/std/math/powi.zig create mode 100644 lib/std/math/round.zig create mode 100644 lib/std/math/scalbn.zig create mode 100644 lib/std/math/signbit.zig create mode 100644 lib/std/math/sin.zig create mode 100644 lib/std/math/sinh.zig create mode 100644 lib/std/math/sqrt.zig create mode 100644 lib/std/math/tan.zig create mode 100644 lib/std/math/tanh.zig create mode 100644 lib/std/math/trunc.zig create mode 100644 lib/std/mem.zig create mode 100644 lib/std/meta.zig create mode 100644 lib/std/meta/trait.zig create mode 100644 lib/std/mutex.zig create mode 100644 lib/std/net.zig create mode 100644 lib/std/os.zig create mode 100644 lib/std/os/bits.zig create mode 100644 lib/std/os/bits/darwin.zig create mode 100644 lib/std/os/bits/freebsd.zig create mode 100644 lib/std/os/bits/linux.zig create mode 100644 lib/std/os/bits/linux/arm-eabi.zig create mode 100644 lib/std/os/bits/linux/arm64.zig create mode 100644 lib/std/os/bits/linux/errno.zig create mode 100644 lib/std/os/bits/linux/riscv64.zig create mode 100644 lib/std/os/bits/linux/x86_64.zig create mode 100644 lib/std/os/bits/netbsd.zig create mode 100644 lib/std/os/bits/wasi.zig create mode 100644 lib/std/os/bits/windows.zig create mode 100644 lib/std/os/darwin.zig create mode 100644 lib/std/os/freebsd.zig create mode 100644 lib/std/os/linux.zig create mode 100644 lib/std/os/linux/arm-eabi.zig create mode 100644 lib/std/os/linux/arm64.zig create mode 100644 lib/std/os/linux/riscv64.zig create mode 100644 lib/std/os/linux/test.zig create mode 100644 lib/std/os/linux/tls.zig create mode 100644 lib/std/os/linux/vdso.zig create mode 100644 lib/std/os/linux/x86_64.zig create mode 100644 lib/std/os/netbsd.zig create mode 100644 lib/std/os/test.zig create mode 100644 lib/std/os/uefi.zig create mode 100644 lib/std/os/uefi/protocols.zig create mode 100644 lib/std/os/uefi/protocols/absolute_pointer_protocol.zig create mode 100644 lib/std/os/uefi/protocols/edid_active_protocol.zig create mode 100644 lib/std/os/uefi/protocols/edid_discovered_protocol.zig create mode 100644 lib/std/os/uefi/protocols/edid_override_protocol.zig create mode 100644 lib/std/os/uefi/protocols/graphics_output_protocol.zig create mode 100644 lib/std/os/uefi/protocols/rng_protocol.zig create mode 100644 lib/std/os/uefi/protocols/simple_pointer_protocol.zig create mode 100644 lib/std/os/uefi/protocols/simple_text_input_ex_protocol.zig create mode 100644 lib/std/os/uefi/protocols/simple_text_output_protocol.zig create mode 100644 lib/std/os/uefi/status.zig create mode 100644 lib/std/os/uefi/tables.zig create mode 100644 lib/std/os/uefi/tables/boot_services.zig create mode 100644 lib/std/os/uefi/tables/configuration_table.zig create mode 100644 lib/std/os/uefi/tables/runtime_services.zig create mode 100644 lib/std/os/uefi/tables/system_table.zig create mode 100644 lib/std/os/uefi/tables/table_header.zig create mode 100644 lib/std/os/wasi.zig create mode 100644 lib/std/os/windows.zig create mode 100644 lib/std/os/windows/advapi32.zig create mode 100644 lib/std/os/windows/bits.zig create mode 100644 lib/std/os/windows/error.zig create mode 100644 lib/std/os/windows/kernel32.zig create mode 100644 lib/std/os/windows/lang.zig create mode 100644 lib/std/os/windows/ntdll.zig create mode 100644 lib/std/os/windows/ole32.zig create mode 100644 lib/std/os/windows/shell32.zig create mode 100644 lib/std/os/windows/status.zig create mode 100644 lib/std/os/windows/sublang.zig create mode 100644 lib/std/os/zen.zig create mode 100644 lib/std/packed_int_array.zig create mode 100644 lib/std/pdb.zig create mode 100644 lib/std/priority_queue.zig create mode 100644 lib/std/process.zig create mode 100644 lib/std/rand.zig create mode 100644 lib/std/rand/ziggurat.zig create mode 100644 lib/std/rb.zig create mode 100644 lib/std/segmented_list.zig create mode 100644 lib/std/sort.zig create mode 100644 lib/std/special/build_runner.zig create mode 100644 lib/std/special/c.zig create mode 100644 lib/std/special/compiler_rt.zig create mode 100644 lib/std/special/compiler_rt/README.md create mode 100644 lib/std/special/compiler_rt/addXf3.zig create mode 100644 lib/std/special/compiler_rt/addXf3_test.zig create mode 100644 lib/std/special/compiler_rt/arm/aeabi_dcmp.zig create mode 100644 lib/std/special/compiler_rt/arm/aeabi_fcmp.zig create mode 100644 lib/std/special/compiler_rt/ashlti3.zig create mode 100644 lib/std/special/compiler_rt/ashlti3_test.zig create mode 100644 lib/std/special/compiler_rt/ashrti3.zig create mode 100644 lib/std/special/compiler_rt/ashrti3_test.zig create mode 100644 lib/std/special/compiler_rt/aulldiv.zig create mode 100644 lib/std/special/compiler_rt/aullrem.zig create mode 100644 lib/std/special/compiler_rt/comparedf2.zig create mode 100644 lib/std/special/compiler_rt/comparedf2_test.zig create mode 100644 lib/std/special/compiler_rt/comparesf2.zig create mode 100644 lib/std/special/compiler_rt/comparesf2_test.zig create mode 100644 lib/std/special/compiler_rt/comparetf2.zig create mode 100644 lib/std/special/compiler_rt/divdf3.zig create mode 100644 lib/std/special/compiler_rt/divdf3_test.zig create mode 100644 lib/std/special/compiler_rt/divsf3.zig create mode 100644 lib/std/special/compiler_rt/divsf3_test.zig create mode 100644 lib/std/special/compiler_rt/divti3.zig create mode 100644 lib/std/special/compiler_rt/divti3_test.zig create mode 100644 lib/std/special/compiler_rt/extendXfYf2.zig create mode 100644 lib/std/special/compiler_rt/extendXfYf2_test.zig create mode 100644 lib/std/special/compiler_rt/fixdfdi.zig create mode 100644 lib/std/special/compiler_rt/fixdfdi_test.zig create mode 100644 lib/std/special/compiler_rt/fixdfsi.zig create mode 100644 lib/std/special/compiler_rt/fixdfsi_test.zig create mode 100644 lib/std/special/compiler_rt/fixdfti.zig create mode 100644 lib/std/special/compiler_rt/fixdfti_test.zig create mode 100644 lib/std/special/compiler_rt/fixint.zig create mode 100644 lib/std/special/compiler_rt/fixint_test.zig create mode 100644 lib/std/special/compiler_rt/fixsfdi.zig create mode 100644 lib/std/special/compiler_rt/fixsfdi_test.zig create mode 100644 lib/std/special/compiler_rt/fixsfsi.zig create mode 100644 lib/std/special/compiler_rt/fixsfsi_test.zig create mode 100644 lib/std/special/compiler_rt/fixsfti.zig create mode 100644 lib/std/special/compiler_rt/fixsfti_test.zig create mode 100644 lib/std/special/compiler_rt/fixtfdi.zig create mode 100644 lib/std/special/compiler_rt/fixtfdi_test.zig create mode 100644 lib/std/special/compiler_rt/fixtfsi.zig create mode 100644 lib/std/special/compiler_rt/fixtfsi_test.zig create mode 100644 lib/std/special/compiler_rt/fixtfti.zig create mode 100644 lib/std/special/compiler_rt/fixtfti_test.zig create mode 100644 lib/std/special/compiler_rt/fixuint.zig create mode 100644 lib/std/special/compiler_rt/fixunsdfdi.zig create mode 100644 lib/std/special/compiler_rt/fixunsdfdi_test.zig create mode 100644 lib/std/special/compiler_rt/fixunsdfsi.zig create mode 100644 lib/std/special/compiler_rt/fixunsdfsi_test.zig create mode 100644 lib/std/special/compiler_rt/fixunsdfti.zig create mode 100644 lib/std/special/compiler_rt/fixunsdfti_test.zig create mode 100644 lib/std/special/compiler_rt/fixunssfdi.zig create mode 100644 lib/std/special/compiler_rt/fixunssfdi_test.zig create mode 100644 lib/std/special/compiler_rt/fixunssfsi.zig create mode 100644 lib/std/special/compiler_rt/fixunssfsi_test.zig create mode 100644 lib/std/special/compiler_rt/fixunssfti.zig create mode 100644 lib/std/special/compiler_rt/fixunssfti_test.zig create mode 100644 lib/std/special/compiler_rt/fixunstfdi.zig create mode 100644 lib/std/special/compiler_rt/fixunstfdi_test.zig create mode 100644 lib/std/special/compiler_rt/fixunstfsi.zig create mode 100644 lib/std/special/compiler_rt/fixunstfsi_test.zig create mode 100644 lib/std/special/compiler_rt/fixunstfti.zig create mode 100644 lib/std/special/compiler_rt/fixunstfti_test.zig create mode 100644 lib/std/special/compiler_rt/floatdidf.zig create mode 100644 lib/std/special/compiler_rt/floatdidf_test.zig create mode 100644 lib/std/special/compiler_rt/floatsiXf.zig create mode 100644 lib/std/special/compiler_rt/floattidf.zig create mode 100644 lib/std/special/compiler_rt/floattidf_test.zig create mode 100644 lib/std/special/compiler_rt/floattisf.zig create mode 100644 lib/std/special/compiler_rt/floattisf_test.zig create mode 100644 lib/std/special/compiler_rt/floattitf.zig create mode 100644 lib/std/special/compiler_rt/floattitf_test.zig create mode 100644 lib/std/special/compiler_rt/floatundidf.zig create mode 100644 lib/std/special/compiler_rt/floatundidf_test.zig create mode 100644 lib/std/special/compiler_rt/floatunditf.zig create mode 100644 lib/std/special/compiler_rt/floatunditf_test.zig create mode 100644 lib/std/special/compiler_rt/floatunsidf.zig create mode 100644 lib/std/special/compiler_rt/floatunsitf.zig create mode 100644 lib/std/special/compiler_rt/floatunsitf_test.zig create mode 100644 lib/std/special/compiler_rt/floatuntidf.zig create mode 100644 lib/std/special/compiler_rt/floatuntidf_test.zig create mode 100644 lib/std/special/compiler_rt/floatuntisf.zig create mode 100644 lib/std/special/compiler_rt/floatuntisf_test.zig create mode 100644 lib/std/special/compiler_rt/floatuntitf.zig create mode 100644 lib/std/special/compiler_rt/floatuntitf_test.zig create mode 100644 lib/std/special/compiler_rt/lshrti3.zig create mode 100644 lib/std/special/compiler_rt/lshrti3_test.zig create mode 100644 lib/std/special/compiler_rt/modti3.zig create mode 100644 lib/std/special/compiler_rt/modti3_test.zig create mode 100644 lib/std/special/compiler_rt/mulXf3.zig create mode 100644 lib/std/special/compiler_rt/mulXf3_test.zig create mode 100644 lib/std/special/compiler_rt/muldi3.zig create mode 100644 lib/std/special/compiler_rt/muldi3_test.zig create mode 100644 lib/std/special/compiler_rt/mulodi4.zig create mode 100644 lib/std/special/compiler_rt/mulodi4_test.zig create mode 100644 lib/std/special/compiler_rt/muloti4.zig create mode 100644 lib/std/special/compiler_rt/muloti4_test.zig create mode 100644 lib/std/special/compiler_rt/multi3.zig create mode 100644 lib/std/special/compiler_rt/multi3_test.zig create mode 100644 lib/std/special/compiler_rt/negXf2.zig create mode 100644 lib/std/special/compiler_rt/popcountdi2.zig create mode 100644 lib/std/special/compiler_rt/popcountdi2_test.zig create mode 100644 lib/std/special/compiler_rt/stack_probe.zig create mode 100644 lib/std/special/compiler_rt/truncXfYf2.zig create mode 100644 lib/std/special/compiler_rt/truncXfYf2_test.zig create mode 100644 lib/std/special/compiler_rt/udivmod.zig create mode 100644 lib/std/special/compiler_rt/udivmoddi4.zig create mode 100644 lib/std/special/compiler_rt/udivmoddi4_test.zig create mode 100644 lib/std/special/compiler_rt/udivmodti4.zig create mode 100644 lib/std/special/compiler_rt/udivmodti4_test.zig create mode 100644 lib/std/special/compiler_rt/udivti3.zig create mode 100644 lib/std/special/compiler_rt/umodti3.zig create mode 100644 lib/std/special/init-exe/build.zig create mode 100644 lib/std/special/init-exe/src/main.zig create mode 100644 lib/std/special/init-lib/build.zig create mode 100644 lib/std/special/init-lib/src/main.zig create mode 100644 lib/std/special/panic.zig create mode 100644 lib/std/special/start.zig create mode 100644 lib/std/special/start_lib.zig create mode 100644 lib/std/special/start_windows_tls.zig create mode 100644 lib/std/special/test_runner.zig create mode 100644 lib/std/spinlock.zig create mode 100644 lib/std/statically_initialized_mutex.zig create mode 100644 lib/std/std.zig create mode 100644 lib/std/testing.zig create mode 100644 lib/std/thread.zig create mode 100644 lib/std/time.zig create mode 100644 lib/std/time/epoch.zig create mode 100644 lib/std/unicode.zig create mode 100644 lib/std/unicode/throughput_test.zig create mode 100644 lib/std/valgrind.zig create mode 100644 lib/std/valgrind/callgrind.zig create mode 100644 lib/std/valgrind/memcheck.zig create mode 100644 lib/std/zig.zig create mode 100644 lib/std/zig/ast.zig create mode 100644 lib/std/zig/parse.zig create mode 100644 lib/std/zig/parse_string_literal.zig create mode 100644 lib/std/zig/parser_test.zig create mode 100644 lib/std/zig/perf_test.zig create mode 100644 lib/std/zig/render.zig create mode 100644 lib/std/zig/tokenizer.zig (limited to 'lib') diff --git a/lib/std/array_list.zig b/lib/std/array_list.zig new file mode 100644 index 0000000000..31ae02b291 --- /dev/null +++ b/lib/std/array_list.zig @@ -0,0 +1,460 @@ +const std = @import("std.zig"); +const debug = std.debug; +const assert = debug.assert; +const testing = std.testing; +const mem = std.mem; +const Allocator = mem.Allocator; + +pub fn ArrayList(comptime T: type) type { + return AlignedArrayList(T, null); +} + +pub fn AlignedArrayList(comptime T: type, comptime alignment: ?u29) type { + if (alignment) |a| { + if (a == @alignOf(T)) { + return AlignedArrayList(T, null); + } + } + return struct { + const Self = @This(); + + /// Use toSlice instead of slicing this directly, because if you don't + /// specify the end position of the slice, this will potentially give + /// you uninitialized memory. + items: Slice, + len: usize, + allocator: *Allocator, + + pub const Slice = if (alignment) |a| ([]align(a) T) else []T; + pub const SliceConst = if (alignment) |a| ([]align(a) const T) else []const T; + + /// Deinitialize with `deinit` or use `toOwnedSlice`. + pub fn init(allocator: *Allocator) Self { + return Self{ + .items = [_]T{}, + .len = 0, + .allocator = allocator, + }; + } + + pub fn deinit(self: Self) void { + self.allocator.free(self.items); + } + + pub fn toSlice(self: Self) Slice { + return self.items[0..self.len]; + } + + pub fn toSliceConst(self: Self) SliceConst { + return self.items[0..self.len]; + } + + pub fn at(self: Self, i: usize) T { + return self.toSliceConst()[i]; + } + + /// Sets the value at index `i`, or returns `error.OutOfBounds` if + /// the index is not in range. + pub fn setOrError(self: Self, i: usize, item: T) !void { + if (i >= self.len) return error.OutOfBounds; + self.items[i] = item; + } + + /// Sets the value at index `i`, asserting that the value is in range. + pub fn set(self: *Self, i: usize, item: T) void { + assert(i < self.len); + self.items[i] = item; + } + + pub fn count(self: Self) usize { + return self.len; + } + + pub fn capacity(self: Self) usize { + return self.items.len; + } + + /// ArrayList takes ownership of the passed in slice. The slice must have been + /// allocated with `allocator`. + /// Deinitialize with `deinit` or use `toOwnedSlice`. + pub fn fromOwnedSlice(allocator: *Allocator, slice: Slice) Self { + return Self{ + .items = slice, + .len = slice.len, + .allocator = allocator, + }; + } + + /// The caller owns the returned memory. ArrayList becomes empty. + pub fn toOwnedSlice(self: *Self) Slice { + const allocator = self.allocator; + const result = allocator.shrink(self.items, self.len); + self.* = init(allocator); + return result; + } + + pub fn insert(self: *Self, n: usize, item: T) !void { + try self.ensureCapacity(self.len + 1); + self.len += 1; + + mem.copyBackwards(T, self.items[n + 1 .. self.len], self.items[n .. self.len - 1]); + self.items[n] = item; + } + + pub fn insertSlice(self: *Self, n: usize, items: SliceConst) !void { + try self.ensureCapacity(self.len + items.len); + self.len += items.len; + + mem.copyBackwards(T, self.items[n + items.len .. self.len], self.items[n .. self.len - items.len]); + mem.copy(T, self.items[n .. n + items.len], items); + } + + pub fn append(self: *Self, item: T) !void { + const new_item_ptr = try self.addOne(); + new_item_ptr.* = item; + } + + pub fn appendAssumeCapacity(self: *Self, item: T) void { + const new_item_ptr = self.addOneAssumeCapacity(); + new_item_ptr.* = item; + } + + pub fn orderedRemove(self: *Self, i: usize) T { + const newlen = self.len - 1; + if (newlen == i) return self.pop(); + + const old_item = self.at(i); + for (self.items[i..newlen]) |*b, j| b.* = self.items[i + 1 + j]; + self.items[newlen] = undefined; + self.len = newlen; + return old_item; + } + + /// Removes the element at the specified index and returns it. + /// The empty slot is filled from the end of the list. + pub fn swapRemove(self: *Self, i: usize) T { + if (self.len - 1 == i) return self.pop(); + + const slice = self.toSlice(); + const old_item = slice[i]; + slice[i] = self.pop(); + return old_item; + } + + /// Removes the element at the specified index and returns it + /// or an error.OutOfBounds is returned. If no error then + /// the empty slot is filled from the end of the list. + pub fn swapRemoveOrError(self: *Self, i: usize) !T { + if (i >= self.len) return error.OutOfBounds; + return self.swapRemove(i); + } + + pub fn appendSlice(self: *Self, items: SliceConst) !void { + try self.ensureCapacity(self.len + items.len); + mem.copy(T, self.items[self.len..], items); + self.len += items.len; + } + + pub fn resize(self: *Self, new_len: usize) !void { + try self.ensureCapacity(new_len); + self.len = new_len; + } + + pub fn shrink(self: *Self, new_len: usize) void { + assert(new_len <= self.len); + self.len = new_len; + self.items = self.allocator.realloc(self.items, new_len) catch |e| switch (e) { + error.OutOfMemory => return, // no problem, capacity is still correct then. + }; + } + + pub fn ensureCapacity(self: *Self, new_capacity: usize) !void { + var better_capacity = self.capacity(); + if (better_capacity >= new_capacity) return; + while (true) { + better_capacity += better_capacity / 2 + 8; + if (better_capacity >= new_capacity) break; + } + self.items = try self.allocator.realloc(self.items, better_capacity); + } + + pub fn addOne(self: *Self) !*T { + const new_length = self.len + 1; + try self.ensureCapacity(new_length); + return self.addOneAssumeCapacity(); + } + + pub fn addOneAssumeCapacity(self: *Self) *T { + assert(self.count() < self.capacity()); + const result = &self.items[self.len]; + self.len += 1; + return result; + } + + pub fn pop(self: *Self) T { + self.len -= 1; + return self.items[self.len]; + } + + pub fn popOrNull(self: *Self) ?T { + if (self.len == 0) return null; + return self.pop(); + } + + pub const Iterator = struct { + list: *const Self, + // how many items have we returned + count: usize, + + pub fn next(it: *Iterator) ?T { + if (it.count >= it.list.len) return null; + const val = it.list.at(it.count); + it.count += 1; + return val; + } + + pub fn reset(it: *Iterator) void { + it.count = 0; + } + }; + + pub fn iterator(self: *const Self) Iterator { + return Iterator{ + .list = self, + .count = 0, + }; + } + }; +} + +test "std.ArrayList.init" { + var bytes: [1024]u8 = undefined; + const allocator = &std.heap.FixedBufferAllocator.init(bytes[0..]).allocator; + + var list = ArrayList(i32).init(allocator); + defer list.deinit(); + + testing.expect(list.count() == 0); + testing.expect(list.capacity() == 0); +} + +test "std.ArrayList.basic" { + var bytes: [1024]u8 = undefined; + const allocator = &std.heap.FixedBufferAllocator.init(bytes[0..]).allocator; + + var list = ArrayList(i32).init(allocator); + defer list.deinit(); + + // setting on empty list is out of bounds + testing.expectError(error.OutOfBounds, list.setOrError(0, 1)); + + { + var i: usize = 0; + while (i < 10) : (i += 1) { + list.append(@intCast(i32, i + 1)) catch unreachable; + } + } + + { + var i: usize = 0; + while (i < 10) : (i += 1) { + testing.expect(list.items[i] == @intCast(i32, i + 1)); + } + } + + for (list.toSlice()) |v, i| { + testing.expect(v == @intCast(i32, i + 1)); + } + + for (list.toSliceConst()) |v, i| { + testing.expect(v == @intCast(i32, i + 1)); + } + + testing.expect(list.pop() == 10); + testing.expect(list.len == 9); + + list.appendSlice([_]i32{ + 1, + 2, + 3, + }) catch unreachable; + testing.expect(list.len == 12); + testing.expect(list.pop() == 3); + testing.expect(list.pop() == 2); + testing.expect(list.pop() == 1); + testing.expect(list.len == 9); + + list.appendSlice([_]i32{}) catch unreachable; + testing.expect(list.len == 9); + + // can only set on indices < self.len + list.set(7, 33); + list.set(8, 42); + + testing.expectError(error.OutOfBounds, list.setOrError(9, 99)); + testing.expectError(error.OutOfBounds, list.setOrError(10, 123)); + + testing.expect(list.pop() == 42); + testing.expect(list.pop() == 33); +} + +test "std.ArrayList.orderedRemove" { + var list = ArrayList(i32).init(debug.global_allocator); + defer list.deinit(); + + try list.append(1); + try list.append(2); + try list.append(3); + try list.append(4); + try list.append(5); + try list.append(6); + try list.append(7); + + //remove from middle + testing.expectEqual(i32(4), list.orderedRemove(3)); + testing.expectEqual(i32(5), list.at(3)); + testing.expectEqual(usize(6), list.len); + + //remove from end + testing.expectEqual(i32(7), list.orderedRemove(5)); + testing.expectEqual(usize(5), list.len); + + //remove from front + testing.expectEqual(i32(1), list.orderedRemove(0)); + testing.expectEqual(i32(2), list.at(0)); + testing.expectEqual(usize(4), list.len); +} + +test "std.ArrayList.swapRemove" { + var list = ArrayList(i32).init(debug.global_allocator); + defer list.deinit(); + + try list.append(1); + try list.append(2); + try list.append(3); + try list.append(4); + try list.append(5); + try list.append(6); + try list.append(7); + + //remove from middle + testing.expect(list.swapRemove(3) == 4); + testing.expect(list.at(3) == 7); + testing.expect(list.len == 6); + + //remove from end + testing.expect(list.swapRemove(5) == 6); + testing.expect(list.len == 5); + + //remove from front + testing.expect(list.swapRemove(0) == 1); + testing.expect(list.at(0) == 5); + testing.expect(list.len == 4); +} + +test "std.ArrayList.swapRemoveOrError" { + var list = ArrayList(i32).init(debug.global_allocator); + defer list.deinit(); + + // Test just after initialization + testing.expectError(error.OutOfBounds, list.swapRemoveOrError(0)); + + // Test after adding one item and remote it + try list.append(1); + testing.expect((try list.swapRemoveOrError(0)) == 1); + testing.expectError(error.OutOfBounds, list.swapRemoveOrError(0)); + + // Test after adding two items and remote both + try list.append(1); + try list.append(2); + testing.expect((try list.swapRemoveOrError(1)) == 2); + testing.expect((try list.swapRemoveOrError(0)) == 1); + testing.expectError(error.OutOfBounds, list.swapRemoveOrError(0)); + + // Test out of bounds with one item + try list.append(1); + testing.expectError(error.OutOfBounds, list.swapRemoveOrError(1)); + + // Test out of bounds with two items + try list.append(2); + testing.expectError(error.OutOfBounds, list.swapRemoveOrError(2)); +} + +test "std.ArrayList.iterator" { + var list = ArrayList(i32).init(debug.global_allocator); + defer list.deinit(); + + try list.append(1); + try list.append(2); + try list.append(3); + + var count: i32 = 0; + var it = list.iterator(); + while (it.next()) |next| { + testing.expect(next == count + 1); + count += 1; + } + + testing.expect(count == 3); + testing.expect(it.next() == null); + it.reset(); + count = 0; + while (it.next()) |next| { + testing.expect(next == count + 1); + count += 1; + if (count == 2) break; + } + + it.reset(); + testing.expect(it.next().? == 1); +} + +test "std.ArrayList.insert" { + var list = ArrayList(i32).init(debug.global_allocator); + defer list.deinit(); + + try list.append(1); + try list.append(2); + try list.append(3); + try list.insert(0, 5); + testing.expect(list.items[0] == 5); + testing.expect(list.items[1] == 1); + testing.expect(list.items[2] == 2); + testing.expect(list.items[3] == 3); +} + +test "std.ArrayList.insertSlice" { + var list = ArrayList(i32).init(debug.global_allocator); + defer list.deinit(); + + try list.append(1); + try list.append(2); + try list.append(3); + try list.append(4); + try list.insertSlice(1, [_]i32{ + 9, + 8, + }); + testing.expect(list.items[0] == 1); + testing.expect(list.items[1] == 9); + testing.expect(list.items[2] == 8); + testing.expect(list.items[3] == 2); + testing.expect(list.items[4] == 3); + testing.expect(list.items[5] == 4); + + const items = [_]i32{1}; + try list.insertSlice(0, items[0..0]); + testing.expect(list.len == 6); + testing.expect(list.items[0] == 1); +} + +const Item = struct { + integer: i32, + sub_items: ArrayList(Item), +}; + +test "std.ArrayList: ArrayList(T) of struct T" { + var root = Item{ .integer = 1, .sub_items = ArrayList(Item).init(debug.global_allocator) }; + try root.sub_items.append(Item{ .integer = 42, .sub_items = ArrayList(Item).init(debug.global_allocator) }); + testing.expect(root.sub_items.items[0].integer == 42); +} diff --git a/lib/std/ascii.zig b/lib/std/ascii.zig new file mode 100644 index 0000000000..2bc11ba3f2 --- /dev/null +++ b/lib/std/ascii.zig @@ -0,0 +1,284 @@ +// Does NOT look at the locale the way C89's toupper(3), isspace() et cetera does. +// I could have taken only a u7 to make this clear, but it would be slower +// It is my opinion that encodings other than UTF-8 should not be supported. +// +// (and 128 bytes is not much to pay). +// Also does not handle Unicode character classes. +// +// https://upload.wikimedia.org/wikipedia/commons/thumb/c/cf/USASCII_code_chart.png/1200px-USASCII_code_chart.png + +const std = @import("std"); + +const tIndex = enum(u3) { + Alpha, + Hex, + Space, + Digit, + Lower, + Upper, + // Ctrl, < 0x20 || == DEL + // Print, = Graph || == ' '. NOT '\t' et cetera + Punct, + Graph, + //ASCII, | ~0b01111111 + //isBlank, == ' ' || == '\x09' +}; + +const combinedTable = init: { + comptime var table: [256]u8 = undefined; + + const mem = std.mem; + + const alpha = [_]u1{ + // 0, 1, 2, 3, 4, 5, 6, 7 ,8, 9,10,11,12,13,14,15 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, + }; + const lower = [_]u1{ + // 0, 1, 2, 3, 4, 5, 6, 7 ,8, 9,10,11,12,13,14,15 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, + }; + const upper = [_]u1{ + // 0, 1, 2, 3, 4, 5, 6, 7 ,8, 9,10,11,12,13,14,15 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + const digit = [_]u1{ + // 0, 1, 2, 3, 4, 5, 6, 7 ,8, 9,10,11,12,13,14,15 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + const hex = [_]u1{ + // 0, 1, 2, 3, 4, 5, 6, 7 ,8, 9,10,11,12,13,14,15 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, + + 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + const space = [_]u1{ + // 0, 1, 2, 3, 4, 5, 6, 7 ,8, 9,10,11,12,13,14,15 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + const punct = [_]u1{ + // 0, 1, 2, 3, 4, 5, 6, 7 ,8, 9,10,11,12,13,14,15 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, + + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, + }; + const graph = [_]u1{ + // 0, 1, 2, 3, 4, 5, 6, 7 ,8, 9,10,11,12,13,14,15 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + }; + + comptime var i = 0; + inline while (i < 128) : (i += 1) { + table[i] = + u8(alpha[i]) << @enumToInt(tIndex.Alpha) | + u8(hex[i]) << @enumToInt(tIndex.Hex) | + u8(space[i]) << @enumToInt(tIndex.Space) | + u8(digit[i]) << @enumToInt(tIndex.Digit) | + u8(lower[i]) << @enumToInt(tIndex.Lower) | + u8(upper[i]) << @enumToInt(tIndex.Upper) | + u8(punct[i]) << @enumToInt(tIndex.Punct) | + u8(graph[i]) << @enumToInt(tIndex.Graph); + } + mem.set(u8, table[128..256], 0); + break :init table; +}; + +fn inTable(c: u8, t: tIndex) bool { + return (combinedTable[c] & (u8(1) << @enumToInt(t))) != 0; +} + +pub fn isAlNum(c: u8) bool { + return (combinedTable[c] & ((u8(1) << @enumToInt(tIndex.Alpha)) | + u8(1) << @enumToInt(tIndex.Digit))) != 0; +} + +pub fn isAlpha(c: u8) bool { + return inTable(c, tIndex.Alpha); +} + +pub fn isCntrl(c: u8) bool { + return c < 0x20 or c == 127; //DEL +} + +pub fn isDigit(c: u8) bool { + return inTable(c, tIndex.Digit); +} + +pub fn isGraph(c: u8) bool { + return inTable(c, tIndex.Graph); +} + +pub fn isLower(c: u8) bool { + return inTable(c, tIndex.Lower); +} + +pub fn isPrint(c: u8) bool { + return inTable(c, tIndex.Graph) or c == ' '; +} + +pub fn isPunct(c: u8) bool { + return inTable(c, tIndex.Punct); +} + +pub fn isSpace(c: u8) bool { + return inTable(c, tIndex.Space); +} + +pub fn isUpper(c: u8) bool { + return inTable(c, tIndex.Upper); +} + +pub fn isXDigit(c: u8) bool { + return inTable(c, tIndex.Hex); +} + +pub fn isASCII(c: u8) bool { + return c < 128; +} + +pub fn isBlank(c: u8) bool { + return (c == ' ') or (c == '\x09'); +} + +pub fn toUpper(c: u8) u8 { + if (isLower(c)) { + return c & 0b11011111; + } else { + return c; + } +} + +pub fn toLower(c: u8) u8 { + if (isUpper(c)) { + return c | 0b00100000; + } else { + return c; + } +} + +test "ascii character classes" { + const testing = std.testing; + + testing.expect('C' == toUpper('c')); + testing.expect(':' == toUpper(':')); + testing.expect('\xab' == toUpper('\xab')); + testing.expect('c' == toLower('C')); + testing.expect(isAlpha('c')); + testing.expect(!isAlpha('5')); + testing.expect(isSpace(' ')); +} + +pub fn allocLowerString(allocator: *std.mem.Allocator, ascii_string: []const u8) ![]u8 { + const result = try allocator.alloc(u8, ascii_string.len); + for (result) |*c, i| { + c.* = toLower(ascii_string[i]); + } + return result; +} + +test "allocLowerString" { + var buf: [100]u8 = undefined; + const allocator = &std.heap.FixedBufferAllocator.init(&buf).allocator; + const result = try allocLowerString(allocator, "aBcDeFgHiJkLmNOPqrst0234+💩!"); + std.testing.expect(std.mem.eql(u8, "abcdefghijklmnopqrst0234+💩!", result)); +} + +pub fn eqlIgnoreCase(a: []const u8, b: []const u8) bool { + if (a.len != b.len) return false; + for (a) |a_c, i| { + if (toLower(a_c) != toLower(b[i])) return false; + } + return true; +} + +test "eqlIgnoreCase" { + std.testing.expect(eqlIgnoreCase("HEl💩Lo!", "hel💩lo!")); + std.testing.expect(!eqlIgnoreCase("hElLo!", "hello! ")); + std.testing.expect(!eqlIgnoreCase("hElLo!", "helro!")); +} + +/// Finds `substr` in `container`, starting at `start_index`. +/// TODO boyer-moore algorithm +pub fn indexOfIgnoreCasePos(container: []const u8, start_index: usize, substr: []const u8) ?usize { + if (substr.len > container.len) return null; + + var i: usize = start_index; + const end = container.len - substr.len; + while (i <= end) : (i += 1) { + if (eqlIgnoreCase(container[i .. i + substr.len], substr)) return i; + } + return null; +} + +/// Finds `substr` in `container`, starting at `start_index`. +pub fn indexOfIgnoreCase(container: []const u8, substr: []const u8) ?usize { + return indexOfIgnoreCasePos(container, 0, substr); +} + +test "indexOfIgnoreCase" { + std.testing.expect(indexOfIgnoreCase("one Two Three Four", "foUr").? == 14); + std.testing.expect(indexOfIgnoreCase("one two three FouR", "gOur") == null); + std.testing.expect(indexOfIgnoreCase("foO", "Foo").? == 0); + std.testing.expect(indexOfIgnoreCase("foo", "fool") == null); + + std.testing.expect(indexOfIgnoreCase("FOO foo", "fOo").? == 0); +} diff --git a/lib/std/atomic.zig b/lib/std/atomic.zig new file mode 100644 index 0000000000..6f7b4fe75d --- /dev/null +++ b/lib/std/atomic.zig @@ -0,0 +1,9 @@ +pub const Stack = @import("atomic/stack.zig").Stack; +pub const Queue = @import("atomic/queue.zig").Queue; +pub const Int = @import("atomic/int.zig").Int; + +test "std.atomic" { + _ = @import("atomic/stack.zig"); + _ = @import("atomic/queue.zig"); + _ = @import("atomic/int.zig"); +} diff --git a/lib/std/atomic/int.zig b/lib/std/atomic/int.zig new file mode 100644 index 0000000000..94985b914f --- /dev/null +++ b/lib/std/atomic/int.zig @@ -0,0 +1,41 @@ +const builtin = @import("builtin"); +const AtomicOrder = builtin.AtomicOrder; + +/// Thread-safe, lock-free integer +pub fn Int(comptime T: type) type { + return struct { + unprotected_value: T, + + pub const Self = @This(); + + pub fn init(init_val: T) Self { + return Self{ .unprotected_value = init_val }; + } + + /// Returns previous value + pub fn incr(self: *Self) T { + return @atomicRmw(T, &self.unprotected_value, builtin.AtomicRmwOp.Add, 1, AtomicOrder.SeqCst); + } + + /// Returns previous value + pub fn decr(self: *Self) T { + return @atomicRmw(T, &self.unprotected_value, builtin.AtomicRmwOp.Sub, 1, AtomicOrder.SeqCst); + } + + pub fn get(self: *Self) T { + return @atomicLoad(T, &self.unprotected_value, AtomicOrder.SeqCst); + } + + pub fn set(self: *Self, new_value: T) void { + _ = self.xchg(new_value); + } + + pub fn xchg(self: *Self, new_value: T) T { + return @atomicRmw(T, &self.unprotected_value, builtin.AtomicRmwOp.Xchg, new_value, AtomicOrder.SeqCst); + } + + pub fn fetchAdd(self: *Self, op: T) T { + return @atomicRmw(T, &self.unprotected_value, builtin.AtomicRmwOp.Add, op, AtomicOrder.SeqCst); + } + }; +} diff --git a/lib/std/atomic/queue.zig b/lib/std/atomic/queue.zig new file mode 100644 index 0000000000..dbc011bed3 --- /dev/null +++ b/lib/std/atomic/queue.zig @@ -0,0 +1,377 @@ +const std = @import("../std.zig"); +const builtin = @import("builtin"); +const AtomicOrder = builtin.AtomicOrder; +const AtomicRmwOp = builtin.AtomicRmwOp; +const assert = std.debug.assert; +const expect = std.testing.expect; + +/// Many producer, many consumer, non-allocating, thread-safe. +/// Uses a mutex to protect access. +pub fn Queue(comptime T: type) type { + return struct { + head: ?*Node, + tail: ?*Node, + mutex: std.Mutex, + + pub const Self = @This(); + pub const Node = std.TailQueue(T).Node; + + pub fn init() Self { + return Self{ + .head = null, + .tail = null, + .mutex = std.Mutex.init(), + }; + } + + pub fn put(self: *Self, node: *Node) void { + node.next = null; + + const held = self.mutex.acquire(); + defer held.release(); + + node.prev = self.tail; + self.tail = node; + if (node.prev) |prev_tail| { + prev_tail.next = node; + } else { + assert(self.head == null); + self.head = node; + } + } + + pub fn get(self: *Self) ?*Node { + const held = self.mutex.acquire(); + defer held.release(); + + const head = self.head orelse return null; + self.head = head.next; + if (head.next) |new_head| { + new_head.prev = null; + } else { + self.tail = null; + } + // This way, a get() and a remove() are thread-safe with each other. + head.prev = null; + head.next = null; + return head; + } + + pub fn unget(self: *Self, node: *Node) void { + node.prev = null; + + const held = self.mutex.acquire(); + defer held.release(); + + const opt_head = self.head; + self.head = node; + if (opt_head) |head| { + head.next = node; + } else { + assert(self.tail == null); + self.tail = node; + } + } + + /// Thread-safe with get() and remove(). Returns whether node was actually removed. + pub fn remove(self: *Self, node: *Node) bool { + const held = self.mutex.acquire(); + defer held.release(); + + if (node.prev == null and node.next == null and self.head != node) { + return false; + } + + if (node.prev) |prev| { + prev.next = node.next; + } else { + self.head = node.next; + } + if (node.next) |next| { + next.prev = node.prev; + } else { + self.tail = node.prev; + } + node.prev = null; + node.next = null; + return true; + } + + pub fn isEmpty(self: *Self) bool { + const held = self.mutex.acquire(); + defer held.release(); + return self.head == null; + } + + pub fn dump(self: *Self) void { + var stderr_file = std.io.getStdErr() catch return; + const stderr = &stderr_file.outStream().stream; + const Error = @typeInfo(@typeOf(stderr)).Pointer.child.Error; + + self.dumpToStream(Error, stderr) catch return; + } + + pub fn dumpToStream(self: *Self, comptime Error: type, stream: *std.io.OutStream(Error)) Error!void { + const S = struct { + fn dumpRecursive(s: *std.io.OutStream(Error), optional_node: ?*Node, indent: usize) Error!void { + try s.writeByteNTimes(' ', indent); + if (optional_node) |node| { + try s.print("0x{x}={}\n", @ptrToInt(node), node.data); + try dumpRecursive(s, node.next, indent + 1); + } else { + try s.print("(null)\n"); + } + } + }; + const held = self.mutex.acquire(); + defer held.release(); + + try stream.print("head: "); + try S.dumpRecursive(stream, self.head, 0); + try stream.print("tail: "); + try S.dumpRecursive(stream, self.tail, 0); + } + }; +} + +const Context = struct { + allocator: *std.mem.Allocator, + queue: *Queue(i32), + put_sum: isize, + get_sum: isize, + get_count: usize, + puts_done: u8, // TODO make this a bool +}; + +// TODO add lazy evaluated build options and then put puts_per_thread behind +// some option such as: "AggressiveMultithreadedFuzzTest". In the AppVeyor +// CI we would use a less aggressive setting since at 1 core, while we still +// want this test to pass, we need a smaller value since there is so much thrashing +// we would also use a less aggressive setting when running in valgrind +const puts_per_thread = 500; +const put_thread_count = 3; + +test "std.atomic.Queue" { + var plenty_of_memory = try std.heap.direct_allocator.alloc(u8, 300 * 1024); + defer std.heap.direct_allocator.free(plenty_of_memory); + + var fixed_buffer_allocator = std.heap.ThreadSafeFixedBufferAllocator.init(plenty_of_memory); + var a = &fixed_buffer_allocator.allocator; + + var queue = Queue(i32).init(); + var context = Context{ + .allocator = a, + .queue = &queue, + .put_sum = 0, + .get_sum = 0, + .puts_done = 0, + .get_count = 0, + }; + + if (builtin.single_threaded) { + expect(context.queue.isEmpty()); + { + var i: usize = 0; + while (i < put_thread_count) : (i += 1) { + expect(startPuts(&context) == 0); + } + } + expect(!context.queue.isEmpty()); + context.puts_done = 1; + { + var i: usize = 0; + while (i < put_thread_count) : (i += 1) { + expect(startGets(&context) == 0); + } + } + expect(context.queue.isEmpty()); + } else { + expect(context.queue.isEmpty()); + + var putters: [put_thread_count]*std.Thread = undefined; + for (putters) |*t| { + t.* = try std.Thread.spawn(&context, startPuts); + } + var getters: [put_thread_count]*std.Thread = undefined; + for (getters) |*t| { + t.* = try std.Thread.spawn(&context, startGets); + } + + for (putters) |t| + t.wait(); + _ = @atomicRmw(u8, &context.puts_done, builtin.AtomicRmwOp.Xchg, 1, AtomicOrder.SeqCst); + for (getters) |t| + t.wait(); + + expect(context.queue.isEmpty()); + } + + if (context.put_sum != context.get_sum) { + std.debug.panic("failure\nput_sum:{} != get_sum:{}", context.put_sum, context.get_sum); + } + + if (context.get_count != puts_per_thread * put_thread_count) { + std.debug.panic( + "failure\nget_count:{} != puts_per_thread:{} * put_thread_count:{}", + context.get_count, + u32(puts_per_thread), + u32(put_thread_count), + ); + } +} + +fn startPuts(ctx: *Context) u8 { + var put_count: usize = puts_per_thread; + var r = std.rand.DefaultPrng.init(0xdeadbeef); + while (put_count != 0) : (put_count -= 1) { + std.time.sleep(1); // let the os scheduler be our fuzz + const x = @bitCast(i32, r.random.scalar(u32)); + const node = ctx.allocator.create(Queue(i32).Node) catch unreachable; + node.* = Queue(i32).Node{ + .prev = undefined, + .next = undefined, + .data = x, + }; + ctx.queue.put(node); + _ = @atomicRmw(isize, &ctx.put_sum, builtin.AtomicRmwOp.Add, x, AtomicOrder.SeqCst); + } + return 0; +} + +fn startGets(ctx: *Context) u8 { + while (true) { + const last = @atomicLoad(u8, &ctx.puts_done, builtin.AtomicOrder.SeqCst) == 1; + + while (ctx.queue.get()) |node| { + std.time.sleep(1); // let the os scheduler be our fuzz + _ = @atomicRmw(isize, &ctx.get_sum, builtin.AtomicRmwOp.Add, node.data, builtin.AtomicOrder.SeqCst); + _ = @atomicRmw(usize, &ctx.get_count, builtin.AtomicRmwOp.Add, 1, builtin.AtomicOrder.SeqCst); + } + + if (last) return 0; + } +} + +test "std.atomic.Queue single-threaded" { + var queue = Queue(i32).init(); + expect(queue.isEmpty()); + + var node_0 = Queue(i32).Node{ + .data = 0, + .next = undefined, + .prev = undefined, + }; + queue.put(&node_0); + expect(!queue.isEmpty()); + + var node_1 = Queue(i32).Node{ + .data = 1, + .next = undefined, + .prev = undefined, + }; + queue.put(&node_1); + expect(!queue.isEmpty()); + + expect(queue.get().?.data == 0); + expect(!queue.isEmpty()); + + var node_2 = Queue(i32).Node{ + .data = 2, + .next = undefined, + .prev = undefined, + }; + queue.put(&node_2); + expect(!queue.isEmpty()); + + var node_3 = Queue(i32).Node{ + .data = 3, + .next = undefined, + .prev = undefined, + }; + queue.put(&node_3); + expect(!queue.isEmpty()); + + expect(queue.get().?.data == 1); + expect(!queue.isEmpty()); + + expect(queue.get().?.data == 2); + expect(!queue.isEmpty()); + + var node_4 = Queue(i32).Node{ + .data = 4, + .next = undefined, + .prev = undefined, + }; + queue.put(&node_4); + expect(!queue.isEmpty()); + + expect(queue.get().?.data == 3); + node_3.next = null; + expect(!queue.isEmpty()); + + expect(queue.get().?.data == 4); + expect(queue.isEmpty()); + + expect(queue.get() == null); + expect(queue.isEmpty()); +} + +test "std.atomic.Queue dump" { + const mem = std.mem; + const SliceOutStream = std.io.SliceOutStream; + var buffer: [1024]u8 = undefined; + var expected_buffer: [1024]u8 = undefined; + var sos = SliceOutStream.init(buffer[0..]); + + var queue = Queue(i32).init(); + + // Test empty stream + sos.reset(); + try queue.dumpToStream(SliceOutStream.Error, &sos.stream); + expect(mem.eql(u8, buffer[0..sos.pos], + \\head: (null) + \\tail: (null) + \\ + )); + + // Test a stream with one element + var node_0 = Queue(i32).Node{ + .data = 1, + .next = undefined, + .prev = undefined, + }; + queue.put(&node_0); + + sos.reset(); + try queue.dumpToStream(SliceOutStream.Error, &sos.stream); + + var expected = try std.fmt.bufPrint(expected_buffer[0..], + \\head: 0x{x}=1 + \\ (null) + \\tail: 0x{x}=1 + \\ (null) + \\ + , @ptrToInt(queue.head), @ptrToInt(queue.tail)); + expect(mem.eql(u8, buffer[0..sos.pos], expected)); + + // Test a stream with two elements + var node_1 = Queue(i32).Node{ + .data = 2, + .next = undefined, + .prev = undefined, + }; + queue.put(&node_1); + + sos.reset(); + try queue.dumpToStream(SliceOutStream.Error, &sos.stream); + + expected = try std.fmt.bufPrint(expected_buffer[0..], + \\head: 0x{x}=1 + \\ 0x{x}=2 + \\ (null) + \\tail: 0x{x}=2 + \\ (null) + \\ + , @ptrToInt(queue.head), @ptrToInt(queue.head.?.next), @ptrToInt(queue.tail)); + expect(mem.eql(u8, buffer[0..sos.pos], expected)); +} diff --git a/lib/std/atomic/stack.zig b/lib/std/atomic/stack.zig new file mode 100644 index 0000000000..dd288adbf1 --- /dev/null +++ b/lib/std/atomic/stack.zig @@ -0,0 +1,179 @@ +const assert = std.debug.assert; +const builtin = @import("builtin"); +const AtomicOrder = builtin.AtomicOrder; +const expect = std.testing.expect; + +/// Many reader, many writer, non-allocating, thread-safe +/// Uses a spinlock to protect push() and pop() +/// When building in single threaded mode, this is a simple linked list. +pub fn Stack(comptime T: type) type { + return struct { + root: ?*Node, + lock: @typeOf(lock_init), + + const lock_init = if (builtin.single_threaded) {} else u8(0); + + pub const Self = @This(); + + pub const Node = struct { + next: ?*Node, + data: T, + }; + + pub fn init() Self { + return Self{ + .root = null, + .lock = lock_init, + }; + } + + /// push operation, but only if you are the first item in the stack. if you did not succeed in + /// being the first item in the stack, returns the other item that was there. + pub fn pushFirst(self: *Self, node: *Node) ?*Node { + node.next = null; + return @cmpxchgStrong(?*Node, &self.root, null, node, AtomicOrder.SeqCst, AtomicOrder.SeqCst); + } + + pub fn push(self: *Self, node: *Node) void { + if (builtin.single_threaded) { + node.next = self.root; + self.root = node; + } else { + while (@atomicRmw(u8, &self.lock, builtin.AtomicRmwOp.Xchg, 1, AtomicOrder.SeqCst) != 0) {} + defer assert(@atomicRmw(u8, &self.lock, builtin.AtomicRmwOp.Xchg, 0, AtomicOrder.SeqCst) == 1); + + node.next = self.root; + self.root = node; + } + } + + pub fn pop(self: *Self) ?*Node { + if (builtin.single_threaded) { + const root = self.root orelse return null; + self.root = root.next; + return root; + } else { + while (@atomicRmw(u8, &self.lock, builtin.AtomicRmwOp.Xchg, 1, AtomicOrder.SeqCst) != 0) {} + defer assert(@atomicRmw(u8, &self.lock, builtin.AtomicRmwOp.Xchg, 0, AtomicOrder.SeqCst) == 1); + + const root = self.root orelse return null; + self.root = root.next; + return root; + } + } + + pub fn isEmpty(self: *Self) bool { + return @atomicLoad(?*Node, &self.root, AtomicOrder.SeqCst) == null; + } + }; +} + +const std = @import("../std.zig"); +const Context = struct { + allocator: *std.mem.Allocator, + stack: *Stack(i32), + put_sum: isize, + get_sum: isize, + get_count: usize, + puts_done: u8, // TODO make this a bool +}; +// TODO add lazy evaluated build options and then put puts_per_thread behind +// some option such as: "AggressiveMultithreadedFuzzTest". In the AppVeyor +// CI we would use a less aggressive setting since at 1 core, while we still +// want this test to pass, we need a smaller value since there is so much thrashing +// we would also use a less aggressive setting when running in valgrind +const puts_per_thread = 500; +const put_thread_count = 3; + +test "std.atomic.stack" { + var plenty_of_memory = try std.heap.direct_allocator.alloc(u8, 300 * 1024); + defer std.heap.direct_allocator.free(plenty_of_memory); + + var fixed_buffer_allocator = std.heap.ThreadSafeFixedBufferAllocator.init(plenty_of_memory); + var a = &fixed_buffer_allocator.allocator; + + var stack = Stack(i32).init(); + var context = Context{ + .allocator = a, + .stack = &stack, + .put_sum = 0, + .get_sum = 0, + .puts_done = 0, + .get_count = 0, + }; + + if (builtin.single_threaded) { + { + var i: usize = 0; + while (i < put_thread_count) : (i += 1) { + expect(startPuts(&context) == 0); + } + } + context.puts_done = 1; + { + var i: usize = 0; + while (i < put_thread_count) : (i += 1) { + expect(startGets(&context) == 0); + } + } + } else { + var putters: [put_thread_count]*std.Thread = undefined; + for (putters) |*t| { + t.* = try std.Thread.spawn(&context, startPuts); + } + var getters: [put_thread_count]*std.Thread = undefined; + for (getters) |*t| { + t.* = try std.Thread.spawn(&context, startGets); + } + + for (putters) |t| + t.wait(); + _ = @atomicRmw(u8, &context.puts_done, builtin.AtomicRmwOp.Xchg, 1, AtomicOrder.SeqCst); + for (getters) |t| + t.wait(); + } + + if (context.put_sum != context.get_sum) { + std.debug.panic("failure\nput_sum:{} != get_sum:{}", context.put_sum, context.get_sum); + } + + if (context.get_count != puts_per_thread * put_thread_count) { + std.debug.panic( + "failure\nget_count:{} != puts_per_thread:{} * put_thread_count:{}", + context.get_count, + u32(puts_per_thread), + u32(put_thread_count), + ); + } +} + +fn startPuts(ctx: *Context) u8 { + var put_count: usize = puts_per_thread; + var r = std.rand.DefaultPrng.init(0xdeadbeef); + while (put_count != 0) : (put_count -= 1) { + std.time.sleep(1); // let the os scheduler be our fuzz + const x = @bitCast(i32, r.random.scalar(u32)); + const node = ctx.allocator.create(Stack(i32).Node) catch unreachable; + node.* = Stack(i32).Node{ + .next = undefined, + .data = x, + }; + ctx.stack.push(node); + _ = @atomicRmw(isize, &ctx.put_sum, builtin.AtomicRmwOp.Add, x, AtomicOrder.SeqCst); + } + return 0; +} + +fn startGets(ctx: *Context) u8 { + while (true) { + const last = @atomicLoad(u8, &ctx.puts_done, builtin.AtomicOrder.SeqCst) == 1; + + while (ctx.stack.pop()) |node| { + std.time.sleep(1); // let the os scheduler be our fuzz + _ = @atomicRmw(isize, &ctx.get_sum, builtin.AtomicRmwOp.Add, node.data, builtin.AtomicOrder.SeqCst); + _ = @atomicRmw(usize, &ctx.get_count, builtin.AtomicRmwOp.Add, 1, builtin.AtomicOrder.SeqCst); + } + + if (last) return 0; + } +} diff --git a/lib/std/base64.zig b/lib/std/base64.zig new file mode 100644 index 0000000000..39ad811eb6 --- /dev/null +++ b/lib/std/base64.zig @@ -0,0 +1,458 @@ +const std = @import("std.zig"); +const assert = std.debug.assert; +const testing = std.testing; +const mem = std.mem; + +pub const standard_alphabet_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; +pub const standard_pad_char = '='; +pub const standard_encoder = Base64Encoder.init(standard_alphabet_chars, standard_pad_char); + +pub const Base64Encoder = struct { + alphabet_chars: []const u8, + pad_char: u8, + + /// a bunch of assertions, then simply pass the data right through. + pub fn init(alphabet_chars: []const u8, pad_char: u8) Base64Encoder { + assert(alphabet_chars.len == 64); + var char_in_alphabet = [_]bool{false} ** 256; + for (alphabet_chars) |c| { + assert(!char_in_alphabet[c]); + assert(c != pad_char); + char_in_alphabet[c] = true; + } + + return Base64Encoder{ + .alphabet_chars = alphabet_chars, + .pad_char = pad_char, + }; + } + + /// ceil(source_len * 4/3) + pub fn calcSize(source_len: usize) usize { + return @divTrunc(source_len + 2, 3) * 4; + } + + /// dest.len must be what you get from ::calcSize. + pub fn encode(encoder: *const Base64Encoder, dest: []u8, source: []const u8) void { + assert(dest.len == Base64Encoder.calcSize(source.len)); + + var i: usize = 0; + var out_index: usize = 0; + while (i + 2 < source.len) : (i += 3) { + dest[out_index] = encoder.alphabet_chars[(source[i] >> 2) & 0x3f]; + out_index += 1; + + dest[out_index] = encoder.alphabet_chars[((source[i] & 0x3) << 4) | ((source[i + 1] & 0xf0) >> 4)]; + out_index += 1; + + dest[out_index] = encoder.alphabet_chars[((source[i + 1] & 0xf) << 2) | ((source[i + 2] & 0xc0) >> 6)]; + out_index += 1; + + dest[out_index] = encoder.alphabet_chars[source[i + 2] & 0x3f]; + out_index += 1; + } + + if (i < source.len) { + dest[out_index] = encoder.alphabet_chars[(source[i] >> 2) & 0x3f]; + out_index += 1; + + if (i + 1 == source.len) { + dest[out_index] = encoder.alphabet_chars[(source[i] & 0x3) << 4]; + out_index += 1; + + dest[out_index] = encoder.pad_char; + out_index += 1; + } else { + dest[out_index] = encoder.alphabet_chars[((source[i] & 0x3) << 4) | ((source[i + 1] & 0xf0) >> 4)]; + out_index += 1; + + dest[out_index] = encoder.alphabet_chars[(source[i + 1] & 0xf) << 2]; + out_index += 1; + } + + dest[out_index] = encoder.pad_char; + out_index += 1; + } + } +}; + +pub const standard_decoder = Base64Decoder.init(standard_alphabet_chars, standard_pad_char); + +pub const Base64Decoder = struct { + /// e.g. 'A' => 0. + /// undefined for any value not in the 64 alphabet chars. + char_to_index: [256]u8, + + /// true only for the 64 chars in the alphabet, not the pad char. + char_in_alphabet: [256]bool, + pad_char: u8, + + pub fn init(alphabet_chars: []const u8, pad_char: u8) Base64Decoder { + assert(alphabet_chars.len == 64); + + var result = Base64Decoder{ + .char_to_index = undefined, + .char_in_alphabet = [_]bool{false} ** 256, + .pad_char = pad_char, + }; + + for (alphabet_chars) |c, i| { + assert(!result.char_in_alphabet[c]); + assert(c != pad_char); + + result.char_to_index[c] = @intCast(u8, i); + result.char_in_alphabet[c] = true; + } + + return result; + } + + /// If the encoded buffer is detected to be invalid, returns error.InvalidPadding. + pub fn calcSize(decoder: *const Base64Decoder, source: []const u8) !usize { + if (source.len % 4 != 0) return error.InvalidPadding; + return calcDecodedSizeExactUnsafe(source, decoder.pad_char); + } + + /// dest.len must be what you get from ::calcSize. + /// invalid characters result in error.InvalidCharacter. + /// invalid padding results in error.InvalidPadding. + pub fn decode(decoder: *const Base64Decoder, dest: []u8, source: []const u8) !void { + assert(dest.len == (decoder.calcSize(source) catch unreachable)); + assert(source.len % 4 == 0); + + var src_cursor: usize = 0; + var dest_cursor: usize = 0; + + while (src_cursor < source.len) : (src_cursor += 4) { + if (!decoder.char_in_alphabet[source[src_cursor + 0]]) return error.InvalidCharacter; + if (!decoder.char_in_alphabet[source[src_cursor + 1]]) return error.InvalidCharacter; + if (src_cursor < source.len - 4 or source[src_cursor + 3] != decoder.pad_char) { + // common case + if (!decoder.char_in_alphabet[source[src_cursor + 2]]) return error.InvalidCharacter; + if (!decoder.char_in_alphabet[source[src_cursor + 3]]) return error.InvalidCharacter; + dest[dest_cursor + 0] = decoder.char_to_index[source[src_cursor + 0]] << 2 | decoder.char_to_index[source[src_cursor + 1]] >> 4; + dest[dest_cursor + 1] = decoder.char_to_index[source[src_cursor + 1]] << 4 | decoder.char_to_index[source[src_cursor + 2]] >> 2; + dest[dest_cursor + 2] = decoder.char_to_index[source[src_cursor + 2]] << 6 | decoder.char_to_index[source[src_cursor + 3]]; + dest_cursor += 3; + } else if (source[src_cursor + 2] != decoder.pad_char) { + // one pad char + if (!decoder.char_in_alphabet[source[src_cursor + 2]]) return error.InvalidCharacter; + dest[dest_cursor + 0] = decoder.char_to_index[source[src_cursor + 0]] << 2 | decoder.char_to_index[source[src_cursor + 1]] >> 4; + dest[dest_cursor + 1] = decoder.char_to_index[source[src_cursor + 1]] << 4 | decoder.char_to_index[source[src_cursor + 2]] >> 2; + if (decoder.char_to_index[source[src_cursor + 2]] << 6 != 0) return error.InvalidPadding; + dest_cursor += 2; + } else { + // two pad chars + dest[dest_cursor + 0] = decoder.char_to_index[source[src_cursor + 0]] << 2 | decoder.char_to_index[source[src_cursor + 1]] >> 4; + if (decoder.char_to_index[source[src_cursor + 1]] << 4 != 0) return error.InvalidPadding; + dest_cursor += 1; + } + } + + assert(src_cursor == source.len); + assert(dest_cursor == dest.len); + } +}; + +pub const Base64DecoderWithIgnore = struct { + decoder: Base64Decoder, + char_is_ignored: [256]bool, + pub fn init(alphabet_chars: []const u8, pad_char: u8, ignore_chars: []const u8) Base64DecoderWithIgnore { + var result = Base64DecoderWithIgnore{ + .decoder = Base64Decoder.init(alphabet_chars, pad_char), + .char_is_ignored = [_]bool{false} ** 256, + }; + + for (ignore_chars) |c| { + assert(!result.decoder.char_in_alphabet[c]); + assert(!result.char_is_ignored[c]); + assert(result.decoder.pad_char != c); + result.char_is_ignored[c] = true; + } + + return result; + } + + /// If no characters end up being ignored or padding, this will be the exact decoded size. + pub fn calcSizeUpperBound(encoded_len: usize) usize { + return @divTrunc(encoded_len, 4) * 3; + } + + /// Invalid characters that are not ignored result in error.InvalidCharacter. + /// Invalid padding results in error.InvalidPadding. + /// Decoding more data than can fit in dest results in error.OutputTooSmall. See also ::calcSizeUpperBound. + /// Returns the number of bytes written to dest. + pub fn decode(decoder_with_ignore: *const Base64DecoderWithIgnore, dest: []u8, source: []const u8) !usize { + const decoder = &decoder_with_ignore.decoder; + + var src_cursor: usize = 0; + var dest_cursor: usize = 0; + + while (true) { + // get the next 4 chars, if available + var next_4_chars: [4]u8 = undefined; + var available_chars: usize = 0; + var pad_char_count: usize = 0; + while (available_chars < 4 and src_cursor < source.len) { + var c = source[src_cursor]; + src_cursor += 1; + + if (decoder.char_in_alphabet[c]) { + // normal char + next_4_chars[available_chars] = c; + available_chars += 1; + } else if (decoder_with_ignore.char_is_ignored[c]) { + // we're told to skip this one + continue; + } else if (c == decoder.pad_char) { + // the padding has begun. count the pad chars. + pad_char_count += 1; + while (src_cursor < source.len) { + c = source[src_cursor]; + src_cursor += 1; + if (c == decoder.pad_char) { + pad_char_count += 1; + if (pad_char_count > 2) return error.InvalidCharacter; + } else if (decoder_with_ignore.char_is_ignored[c]) { + // we can even ignore chars during the padding + continue; + } else + return error.InvalidCharacter; + } + break; + } else + return error.InvalidCharacter; + } + + switch (available_chars) { + 4 => { + // common case + if (dest_cursor + 3 > dest.len) return error.OutputTooSmall; + assert(pad_char_count == 0); + dest[dest_cursor + 0] = decoder.char_to_index[next_4_chars[0]] << 2 | decoder.char_to_index[next_4_chars[1]] >> 4; + dest[dest_cursor + 1] = decoder.char_to_index[next_4_chars[1]] << 4 | decoder.char_to_index[next_4_chars[2]] >> 2; + dest[dest_cursor + 2] = decoder.char_to_index[next_4_chars[2]] << 6 | decoder.char_to_index[next_4_chars[3]]; + dest_cursor += 3; + continue; + }, + 3 => { + if (dest_cursor + 2 > dest.len) return error.OutputTooSmall; + if (pad_char_count != 1) return error.InvalidPadding; + dest[dest_cursor + 0] = decoder.char_to_index[next_4_chars[0]] << 2 | decoder.char_to_index[next_4_chars[1]] >> 4; + dest[dest_cursor + 1] = decoder.char_to_index[next_4_chars[1]] << 4 | decoder.char_to_index[next_4_chars[2]] >> 2; + if (decoder.char_to_index[next_4_chars[2]] << 6 != 0) return error.InvalidPadding; + dest_cursor += 2; + break; + }, + 2 => { + if (dest_cursor + 1 > dest.len) return error.OutputTooSmall; + if (pad_char_count != 2) return error.InvalidPadding; + dest[dest_cursor + 0] = decoder.char_to_index[next_4_chars[0]] << 2 | decoder.char_to_index[next_4_chars[1]] >> 4; + if (decoder.char_to_index[next_4_chars[1]] << 4 != 0) return error.InvalidPadding; + dest_cursor += 1; + break; + }, + 1 => { + return error.InvalidPadding; + }, + 0 => { + if (pad_char_count != 0) return error.InvalidPadding; + break; + }, + else => unreachable, + } + } + + assert(src_cursor == source.len); + + return dest_cursor; + } +}; + +pub const standard_decoder_unsafe = Base64DecoderUnsafe.init(standard_alphabet_chars, standard_pad_char); + +pub const Base64DecoderUnsafe = struct { + /// e.g. 'A' => 0. + /// undefined for any value not in the 64 alphabet chars. + char_to_index: [256]u8, + pad_char: u8, + + pub fn init(alphabet_chars: []const u8, pad_char: u8) Base64DecoderUnsafe { + assert(alphabet_chars.len == 64); + var result = Base64DecoderUnsafe{ + .char_to_index = undefined, + .pad_char = pad_char, + }; + for (alphabet_chars) |c, i| { + assert(c != pad_char); + result.char_to_index[c] = @intCast(u8, i); + } + return result; + } + + /// The source buffer must be valid. + pub fn calcSize(decoder: *const Base64DecoderUnsafe, source: []const u8) usize { + return calcDecodedSizeExactUnsafe(source, decoder.pad_char); + } + + /// dest.len must be what you get from ::calcDecodedSizeExactUnsafe. + /// invalid characters or padding will result in undefined values. + pub fn decode(decoder: *const Base64DecoderUnsafe, dest: []u8, source: []const u8) void { + assert(dest.len == decoder.calcSize(source)); + + var src_index: usize = 0; + var dest_index: usize = 0; + var in_buf_len: usize = source.len; + + while (in_buf_len > 0 and source[in_buf_len - 1] == decoder.pad_char) { + in_buf_len -= 1; + } + + while (in_buf_len > 4) { + dest[dest_index] = decoder.char_to_index[source[src_index + 0]] << 2 | decoder.char_to_index[source[src_index + 1]] >> 4; + dest_index += 1; + + dest[dest_index] = decoder.char_to_index[source[src_index + 1]] << 4 | decoder.char_to_index[source[src_index + 2]] >> 2; + dest_index += 1; + + dest[dest_index] = decoder.char_to_index[source[src_index + 2]] << 6 | decoder.char_to_index[source[src_index + 3]]; + dest_index += 1; + + src_index += 4; + in_buf_len -= 4; + } + + if (in_buf_len > 1) { + dest[dest_index] = decoder.char_to_index[source[src_index + 0]] << 2 | decoder.char_to_index[source[src_index + 1]] >> 4; + dest_index += 1; + } + if (in_buf_len > 2) { + dest[dest_index] = decoder.char_to_index[source[src_index + 1]] << 4 | decoder.char_to_index[source[src_index + 2]] >> 2; + dest_index += 1; + } + if (in_buf_len > 3) { + dest[dest_index] = decoder.char_to_index[source[src_index + 2]] << 6 | decoder.char_to_index[source[src_index + 3]]; + dest_index += 1; + } + } +}; + +fn calcDecodedSizeExactUnsafe(source: []const u8, pad_char: u8) usize { + if (source.len == 0) return 0; + var result = @divExact(source.len, 4) * 3; + if (source[source.len - 1] == pad_char) { + result -= 1; + if (source[source.len - 2] == pad_char) { + result -= 1; + } + } + return result; +} + +test "base64" { + @setEvalBranchQuota(8000); + testBase64() catch unreachable; + comptime (testBase64() catch unreachable); +} + +fn testBase64() !void { + try testAllApis("", ""); + try testAllApis("f", "Zg=="); + try testAllApis("fo", "Zm8="); + try testAllApis("foo", "Zm9v"); + try testAllApis("foob", "Zm9vYg=="); + try testAllApis("fooba", "Zm9vYmE="); + try testAllApis("foobar", "Zm9vYmFy"); + + try testDecodeIgnoreSpace("", " "); + try testDecodeIgnoreSpace("f", "Z g= ="); + try testDecodeIgnoreSpace("fo", " Zm8="); + try testDecodeIgnoreSpace("foo", "Zm9v "); + try testDecodeIgnoreSpace("foob", "Zm9vYg = = "); + try testDecodeIgnoreSpace("fooba", "Zm9v YmE="); + try testDecodeIgnoreSpace("foobar", " Z m 9 v Y m F y "); + + // test getting some api errors + try testError("A", error.InvalidPadding); + try testError("AA", error.InvalidPadding); + try testError("AAA", error.InvalidPadding); + try testError("A..A", error.InvalidCharacter); + try testError("AA=A", error.InvalidCharacter); + try testError("AA/=", error.InvalidPadding); + try testError("A/==", error.InvalidPadding); + try testError("A===", error.InvalidCharacter); + try testError("====", error.InvalidCharacter); + + try testOutputTooSmallError("AA=="); + try testOutputTooSmallError("AAA="); + try testOutputTooSmallError("AAAA"); + try testOutputTooSmallError("AAAAAA=="); +} + +fn testAllApis(expected_decoded: []const u8, expected_encoded: []const u8) !void { + // Base64Encoder + { + var buffer: [0x100]u8 = undefined; + var encoded = buffer[0..Base64Encoder.calcSize(expected_decoded.len)]; + standard_encoder.encode(encoded, expected_decoded); + testing.expectEqualSlices(u8, expected_encoded, encoded); + } + + // Base64Decoder + { + var buffer: [0x100]u8 = undefined; + var decoded = buffer[0..try standard_decoder.calcSize(expected_encoded)]; + try standard_decoder.decode(decoded, expected_encoded); + testing.expectEqualSlices(u8, expected_decoded, decoded); + } + + // Base64DecoderWithIgnore + { + const standard_decoder_ignore_nothing = Base64DecoderWithIgnore.init(standard_alphabet_chars, standard_pad_char, ""); + var buffer: [0x100]u8 = undefined; + var decoded = buffer[0..Base64DecoderWithIgnore.calcSizeUpperBound(expected_encoded.len)]; + var written = try standard_decoder_ignore_nothing.decode(decoded, expected_encoded); + testing.expect(written <= decoded.len); + testing.expectEqualSlices(u8, expected_decoded, decoded[0..written]); + } + + // Base64DecoderUnsafe + { + var buffer: [0x100]u8 = undefined; + var decoded = buffer[0..standard_decoder_unsafe.calcSize(expected_encoded)]; + standard_decoder_unsafe.decode(decoded, expected_encoded); + testing.expectEqualSlices(u8, expected_decoded, decoded); + } +} + +fn testDecodeIgnoreSpace(expected_decoded: []const u8, encoded: []const u8) !void { + const standard_decoder_ignore_space = Base64DecoderWithIgnore.init(standard_alphabet_chars, standard_pad_char, " "); + var buffer: [0x100]u8 = undefined; + var decoded = buffer[0..Base64DecoderWithIgnore.calcSizeUpperBound(encoded.len)]; + var written = try standard_decoder_ignore_space.decode(decoded, encoded); + testing.expectEqualSlices(u8, expected_decoded, decoded[0..written]); +} + +fn testError(encoded: []const u8, expected_err: anyerror) !void { + const standard_decoder_ignore_space = Base64DecoderWithIgnore.init(standard_alphabet_chars, standard_pad_char, " "); + var buffer: [0x100]u8 = undefined; + if (standard_decoder.calcSize(encoded)) |decoded_size| { + var decoded = buffer[0..decoded_size]; + if (standard_decoder.decode(decoded, encoded)) |_| { + return error.ExpectedError; + } else |err| if (err != expected_err) return err; + } else |err| if (err != expected_err) return err; + + if (standard_decoder_ignore_space.decode(buffer[0..], encoded)) |_| { + return error.ExpectedError; + } else |err| if (err != expected_err) return err; +} + +fn testOutputTooSmallError(encoded: []const u8) !void { + const standard_decoder_ignore_space = Base64DecoderWithIgnore.init(standard_alphabet_chars, standard_pad_char, " "); + var buffer: [0x100]u8 = undefined; + var decoded = buffer[0 .. calcDecodedSizeExactUnsafe(encoded, standard_pad_char) - 1]; + if (standard_decoder_ignore_space.decode(decoded, encoded)) |_| { + return error.ExpectedError; + } else |err| if (err != error.OutputTooSmall) return err; +} diff --git a/lib/std/bloom_filter.zig b/lib/std/bloom_filter.zig new file mode 100644 index 0000000000..c36c5e9dfa --- /dev/null +++ b/lib/std/bloom_filter.zig @@ -0,0 +1,257 @@ +const builtin = @import("builtin"); +const std = @import("std.zig"); +const math = std.math; +const debug = std.debug; +const assert = std.debug.assert; +const testing = std.testing; + +/// There is a trade off of how quickly to fill a bloom filter; +/// the number of items is: +/// n_items / K * ln(2) +/// the rate of false positives is: +/// (1-e^(-K*N/n_items))^K +/// where N is the number of items +pub fn BloomFilter( + /// Size of bloom filter in cells, must be a power of two. + comptime n_items: usize, + /// Number of cells to set per item + comptime K: usize, + /// Cell type, should be: + /// - `bool` for a standard bloom filter + /// - an unsigned integer type for a counting bloom filter + comptime Cell: type, + /// endianess of the Cell + comptime endian: builtin.Endian, + /// Hash function to use + comptime hash: fn (out: []u8, Ki: usize, in: []const u8) void, +) type { + assert(n_items > 0); + assert(math.isPowerOfTwo(n_items)); + assert(K > 0); + const cellEmpty = if (Cell == bool) false else Cell(0); + const cellMax = if (Cell == bool) true else math.maxInt(Cell); + const n_bytes = (n_items * comptime std.meta.bitCount(Cell)) / 8; + assert(n_bytes > 0); + const Io = std.packed_int_array.PackedIntIo(Cell, endian); + + return struct { + const Self = @This(); + pub const items = n_items; + pub const Index = math.IntFittingRange(0, n_items - 1); + + data: [n_bytes]u8 = [_]u8{0} ** n_bytes, + + pub fn reset(self: *Self) void { + std.mem.set(u8, self.data[0..], 0); + } + + pub fn @"union"(x: Self, y: Self) Self { + var r = Self{ .data = undefined }; + inline for (x.data) |v, i| { + r.data[i] = v | y.data[i]; + } + return r; + } + + pub fn intersection(x: Self, y: Self) Self { + var r = Self{ .data = undefined }; + inline for (x.data) |v, i| { + r.data[i] = v & y.data[i]; + } + return r; + } + + pub fn getCell(self: Self, cell: Index) Cell { + return Io.get(self.data, cell, 0); + } + + pub fn incrementCell(self: *Self, cell: Index) void { + if (Cell == bool or Cell == u1) { + // skip the 'get' operation + Io.set(&self.data, cell, 0, cellMax); + } else { + const old = Io.get(self.data, cell, 0); + if (old != cellMax) { + Io.set(&self.data, cell, 0, old + 1); + } + } + } + + pub fn clearCell(self: *Self, cell: Index) void { + Io.set(&self.data, cell, 0, cellEmpty); + } + + pub fn add(self: *Self, item: []const u8) void { + comptime var i = 0; + inline while (i < K) : (i += 1) { + var K_th_bit: packed struct { + x: Index, + } = undefined; + hash(std.mem.asBytes(&K_th_bit), i, item); + incrementCell(self, K_th_bit.x); + } + } + + pub fn contains(self: Self, item: []const u8) bool { + comptime var i = 0; + inline while (i < K) : (i += 1) { + var K_th_bit: packed struct { + x: Index, + } = undefined; + hash(std.mem.asBytes(&K_th_bit), i, item); + if (getCell(self, K_th_bit.x) == cellEmpty) + return false; + } + return true; + } + + pub fn resize(self: Self, comptime newsize: usize) BloomFilter(newsize, K, Cell, endian, hash) { + var r: BloomFilter(newsize, K, Cell, endian, hash) = undefined; + if (newsize < n_items) { + std.mem.copy(u8, r.data[0..], self.data[0..r.data.len]); + var copied: usize = r.data.len; + while (copied < self.data.len) : (copied += r.data.len) { + for (self.data[copied .. copied + r.data.len]) |s, i| { + r.data[i] |= s; + } + } + } else if (newsize == n_items) { + r = self; + } else if (newsize > n_items) { + var copied: usize = 0; + while (copied < r.data.len) : (copied += self.data.len) { + std.mem.copy(u8, r.data[copied .. copied + self.data.len], self.data); + } + } + return r; + } + + /// Returns number of non-zero cells + pub fn popCount(self: Self) Index { + var n: Index = 0; + if (Cell == bool or Cell == u1) { + for (self.data) |b, i| { + n += @popCount(u8, b); + } + } else { + var i: usize = 0; + while (i < n_items) : (i += 1) { + const cell = self.getCell(@intCast(Index, i)); + n += if (if (Cell == bool) cell else cell > 0) Index(1) else Index(0); + } + } + return n; + } + + pub fn estimateItems(self: Self) f64 { + const m = comptime @intToFloat(f64, n_items); + const k = comptime @intToFloat(f64, K); + const X = @intToFloat(f64, self.popCount()); + return (comptime (-m / k)) * math.log1p(X * comptime (-1 / m)); + } + }; +} + +fn hashFunc(out: []u8, Ki: usize, in: []const u8) void { + var st = std.crypto.gimli.Hash.init(); + st.update(std.mem.asBytes(&Ki)); + st.update(in); + st.final(out); +} + +test "std.BloomFilter" { + inline for ([_]type{ bool, u1, u2, u3, u4 }) |Cell| { + const emptyCell = if (Cell == bool) false else Cell(0); + const BF = BloomFilter(128 * 8, 8, Cell, builtin.endian, hashFunc); + var bf = BF{}; + var i: usize = undefined; + // confirm that it is initialised to the empty filter + i = 0; + while (i < BF.items) : (i += 1) { + testing.expectEqual(emptyCell, bf.getCell(@intCast(BF.Index, i))); + } + testing.expectEqual(BF.Index(0), bf.popCount()); + testing.expectEqual(f64(0), bf.estimateItems()); + // fill in a few items + bf.incrementCell(42); + bf.incrementCell(255); + bf.incrementCell(256); + bf.incrementCell(257); + // check that they were set + testing.expectEqual(true, bf.getCell(42) != emptyCell); + testing.expectEqual(true, bf.getCell(255) != emptyCell); + testing.expectEqual(true, bf.getCell(256) != emptyCell); + testing.expectEqual(true, bf.getCell(257) != emptyCell); + // clear just one of them; make sure the rest are still set + bf.clearCell(256); + testing.expectEqual(true, bf.getCell(42) != emptyCell); + testing.expectEqual(true, bf.getCell(255) != emptyCell); + testing.expectEqual(false, bf.getCell(256) != emptyCell); + testing.expectEqual(true, bf.getCell(257) != emptyCell); + // reset any of the ones we've set and confirm we're back to the empty filter + bf.clearCell(42); + bf.clearCell(255); + bf.clearCell(257); + i = 0; + while (i < BF.items) : (i += 1) { + testing.expectEqual(emptyCell, bf.getCell(@intCast(BF.Index, i))); + } + testing.expectEqual(BF.Index(0), bf.popCount()); + testing.expectEqual(f64(0), bf.estimateItems()); + + // Lets add a string + bf.add("foo"); + testing.expectEqual(true, bf.contains("foo")); + { + // try adding same string again. make sure popcount is the same + const old_popcount = bf.popCount(); + testing.expect(old_popcount > 0); + bf.add("foo"); + testing.expectEqual(true, bf.contains("foo")); + testing.expectEqual(old_popcount, bf.popCount()); + } + + // Get back to empty filter via .reset + bf.reset(); + // Double check that .reset worked + i = 0; + while (i < BF.items) : (i += 1) { + testing.expectEqual(emptyCell, bf.getCell(@intCast(BF.Index, i))); + } + testing.expectEqual(BF.Index(0), bf.popCount()); + testing.expectEqual(f64(0), bf.estimateItems()); + + comptime var teststrings = [_][]const u8{ + "foo", + "bar", + "a longer string", + "some more", + "the quick brown fox", + "unique string", + }; + inline for (teststrings) |str| { + bf.add(str); + } + inline for (teststrings) |str| { + testing.expectEqual(true, bf.contains(str)); + } + + { // estimate should be close for low packing + const est = bf.estimateItems(); + testing.expect(est > @intToFloat(f64, teststrings.len) - 1); + testing.expect(est < @intToFloat(f64, teststrings.len) + 1); + } + + const larger_bf = bf.resize(4096); + inline for (teststrings) |str| { + testing.expectEqual(true, larger_bf.contains(str)); + } + testing.expectEqual(u12(bf.popCount()) * (4096 / 1024), larger_bf.popCount()); + + const smaller_bf = bf.resize(64); + inline for (teststrings) |str| { + testing.expectEqual(true, smaller_bf.contains(str)); + } + testing.expect(bf.popCount() <= u10(smaller_bf.popCount()) * (1024 / 64)); + } +} diff --git a/lib/std/buf_map.zig b/lib/std/buf_map.zig new file mode 100644 index 0000000000..d7aa314157 --- /dev/null +++ b/lib/std/buf_map.zig @@ -0,0 +1,103 @@ +const std = @import("std.zig"); +const StringHashMap = std.StringHashMap; +const mem = std.mem; +const Allocator = mem.Allocator; +const testing = std.testing; + +/// BufMap copies keys and values before they go into the map, and +/// frees them when they get removed. +pub const BufMap = struct { + hash_map: BufMapHashMap, + + const BufMapHashMap = StringHashMap([]const u8); + + pub fn init(allocator: *Allocator) BufMap { + var self = BufMap{ .hash_map = BufMapHashMap.init(allocator) }; + return self; + } + + pub fn deinit(self: *BufMap) void { + var it = self.hash_map.iterator(); + while (true) { + const entry = it.next() orelse break; + self.free(entry.key); + self.free(entry.value); + } + + self.hash_map.deinit(); + } + + /// Same as `set` but the key and value become owned by the BufMap rather + /// than being copied. + /// If `setMove` fails, the ownership of key and value does not transfer. + pub fn setMove(self: *BufMap, key: []u8, value: []u8) !void { + const get_or_put = try self.hash_map.getOrPut(key); + if (get_or_put.found_existing) { + self.free(get_or_put.kv.key); + get_or_put.kv.key = key; + } + get_or_put.kv.value = value; + } + + /// `key` and `value` are copied into the BufMap. + pub fn set(self: *BufMap, key: []const u8, value: []const u8) !void { + const value_copy = try self.copy(value); + errdefer self.free(value_copy); + // Avoid copying key if it already exists + const get_or_put = try self.hash_map.getOrPut(key); + if (!get_or_put.found_existing) { + get_or_put.kv.key = self.copy(key) catch |err| { + _ = self.hash_map.remove(key); + return err; + }; + } + get_or_put.kv.value = value_copy; + } + + pub fn get(self: BufMap, key: []const u8) ?[]const u8 { + const entry = self.hash_map.get(key) orelse return null; + return entry.value; + } + + pub fn delete(self: *BufMap, key: []const u8) void { + const entry = self.hash_map.remove(key) orelse return; + self.free(entry.key); + self.free(entry.value); + } + + pub fn count(self: BufMap) usize { + return self.hash_map.count(); + } + + pub fn iterator(self: *const BufMap) BufMapHashMap.Iterator { + return self.hash_map.iterator(); + } + + fn free(self: BufMap, value: []const u8) void { + self.hash_map.allocator.free(value); + } + + fn copy(self: BufMap, value: []const u8) ![]u8 { + return mem.dupe(self.hash_map.allocator, u8, value); + } +}; + +test "BufMap" { + var bufmap = BufMap.init(std.heap.direct_allocator); + defer bufmap.deinit(); + + try bufmap.set("x", "1"); + testing.expect(mem.eql(u8, bufmap.get("x").?, "1")); + testing.expect(1 == bufmap.count()); + + try bufmap.set("x", "2"); + testing.expect(mem.eql(u8, bufmap.get("x").?, "2")); + testing.expect(1 == bufmap.count()); + + try bufmap.set("x", "3"); + testing.expect(mem.eql(u8, bufmap.get("x").?, "3")); + testing.expect(1 == bufmap.count()); + + bufmap.delete("x"); + testing.expect(0 == bufmap.count()); +} diff --git a/lib/std/buf_set.zig b/lib/std/buf_set.zig new file mode 100644 index 0000000000..1a321e89c9 --- /dev/null +++ b/lib/std/buf_set.zig @@ -0,0 +1,79 @@ +const std = @import("std.zig"); +const StringHashMap = std.StringHashMap; +const mem = @import("mem.zig"); +const Allocator = mem.Allocator; +const testing = std.testing; + +pub const BufSet = struct { + hash_map: BufSetHashMap, + + const BufSetHashMap = StringHashMap(void); + + pub fn init(a: *Allocator) BufSet { + var self = BufSet{ .hash_map = BufSetHashMap.init(a) }; + return self; + } + + pub fn deinit(self: *const BufSet) void { + var it = self.hash_map.iterator(); + while (true) { + const entry = it.next() orelse break; + self.free(entry.key); + } + + self.hash_map.deinit(); + } + + pub fn put(self: *BufSet, key: []const u8) !void { + if (self.hash_map.get(key) == null) { + const key_copy = try self.copy(key); + errdefer self.free(key_copy); + _ = try self.hash_map.put(key_copy, {}); + } + } + + pub fn exists(self: BufSet, key: []const u8) bool { + return self.hash_map.get(key) != null; + } + + pub fn delete(self: *BufSet, key: []const u8) void { + const entry = self.hash_map.remove(key) orelse return; + self.free(entry.key); + } + + pub fn count(self: *const BufSet) usize { + return self.hash_map.count(); + } + + pub fn iterator(self: *const BufSet) BufSetHashMap.Iterator { + return self.hash_map.iterator(); + } + + pub fn allocator(self: *const BufSet) *Allocator { + return self.hash_map.allocator; + } + + fn free(self: *const BufSet, value: []const u8) void { + self.hash_map.allocator.free(value); + } + + fn copy(self: *const BufSet, value: []const u8) ![]const u8 { + const result = try self.hash_map.allocator.alloc(u8, value.len); + mem.copy(u8, result, value); + return result; + } +}; + +test "BufSet" { + var bufset = BufSet.init(std.heap.direct_allocator); + defer bufset.deinit(); + + try bufset.put("x"); + testing.expect(bufset.count() == 1); + bufset.delete("x"); + testing.expect(bufset.count() == 0); + + try bufset.put("x"); + try bufset.put("y"); + try bufset.put("z"); +} diff --git a/lib/std/buffer.zig b/lib/std/buffer.zig new file mode 100644 index 0000000000..bc6aa254da --- /dev/null +++ b/lib/std/buffer.zig @@ -0,0 +1,158 @@ +const std = @import("std.zig"); +const debug = std.debug; +const mem = std.mem; +const Allocator = mem.Allocator; +const assert = debug.assert; +const testing = std.testing; +const ArrayList = std.ArrayList; + +/// A buffer that allocates memory and maintains a null byte at the end. +pub const Buffer = struct { + list: ArrayList(u8), + + /// Must deinitialize with deinit. + pub fn init(allocator: *Allocator, m: []const u8) !Buffer { + var self = try initSize(allocator, m.len); + mem.copy(u8, self.list.items, m); + return self; + } + + /// Must deinitialize with deinit. + pub fn initSize(allocator: *Allocator, size: usize) !Buffer { + var self = initNull(allocator); + try self.resize(size); + return self; + } + + /// Must deinitialize with deinit. + /// None of the other operations are valid until you do one of these: + /// * ::replaceContents + /// * ::resize + pub fn initNull(allocator: *Allocator) Buffer { + return Buffer{ .list = ArrayList(u8).init(allocator) }; + } + + /// Must deinitialize with deinit. + pub fn initFromBuffer(buffer: Buffer) !Buffer { + return Buffer.init(buffer.list.allocator, buffer.toSliceConst()); + } + + /// Buffer takes ownership of the passed in slice. The slice must have been + /// allocated with `allocator`. + /// Must deinitialize with deinit. + pub fn fromOwnedSlice(allocator: *Allocator, slice: []u8) !Buffer { + var self = Buffer{ .list = ArrayList(u8).fromOwnedSlice(allocator, slice) }; + try self.list.append(0); + return self; + } + + /// The caller owns the returned memory. The Buffer becomes null and + /// is safe to `deinit`. + pub fn toOwnedSlice(self: *Buffer) []u8 { + const allocator = self.list.allocator; + const result = allocator.shrink(self.list.items, self.len()); + self.* = initNull(allocator); + return result; + } + + pub fn allocPrint(allocator: *Allocator, comptime format: []const u8, args: ...) !Buffer { + const countSize = struct { + fn countSize(size: *usize, bytes: []const u8) (error{}!void) { + size.* += bytes.len; + } + }.countSize; + var size: usize = 0; + std.fmt.format(&size, error{}, countSize, format, args) catch |err| switch (err) {}; + var self = try Buffer.initSize(allocator, size); + assert((std.fmt.bufPrint(self.list.items, format, args) catch unreachable).len == size); + return self; + } + + pub fn deinit(self: *Buffer) void { + self.list.deinit(); + } + + pub fn toSlice(self: *const Buffer) []u8 { + return self.list.toSlice()[0..self.len()]; + } + + pub fn toSliceConst(self: *const Buffer) []const u8 { + return self.list.toSliceConst()[0..self.len()]; + } + + pub fn shrink(self: *Buffer, new_len: usize) void { + assert(new_len <= self.len()); + self.list.shrink(new_len + 1); + self.list.items[self.len()] = 0; + } + + pub fn resize(self: *Buffer, new_len: usize) !void { + try self.list.resize(new_len + 1); + self.list.items[self.len()] = 0; + } + + pub fn isNull(self: *const Buffer) bool { + return self.list.len == 0; + } + + pub fn len(self: *const Buffer) usize { + return self.list.len - 1; + } + + pub fn append(self: *Buffer, m: []const u8) !void { + const old_len = self.len(); + try self.resize(old_len + m.len); + mem.copy(u8, self.list.toSlice()[old_len..], m); + } + + pub fn appendByte(self: *Buffer, byte: u8) !void { + const old_len = self.len(); + try self.resize(old_len + 1); + self.list.toSlice()[old_len] = byte; + } + + pub fn eql(self: *const Buffer, m: []const u8) bool { + return mem.eql(u8, self.toSliceConst(), m); + } + + pub fn startsWith(self: *const Buffer, m: []const u8) bool { + if (self.len() < m.len) return false; + return mem.eql(u8, self.list.items[0..m.len], m); + } + + pub fn endsWith(self: *const Buffer, m: []const u8) bool { + const l = self.len(); + if (l < m.len) return false; + const start = l - m.len; + return mem.eql(u8, self.list.items[start..l], m); + } + + pub fn replaceContents(self: *Buffer, m: []const u8) !void { + try self.resize(m.len); + mem.copy(u8, self.list.toSlice(), m); + } + + /// For passing to C functions. + pub fn ptr(self: *const Buffer) [*]u8 { + return self.list.items.ptr; + } +}; + +test "simple Buffer" { + var buf = try Buffer.init(debug.global_allocator, ""); + testing.expect(buf.len() == 0); + try buf.append("hello"); + try buf.append(" "); + try buf.append("world"); + testing.expect(buf.eql("hello world")); + testing.expect(mem.eql(u8, mem.toSliceConst(u8, buf.toSliceConst().ptr), buf.toSliceConst())); + + var buf2 = try Buffer.initFromBuffer(buf); + testing.expect(buf.eql(buf2.toSliceConst())); + + testing.expect(buf.startsWith("hell")); + testing.expect(buf.endsWith("orld")); + + try buf2.resize(4); + testing.expect(buf.startsWith(buf2.toSlice())); +} diff --git a/lib/std/build.zig b/lib/std/build.zig new file mode 100644 index 0000000000..7f9a77351d --- /dev/null +++ b/lib/std/build.zig @@ -0,0 +1,2743 @@ +const std = @import("std.zig"); +const builtin = @import("builtin"); +const io = std.io; +const fs = std.fs; +const mem = std.mem; +const debug = std.debug; +const panic = std.debug.panic; +const assert = debug.assert; +const warn = std.debug.warn; +const ArrayList = std.ArrayList; +const StringHashMap = std.StringHashMap; +const Allocator = mem.Allocator; +const process = std.process; +const BufSet = std.BufSet; +const BufMap = std.BufMap; +const fmt_lib = std.fmt; +const File = std.fs.File; + +pub const FmtStep = @import("build/fmt.zig").FmtStep; + +pub const Builder = struct { + install_tls: TopLevelStep, + uninstall_tls: TopLevelStep, + allocator: *Allocator, + native_system_lib_paths: ArrayList([]const u8), + native_system_include_dirs: ArrayList([]const u8), + native_system_rpaths: ArrayList([]const u8), + user_input_options: UserInputOptionsMap, + available_options_map: AvailableOptionsMap, + available_options_list: ArrayList(AvailableOption), + verbose: bool, + verbose_tokenize: bool, + verbose_ast: bool, + verbose_link: bool, + verbose_cc: bool, + verbose_ir: bool, + verbose_llvm_ir: bool, + verbose_cimport: bool, + invalid_user_input: bool, + zig_exe: []const u8, + default_step: *Step, + env_map: *BufMap, + top_level_steps: ArrayList(*TopLevelStep), + install_prefix: ?[]const u8, + dest_dir: ?[]const u8, + lib_dir: []const u8, + exe_dir: []const u8, + install_path: []const u8, + search_prefixes: ArrayList([]const u8), + installed_files: ArrayList(InstalledFile), + build_root: []const u8, + cache_root: []const u8, + release_mode: ?builtin.Mode, + is_release: bool, + override_std_dir: ?[]const u8, + override_lib_dir: ?[]const u8, + + pkg_config_pkg_list: ?(PkgConfigError![]const PkgConfigPkg) = null, + + const PkgConfigError = error{ + PkgConfigCrashed, + PkgConfigFailed, + PkgConfigNotInstalled, + PkgConfigInvalidOutput, + }; + + pub const PkgConfigPkg = struct { + name: []const u8, + desc: []const u8, + }; + + pub const CStd = enum { + C89, + C99, + C11, + }; + + const UserInputOptionsMap = StringHashMap(UserInputOption); + const AvailableOptionsMap = StringHashMap(AvailableOption); + + const AvailableOption = struct { + name: []const u8, + type_id: TypeId, + description: []const u8, + }; + + const UserInputOption = struct { + name: []const u8, + value: UserValue, + used: bool, + }; + + const UserValue = union(enum) { + Flag: void, + Scalar: []const u8, + List: ArrayList([]const u8), + }; + + const TypeId = enum { + Bool, + Int, + Float, + String, + List, + }; + + const TopLevelStep = struct { + step: Step, + description: []const u8, + }; + + pub fn create( + allocator: *Allocator, + zig_exe: []const u8, + build_root: []const u8, + cache_root: []const u8, + ) !*Builder { + const env_map = try allocator.create(BufMap); + env_map.* = try process.getEnvMap(allocator); + + const self = try allocator.create(Builder); + self.* = Builder{ + .zig_exe = zig_exe, + .build_root = build_root, + .cache_root = try fs.path.relative(allocator, build_root, cache_root), + .verbose = false, + .verbose_tokenize = false, + .verbose_ast = false, + .verbose_link = false, + .verbose_cc = false, + .verbose_ir = false, + .verbose_llvm_ir = false, + .verbose_cimport = false, + .invalid_user_input = false, + .allocator = allocator, + .native_system_lib_paths = ArrayList([]const u8).init(allocator), + .native_system_include_dirs = ArrayList([]const u8).init(allocator), + .native_system_rpaths = ArrayList([]const u8).init(allocator), + .user_input_options = UserInputOptionsMap.init(allocator), + .available_options_map = AvailableOptionsMap.init(allocator), + .available_options_list = ArrayList(AvailableOption).init(allocator), + .top_level_steps = ArrayList(*TopLevelStep).init(allocator), + .default_step = undefined, + .env_map = env_map, + .search_prefixes = ArrayList([]const u8).init(allocator), + .install_prefix = null, + .lib_dir = undefined, + .exe_dir = undefined, + .dest_dir = env_map.get("DESTDIR"), + .installed_files = ArrayList(InstalledFile).init(allocator), + .install_tls = TopLevelStep{ + .step = Step.initNoOp("install", allocator), + .description = "Copy build artifacts to prefix path", + }, + .uninstall_tls = TopLevelStep{ + .step = Step.init("uninstall", allocator, makeUninstall), + .description = "Remove build artifacts from prefix path", + }, + .release_mode = null, + .is_release = false, + .override_std_dir = null, + .override_lib_dir = null, + .install_path = undefined, + }; + try self.top_level_steps.append(&self.install_tls); + try self.top_level_steps.append(&self.uninstall_tls); + self.detectNativeSystemPaths(); + self.default_step = &self.install_tls.step; + return self; + } + + pub fn destroy(self: *Builder) void { + self.native_system_lib_paths.deinit(); + self.native_system_include_dirs.deinit(); + self.native_system_rpaths.deinit(); + self.env_map.deinit(); + self.top_level_steps.deinit(); + self.allocator.destroy(self); + } + + /// This function is intended to be called by std/special/build_runner.zig, not a build.zig file. + pub fn setInstallPrefix(self: *Builder, optional_prefix: ?[]const u8) void { + self.install_prefix = optional_prefix; + } + + /// This function is intended to be called by std/special/build_runner.zig, not a build.zig file. + pub fn resolveInstallPrefix(self: *Builder) void { + if (self.dest_dir) |dest_dir| { + const install_prefix = self.install_prefix orelse "/usr"; + self.install_path = fs.path.join(self.allocator, [_][]const u8{ dest_dir, install_prefix }) catch unreachable; + } else { + const install_prefix = self.install_prefix orelse blk: { + const p = self.cache_root; + self.install_prefix = p; + break :blk p; + }; + self.install_path = install_prefix; + } + self.lib_dir = fs.path.join(self.allocator, [_][]const u8{ self.install_path, "lib" }) catch unreachable; + self.exe_dir = fs.path.join(self.allocator, [_][]const u8{ self.install_path, "bin" }) catch unreachable; + } + + pub fn addExecutable(self: *Builder, name: []const u8, root_src: ?[]const u8) *LibExeObjStep { + return LibExeObjStep.createExecutable(self, name, root_src, false); + } + + pub fn addObject(self: *Builder, name: []const u8, root_src: ?[]const u8) *LibExeObjStep { + return LibExeObjStep.createObject(self, name, root_src); + } + + pub fn addSharedLibrary(self: *Builder, name: []const u8, root_src: ?[]const u8, ver: Version) *LibExeObjStep { + return LibExeObjStep.createSharedLibrary(self, name, root_src, ver); + } + + pub fn addStaticLibrary(self: *Builder, name: []const u8, root_src: ?[]const u8) *LibExeObjStep { + return LibExeObjStep.createStaticLibrary(self, name, root_src); + } + + pub fn addTest(self: *Builder, root_src: []const u8) *LibExeObjStep { + return LibExeObjStep.createTest(self, "test", root_src); + } + + pub fn addAssemble(self: *Builder, name: []const u8, src: []const u8) *LibExeObjStep { + const obj_step = LibExeObjStep.createObject(self, name, null); + obj_step.addAssemblyFile(src); + return obj_step; + } + + /// Initializes a RunStep with argv, which must at least have the path to the + /// executable. More command line arguments can be added with `addArg`, + /// `addArgs`, and `addArtifactArg`. + /// Be careful using this function, as it introduces a system dependency. + /// To run an executable built with zig build, see `LibExeObjStep.run`. + pub fn addSystemCommand(self: *Builder, argv: []const []const u8) *RunStep { + assert(argv.len >= 1); + const run_step = RunStep.create(self, self.fmt("run {}", argv[0])); + run_step.addArgs(argv); + return run_step; + } + + fn dupe(self: *Builder, bytes: []const u8) []u8 { + return mem.dupe(self.allocator, u8, bytes) catch unreachable; + } + + fn dupePath(self: *Builder, bytes: []const u8) []u8 { + const the_copy = self.dupe(bytes); + for (the_copy) |*byte| { + switch (byte.*) { + '/', '\\' => byte.* = fs.path.sep, + else => {}, + } + } + return the_copy; + } + + pub fn addWriteFile(self: *Builder, file_path: []const u8, data: []const u8) *WriteFileStep { + const write_file_step = self.allocator.create(WriteFileStep) catch unreachable; + write_file_step.* = WriteFileStep.init(self, file_path, data); + return write_file_step; + } + + pub fn addLog(self: *Builder, comptime format: []const u8, args: ...) *LogStep { + const data = self.fmt(format, args); + const log_step = self.allocator.create(LogStep) catch unreachable; + log_step.* = LogStep.init(self, data); + return log_step; + } + + pub fn addRemoveDirTree(self: *Builder, dir_path: []const u8) *RemoveDirStep { + const remove_dir_step = self.allocator.create(RemoveDirStep) catch unreachable; + remove_dir_step.* = RemoveDirStep.init(self, dir_path); + return remove_dir_step; + } + + pub fn addFmt(self: *Builder, paths: []const []const u8) *FmtStep { + return FmtStep.create(self, paths); + } + + pub fn version(self: *const Builder, major: u32, minor: u32, patch: u32) Version { + return Version{ + .major = major, + .minor = minor, + .patch = patch, + }; + } + + pub fn addNativeSystemIncludeDir(self: *Builder, path: []const u8) void { + self.native_system_include_dirs.append(path) catch unreachable; + } + + pub fn addNativeSystemRPath(self: *Builder, path: []const u8) void { + self.native_system_rpaths.append(path) catch unreachable; + } + + pub fn addNativeSystemLibPath(self: *Builder, path: []const u8) void { + self.native_system_lib_paths.append(path) catch unreachable; + } + + pub fn make(self: *Builder, step_names: []const []const u8) !void { + try self.makePath(self.cache_root); + + var wanted_steps = ArrayList(*Step).init(self.allocator); + defer wanted_steps.deinit(); + + if (step_names.len == 0) { + try wanted_steps.append(self.default_step); + } else { + for (step_names) |step_name| { + const s = try self.getTopLevelStepByName(step_name); + try wanted_steps.append(s); + } + } + + for (wanted_steps.toSliceConst()) |s| { + try self.makeOneStep(s); + } + } + + pub fn getInstallStep(self: *Builder) *Step { + return &self.install_tls.step; + } + + pub fn getUninstallStep(self: *Builder) *Step { + return &self.uninstall_tls.step; + } + + fn makeUninstall(uninstall_step: *Step) anyerror!void { + const uninstall_tls = @fieldParentPtr(TopLevelStep, "step", uninstall_step); + const self = @fieldParentPtr(Builder, "uninstall_tls", uninstall_tls); + + for (self.installed_files.toSliceConst()) |installed_file| { + const full_path = self.getInstallPath(installed_file.dir, installed_file.path); + if (self.verbose) { + warn("rm {}\n", full_path); + } + fs.deleteTree(self.allocator, full_path) catch {}; + } + + // TODO remove empty directories + } + + fn makeOneStep(self: *Builder, s: *Step) anyerror!void { + if (s.loop_flag) { + warn("Dependency loop detected:\n {}\n", s.name); + return error.DependencyLoopDetected; + } + s.loop_flag = true; + + for (s.dependencies.toSlice()) |dep| { + self.makeOneStep(dep) catch |err| { + if (err == error.DependencyLoopDetected) { + warn(" {}\n", s.name); + } + return err; + }; + } + + s.loop_flag = false; + + try s.make(); + } + + fn getTopLevelStepByName(self: *Builder, name: []const u8) !*Step { + for (self.top_level_steps.toSliceConst()) |top_level_step| { + if (mem.eql(u8, top_level_step.step.name, name)) { + return &top_level_step.step; + } + } + warn("Cannot run step '{}' because it does not exist\n", name); + return error.InvalidStepName; + } + + fn detectNativeSystemPaths(self: *Builder) void { + var is_nixos = false; + if (process.getEnvVarOwned(self.allocator, "NIX_CFLAGS_COMPILE")) |nix_cflags_compile| { + is_nixos = true; + var it = mem.tokenize(nix_cflags_compile, " "); + while (true) { + const word = it.next() orelse break; + if (mem.eql(u8, word, "-isystem")) { + const include_path = it.next() orelse { + warn("Expected argument after -isystem in NIX_CFLAGS_COMPILE\n"); + break; + }; + self.addNativeSystemIncludeDir(include_path); + } else { + warn("Unrecognized C flag from NIX_CFLAGS_COMPILE: {}\n", word); + break; + } + } + } else |err| { + assert(err == error.EnvironmentVariableNotFound); + } + if (process.getEnvVarOwned(self.allocator, "NIX_LDFLAGS")) |nix_ldflags| { + is_nixos = true; + var it = mem.tokenize(nix_ldflags, " "); + while (true) { + const word = it.next() orelse break; + if (mem.eql(u8, word, "-rpath")) { + const rpath = it.next() orelse { + warn("Expected argument after -rpath in NIX_LDFLAGS\n"); + break; + }; + self.addNativeSystemRPath(rpath); + } else if (word.len > 2 and word[0] == '-' and word[1] == 'L') { + const lib_path = word[2..]; + self.addNativeSystemLibPath(lib_path); + } else { + warn("Unrecognized C flag from NIX_LDFLAGS: {}\n", word); + break; + } + } + } else |err| { + assert(err == error.EnvironmentVariableNotFound); + } + if (is_nixos) return; + switch (builtin.os) { + .windows => {}, + else => { + const triple = (Target{ + .Cross = CrossTarget{ + .arch = builtin.arch, + .os = builtin.os, + .abi = builtin.abi, + }, + }).linuxTriple(self.allocator); + + // TODO: $ ld --verbose | grep SEARCH_DIR + // the output contains some paths that end with lib64, maybe include them too? + // also, what is the best possible order of things? + + self.addNativeSystemIncludeDir("/usr/local/include"); + self.addNativeSystemLibPath("/usr/local/lib"); + + self.addNativeSystemIncludeDir(self.fmt("/usr/include/{}", triple)); + self.addNativeSystemLibPath(self.fmt("/usr/lib/{}", triple)); + + self.addNativeSystemIncludeDir("/usr/include"); + self.addNativeSystemLibPath("/usr/lib"); + + // example: on a 64-bit debian-based linux distro, with zlib installed from apt: + // zlib.h is in /usr/include (added above) + // libz.so.1 is in /lib/x86_64-linux-gnu (added here) + self.addNativeSystemLibPath(self.fmt("/lib/{}", triple)); + }, + } + } + + pub fn option(self: *Builder, comptime T: type, name: []const u8, description: []const u8) ?T { + const type_id = comptime typeToEnum(T); + const available_option = AvailableOption{ + .name = name, + .type_id = type_id, + .description = description, + }; + if ((self.available_options_map.put(name, available_option) catch unreachable) != null) { + panic("Option '{}' declared twice", name); + } + self.available_options_list.append(available_option) catch unreachable; + + const entry = self.user_input_options.get(name) orelse return null; + entry.value.used = true; + switch (type_id) { + TypeId.Bool => switch (entry.value.value) { + UserValue.Flag => return true, + UserValue.Scalar => |s| { + if (mem.eql(u8, s, "true")) { + return true; + } else if (mem.eql(u8, s, "false")) { + return false; + } else { + warn("Expected -D{} to be a boolean, but received '{}'\n", name, s); + self.markInvalidUserInput(); + return null; + } + }, + UserValue.List => { + warn("Expected -D{} to be a boolean, but received a list.\n", name); + self.markInvalidUserInput(); + return null; + }, + }, + TypeId.Int => panic("TODO integer options to build script"), + TypeId.Float => panic("TODO float options to build script"), + TypeId.String => switch (entry.value.value) { + UserValue.Flag => { + warn("Expected -D{} to be a string, but received a boolean.\n", name); + self.markInvalidUserInput(); + return null; + }, + UserValue.List => { + warn("Expected -D{} to be a string, but received a list.\n", name); + self.markInvalidUserInput(); + return null; + }, + UserValue.Scalar => |s| return s, + }, + TypeId.List => panic("TODO list options to build script"), + } + } + + pub fn step(self: *Builder, name: []const u8, description: []const u8) *Step { + const step_info = self.allocator.create(TopLevelStep) catch unreachable; + step_info.* = TopLevelStep{ + .step = Step.initNoOp(name, self.allocator), + .description = description, + }; + self.top_level_steps.append(step_info) catch unreachable; + return &step_info.step; + } + + /// This provides the -Drelease option to the build user and does not give them the choice. + pub fn setPreferredReleaseMode(self: *Builder, mode: builtin.Mode) void { + if (self.release_mode != null) { + @panic("setPreferredReleaseMode must be called before standardReleaseOptions and may not be called twice"); + } + const description = self.fmt("create a release build ({})", @tagName(mode)); + self.is_release = self.option(bool, "release", description) orelse false; + self.release_mode = if (self.is_release) mode else builtin.Mode.Debug; + } + + /// If you call this without first calling `setPreferredReleaseMode` then it gives the build user + /// the choice of what kind of release. + pub fn standardReleaseOptions(self: *Builder) builtin.Mode { + if (self.release_mode) |mode| return mode; + + const release_safe = self.option(bool, "release-safe", "optimizations on and safety on") orelse false; + const release_fast = self.option(bool, "release-fast", "optimizations on and safety off") orelse false; + const release_small = self.option(bool, "release-small", "size optimizations on and safety off") orelse false; + + const mode = if (release_safe and !release_fast and !release_small) + builtin.Mode.ReleaseSafe + else if (release_fast and !release_safe and !release_small) + builtin.Mode.ReleaseFast + else if (release_small and !release_fast and !release_safe) + builtin.Mode.ReleaseSmall + else if (!release_fast and !release_safe and !release_small) + builtin.Mode.Debug + else x: { + warn("Multiple release modes (of -Drelease-safe, -Drelease-fast and -Drelease-small)"); + self.markInvalidUserInput(); + break :x builtin.Mode.Debug; + }; + self.is_release = mode != .Debug; + self.release_mode = mode; + return mode; + } + + /// Exposes standard `zig build` options for choosing a target. Pass `null` to support all targets. + pub fn standardTargetOptions(self: *Builder, supported_targets: ?[]const Target) Target { + if (supported_targets) |target_list| { + // TODO detect multiple args and emit an error message + // there's probably a better way to collect the target + for (target_list) |targ| { + const targ_str = targ.zigTriple(self.allocator) catch unreachable; + const targ_desc = targ.allocDescription(self.allocator) catch unreachable; + const this_targ_opt = self.option(bool, targ_str, targ_desc) orelse false; + if (this_targ_opt) { + return targ; + } + } + return Target.Native; + } else { + const target_str = self.option([]const u8, "target", "the target to build for") orelse return Target.Native; + return Target.parse(target_str) catch unreachable; // TODO better error message for bad target + } + } + + pub fn addUserInputOption(self: *Builder, name: []const u8, value: []const u8) !bool { + const gop = try self.user_input_options.getOrPut(name); + if (!gop.found_existing) { + gop.kv.value = UserInputOption{ + .name = name, + .value = UserValue{ .Scalar = value }, + .used = false, + }; + return false; + } + + // option already exists + switch (gop.kv.value.value) { + UserValue.Scalar => |s| { + // turn it into a list + var list = ArrayList([]const u8).init(self.allocator); + list.append(s) catch unreachable; + list.append(value) catch unreachable; + _ = self.user_input_options.put(name, UserInputOption{ + .name = name, + .value = UserValue{ .List = list }, + .used = false, + }) catch unreachable; + }, + UserValue.List => |*list| { + // append to the list + list.append(value) catch unreachable; + _ = self.user_input_options.put(name, UserInputOption{ + .name = name, + .value = UserValue{ .List = list.* }, + .used = false, + }) catch unreachable; + }, + UserValue.Flag => { + warn("Option '-D{}={}' conflicts with flag '-D{}'.\n", name, value, name); + return true; + }, + } + return false; + } + + pub fn addUserInputFlag(self: *Builder, name: []const u8) !bool { + const gop = try self.user_input_options.getOrPut(name); + if (!gop.found_existing) { + gop.kv.value = UserInputOption{ + .name = name, + .value = UserValue{ .Flag = {} }, + .used = false, + }; + return false; + } + + // option already exists + switch (gop.kv.value.value) { + UserValue.Scalar => |s| { + warn("Flag '-D{}' conflicts with option '-D{}={}'.\n", name, name, s); + return true; + }, + UserValue.List => { + warn("Flag '-D{}' conflicts with multiple options of the same name.\n", name); + return true; + }, + UserValue.Flag => {}, + } + return false; + } + + fn typeToEnum(comptime T: type) TypeId { + return switch (@typeId(T)) { + builtin.TypeId.Int => TypeId.Int, + builtin.TypeId.Float => TypeId.Float, + builtin.TypeId.Bool => TypeId.Bool, + else => switch (T) { + []const u8 => TypeId.String, + []const []const u8 => TypeId.List, + else => @compileError("Unsupported type: " ++ @typeName(T)), + }, + }; + } + + fn markInvalidUserInput(self: *Builder) void { + self.invalid_user_input = true; + } + + pub fn typeIdName(id: TypeId) []const u8 { + return switch (id) { + TypeId.Bool => "bool", + TypeId.Int => "int", + TypeId.Float => "float", + TypeId.String => "string", + TypeId.List => "list", + }; + } + + pub fn validateUserInputDidItFail(self: *Builder) bool { + // make sure all args are used + var it = self.user_input_options.iterator(); + while (true) { + const entry = it.next() orelse break; + if (!entry.value.used) { + warn("Invalid option: -D{}\n\n", entry.key); + self.markInvalidUserInput(); + } + } + + return self.invalid_user_input; + } + + fn spawnChild(self: *Builder, argv: []const []const u8) !void { + return self.spawnChildEnvMap(null, self.env_map, argv); + } + + fn printCmd(cwd: ?[]const u8, argv: []const []const u8) void { + if (cwd) |yes_cwd| warn("cd {} && ", yes_cwd); + for (argv) |arg| { + warn("{} ", arg); + } + warn("\n"); + } + + fn spawnChildEnvMap(self: *Builder, cwd: ?[]const u8, env_map: *const BufMap, argv: []const []const u8) !void { + if (self.verbose) { + printCmd(cwd, argv); + } + + const child = std.ChildProcess.init(argv, self.allocator) catch unreachable; + defer child.deinit(); + + child.cwd = cwd; + child.env_map = env_map; + + const term = child.spawnAndWait() catch |err| { + warn("Unable to spawn {}: {}\n", argv[0], @errorName(err)); + return err; + }; + + switch (term) { + .Exited => |code| { + if (code != 0) { + warn("The following command exited with error code {}:\n", code); + printCmd(cwd, argv); + return error.UncleanExit; + } + }, + else => { + warn("The following command terminated unexpectedly:\n"); + printCmd(cwd, argv); + + return error.UncleanExit; + }, + } + } + + pub fn makePath(self: *Builder, path: []const u8) !void { + fs.makePath(self.allocator, self.pathFromRoot(path)) catch |err| { + warn("Unable to create path {}: {}\n", path, @errorName(err)); + return err; + }; + } + + pub fn installArtifact(self: *Builder, artifact: *LibExeObjStep) void { + self.getInstallStep().dependOn(&self.addInstallArtifact(artifact).step); + } + + pub fn addInstallArtifact(self: *Builder, artifact: *LibExeObjStep) *InstallArtifactStep { + return InstallArtifactStep.create(self, artifact); + } + + ///`dest_rel_path` is relative to prefix path + pub fn installFile(self: *Builder, src_path: []const u8, dest_rel_path: []const u8) void { + self.getInstallStep().dependOn(&self.addInstallFileWithDir(src_path, .Prefix, dest_rel_path).step); + } + + pub fn installDirectory(self: *Builder, options: InstallDirectoryOptions) void { + self.getInstallStep().dependOn(&self.addInstallDirectory(options).step); + } + + ///`dest_rel_path` is relative to bin path + pub fn installBinFile(self: *Builder, src_path: []const u8, dest_rel_path: []const u8) void { + self.getInstallStep().dependOn(&self.addInstallFileWithDir(src_path, .Bin, dest_rel_path).step); + } + + ///`dest_rel_path` is relative to lib path + pub fn installLibFile(self: *Builder, src_path: []const u8, dest_rel_path: []const u8) void { + self.getInstallStep().dependOn(&self.addInstallFileWithDir(src_path, .Lib, dest_rel_path).step); + } + + ///`dest_rel_path` is relative to install prefix path + pub fn addInstallFile(self: *Builder, src_path: []const u8, dest_rel_path: []const u8) *InstallFileStep { + return self.addInstallFileWithDir(src_path, .Prefix, dest_rel_path); + } + + ///`dest_rel_path` is relative to bin path + pub fn addInstallBinFile(self: *Builder, src_path: []const u8, dest_rel_path: []const u8) *InstallFileStep { + return self.addInstallFileWithDir(src_path, .Bin, dest_rel_path); + } + + ///`dest_rel_path` is relative to lib path + pub fn addInstallLibFile(self: *Builder, src_path: []const u8, dest_rel_path: []const u8) *InstallFileStep { + return self.addInstallFileWithDir(src_path, .Lib, dest_rel_path); + } + + pub fn addInstallFileWithDir( + self: *Builder, + src_path: []const u8, + install_dir: InstallDir, + dest_rel_path: []const u8, + ) *InstallFileStep { + const install_step = self.allocator.create(InstallFileStep) catch unreachable; + install_step.* = InstallFileStep.init(self, src_path, install_dir, dest_rel_path); + return install_step; + } + + pub fn addInstallDirectory(self: *Builder, options: InstallDirectoryOptions) *InstallDirStep { + const install_step = self.allocator.create(InstallDirStep) catch unreachable; + install_step.* = InstallDirStep.init(self, options); + return install_step; + } + + pub fn pushInstalledFile(self: *Builder, dir: InstallDir, dest_rel_path: []const u8) void { + self.installed_files.append(InstalledFile{ + .dir = dir, + .path = dest_rel_path, + }) catch unreachable; + } + + fn updateFile(self: *Builder, source_path: []const u8, dest_path: []const u8) !void { + if (self.verbose) { + warn("cp {} {} ", source_path, dest_path); + } + const prev_status = try fs.updateFile(source_path, dest_path); + if (self.verbose) switch (prev_status) { + .stale => warn("# installed\n"), + .fresh => warn("# up-to-date\n"), + }; + } + + fn pathFromRoot(self: *Builder, rel_path: []const u8) []u8 { + return fs.path.resolve(self.allocator, [_][]const u8{ self.build_root, rel_path }) catch unreachable; + } + + pub fn fmt(self: *Builder, comptime format: []const u8, args: ...) []u8 { + return fmt_lib.allocPrint(self.allocator, format, args) catch unreachable; + } + + pub fn findProgram(self: *Builder, names: []const []const u8, paths: []const []const u8) ![]const u8 { + // TODO report error for ambiguous situations + const exe_extension = (Target{ .Native = {} }).exeFileExt(); + for (self.search_prefixes.toSliceConst()) |search_prefix| { + for (names) |name| { + if (fs.path.isAbsolute(name)) { + return name; + } + const full_path = try fs.path.join(self.allocator, [_][]const u8{ search_prefix, "bin", self.fmt("{}{}", name, exe_extension) }); + return fs.realpathAlloc(self.allocator, full_path) catch continue; + } + } + if (self.env_map.get("PATH")) |PATH| { + for (names) |name| { + if (fs.path.isAbsolute(name)) { + return name; + } + var it = mem.tokenize(PATH, [_]u8{fs.path.delimiter}); + while (it.next()) |path| { + const full_path = try fs.path.join(self.allocator, [_][]const u8{ path, self.fmt("{}{}", name, exe_extension) }); + return fs.realpathAlloc(self.allocator, full_path) catch continue; + } + } + } + for (names) |name| { + if (fs.path.isAbsolute(name)) { + return name; + } + for (paths) |path| { + const full_path = try fs.path.join(self.allocator, [_][]const u8{ path, self.fmt("{}{}", name, exe_extension) }); + return fs.realpathAlloc(self.allocator, full_path) catch continue; + } + } + return error.FileNotFound; + } + + pub fn execAllowFail( + self: *Builder, + argv: []const []const u8, + out_code: *u8, + stderr_behavior: std.ChildProcess.StdIo, + ) ![]u8 { + assert(argv.len != 0); + + const max_output_size = 100 * 1024; + const child = try std.ChildProcess.init(argv, self.allocator); + defer child.deinit(); + + child.stdin_behavior = .Ignore; + child.stdout_behavior = .Pipe; + child.stderr_behavior = stderr_behavior; + + try child.spawn(); + + var stdout = std.Buffer.initNull(self.allocator); + defer std.Buffer.deinit(&stdout); + + var stdout_file_in_stream = child.stdout.?.inStream(); + try stdout_file_in_stream.stream.readAllBuffer(&stdout, max_output_size); + + const term = try child.wait(); + switch (term) { + .Exited => |code| { + if (code != 0) { + out_code.* = @truncate(u8, code); + return error.ExitCodeFailure; + } + return stdout.toOwnedSlice(); + }, + .Signal, .Stopped, .Unknown => |code| { + out_code.* = @truncate(u8, code); + return error.ProcessTerminated; + }, + } + } + + pub fn exec(self: *Builder, argv: []const []const u8) ![]u8 { + assert(argv.len != 0); + + if (self.verbose) { + printCmd(null, argv); + } + + var code: u8 = undefined; + return self.execAllowFail(argv, &code, .Inherit) catch |err| switch (err) { + error.FileNotFound => { + warn("Unable to spawn the following command: file not found\n"); + printCmd(null, argv); + std.os.exit(@truncate(u8, code)); + }, + error.ExitCodeFailure => { + warn("The following command exited with error code {}:\n", code); + printCmd(null, argv); + std.os.exit(@truncate(u8, code)); + }, + error.ProcessTerminated => { + warn("The following command terminated unexpectedly:\n"); + printCmd(null, argv); + std.os.exit(@truncate(u8, code)); + }, + else => |e| return e, + }; + } + + pub fn addSearchPrefix(self: *Builder, search_prefix: []const u8) void { + self.search_prefixes.append(search_prefix) catch unreachable; + } + + fn getInstallPath(self: *Builder, dir: InstallDir, dest_rel_path: []const u8) []const u8 { + const base_dir = switch (dir) { + .Prefix => self.install_path, + .Bin => self.exe_dir, + .Lib => self.lib_dir, + }; + return fs.path.resolve( + self.allocator, + [_][]const u8{ base_dir, dest_rel_path }, + ) catch unreachable; + } + + fn execPkgConfigList(self: *Builder, out_code: *u8) ![]const PkgConfigPkg { + const stdout = try self.execAllowFail([_][]const u8{ "pkg-config", "--list-all" }, out_code, .Ignore); + var list = ArrayList(PkgConfigPkg).init(self.allocator); + var line_it = mem.tokenize(stdout, "\r\n"); + while (line_it.next()) |line| { + if (mem.trim(u8, line, " \t").len == 0) continue; + var tok_it = mem.tokenize(line, " \t"); + try list.append(PkgConfigPkg{ + .name = tok_it.next() orelse return error.PkgConfigInvalidOutput, + .desc = tok_it.rest(), + }); + } + return list.toSliceConst(); + } + + fn getPkgConfigList(self: *Builder) ![]const PkgConfigPkg { + if (self.pkg_config_pkg_list) |res| { + return res; + } + var code: u8 = undefined; + if (self.execPkgConfigList(&code)) |list| { + self.pkg_config_pkg_list = list; + return list; + } else |err| { + const result = switch (err) { + error.ProcessTerminated => error.PkgConfigCrashed, + error.ExitCodeFailure => error.PkgConfigFailed, + error.FileNotFound => error.PkgConfigNotInstalled, + error.PkgConfigInvalidOutput => error.PkgConfigInvalidOutput, + else => return err, + }; + self.pkg_config_pkg_list = result; + return result; + } + } +}; + +test "builder.findProgram compiles" { + const builder = try Builder.create(std.heap.direct_allocator, "zig", "zig-cache", "zig-cache"); + _ = builder.findProgram([_][]const u8{}, [_][]const u8{}) catch null; +} + +pub const Version = struct { + major: u32, + minor: u32, + patch: u32, +}; + +pub const CrossTarget = struct { + arch: builtin.Arch, + os: builtin.Os, + abi: builtin.Abi, +}; + +pub const Target = union(enum) { + Native: void, + Cross: CrossTarget, + + pub fn zigTriple(self: Target, allocator: *Allocator) ![]u8 { + return std.fmt.allocPrint( + allocator, + "{}{}-{}-{}", + @tagName(self.getArch()), + Target.archSubArchName(self.getArch()), + @tagName(self.getOs()), + @tagName(self.getAbi()), + ); + } + + pub fn allocDescription(self: Target, allocator: *Allocator) ![]u8 { + // TODO is there anything else worthy of the description that is not + // already captured in the triple? + return self.zigTriple(allocator); + } + + pub fn zigTripleNoSubArch(self: Target, allocator: *Allocator) ![]u8 { + return std.fmt.allocPrint( + allocator, + "{}-{}-{}", + @tagName(self.getArch()), + @tagName(self.getOs()), + @tagName(self.getAbi()), + ); + } + + pub fn linuxTriple(self: Target, allocator: *Allocator) ![]u8 { + return std.fmt.allocPrint( + allocator, + "{}-{}-{}", + @tagName(self.getArch()), + @tagName(self.getOs()), + @tagName(self.getAbi()), + ); + } + + pub fn parse(text: []const u8) !Target { + var it = mem.separate(text, "-"); + const arch_name = it.next() orelse return error.MissingArchitecture; + const os_name = it.next() orelse return error.MissingOperatingSystem; + const abi_name = it.next(); + + var cross = CrossTarget{ + .arch = try parseArchSub(arch_name), + .os = try parseOs(os_name), + .abi = undefined, + }; + cross.abi = if (abi_name) |n| try parseAbi(n) else defaultAbi(cross.arch, cross.os); + return Target{ .Cross = cross }; + } + + pub fn defaultAbi(arch: builtin.Arch, target_os: builtin.Os) builtin.Abi { + switch (arch) { + .wasm32, .wasm64 => return .musl, + else => {}, + } + switch (target_os) { + .freestanding, + .ananas, + .cloudabi, + .dragonfly, + .lv2, + .solaris, + .haiku, + .minix, + .rtems, + .nacl, + .cnk, + .aix, + .cuda, + .nvcl, + .amdhsa, + .ps4, + .elfiamcu, + .mesa3d, + .contiki, + .amdpal, + .zen, + .hermit, + => return .eabi, + .openbsd, + .macosx, + .freebsd, + .ios, + .tvos, + .watchos, + .fuchsia, + .kfreebsd, + .netbsd, + .hurd, + => return .gnu, + .windows, + .uefi, + => return .msvc, + .linux, + .wasi, + .emscripten, + => return .musl, + } + } + + pub const ParseArchSubError = error{ + UnknownArchitecture, + UnknownSubArchitecture, + }; + + pub fn parseArchSub(text: []const u8) ParseArchSubError!builtin.Arch { + const info = @typeInfo(builtin.Arch); + inline for (info.Union.fields) |field| { + if (mem.eql(u8, text, field.name)) { + if (field.field_type == void) { + return (builtin.Arch)(@field(builtin.Arch, field.name)); + } else { + const sub_info = @typeInfo(field.field_type); + inline for (sub_info.Enum.fields) |sub_field| { + const combined = field.name ++ sub_field.name; + if (mem.eql(u8, text, combined)) { + return @unionInit(builtin.Arch, field.name, @field(field.field_type, sub_field.name)); + } + } + return error.UnknownSubArchitecture; + } + } + } + return error.UnknownArchitecture; + } + + pub fn parseOs(text: []const u8) !builtin.Os { + const info = @typeInfo(builtin.Os); + inline for (info.Enum.fields) |field| { + if (mem.eql(u8, text, field.name)) { + return @field(builtin.Os, field.name); + } + } + return error.UnknownOperatingSystem; + } + + pub fn parseAbi(text: []const u8) !builtin.Abi { + const info = @typeInfo(builtin.Abi); + inline for (info.Enum.fields) |field| { + if (mem.eql(u8, text, field.name)) { + return @field(builtin.Abi, field.name); + } + } + return error.UnknownApplicationBinaryInterface; + } + + fn archSubArchName(arch: builtin.Arch) []const u8 { + return switch (arch) { + .arm => |sub| @tagName(sub), + .armeb => |sub| @tagName(sub), + .thumb => |sub| @tagName(sub), + .thumbeb => |sub| @tagName(sub), + .aarch64 => |sub| @tagName(sub), + .aarch64_be => |sub| @tagName(sub), + .kalimba => |sub| @tagName(sub), + else => "", + }; + } + + pub fn subArchName(self: Target) []const u8 { + switch (self) { + .Native => return archSubArchName(builtin.arch), + .Cross => |cross| return archSubArchName(cross.arch), + } + } + + pub fn oFileExt(self: Target) []const u8 { + return switch (self.getAbi()) { + builtin.Abi.msvc => ".obj", + else => ".o", + }; + } + + pub fn exeFileExt(self: Target) []const u8 { + return switch (self.getOs()) { + .windows => ".exe", + else => "", + }; + } + + pub fn staticLibSuffix(self: Target) []const u8 { + if (self.isWasm()) { + return ".wasm"; + } + switch (self.getAbi()) { + .msvc => return ".lib", + else => return ".a", + } + } + + pub fn dynamicLibSuffix(self: Target) []const u8 { + if (self.isDarwin()) { + return ".dylib"; + } + switch (self.getOs()) { + .windows => return ".dll", + else => return ".so", + } + } + + pub fn libPrefix(self: Target) []const u8 { + if (self.isWasm()) { + return ""; + } + switch (self.getAbi()) { + .msvc => return "", + else => return "lib", + } + } + + pub fn getOs(self: Target) builtin.Os { + return switch (self) { + .Native => builtin.os, + .Cross => |t| t.os, + }; + } + + pub fn getArch(self: Target) builtin.Arch { + switch (self) { + .Native => return builtin.arch, + .Cross => |t| return t.arch, + } + } + + pub fn getAbi(self: Target) builtin.Abi { + switch (self) { + .Native => return builtin.abi, + .Cross => |t| return t.abi, + } + } + + pub fn isMinGW(self: Target) bool { + return self.isWindows() and self.isGnu(); + } + + pub fn isGnu(self: Target) bool { + return switch (self.getAbi()) { + .gnu, .gnuabin32, .gnuabi64, .gnueabi, .gnueabihf, .gnux32 => true, + else => false, + }; + } + + pub fn isDarwin(self: Target) bool { + return switch (self.getOs()) { + .ios, .macosx, .watchos, .tvos => true, + else => false, + }; + } + + pub fn isWindows(self: Target) bool { + return switch (self.getOs()) { + .windows => true, + else => false, + }; + } + + pub fn isLinux(self: Target) bool { + return switch (self.getOs()) { + .linux => true, + else => false, + }; + } + + pub fn isUefi(self: Target) bool { + return switch (self.getOs()) { + .uefi => true, + else => false, + }; + } + + pub fn isWasm(self: Target) bool { + return switch (self.getArch()) { + .wasm32, .wasm64 => true, + else => false, + }; + } + + pub fn isFreeBSD(self: Target) bool { + return switch (self.getOs()) { + .freebsd => true, + else => false, + }; + } + + pub fn isNetBSD(self: Target) bool { + return switch (self.getOs()) { + .netbsd => true, + else => false, + }; + } + + pub fn wantSharedLibSymLinks(self: Target) bool { + return !self.isWindows(); + } + + pub fn osRequiresLibC(self: Target) bool { + return self.isDarwin() or self.isFreeBSD() or self.isNetBSD(); + } + + pub fn getArchPtrBitWidth(self: Target) u32 { + switch (self.getArch()) { + .avr, + .msp430, + => return 16, + + .arc, + .arm, + .armeb, + .hexagon, + .le32, + .mips, + .mipsel, + .powerpc, + .r600, + .riscv32, + .sparc, + .sparcel, + .tce, + .tcele, + .thumb, + .thumbeb, + .i386, + .xcore, + .nvptx, + .amdil, + .hsail, + .spir, + .kalimba, + .shave, + .lanai, + .wasm32, + .renderscript32, + .aarch64_32, + => return 32, + + .aarch64, + .aarch64_be, + .mips64, + .mips64el, + .powerpc64, + .powerpc64le, + .riscv64, + .x86_64, + .nvptx64, + .le64, + .amdil64, + .hsail64, + .spir64, + .wasm64, + .renderscript64, + .amdgcn, + .bpfel, + .bpfeb, + .sparcv9, + .s390x, + => return 64, + } + } + + pub const Executor = union(enum) { + native, + qemu: []const u8, + wine: []const u8, + unavailable, + }; + + pub fn getExternalExecutor(self: Target) Executor { + if (@TagType(Target)(self) == .Native) return .native; + + // If the target OS matches the host OS, we can use QEMU to emulate a foreign architecture. + if (self.getOs() == builtin.os) { + return switch (self.getArch()) { + .aarch64 => Executor{ .qemu = "qemu-aarch64" }, + .aarch64_be => Executor{ .qemu = "qemu-aarch64_be" }, + .arm => Executor{ .qemu = "qemu-arm" }, + .armeb => Executor{ .qemu = "qemu-armeb" }, + .i386 => Executor{ .qemu = "qemu-i386" }, + .mips => Executor{ .qemu = "qemu-mips" }, + .mipsel => Executor{ .qemu = "qemu-mipsel" }, + .mips64 => Executor{ .qemu = "qemu-mips64" }, + .mips64el => Executor{ .qemu = "qemu-mips64el" }, + .powerpc => Executor{ .qemu = "qemu-ppc" }, + .powerpc64 => Executor{ .qemu = "qemu-ppc64" }, + .powerpc64le => Executor{ .qemu = "qemu-ppc64le" }, + .riscv32 => Executor{ .qemu = "qemu-riscv32" }, + .riscv64 => Executor{ .qemu = "qemu-riscv64" }, + .s390x => Executor{ .qemu = "qemu-s390x" }, + .sparc => Executor{ .qemu = "qemu-sparc" }, + .x86_64 => Executor{ .qemu = "qemu-x86_64" }, + else => return .unavailable, + }; + } + + if (self.isWindows()) { + switch (self.getArchPtrBitWidth()) { + 32 => return Executor{ .wine = "wine" }, + 64 => return Executor{ .wine = "wine64" }, + else => return .unavailable, + } + } + + return .unavailable; + } +}; + +const Pkg = struct { + name: []const u8, + path: []const u8, +}; + +const CSourceFile = struct { + source_path: []const u8, + args: []const []const u8, +}; + +fn isLibCLibrary(name: []const u8) bool { + const libc_libraries = [_][]const u8{ "c", "m", "dl", "rt", "pthread" }; + for (libc_libraries) |libc_lib_name| { + if (mem.eql(u8, name, libc_lib_name)) + return true; + } + return false; +} + +pub const LibExeObjStep = struct { + step: Step, + builder: *Builder, + name: []const u8, + target: Target, + linker_script: ?[]const u8 = null, + version_script: ?[]const u8 = null, + out_filename: []const u8, + is_dynamic: bool, + version: Version, + build_mode: builtin.Mode, + kind: Kind, + major_only_filename: []const u8, + name_only_filename: []const u8, + strip: bool, + lib_paths: ArrayList([]const u8), + framework_dirs: ArrayList([]const u8), + frameworks: BufSet, + verbose_link: bool, + verbose_cc: bool, + disable_gen_h: bool, + bundle_compiler_rt: bool, + disable_stack_probing: bool, + c_std: Builder.CStd, + override_std_dir: ?[]const u8, + override_lib_dir: ?[]const u8, + main_pkg_path: ?[]const u8, + exec_cmd_args: ?[]const ?[]const u8, + name_prefix: []const u8, + filter: ?[]const u8, + single_threaded: bool, + + root_src: ?[]const u8, + out_h_filename: []const u8, + out_lib_filename: []const u8, + out_pdb_filename: []const u8, + packages: ArrayList(Pkg), + build_options_contents: std.Buffer, + system_linker_hack: bool, + + object_src: []const u8, + + link_objects: ArrayList(LinkObject), + include_dirs: ArrayList(IncludeDir), + c_macros: ArrayList([]const u8), + output_dir: ?[]const u8, + need_system_paths: bool, + is_linking_libc: bool = false, + + installed_path: ?[]const u8, + install_step: ?*InstallArtifactStep, + + libc_file: ?[]const u8 = null, + target_glibc: ?Version = null, + + valgrind_support: ?bool = null, + + /// Uses system Wine installation to run cross compiled Windows build artifacts. + enable_wine: bool = false, + + /// Uses system QEMU installation to run cross compiled foreign architecture build artifacts. + enable_qemu: bool = false, + + /// After following the steps in https://github.com/ziglang/zig/wiki/Updating-libc#glibc, + /// this will be the directory $glibc-build-dir/install/glibcs + /// Given the example of the aarch64 target, this is the directory + /// that contains the path `aarch64-linux-gnu/lib/ld-linux-aarch64.so.1`. + glibc_multi_install_dir: ?[]const u8 = null, + + dynamic_linker: ?[]const u8 = null, + + const LinkObject = union(enum) { + StaticPath: []const u8, + OtherStep: *LibExeObjStep, + SystemLib: []const u8, + AssemblyFile: []const u8, + CSourceFile: *CSourceFile, + }; + + const IncludeDir = union(enum) { + RawPath: []const u8, + OtherStep: *LibExeObjStep, + }; + + const Kind = enum { + Exe, + Lib, + Obj, + Test, + }; + + pub fn createSharedLibrary(builder: *Builder, name: []const u8, root_src: ?[]const u8, ver: Version) *LibExeObjStep { + const self = builder.allocator.create(LibExeObjStep) catch unreachable; + self.* = initExtraArgs(builder, name, root_src, Kind.Lib, true, ver); + return self; + } + + pub fn createStaticLibrary(builder: *Builder, name: []const u8, root_src: ?[]const u8) *LibExeObjStep { + const self = builder.allocator.create(LibExeObjStep) catch unreachable; + self.* = initExtraArgs(builder, name, root_src, Kind.Lib, false, builder.version(0, 0, 0)); + return self; + } + + pub fn createObject(builder: *Builder, name: []const u8, root_src: ?[]const u8) *LibExeObjStep { + const self = builder.allocator.create(LibExeObjStep) catch unreachable; + self.* = initExtraArgs(builder, name, root_src, Kind.Obj, false, builder.version(0, 0, 0)); + return self; + } + + pub fn createExecutable(builder: *Builder, name: []const u8, root_src: ?[]const u8, is_dynamic: bool) *LibExeObjStep { + const self = builder.allocator.create(LibExeObjStep) catch unreachable; + self.* = initExtraArgs(builder, name, root_src, Kind.Exe, is_dynamic, builder.version(0, 0, 0)); + return self; + } + + pub fn createTest(builder: *Builder, name: []const u8, root_src: []const u8) *LibExeObjStep { + const self = builder.allocator.create(LibExeObjStep) catch unreachable; + self.* = initExtraArgs(builder, name, root_src, Kind.Test, false, builder.version(0, 0, 0)); + return self; + } + + fn initExtraArgs(builder: *Builder, name: []const u8, root_src: ?[]const u8, kind: Kind, is_dynamic: bool, ver: Version) LibExeObjStep { + if (mem.indexOf(u8, name, "/") != null or mem.indexOf(u8, name, "\\") != null) { + panic("invalid name: '{}'. It looks like a file path, but it is supposed to be the library or application name.", name); + } + var self = LibExeObjStep{ + .strip = false, + .builder = builder, + .verbose_link = false, + .verbose_cc = false, + .build_mode = builtin.Mode.Debug, + .is_dynamic = is_dynamic, + .kind = kind, + .root_src = root_src, + .name = name, + .target = Target.Native, + .frameworks = BufSet.init(builder.allocator), + .step = Step.init(name, builder.allocator, make), + .version = ver, + .out_filename = undefined, + .out_h_filename = builder.fmt("{}.h", name), + .out_lib_filename = undefined, + .out_pdb_filename = builder.fmt("{}.pdb", name), + .major_only_filename = undefined, + .name_only_filename = undefined, + .packages = ArrayList(Pkg).init(builder.allocator), + .include_dirs = ArrayList(IncludeDir).init(builder.allocator), + .link_objects = ArrayList(LinkObject).init(builder.allocator), + .c_macros = ArrayList([]const u8).init(builder.allocator), + .lib_paths = ArrayList([]const u8).init(builder.allocator), + .framework_dirs = ArrayList([]const u8).init(builder.allocator), + .object_src = undefined, + .build_options_contents = std.Buffer.initSize(builder.allocator, 0) catch unreachable, + .c_std = Builder.CStd.C99, + .system_linker_hack = false, + .override_std_dir = null, + .override_lib_dir = null, + .main_pkg_path = null, + .exec_cmd_args = null, + .name_prefix = "", + .filter = null, + .disable_gen_h = false, + .bundle_compiler_rt = false, + .disable_stack_probing = false, + .output_dir = null, + .need_system_paths = false, + .single_threaded = false, + .installed_path = null, + .install_step = null, + }; + self.computeOutFileNames(); + return self; + } + + fn computeOutFileNames(self: *LibExeObjStep) void { + switch (self.kind) { + .Obj => { + self.out_filename = self.builder.fmt("{}{}", self.name, self.target.oFileExt()); + }, + .Exe => { + self.out_filename = self.builder.fmt("{}{}", self.name, self.target.exeFileExt()); + }, + .Test => { + self.out_filename = self.builder.fmt("test{}", self.target.exeFileExt()); + }, + .Lib => { + if (!self.is_dynamic) { + self.out_filename = self.builder.fmt( + "{}{}{}", + self.target.libPrefix(), + self.name, + self.target.staticLibSuffix(), + ); + self.out_lib_filename = self.out_filename; + } else { + if (self.target.isDarwin()) { + self.out_filename = self.builder.fmt("lib{}.{d}.{d}.{d}.dylib", self.name, self.version.major, self.version.minor, self.version.patch); + self.major_only_filename = self.builder.fmt("lib{}.{d}.dylib", self.name, self.version.major); + self.name_only_filename = self.builder.fmt("lib{}.dylib", self.name); + self.out_lib_filename = self.out_filename; + } else if (self.target.isWindows()) { + self.out_filename = self.builder.fmt("{}.dll", self.name); + self.out_lib_filename = self.builder.fmt("{}.lib", self.name); + } else { + self.out_filename = self.builder.fmt("lib{}.so.{d}.{d}.{d}", self.name, self.version.major, self.version.minor, self.version.patch); + self.major_only_filename = self.builder.fmt("lib{}.so.{d}", self.name, self.version.major); + self.name_only_filename = self.builder.fmt("lib{}.so", self.name); + self.out_lib_filename = self.out_filename; + } + } + }, + } + } + + /// Deprecated. Use `setTheTarget`. + pub fn setTarget( + self: *LibExeObjStep, + target_arch: builtin.Arch, + target_os: builtin.Os, + target_abi: builtin.Abi, + ) void { + return self.setTheTarget(Target{ + .Cross = CrossTarget{ + .arch = target_arch, + .os = target_os, + .abi = target_abi, + }, + }); + } + + pub fn setTheTarget(self: *LibExeObjStep, target: Target) void { + self.target = target; + self.computeOutFileNames(); + } + + pub fn setTargetGLibC(self: *LibExeObjStep, major: u32, minor: u32, patch: u32) void { + self.target_glibc = Version{ + .major = major, + .minor = minor, + .patch = patch, + }; + } + + pub fn setOutputDir(self: *LibExeObjStep, dir: []const u8) void { + self.output_dir = self.builder.dupePath(dir); + } + + pub fn install(self: *LibExeObjStep) void { + self.builder.installArtifact(self); + } + + /// Creates a `RunStep` with an executable built with `addExecutable`. + /// Add command line arguments with `addArg`. + pub fn run(exe: *LibExeObjStep) *RunStep { + assert(exe.kind == Kind.Exe); + + // It doesn't have to be native. We catch that if you actually try to run it. + // Consider that this is declarative; the run step may not be run unless a user + // option is supplied. + const run_step = RunStep.create(exe.builder, exe.builder.fmt("run {}", exe.step.name)); + run_step.addArtifactArg(exe); + return run_step; + } + + pub fn setLinkerScriptPath(self: *LibExeObjStep, path: []const u8) void { + self.linker_script = path; + } + + pub fn linkFramework(self: *LibExeObjStep, framework_name: []const u8) void { + assert(self.target.isDarwin()); + self.frameworks.put(framework_name) catch unreachable; + } + + /// Returns whether the library, executable, or object depends on a particular system library. + pub fn dependsOnSystemLibrary(self: LibExeObjStep, name: []const u8) bool { + if (isLibCLibrary(name)) { + return self.is_linking_libc; + } + for (self.link_objects.toSliceConst()) |link_object| { + switch (link_object) { + LinkObject.SystemLib => |n| if (mem.eql(u8, n, name)) return true, + else => continue, + } + } + return false; + } + + pub fn linkLibrary(self: *LibExeObjStep, lib: *LibExeObjStep) void { + assert(lib.kind == Kind.Lib); + self.linkLibraryOrObject(lib); + } + + pub fn isDynamicLibrary(self: *LibExeObjStep) bool { + return self.kind == Kind.Lib and self.is_dynamic; + } + + pub fn producesPdbFile(self: *LibExeObjStep) bool { + if (!self.target.isWindows() and !self.target.isUefi()) return false; + if (self.strip) return false; + return self.isDynamicLibrary() or self.kind == .Exe; + } + + pub fn linkLibC(self: *LibExeObjStep) void { + if (!self.is_linking_libc) { + self.is_linking_libc = true; + self.link_objects.append(LinkObject{ .SystemLib = "c" }) catch unreachable; + } + } + + /// name_and_value looks like [name]=[value]. If the value is omitted, it is set to 1. + pub fn defineCMacro(self: *LibExeObjStep, name_and_value: []const u8) void { + self.c_macros.append(self.builder.dupe(name_and_value)) catch unreachable; + } + + /// This one has no integration with anything, it just puts -lname on the command line. + /// Prefer to use `linkSystemLibrary` instead. + pub fn linkSystemLibraryName(self: *LibExeObjStep, name: []const u8) void { + self.link_objects.append(LinkObject{ .SystemLib = self.builder.dupe(name) }) catch unreachable; + self.need_system_paths = true; + } + + /// This links against a system library, exclusively using pkg-config to find the library. + /// Prefer to use `linkSystemLibrary` instead. + pub fn linkSystemLibraryPkgConfigOnly(self: *LibExeObjStep, lib_name: []const u8) !void { + const pkg_name = match: { + // First we have to map the library name to pkg config name. Unfortunately, + // there are several examples where this is not straightforward: + // -lSDL2 -> pkg-config sdl2 + // -lgdk-3 -> pkg-config gdk-3.0 + // -latk-1.0 -> pkg-config atk + const pkgs = try self.builder.getPkgConfigList(); + + // Exact match means instant winner. + for (pkgs) |pkg| { + if (mem.eql(u8, pkg.name, lib_name)) { + break :match pkg.name; + } + } + + // Next we'll try ignoring case. + for (pkgs) |pkg| { + if (std.ascii.eqlIgnoreCase(pkg.name, lib_name)) { + break :match pkg.name; + } + } + + // Now try appending ".0". + for (pkgs) |pkg| { + if (std.ascii.indexOfIgnoreCase(pkg.name, lib_name)) |pos| { + if (pos != 0) continue; + if (mem.eql(u8, pkg.name[lib_name.len..], ".0")) { + break :match pkg.name; + } + } + } + + // Trimming "-1.0". + if (mem.endsWith(u8, lib_name, "-1.0")) { + const trimmed_lib_name = lib_name[0 .. lib_name.len - "-1.0".len]; + for (pkgs) |pkg| { + if (std.ascii.eqlIgnoreCase(pkg.name, trimmed_lib_name)) { + break :match pkg.name; + } + } + } + + return error.PackageNotFound; + }; + + var code: u8 = undefined; + const stdout = if (self.builder.execAllowFail([_][]const u8{ + "pkg-config", + pkg_name, + "--cflags", + "--libs", + }, &code, .Ignore)) |stdout| stdout else |err| switch (err) { + error.ProcessTerminated => return error.PkgConfigCrashed, + error.ExitCodeFailure => return error.PkgConfigFailed, + error.FileNotFound => return error.PkgConfigNotInstalled, + else => return err, + }; + var it = mem.tokenize(stdout, " \r\n\t"); + while (it.next()) |tok| { + if (mem.eql(u8, tok, "-I")) { + const dir = it.next() orelse return error.PkgConfigInvalidOutput; + self.addIncludeDir(dir); + } else if (mem.startsWith(u8, tok, "-I")) { + self.addIncludeDir(tok["-I".len..]); + } else if (mem.eql(u8, tok, "-L")) { + const dir = it.next() orelse return error.PkgConfigInvalidOutput; + self.addLibPath(dir); + } else if (mem.startsWith(u8, tok, "-L")) { + self.addLibPath(tok["-L".len..]); + } else if (mem.eql(u8, tok, "-l")) { + const lib = it.next() orelse return error.PkgConfigInvalidOutput; + self.linkSystemLibraryName(lib); + } else if (mem.startsWith(u8, tok, "-l")) { + self.linkSystemLibraryName(tok["-l".len..]); + } else if (mem.eql(u8, tok, "-D")) { + const macro = it.next() orelse return error.PkgConfigInvalidOutput; + self.defineCMacro(macro); + } else if (mem.startsWith(u8, tok, "-D")) { + self.defineCMacro(tok["-D".len..]); + } else if (mem.eql(u8, tok, "-pthread")) { + self.linkLibC(); + } else if (self.builder.verbose) { + warn("Ignoring pkg-config flag '{}'\n", tok); + } + } + } + + pub fn linkSystemLibrary(self: *LibExeObjStep, name: []const u8) void { + if (isLibCLibrary(name)) { + self.linkLibC(); + return; + } + if (self.linkSystemLibraryPkgConfigOnly(name)) |_| { + // pkg-config worked, so nothing further needed to do. + return; + } else |err| switch (err) { + error.PkgConfigInvalidOutput, + error.PkgConfigCrashed, + error.PkgConfigFailed, + error.PkgConfigNotInstalled, + error.PackageNotFound, + => {}, + + else => unreachable, + } + + self.linkSystemLibraryName(name); + } + + pub fn setNamePrefix(self: *LibExeObjStep, text: []const u8) void { + assert(self.kind == Kind.Test); + self.name_prefix = text; + } + + pub fn setFilter(self: *LibExeObjStep, text: ?[]const u8) void { + assert(self.kind == Kind.Test); + self.filter = text; + } + + pub fn addCSourceFile(self: *LibExeObjStep, file: []const u8, args: []const []const u8) void { + const c_source_file = self.builder.allocator.create(CSourceFile) catch unreachable; + const args_copy = self.builder.allocator.alloc([]u8, args.len) catch unreachable; + for (args) |arg, i| { + args_copy[i] = self.builder.dupe(arg); + } + c_source_file.* = CSourceFile{ + .source_path = self.builder.dupe(file), + .args = args_copy, + }; + self.link_objects.append(LinkObject{ .CSourceFile = c_source_file }) catch unreachable; + } + + pub fn setVerboseLink(self: *LibExeObjStep, value: bool) void { + self.verbose_link = value; + } + + pub fn setVerboseCC(self: *LibExeObjStep, value: bool) void { + self.verbose_cc = value; + } + + pub fn setBuildMode(self: *LibExeObjStep, mode: builtin.Mode) void { + self.build_mode = mode; + } + + pub fn overrideStdDir(self: *LibExeObjStep, dir_path: []const u8) void { + self.override_std_dir = dir_path; + } + + pub fn setMainPkgPath(self: *LibExeObjStep, dir_path: []const u8) void { + self.main_pkg_path = dir_path; + } + + pub fn setDisableGenH(self: *LibExeObjStep, value: bool) void { + self.disable_gen_h = value; + } + + pub fn setLibCFile(self: *LibExeObjStep, libc_file: ?[]const u8) void { + self.libc_file = libc_file; + } + + /// Unless setOutputDir was called, this function must be called only in + /// the make step, from a step that has declared a dependency on this one. + /// To run an executable built with zig build, use `run`, or create an install step and invoke it. + pub fn getOutputPath(self: *LibExeObjStep) []const u8 { + return fs.path.join( + self.builder.allocator, + [_][]const u8{ self.output_dir.?, self.out_filename }, + ) catch unreachable; + } + + /// Unless setOutputDir was called, this function must be called only in + /// the make step, from a step that has declared a dependency on this one. + pub fn getOutputLibPath(self: *LibExeObjStep) []const u8 { + assert(self.kind == Kind.Lib); + return fs.path.join( + self.builder.allocator, + [_][]const u8{ self.output_dir.?, self.out_lib_filename }, + ) catch unreachable; + } + + /// Unless setOutputDir was called, this function must be called only in + /// the make step, from a step that has declared a dependency on this one. + pub fn getOutputHPath(self: *LibExeObjStep) []const u8 { + assert(self.kind != Kind.Exe); + assert(!self.disable_gen_h); + return fs.path.join( + self.builder.allocator, + [_][]const u8{ self.output_dir.?, self.out_h_filename }, + ) catch unreachable; + } + + /// Unless setOutputDir was called, this function must be called only in + /// the make step, from a step that has declared a dependency on this one. + pub fn getOutputPdbPath(self: *LibExeObjStep) []const u8 { + assert(self.target.isWindows() or self.target.isUefi()); + return fs.path.join( + self.builder.allocator, + [_][]const u8{ self.output_dir.?, self.out_pdb_filename }, + ) catch unreachable; + } + + pub fn addAssemblyFile(self: *LibExeObjStep, path: []const u8) void { + self.link_objects.append(LinkObject{ .AssemblyFile = self.builder.dupe(path) }) catch unreachable; + } + + pub fn addObjectFile(self: *LibExeObjStep, path: []const u8) void { + self.link_objects.append(LinkObject{ .StaticPath = self.builder.dupe(path) }) catch unreachable; + } + + pub fn addObject(self: *LibExeObjStep, obj: *LibExeObjStep) void { + assert(obj.kind == Kind.Obj); + self.linkLibraryOrObject(obj); + } + + pub fn addBuildOption(self: *LibExeObjStep, comptime T: type, name: []const u8, value: T) void { + const out = &std.io.BufferOutStream.init(&self.build_options_contents).stream; + out.print("pub const {} = {};\n", name, value) catch unreachable; + } + + pub fn addIncludeDir(self: *LibExeObjStep, path: []const u8) void { + self.include_dirs.append(IncludeDir{ .RawPath = self.builder.dupe(path) }) catch unreachable; + } + + pub fn addLibPath(self: *LibExeObjStep, path: []const u8) void { + self.lib_paths.append(path) catch unreachable; + } + + pub fn addFrameworkDir(self: *LibExeObjStep, dir_path: []const u8) void { + self.framework_dirs.append(dir_path) catch unreachable; + } + + pub fn addPackagePath(self: *LibExeObjStep, name: []const u8, pkg_index_path: []const u8) void { + self.packages.append(Pkg{ + .name = name, + .path = pkg_index_path, + }) catch unreachable; + } + + pub fn setExecCmd(self: *LibExeObjStep, args: []const ?[]const u8) void { + assert(self.kind == Kind.Test); + self.exec_cmd_args = args; + } + + pub fn enableSystemLinkerHack(self: *LibExeObjStep) void { + self.system_linker_hack = true; + } + + fn linkLibraryOrObject(self: *LibExeObjStep, other: *LibExeObjStep) void { + self.step.dependOn(&other.step); + self.link_objects.append(LinkObject{ .OtherStep = other }) catch unreachable; + self.include_dirs.append(IncludeDir{ .OtherStep = other }) catch unreachable; + + // Inherit dependency on system libraries + for (other.link_objects.toSliceConst()) |link_object| { + switch (link_object) { + .SystemLib => |name| self.linkSystemLibrary(name), + else => continue, + } + } + + // Inherit dependencies on darwin frameworks + if (self.target.isDarwin() and !other.isDynamicLibrary()) { + var it = other.frameworks.iterator(); + while (it.next()) |entry| { + self.frameworks.put(entry.key) catch unreachable; + } + } + } + + fn make(step: *Step) !void { + const self = @fieldParentPtr(LibExeObjStep, "step", step); + const builder = self.builder; + + if (self.root_src == null and self.link_objects.len == 0) { + warn("{}: linker needs 1 or more objects to link\n", self.step.name); + return error.NeedAnObject; + } + + var zig_args = ArrayList([]const u8).init(builder.allocator); + defer zig_args.deinit(); + + zig_args.append(builder.zig_exe) catch unreachable; + + const cmd = switch (self.kind) { + Kind.Lib => "build-lib", + Kind.Exe => "build-exe", + Kind.Obj => "build-obj", + Kind.Test => "test", + }; + zig_args.append(cmd) catch unreachable; + + if (self.root_src) |root_src| { + zig_args.append(builder.pathFromRoot(root_src)) catch unreachable; + } + + for (self.link_objects.toSlice()) |link_object| { + switch (link_object) { + LinkObject.StaticPath => |static_path| { + try zig_args.append("--object"); + try zig_args.append(builder.pathFromRoot(static_path)); + }, + + LinkObject.OtherStep => |other| switch (other.kind) { + LibExeObjStep.Kind.Exe => unreachable, + LibExeObjStep.Kind.Test => unreachable, + LibExeObjStep.Kind.Obj => { + try zig_args.append("--object"); + try zig_args.append(other.getOutputPath()); + }, + LibExeObjStep.Kind.Lib => { + if (!other.is_dynamic or self.target.isWindows()) { + try zig_args.append("--object"); + try zig_args.append(other.getOutputLibPath()); + } else { + const full_path_lib = other.getOutputPath(); + try zig_args.append("--library"); + try zig_args.append(full_path_lib); + + if (fs.path.dirname(full_path_lib)) |dirname| { + try zig_args.append("-rpath"); + try zig_args.append(dirname); + } + } + }, + }, + LinkObject.SystemLib => |name| { + try zig_args.append("--library"); + try zig_args.append(name); + }, + LinkObject.AssemblyFile => |asm_file| { + try zig_args.append("--c-source"); + try zig_args.append(builder.pathFromRoot(asm_file)); + }, + LinkObject.CSourceFile => |c_source_file| { + try zig_args.append("--c-source"); + for (c_source_file.args) |arg| { + try zig_args.append(arg); + } + try zig_args.append(self.builder.pathFromRoot(c_source_file.source_path)); + }, + } + } + + if (self.build_options_contents.len() > 0) { + const build_options_file = try fs.path.join( + builder.allocator, + [_][]const u8{ builder.cache_root, builder.fmt("{}_build_options.zig", self.name) }, + ); + try std.io.writeFile(build_options_file, self.build_options_contents.toSliceConst()); + try zig_args.append("--pkg-begin"); + try zig_args.append("build_options"); + try zig_args.append(builder.pathFromRoot(build_options_file)); + try zig_args.append("--pkg-end"); + } + + if (self.filter) |filter| { + try zig_args.append("--test-filter"); + try zig_args.append(filter); + } + + if (self.name_prefix.len != 0) { + try zig_args.append("--test-name-prefix"); + try zig_args.append(self.name_prefix); + } + + if (builder.verbose_tokenize) zig_args.append("--verbose-tokenize") catch unreachable; + if (builder.verbose_ast) zig_args.append("--verbose-ast") catch unreachable; + if (builder.verbose_cimport) zig_args.append("--verbose-cimport") catch unreachable; + if (builder.verbose_ir) zig_args.append("--verbose-ir") catch unreachable; + if (builder.verbose_llvm_ir) zig_args.append("--verbose-llvm-ir") catch unreachable; + if (builder.verbose_link or self.verbose_link) zig_args.append("--verbose-link") catch unreachable; + if (builder.verbose_cc or self.verbose_cc) zig_args.append("--verbose-cc") catch unreachable; + + if (self.strip) { + zig_args.append("--strip") catch unreachable; + } + + if (self.single_threaded) { + try zig_args.append("--single-threaded"); + } + + if (self.libc_file) |libc_file| { + try zig_args.append("--libc"); + try zig_args.append(builder.pathFromRoot(libc_file)); + } + + switch (self.build_mode) { + builtin.Mode.Debug => {}, + builtin.Mode.ReleaseSafe => zig_args.append("--release-safe") catch unreachable, + builtin.Mode.ReleaseFast => zig_args.append("--release-fast") catch unreachable, + builtin.Mode.ReleaseSmall => zig_args.append("--release-small") catch unreachable, + } + + try zig_args.append("--cache-dir"); + try zig_args.append(builder.pathFromRoot(builder.cache_root)); + + zig_args.append("--name") catch unreachable; + zig_args.append(self.name) catch unreachable; + + if (self.kind == Kind.Lib and self.is_dynamic) { + zig_args.append("--ver-major") catch unreachable; + zig_args.append(builder.fmt("{}", self.version.major)) catch unreachable; + + zig_args.append("--ver-minor") catch unreachable; + zig_args.append(builder.fmt("{}", self.version.minor)) catch unreachable; + + zig_args.append("--ver-patch") catch unreachable; + zig_args.append(builder.fmt("{}", self.version.patch)) catch unreachable; + } + if (self.is_dynamic) { + try zig_args.append("-dynamic"); + } + if (self.disable_gen_h) { + try zig_args.append("--disable-gen-h"); + } + if (self.bundle_compiler_rt) { + try zig_args.append("--bundle-compiler-rt"); + } + if (self.disable_stack_probing) { + try zig_args.append("-fno-stack-check"); + } + + switch (self.target) { + Target.Native => {}, + Target.Cross => { + try zig_args.append("-target"); + try zig_args.append(self.target.zigTriple(builder.allocator) catch unreachable); + }, + } + + if (self.target_glibc) |ver| { + try zig_args.append("-target-glibc"); + try zig_args.append(builder.fmt("{}.{}.{}", ver.major, ver.minor, ver.patch)); + } + + if (self.linker_script) |linker_script| { + zig_args.append("--linker-script") catch unreachable; + zig_args.append(builder.pathFromRoot(linker_script)) catch unreachable; + } + + if (self.dynamic_linker) |dynamic_linker| { + try zig_args.append("--dynamic-linker"); + try zig_args.append(dynamic_linker); + } + + if (self.version_script) |version_script| { + try zig_args.append("--version-script"); + try zig_args.append(builder.pathFromRoot(version_script)); + } + + if (self.exec_cmd_args) |exec_cmd_args| { + for (exec_cmd_args) |cmd_arg| { + if (cmd_arg) |arg| { + try zig_args.append("--test-cmd"); + try zig_args.append(arg); + } else { + try zig_args.append("--test-cmd-bin"); + } + } + } else switch (self.target.getExternalExecutor()) { + .native, .unavailable => {}, + .qemu => |bin_name| if (self.enable_qemu) qemu: { + const need_cross_glibc = self.target.isGnu() and self.target.isLinux() and self.is_linking_libc; + const glibc_dir_arg = if (need_cross_glibc) + self.glibc_multi_install_dir orelse break :qemu + else + null; + try zig_args.append("--test-cmd"); + try zig_args.append(bin_name); + if (glibc_dir_arg) |dir| { + const full_dir = try fs.path.join(builder.allocator, [_][]const u8{ + dir, + try self.target.linuxTriple(builder.allocator), + }); + + try zig_args.append("--test-cmd"); + try zig_args.append("-L"); + try zig_args.append("--test-cmd"); + try zig_args.append(full_dir); + } + try zig_args.append("--test-cmd-bin"); + }, + .wine => |bin_name| if (self.enable_wine) { + try zig_args.append("--test-cmd"); + try zig_args.append(bin_name); + try zig_args.append("--test-cmd-bin"); + }, + } + for (self.packages.toSliceConst()) |pkg| { + zig_args.append("--pkg-begin") catch unreachable; + zig_args.append(pkg.name) catch unreachable; + zig_args.append(builder.pathFromRoot(pkg.path)) catch unreachable; + zig_args.append("--pkg-end") catch unreachable; + } + + for (self.include_dirs.toSliceConst()) |include_dir| { + switch (include_dir) { + IncludeDir.RawPath => |include_path| { + try zig_args.append("-isystem"); + try zig_args.append(self.builder.pathFromRoot(include_path)); + }, + IncludeDir.OtherStep => |other| { + const h_path = other.getOutputHPath(); + try zig_args.append("-isystem"); + try zig_args.append(fs.path.dirname(h_path).?); + }, + } + } + + for (self.lib_paths.toSliceConst()) |lib_path| { + try zig_args.append("-L"); + try zig_args.append(lib_path); + } + + if (self.need_system_paths and self.target == Target.Native) { + for (builder.native_system_include_dirs.toSliceConst()) |include_path| { + zig_args.append("-isystem") catch unreachable; + zig_args.append(builder.pathFromRoot(include_path)) catch unreachable; + } + + for (builder.native_system_rpaths.toSliceConst()) |rpath| { + zig_args.append("-rpath") catch unreachable; + zig_args.append(rpath) catch unreachable; + } + + for (builder.native_system_lib_paths.toSliceConst()) |lib_path| { + zig_args.append("--library-path") catch unreachable; + zig_args.append(lib_path) catch unreachable; + } + } + + for (self.c_macros.toSliceConst()) |c_macro| { + try zig_args.append("-D"); + try zig_args.append(c_macro); + } + + if (self.target.isDarwin()) { + for (self.framework_dirs.toSliceConst()) |dir| { + try zig_args.append("-F"); + try zig_args.append(dir); + } + + var it = self.frameworks.iterator(); + while (it.next()) |entry| { + zig_args.append("-framework") catch unreachable; + zig_args.append(entry.key) catch unreachable; + } + } + + if (self.system_linker_hack) { + try zig_args.append("--system-linker-hack"); + } + + if (self.valgrind_support) |valgrind_support| { + if (valgrind_support) { + try zig_args.append("--enable-valgrind"); + } else { + try zig_args.append("--disable-valgrind"); + } + } + + if (self.override_std_dir) |dir| { + try zig_args.append("--override-std-dir"); + try zig_args.append(builder.pathFromRoot(dir)); + } else if (self.builder.override_std_dir) |dir| { + try zig_args.append("--override-std-dir"); + try zig_args.append(builder.pathFromRoot(dir)); + } + + if (self.override_lib_dir) |dir| { + try zig_args.append("--override-lib-dir"); + try zig_args.append(builder.pathFromRoot(dir)); + } else if (self.builder.override_lib_dir) |dir| { + try zig_args.append("--override-lib-dir"); + try zig_args.append(builder.pathFromRoot(dir)); + } + + if (self.main_pkg_path) |dir| { + try zig_args.append("--main-pkg-path"); + try zig_args.append(builder.pathFromRoot(dir)); + } + + if (self.kind == Kind.Test) { + try builder.spawnChild(zig_args.toSliceConst()); + } else { + try zig_args.append("--cache"); + try zig_args.append("on"); + + const output_path_nl = try builder.exec(zig_args.toSliceConst()); + const output_path = mem.trimRight(u8, output_path_nl, "\r\n"); + + if (self.output_dir) |output_dir| { + const full_dest = try fs.path.join(builder.allocator, [_][]const u8{ + output_dir, + fs.path.basename(output_path), + }); + try builder.updateFile(output_path, full_dest); + } else { + self.output_dir = fs.path.dirname(output_path).?; + } + } + + if (self.kind == Kind.Lib and self.is_dynamic and self.target.wantSharedLibSymLinks()) { + try doAtomicSymLinks(builder.allocator, self.getOutputPath(), self.major_only_filename, self.name_only_filename); + } + } +}; + +pub const RunStep = struct { + step: Step, + builder: *Builder, + + /// See also addArg and addArgs to modifying this directly + argv: ArrayList(Arg), + + /// Set this to modify the current working directory + cwd: ?[]const u8, + + /// Override this field to modify the environment, or use setEnvironmentVariable + env_map: ?*BufMap, + + pub const Arg = union(enum) { + Artifact: *LibExeObjStep, + Bytes: []u8, + }; + + pub fn create(builder: *Builder, name: []const u8) *RunStep { + const self = builder.allocator.create(RunStep) catch unreachable; + self.* = RunStep{ + .builder = builder, + .step = Step.init(name, builder.allocator, make), + .argv = ArrayList(Arg).init(builder.allocator), + .cwd = null, + .env_map = null, + }; + return self; + } + + pub fn addArtifactArg(self: *RunStep, artifact: *LibExeObjStep) void { + self.argv.append(Arg{ .Artifact = artifact }) catch unreachable; + self.step.dependOn(&artifact.step); + } + + pub fn addArg(self: *RunStep, arg: []const u8) void { + self.argv.append(Arg{ .Bytes = self.builder.dupe(arg) }) catch unreachable; + } + + pub fn addArgs(self: *RunStep, args: []const []const u8) void { + for (args) |arg| { + self.addArg(arg); + } + } + + pub fn clearEnvironment(self: *RunStep) void { + const new_env_map = self.builder.allocator.create(BufMap) catch unreachable; + new_env_map.* = BufMap.init(self.builder.allocator); + self.env_map = new_env_map; + } + + pub fn addPathDir(self: *RunStep, search_path: []const u8) void { + const PATH = if (std.os.windows.is_the_target) "Path" else "PATH"; + const env_map = self.getEnvMap(); + const prev_path = env_map.get(PATH) orelse { + env_map.set(PATH, search_path) catch unreachable; + return; + }; + const new_path = self.builder.fmt("{}" ++ [1]u8{fs.path.delimiter} ++ "{}", prev_path, search_path); + env_map.set(PATH, new_path) catch unreachable; + } + + pub fn getEnvMap(self: *RunStep) *BufMap { + return self.env_map orelse { + const env_map = self.builder.allocator.create(BufMap) catch unreachable; + env_map.* = process.getEnvMap(self.builder.allocator) catch unreachable; + self.env_map = env_map; + return env_map; + }; + } + + pub fn setEnvironmentVariable(self: *RunStep, key: []const u8, value: []const u8) void { + const env_map = self.getEnvMap(); + env_map.set(key, value) catch unreachable; + } + + fn make(step: *Step) !void { + const self = @fieldParentPtr(RunStep, "step", step); + + const cwd = if (self.cwd) |cwd| self.builder.pathFromRoot(cwd) else self.builder.build_root; + + var argv = ArrayList([]const u8).init(self.builder.allocator); + for (self.argv.toSlice()) |arg| { + switch (arg) { + Arg.Bytes => |bytes| try argv.append(bytes), + Arg.Artifact => |artifact| { + if (artifact.target.isWindows()) { + // On Windows we don't have rpaths so we have to add .dll search paths to PATH + self.addPathForDynLibs(artifact); + } + const executable_path = artifact.installed_path orelse artifact.getOutputPath(); + try argv.append(executable_path); + }, + } + } + + return self.builder.spawnChildEnvMap(cwd, self.env_map orelse self.builder.env_map, argv.toSliceConst()); + } + + fn addPathForDynLibs(self: *RunStep, artifact: *LibExeObjStep) void { + for (artifact.link_objects.toSliceConst()) |link_object| { + switch (link_object) { + LibExeObjStep.LinkObject.OtherStep => |other| { + if (other.target.isWindows() and other.isDynamicLibrary()) { + self.addPathDir(fs.path.dirname(other.getOutputPath()).?); + self.addPathForDynLibs(other); + } + }, + else => {}, + } + } + } +}; + +const InstallArtifactStep = struct { + step: Step, + builder: *Builder, + artifact: *LibExeObjStep, + dest_dir: InstallDir, + pdb_dir: ?InstallDir, + + const Self = @This(); + + pub fn create(builder: *Builder, artifact: *LibExeObjStep) *Self { + if (artifact.install_step) |s| return s; + + const self = builder.allocator.create(Self) catch unreachable; + self.* = Self{ + .builder = builder, + .step = Step.init(builder.fmt("install {}", artifact.step.name), builder.allocator, make), + .artifact = artifact, + .dest_dir = switch (artifact.kind) { + .Obj => unreachable, + .Test => unreachable, + .Exe => InstallDir.Bin, + .Lib => InstallDir.Lib, + }, + .pdb_dir = if (artifact.producesPdbFile()) blk: { + if (artifact.kind == .Exe) { + break :blk InstallDir.Bin; + } else { + break :blk InstallDir.Lib; + } + } else null, + }; + self.step.dependOn(&artifact.step); + artifact.install_step = self; + + builder.pushInstalledFile(self.dest_dir, artifact.out_filename); + if (self.artifact.isDynamicLibrary()) { + builder.pushInstalledFile(.Lib, artifact.major_only_filename); + builder.pushInstalledFile(.Lib, artifact.name_only_filename); + } + if (self.pdb_dir) |pdb_dir| { + builder.pushInstalledFile(pdb_dir, artifact.out_pdb_filename); + } + return self; + } + + fn make(step: *Step) !void { + const self = @fieldParentPtr(Self, "step", step); + const builder = self.builder; + + const full_dest_path = builder.getInstallPath(self.dest_dir, self.artifact.out_filename); + try builder.updateFile(self.artifact.getOutputPath(), full_dest_path); + if (self.artifact.isDynamicLibrary()) { + try doAtomicSymLinks(builder.allocator, full_dest_path, self.artifact.major_only_filename, self.artifact.name_only_filename); + } + if (self.pdb_dir) |pdb_dir| { + const full_pdb_path = builder.getInstallPath(pdb_dir, self.artifact.out_pdb_filename); + try builder.updateFile(self.artifact.getOutputPdbPath(), full_pdb_path); + } + self.artifact.installed_path = full_dest_path; + } +}; + +pub const InstallFileStep = struct { + step: Step, + builder: *Builder, + src_path: []const u8, + dir: InstallDir, + dest_rel_path: []const u8, + + pub fn init( + builder: *Builder, + src_path: []const u8, + dir: InstallDir, + dest_rel_path: []const u8, + ) InstallFileStep { + builder.pushInstalledFile(dir, dest_rel_path); + return InstallFileStep{ + .builder = builder, + .step = Step.init(builder.fmt("install {}", src_path), builder.allocator, make), + .src_path = src_path, + .dir = dir, + .dest_rel_path = dest_rel_path, + }; + } + + fn make(step: *Step) !void { + const self = @fieldParentPtr(InstallFileStep, "step", step); + const full_dest_path = self.builder.getInstallPath(self.dir, self.dest_rel_path); + const full_src_path = self.builder.pathFromRoot(self.src_path); + try self.builder.updateFile(full_src_path, full_dest_path); + } +}; + +pub const InstallDirectoryOptions = struct { + source_dir: []const u8, + install_dir: InstallDir, + install_subdir: []const u8, + exclude_extensions: ?[]const []const u8 = null, +}; + +pub const InstallDirStep = struct { + step: Step, + builder: *Builder, + options: InstallDirectoryOptions, + + pub fn init( + builder: *Builder, + options: InstallDirectoryOptions, + ) InstallDirStep { + builder.pushInstalledFile(options.install_dir, options.install_subdir); + return InstallDirStep{ + .builder = builder, + .step = Step.init(builder.fmt("install {}/", options.source_dir), builder.allocator, make), + .options = options, + }; + } + + fn make(step: *Step) !void { + const self = @fieldParentPtr(InstallDirStep, "step", step); + const dest_prefix = self.builder.getInstallPath(self.options.install_dir, self.options.install_subdir); + const full_src_dir = self.builder.pathFromRoot(self.options.source_dir); + var it = try fs.walkPath(self.builder.allocator, full_src_dir); + next_entry: while (try it.next()) |entry| { + if (self.options.exclude_extensions) |ext_list| for (ext_list) |ext| { + if (mem.endsWith(u8, entry.path, ext)) { + continue :next_entry; + } + }; + + const rel_path = entry.path[full_src_dir.len + 1 ..]; + const dest_path = try fs.path.join(self.builder.allocator, [_][]const u8{ dest_prefix, rel_path }); + switch (entry.kind) { + .Directory => try fs.makePath(self.builder.allocator, dest_path), + .File => try self.builder.updateFile(entry.path, dest_path), + else => continue, + } + } + } +}; + +pub const WriteFileStep = struct { + step: Step, + builder: *Builder, + file_path: []const u8, + data: []const u8, + + pub fn init(builder: *Builder, file_path: []const u8, data: []const u8) WriteFileStep { + return WriteFileStep{ + .builder = builder, + .step = Step.init(builder.fmt("writefile {}", file_path), builder.allocator, make), + .file_path = file_path, + .data = data, + }; + } + + fn make(step: *Step) !void { + const self = @fieldParentPtr(WriteFileStep, "step", step); + const full_path = self.builder.pathFromRoot(self.file_path); + const full_path_dir = fs.path.dirname(full_path) orelse "."; + fs.makePath(self.builder.allocator, full_path_dir) catch |err| { + warn("unable to make path {}: {}\n", full_path_dir, @errorName(err)); + return err; + }; + io.writeFile(full_path, self.data) catch |err| { + warn("unable to write {}: {}\n", full_path, @errorName(err)); + return err; + }; + } +}; + +pub const LogStep = struct { + step: Step, + builder: *Builder, + data: []const u8, + + pub fn init(builder: *Builder, data: []const u8) LogStep { + return LogStep{ + .builder = builder, + .step = Step.init(builder.fmt("log {}", data), builder.allocator, make), + .data = data, + }; + } + + fn make(step: *Step) anyerror!void { + const self = @fieldParentPtr(LogStep, "step", step); + warn("{}", self.data); + } +}; + +pub const RemoveDirStep = struct { + step: Step, + builder: *Builder, + dir_path: []const u8, + + pub fn init(builder: *Builder, dir_path: []const u8) RemoveDirStep { + return RemoveDirStep{ + .builder = builder, + .step = Step.init(builder.fmt("RemoveDir {}", dir_path), builder.allocator, make), + .dir_path = dir_path, + }; + } + + fn make(step: *Step) !void { + const self = @fieldParentPtr(RemoveDirStep, "step", step); + + const full_path = self.builder.pathFromRoot(self.dir_path); + fs.deleteTree(self.builder.allocator, full_path) catch |err| { + warn("Unable to remove {}: {}\n", full_path, @errorName(err)); + return err; + }; + } +}; + +pub const Step = struct { + name: []const u8, + makeFn: fn (self: *Step) anyerror!void, + dependencies: ArrayList(*Step), + loop_flag: bool, + done_flag: bool, + + pub fn init(name: []const u8, allocator: *Allocator, makeFn: fn (*Step) anyerror!void) Step { + return Step{ + .name = name, + .makeFn = makeFn, + .dependencies = ArrayList(*Step).init(allocator), + .loop_flag = false, + .done_flag = false, + }; + } + pub fn initNoOp(name: []const u8, allocator: *Allocator) Step { + return init(name, allocator, makeNoOp); + } + + pub fn make(self: *Step) !void { + if (self.done_flag) return; + + try self.makeFn(self); + self.done_flag = true; + } + + pub fn dependOn(self: *Step, other: *Step) void { + self.dependencies.append(other) catch unreachable; + } + + fn makeNoOp(self: *Step) anyerror!void {} +}; + +fn doAtomicSymLinks(allocator: *Allocator, output_path: []const u8, filename_major_only: []const u8, filename_name_only: []const u8) !void { + const out_dir = fs.path.dirname(output_path) orelse "."; + const out_basename = fs.path.basename(output_path); + // sym link for libfoo.so.1 to libfoo.so.1.2.3 + const major_only_path = fs.path.join( + allocator, + [_][]const u8{ out_dir, filename_major_only }, + ) catch unreachable; + fs.atomicSymLink(allocator, out_basename, major_only_path) catch |err| { + warn("Unable to symlink {} -> {}\n", major_only_path, out_basename); + return err; + }; + // sym link for libfoo.so to libfoo.so.1 + const name_only_path = fs.path.join( + allocator, + [_][]const u8{ out_dir, filename_name_only }, + ) catch unreachable; + fs.atomicSymLink(allocator, filename_major_only, name_only_path) catch |err| { + warn("Unable to symlink {} -> {}\n", name_only_path, filename_major_only); + return err; + }; +} + +pub const InstallDir = enum { + Prefix, + Lib, + Bin, +}; + +pub const InstalledFile = struct { + dir: InstallDir, + path: []const u8, +}; diff --git a/lib/std/build/fmt.zig b/lib/std/build/fmt.zig new file mode 100644 index 0000000000..f3b8e08180 --- /dev/null +++ b/lib/std/build/fmt.zig @@ -0,0 +1,35 @@ +const std = @import("../std.zig"); +const build = @import("../build.zig"); +const Step = build.Step; +const Builder = build.Builder; +const BufMap = std.BufMap; +const mem = std.mem; + +pub const FmtStep = struct { + step: Step, + builder: *Builder, + argv: [][]const u8, + + pub fn create(builder: *Builder, paths: []const []const u8) *FmtStep { + const self = builder.allocator.create(FmtStep) catch unreachable; + const name = "zig fmt"; + self.* = FmtStep{ + .step = Step.init(name, builder.allocator, make), + .builder = builder, + .argv = builder.allocator.alloc([]u8, paths.len + 2) catch unreachable, + }; + + self.argv[0] = builder.zig_exe; + self.argv[1] = "fmt"; + for (paths) |path, i| { + self.argv[2 + i] = builder.pathFromRoot(path); + } + return self; + } + + fn make(step: *Step) !void { + const self = @fieldParentPtr(FmtStep, "step", step); + + return self.builder.spawnChild(self.argv); + } +}; diff --git a/lib/std/c.zig b/lib/std/c.zig new file mode 100644 index 0000000000..9c7ec2f0e5 --- /dev/null +++ b/lib/std/c.zig @@ -0,0 +1,149 @@ +const builtin = @import("builtin"); +const std = @import("std"); +const page_size = std.mem.page_size; + +pub usingnamespace @import("os/bits.zig"); + +pub usingnamespace switch (builtin.os) { + .linux => @import("c/linux.zig"), + .windows => @import("c/windows.zig"), + .macosx, .ios, .tvos, .watchos => @import("c/darwin.zig"), + .freebsd => @import("c/freebsd.zig"), + .netbsd => @import("c/netbsd.zig"), + else => struct {}, +}; + +pub fn getErrno(rc: var) u16 { + if (rc == -1) { + return @intCast(u16, _errno().*); + } else { + return 0; + } +} + +/// The return type is `type` to force comptime function call execution. +/// TODO: https://github.com/ziglang/zig/issues/425 +/// If not linking libc, returns struct{pub const ok = false;} +/// If linking musl libc, returns struct{pub const ok = true;} +/// If linking gnu libc (glibc), the `ok` value will be true if the target +/// version is greater than or equal to `glibc_version`. +/// If linking a libc other than these, returns `false`. +pub fn versionCheck(glibc_version: builtin.Version) type { + return struct { + pub const ok = blk: { + if (!builtin.link_libc) break :blk false; + switch (builtin.abi) { + .musl, .musleabi, .musleabihf => break :blk true, + .gnu, .gnuabin32, .gnuabi64, .gnueabi, .gnueabihf, .gnux32 => { + const ver = builtin.glibc_version orelse break :blk false; + if (ver.major < glibc_version.major) break :blk false; + if (ver.major > glibc_version.major) break :blk true; + if (ver.minor < glibc_version.minor) break :blk false; + if (ver.minor > glibc_version.minor) break :blk true; + break :blk ver.patch >= glibc_version.patch; + }, + else => break :blk false, + } + }; + }; +} + +// TODO https://github.com/ziglang/zig/issues/265 on this whole file + +pub extern "c" fn fopen(filename: [*]const u8, modes: [*]const u8) ?*FILE; +pub extern "c" fn fclose(stream: *FILE) c_int; +pub extern "c" fn fwrite(ptr: [*]const u8, size_of_type: usize, item_count: usize, stream: *FILE) usize; +pub extern "c" fn fread(ptr: [*]u8, size_of_type: usize, item_count: usize, stream: *FILE) usize; + +pub extern "c" fn printf(format: [*]const u8, ...) c_int; +pub extern "c" fn abort() noreturn; +pub extern "c" fn exit(code: c_int) noreturn; +pub extern "c" fn isatty(fd: fd_t) c_int; +pub extern "c" fn close(fd: fd_t) c_int; +pub extern "c" fn @"close$NOCANCEL"(fd: fd_t) c_int; +pub extern "c" fn fstat(fd: fd_t, buf: *Stat) c_int; +pub extern "c" fn @"fstat$INODE64"(fd: fd_t, buf: *Stat) c_int; +pub extern "c" fn lseek(fd: fd_t, offset: off_t, whence: c_int) off_t; +pub extern "c" fn open(path: [*]const u8, oflag: c_uint, ...) c_int; +pub extern "c" fn openat(fd: c_int, path: [*]const u8, oflag: c_uint, ...) c_int; +pub extern "c" fn raise(sig: c_int) c_int; +pub extern "c" fn read(fd: fd_t, buf: [*]u8, nbyte: usize) isize; +pub extern "c" fn readv(fd: c_int, iov: [*]const iovec, iovcnt: c_uint) isize; +pub extern "c" fn pread(fd: fd_t, buf: [*]u8, nbyte: usize, offset: u64) isize; +pub extern "c" fn preadv(fd: c_int, iov: [*]const iovec, iovcnt: c_uint, offset: u64) isize; +pub extern "c" fn writev(fd: c_int, iov: [*]const iovec_const, iovcnt: c_uint) isize; +pub extern "c" fn pwritev(fd: c_int, iov: [*]const iovec_const, iovcnt: c_uint, offset: u64) isize; +pub extern "c" fn stat(noalias path: [*]const u8, noalias buf: *Stat) c_int; +pub extern "c" fn write(fd: fd_t, buf: [*]const u8, nbyte: usize) isize; +pub extern "c" fn pwrite(fd: fd_t, buf: [*]const u8, nbyte: usize, offset: u64) isize; +pub extern "c" fn mmap(addr: ?*align(page_size) c_void, len: usize, prot: c_uint, flags: c_uint, fd: fd_t, offset: u64) *c_void; +pub extern "c" fn munmap(addr: *align(page_size) c_void, len: usize) c_int; +pub extern "c" fn mprotect(addr: *align(page_size) c_void, len: usize, prot: c_uint) c_int; +pub extern "c" fn unlink(path: [*]const u8) c_int; +pub extern "c" fn getcwd(buf: [*]u8, size: usize) ?[*]u8; +pub extern "c" fn waitpid(pid: c_int, stat_loc: *c_uint, options: c_uint) c_int; +pub extern "c" fn fork() c_int; +pub extern "c" fn access(path: [*]const u8, mode: c_uint) c_int; +pub extern "c" fn pipe(fds: *[2]fd_t) c_int; +pub extern "c" fn pipe2(fds: *[2]fd_t, flags: u32) c_int; +pub extern "c" fn mkdir(path: [*]const u8, mode: c_uint) c_int; +pub extern "c" fn symlink(existing: [*]const u8, new: [*]const u8) c_int; +pub extern "c" fn rename(old: [*]const u8, new: [*]const u8) c_int; +pub extern "c" fn chdir(path: [*]const u8) c_int; +pub extern "c" fn execve(path: [*]const u8, argv: [*]const ?[*]const u8, envp: [*]const ?[*]const u8) c_int; +pub extern "c" fn dup(fd: fd_t) c_int; +pub extern "c" fn dup2(old_fd: fd_t, new_fd: fd_t) c_int; +pub extern "c" fn readlink(noalias path: [*]const u8, noalias buf: [*]u8, bufsize: usize) isize; +pub extern "c" fn realpath(noalias file_name: [*]const u8, noalias resolved_name: [*]u8) ?[*]u8; +pub extern "c" fn sigprocmask(how: c_int, noalias set: *const sigset_t, noalias oset: ?*sigset_t) c_int; +pub extern "c" fn gettimeofday(noalias tv: ?*timeval, noalias tz: ?*timezone) c_int; +pub extern "c" fn sigaction(sig: c_int, noalias act: *const Sigaction, noalias oact: ?*Sigaction) c_int; +pub extern "c" fn nanosleep(rqtp: *const timespec, rmtp: ?*timespec) c_int; +pub extern "c" fn setreuid(ruid: c_uint, euid: c_uint) c_int; +pub extern "c" fn setregid(rgid: c_uint, egid: c_uint) c_int; +pub extern "c" fn rmdir(path: [*]const u8) c_int; +pub extern "c" fn getenv(name: [*]const u8) ?[*]u8; +pub extern "c" fn sysctl(name: [*]const c_int, namelen: c_uint, oldp: ?*c_void, oldlenp: ?*usize, newp: ?*c_void, newlen: usize) c_int; +pub extern "c" fn sysctlbyname(name: [*]const u8, oldp: ?*c_void, oldlenp: ?*usize, newp: ?*c_void, newlen: usize) c_int; +pub extern "c" fn sysctlnametomib(name: [*]const u8, mibp: ?*c_int, sizep: ?*usize) c_int; + +pub extern "c" fn gethostname(name: [*]u8, len: usize) c_int; +pub extern "c" fn bind(socket: fd_t, address: ?*const sockaddr, address_len: socklen_t) c_int; +pub extern "c" fn socket(domain: c_uint, sock_type: c_uint, protocol: c_uint) c_int; +pub extern "c" fn listen(sockfd: fd_t, backlog: c_uint) c_int; +pub extern "c" fn getsockname(sockfd: fd_t, noalias addr: *sockaddr, noalias addrlen: *socklen_t) c_int; +pub extern "c" fn connect(sockfd: fd_t, sock_addr: *const sockaddr, addrlen: socklen_t) c_int; +pub extern "c" fn accept4(sockfd: fd_t, addr: *sockaddr, addrlen: *socklen_t, flags: c_uint) c_int; +pub extern "c" fn getsockopt(sockfd: fd_t, level: c_int, optname: c_int, optval: *c_void, optlen: *socklen_t) c_int; +pub extern "c" fn kill(pid: pid_t, sig: c_int) c_int; +pub extern "c" fn getdirentries(fd: fd_t, buf_ptr: [*]u8, nbytes: usize, basep: *i64) isize; +pub extern "c" fn setgid(ruid: c_uint, euid: c_uint) c_int; +pub extern "c" fn setuid(uid: c_uint) c_int; +pub extern "c" fn clock_gettime(clk_id: c_int, tp: *timespec) c_int; +pub extern "c" fn clock_getres(clk_id: c_int, tp: *timespec) c_int; + +pub extern "c" fn aligned_alloc(alignment: usize, size: usize) ?*c_void; +pub extern "c" fn malloc(usize) ?*c_void; +pub extern "c" fn realloc(?*c_void, usize) ?*c_void; +pub extern "c" fn free(*c_void) void; +pub extern "c" fn posix_memalign(memptr: **c_void, alignment: usize, size: usize) c_int; + +pub extern "c" fn utimensat(dirfd: fd_t, pathname: [*]const u8, times: *[2]timespec, flags: u32) c_int; +pub extern "c" fn futimens(fd: fd_t, times: *const [2]timespec) c_int; + +pub extern "c" fn pthread_create(noalias newthread: *pthread_t, noalias attr: ?*const pthread_attr_t, start_routine: extern fn (?*c_void) ?*c_void, noalias arg: ?*c_void) c_int; +pub extern "c" fn pthread_attr_init(attr: *pthread_attr_t) c_int; +pub extern "c" fn pthread_attr_setstack(attr: *pthread_attr_t, stackaddr: *c_void, stacksize: usize) c_int; +pub extern "c" fn pthread_attr_destroy(attr: *pthread_attr_t) c_int; +pub extern "c" fn pthread_self() pthread_t; +pub extern "c" fn pthread_join(thread: pthread_t, arg_return: ?*?*c_void) c_int; + +pub extern "c" fn kqueue() c_int; +pub extern "c" fn kevent( + kq: c_int, + changelist: [*]const Kevent, + nchanges: c_int, + eventlist: [*]Kevent, + nevents: c_int, + timeout: ?*const timespec, +) c_int; diff --git a/lib/std/c/darwin.zig b/lib/std/c/darwin.zig new file mode 100644 index 0000000000..f2e8120a0e --- /dev/null +++ b/lib/std/c/darwin.zig @@ -0,0 +1,58 @@ +const std = @import("../std.zig"); +const assert = std.debug.assert; +const builtin = @import("builtin"); +const macho = std.macho; + +usingnamespace @import("../os/bits.zig"); + +extern "c" fn __error() *c_int; +pub extern "c" fn _NSGetExecutablePath(buf: [*]u8, bufsize: *u32) c_int; +pub extern "c" fn _dyld_get_image_header(image_index: u32) ?*mach_header; + +pub extern "c" fn __getdirentries64(fd: c_int, buf_ptr: [*]u8, buf_len: usize, basep: *i64) isize; + +pub extern "c" fn mach_absolute_time() u64; +pub extern "c" fn mach_timebase_info(tinfo: ?*mach_timebase_info_data) void; + +pub extern "c" fn kevent64( + kq: c_int, + changelist: [*]const kevent64_s, + nchanges: c_int, + eventlist: [*]kevent64_s, + nevents: c_int, + flags: c_uint, + timeout: ?*const timespec, +) c_int; + +const mach_hdr = if (@sizeOf(usize) == 8) mach_header_64 else mach_header; + +/// The value of the link editor defined symbol _MH_EXECUTE_SYM is the address +/// of the mach header in a Mach-O executable file type. It does not appear in +/// any file type other than a MH_EXECUTE file type. The type of the symbol is +/// absolute as the header is not part of any section. +/// This symbol is populated when linking the system's libc, which is guaranteed +/// on this operating system. However when building object files or libraries, +/// the system libc won't be linked until the final executable. So we +/// export a weak symbol here, to be overridden by the real one. +pub extern "c" var _mh_execute_header: mach_hdr = undefined; +comptime { + if (std.os.darwin.is_the_target) { + @export("_mh_execute_header", _mh_execute_header, .Weak); + } +} + +pub const mach_header_64 = macho.mach_header_64; +pub const mach_header = macho.mach_header; + +pub const _errno = __error; + +pub extern "c" fn mach_host_self() mach_port_t; +pub extern "c" fn clock_get_time(clock_serv: clock_serv_t, cur_time: *mach_timespec_t) kern_return_t; +pub extern "c" fn host_get_clock_service(host: host_t, clock_id: clock_id_t, clock_serv: ?[*]clock_serv_t) kern_return_t; +pub extern "c" fn mach_port_deallocate(task: ipc_space_t, name: mach_port_name_t) kern_return_t; + +pub fn sigaddset(set: *sigset_t, signo: u5) void { + set.* |= u32(1) << (signo - 1); +} + +pub extern "c" fn sigaltstack(ss: ?*stack_t, old_ss: ?*stack_t) c_int; diff --git a/lib/std/c/freebsd.zig b/lib/std/c/freebsd.zig new file mode 100644 index 0000000000..550b5a59b1 --- /dev/null +++ b/lib/std/c/freebsd.zig @@ -0,0 +1,12 @@ +const std = @import("../std.zig"); +usingnamespace std.c; + +extern "c" fn __error() *c_int; +pub const _errno = __error; + +pub extern "c" fn getdents(fd: c_int, buf_ptr: [*]u8, nbytes: usize) usize; +pub extern "c" fn sigaltstack(ss: ?*stack_t, old_ss: ?*stack_t) c_int; +pub extern "c" fn getrandom(buf_ptr: [*]u8, buf_len: usize, flags: c_uint) isize; + +pub const dl_iterate_phdr_callback = extern fn (info: *dl_phdr_info, size: usize, data: ?*c_void) c_int; +pub extern "c" fn dl_iterate_phdr(callback: dl_iterate_phdr_callback, data: ?*c_void) c_int; diff --git a/lib/std/c/linux.zig b/lib/std/c/linux.zig new file mode 100644 index 0000000000..b3b3cbdde7 --- /dev/null +++ b/lib/std/c/linux.zig @@ -0,0 +1,32 @@ +const std = @import("../std.zig"); +const maxInt = std.math.maxInt; +usingnamespace std.c; + +extern "c" fn __errno_location() *c_int; +pub const _errno = __errno_location; + +pub const MAP_FAILED = @intToPtr(*c_void, maxInt(usize)); + +pub extern "c" fn getrandom(buf_ptr: [*]u8, buf_len: usize, flags: c_uint) isize; +pub extern "c" fn sched_getaffinity(pid: c_int, size: usize, set: *cpu_set_t) c_int; +pub extern "c" fn eventfd(initval: c_uint, flags: c_uint) c_int; +pub extern "c" fn epoll_ctl(epfd: fd_t, op: c_uint, fd: fd_t, event: ?*epoll_event) c_int; +pub extern "c" fn epoll_create1(flags: c_uint) c_int; +pub extern "c" fn epoll_wait(epfd: fd_t, events: [*]epoll_event, maxevents: c_uint, timeout: c_int) c_int; +pub extern "c" fn epoll_pwait( + epfd: fd_t, + events: [*]epoll_event, + maxevents: c_int, + timeout: c_int, + sigmask: *const sigset_t, +) c_int; +pub extern "c" fn inotify_init1(flags: c_uint) c_int; +pub extern "c" fn inotify_add_watch(fd: fd_t, pathname: [*]const u8, mask: u32) c_int; + +/// See std.elf for constants for this +pub extern "c" fn getauxval(__type: c_ulong) c_ulong; + +pub const dl_iterate_phdr_callback = extern fn (info: *dl_phdr_info, size: usize, data: ?*c_void) c_int; +pub extern "c" fn dl_iterate_phdr(callback: dl_iterate_phdr_callback, data: ?*c_void) c_int; + +pub extern "c" fn sigaltstack(ss: ?*stack_t, old_ss: ?*stack_t) c_int; diff --git a/lib/std/c/netbsd.zig b/lib/std/c/netbsd.zig new file mode 100644 index 0000000000..417c78db69 --- /dev/null +++ b/lib/std/c/netbsd.zig @@ -0,0 +1,8 @@ +const std = @import("../std.zig"); +usingnamespace std.c; + +extern "c" fn __errno() *c_int; +pub const _errno = __errno; + +pub extern "c" fn getdents(fd: c_int, buf_ptr: [*]u8, nbytes: usize) usize; +pub extern "c" fn sigaltstack(ss: ?*stack_t, old_ss: ?*stack_t) c_int; diff --git a/lib/std/c/windows.zig b/lib/std/c/windows.zig new file mode 100644 index 0000000000..35ca217131 --- /dev/null +++ b/lib/std/c/windows.zig @@ -0,0 +1 @@ +pub extern "c" fn _errno() *c_int; diff --git a/lib/std/child_process.zig b/lib/std/child_process.zig new file mode 100644 index 0000000000..9094f1cb57 --- /dev/null +++ b/lib/std/child_process.zig @@ -0,0 +1,770 @@ +const std = @import("std.zig"); +const cstr = std.cstr; +const unicode = std.unicode; +const io = std.io; +const fs = std.fs; +const os = std.os; +const process = std.process; +const File = std.fs.File; +const windows = os.windows; +const mem = std.mem; +const debug = std.debug; +const BufMap = std.BufMap; +const Buffer = std.Buffer; +const builtin = @import("builtin"); +const Os = builtin.Os; +const TailQueue = std.TailQueue; +const maxInt = std.math.maxInt; + +pub const ChildProcess = struct { + pub pid: if (os.windows.is_the_target) void else i32, + pub handle: if (os.windows.is_the_target) windows.HANDLE else void, + pub thread_handle: if (os.windows.is_the_target) windows.HANDLE else void, + + pub allocator: *mem.Allocator, + + pub stdin: ?File, + pub stdout: ?File, + pub stderr: ?File, + + pub term: ?(SpawnError!Term), + + pub argv: []const []const u8, + + /// Leave as null to use the current env map using the supplied allocator. + pub env_map: ?*const BufMap, + + pub stdin_behavior: StdIo, + pub stdout_behavior: StdIo, + pub stderr_behavior: StdIo, + + /// Set to change the user id when spawning the child process. + pub uid: if (os.windows.is_the_target) void else ?u32, + + /// Set to change the group id when spawning the child process. + pub gid: if (os.windows.is_the_target) void else ?u32, + + /// Set to change the current working directory when spawning the child process. + pub cwd: ?[]const u8, + + err_pipe: if (os.windows.is_the_target) void else [2]os.fd_t, + llnode: if (os.windows.is_the_target) void else TailQueue(*ChildProcess).Node, + + pub const SpawnError = error{OutOfMemory} || os.ExecveError || os.SetIdError || + os.ChangeCurDirError || windows.CreateProcessError; + + pub const Term = union(enum) { + Exited: u32, + Signal: u32, + Stopped: u32, + Unknown: u32, + }; + + pub const StdIo = enum { + Inherit, + Ignore, + Pipe, + Close, + }; + + /// First argument in argv is the executable. + /// On success must call deinit. + pub fn init(argv: []const []const u8, allocator: *mem.Allocator) !*ChildProcess { + const child = try allocator.create(ChildProcess); + child.* = ChildProcess{ + .allocator = allocator, + .argv = argv, + .pid = undefined, + .handle = undefined, + .thread_handle = undefined, + .err_pipe = undefined, + .llnode = undefined, + .term = null, + .env_map = null, + .cwd = null, + .uid = if (os.windows.is_the_target) {} else null, + .gid = if (os.windows.is_the_target) {} else null, + .stdin = null, + .stdout = null, + .stderr = null, + .stdin_behavior = StdIo.Inherit, + .stdout_behavior = StdIo.Inherit, + .stderr_behavior = StdIo.Inherit, + }; + errdefer allocator.destroy(child); + return child; + } + + pub fn setUserName(self: *ChildProcess, name: []const u8) !void { + const user_info = try os.getUserInfo(name); + self.uid = user_info.uid; + self.gid = user_info.gid; + } + + /// On success must call `kill` or `wait`. + pub fn spawn(self: *ChildProcess) !void { + if (os.windows.is_the_target) { + return self.spawnWindows(); + } else { + return self.spawnPosix(); + } + } + + pub fn spawnAndWait(self: *ChildProcess) !Term { + try self.spawn(); + return self.wait(); + } + + /// Forcibly terminates child process and then cleans up all resources. + pub fn kill(self: *ChildProcess) !Term { + if (os.windows.is_the_target) { + return self.killWindows(1); + } else { + return self.killPosix(); + } + } + + pub fn killWindows(self: *ChildProcess, exit_code: windows.UINT) !Term { + if (self.term) |term| { + self.cleanupStreams(); + return term; + } + + try windows.TerminateProcess(self.handle, exit_code); + try self.waitUnwrappedWindows(); + return self.term.?; + } + + pub fn killPosix(self: *ChildProcess) !Term { + if (self.term) |term| { + self.cleanupStreams(); + return term; + } + try os.kill(self.pid, os.SIGTERM); + self.waitUnwrapped(); + return self.term.?; + } + + /// Blocks until child process terminates and then cleans up all resources. + pub fn wait(self: *ChildProcess) !Term { + if (os.windows.is_the_target) { + return self.waitWindows(); + } else { + return self.waitPosix(); + } + } + + pub const ExecResult = struct { + term: Term, + stdout: []u8, + stderr: []u8, + }; + + /// Spawns a child process, waits for it, collecting stdout and stderr, and then returns. + /// If it succeeds, the caller owns result.stdout and result.stderr memory. + pub fn exec(allocator: *mem.Allocator, argv: []const []const u8, cwd: ?[]const u8, env_map: ?*const BufMap, max_output_size: usize) !ExecResult { + const child = try ChildProcess.init(argv, allocator); + defer child.deinit(); + + child.stdin_behavior = ChildProcess.StdIo.Ignore; + child.stdout_behavior = ChildProcess.StdIo.Pipe; + child.stderr_behavior = ChildProcess.StdIo.Pipe; + child.cwd = cwd; + child.env_map = env_map; + + try child.spawn(); + + var stdout = Buffer.initNull(allocator); + var stderr = Buffer.initNull(allocator); + defer Buffer.deinit(&stdout); + defer Buffer.deinit(&stderr); + + var stdout_file_in_stream = child.stdout.?.inStream(); + var stderr_file_in_stream = child.stderr.?.inStream(); + + try stdout_file_in_stream.stream.readAllBuffer(&stdout, max_output_size); + try stderr_file_in_stream.stream.readAllBuffer(&stderr, max_output_size); + + return ExecResult{ + .term = try child.wait(), + .stdout = stdout.toOwnedSlice(), + .stderr = stderr.toOwnedSlice(), + }; + } + + fn waitWindows(self: *ChildProcess) !Term { + if (self.term) |term| { + self.cleanupStreams(); + return term; + } + + try self.waitUnwrappedWindows(); + return self.term.?; + } + + fn waitPosix(self: *ChildProcess) !Term { + if (self.term) |term| { + self.cleanupStreams(); + return term; + } + + self.waitUnwrapped(); + return self.term.?; + } + + pub fn deinit(self: *ChildProcess) void { + self.allocator.destroy(self); + } + + fn waitUnwrappedWindows(self: *ChildProcess) !void { + const result = windows.WaitForSingleObject(self.handle, windows.INFINITE); + + self.term = (SpawnError!Term)(x: { + var exit_code: windows.DWORD = undefined; + if (windows.kernel32.GetExitCodeProcess(self.handle, &exit_code) == 0) { + break :x Term{ .Unknown = 0 }; + } else { + break :x Term{ .Exited = exit_code }; + } + }); + + os.close(self.handle); + os.close(self.thread_handle); + self.cleanupStreams(); + return result; + } + + fn waitUnwrapped(self: *ChildProcess) void { + const status = os.waitpid(self.pid, 0); + self.cleanupStreams(); + self.handleWaitResult(status); + } + + fn handleWaitResult(self: *ChildProcess, status: u32) void { + self.term = self.cleanupAfterWait(status); + } + + fn cleanupStreams(self: *ChildProcess) void { + if (self.stdin) |*stdin| { + stdin.close(); + self.stdin = null; + } + if (self.stdout) |*stdout| { + stdout.close(); + self.stdout = null; + } + if (self.stderr) |*stderr| { + stderr.close(); + self.stderr = null; + } + } + + fn cleanupAfterWait(self: *ChildProcess, status: u32) !Term { + defer { + os.close(self.err_pipe[0]); + os.close(self.err_pipe[1]); + } + + // Write maxInt(ErrInt) to the write end of the err_pipe. This is after + // waitpid, so this write is guaranteed to be after the child + // pid potentially wrote an error. This way we can do a blocking + // read on the error pipe and either get maxInt(ErrInt) (no error) or + // an error code. + try writeIntFd(self.err_pipe[1], maxInt(ErrInt)); + const err_int = try readIntFd(self.err_pipe[0]); + // Here we potentially return the fork child's error + // from the parent pid. + if (err_int != maxInt(ErrInt)) { + return @errSetCast(SpawnError, @intToError(err_int)); + } + + return statusToTerm(status); + } + + fn statusToTerm(status: u32) Term { + return if (os.WIFEXITED(status)) + Term{ .Exited = os.WEXITSTATUS(status) } + else if (os.WIFSIGNALED(status)) + Term{ .Signal = os.WTERMSIG(status) } + else if (os.WIFSTOPPED(status)) + Term{ .Stopped = os.WSTOPSIG(status) } + else + Term{ .Unknown = status }; + } + + fn spawnPosix(self: *ChildProcess) !void { + const stdin_pipe = if (self.stdin_behavior == StdIo.Pipe) try os.pipe() else undefined; + errdefer if (self.stdin_behavior == StdIo.Pipe) { + destroyPipe(stdin_pipe); + }; + + const stdout_pipe = if (self.stdout_behavior == StdIo.Pipe) try os.pipe() else undefined; + errdefer if (self.stdout_behavior == StdIo.Pipe) { + destroyPipe(stdout_pipe); + }; + + const stderr_pipe = if (self.stderr_behavior == StdIo.Pipe) try os.pipe() else undefined; + errdefer if (self.stderr_behavior == StdIo.Pipe) { + destroyPipe(stderr_pipe); + }; + + const any_ignore = (self.stdin_behavior == StdIo.Ignore or self.stdout_behavior == StdIo.Ignore or self.stderr_behavior == StdIo.Ignore); + const dev_null_fd = if (any_ignore) try os.openC(c"/dev/null", os.O_RDWR, 0) else undefined; + defer { + if (any_ignore) os.close(dev_null_fd); + } + + var env_map_owned: BufMap = undefined; + var we_own_env_map: bool = undefined; + const env_map = if (self.env_map) |env_map| x: { + we_own_env_map = false; + break :x env_map; + } else x: { + we_own_env_map = true; + env_map_owned = try process.getEnvMap(self.allocator); + break :x &env_map_owned; + }; + defer { + if (we_own_env_map) env_map_owned.deinit(); + } + + // This pipe is used to communicate errors between the time of fork + // and execve from the child process to the parent process. + const err_pipe = try os.pipe(); + errdefer destroyPipe(err_pipe); + + const pid_result = try os.fork(); + if (pid_result == 0) { + // we are the child + setUpChildIo(self.stdin_behavior, stdin_pipe[0], os.STDIN_FILENO, dev_null_fd) catch |err| forkChildErrReport(err_pipe[1], err); + setUpChildIo(self.stdout_behavior, stdout_pipe[1], os.STDOUT_FILENO, dev_null_fd) catch |err| forkChildErrReport(err_pipe[1], err); + setUpChildIo(self.stderr_behavior, stderr_pipe[1], os.STDERR_FILENO, dev_null_fd) catch |err| forkChildErrReport(err_pipe[1], err); + + if (self.stdin_behavior == .Pipe) { + os.close(stdin_pipe[0]); + os.close(stdin_pipe[1]); + } + if (self.stdout_behavior == .Pipe) { + os.close(stdout_pipe[0]); + os.close(stdout_pipe[1]); + } + if (self.stderr_behavior == .Pipe) { + os.close(stderr_pipe[0]); + os.close(stderr_pipe[1]); + } + + if (self.cwd) |cwd| { + os.chdir(cwd) catch |err| forkChildErrReport(err_pipe[1], err); + } + + if (self.gid) |gid| { + os.setregid(gid, gid) catch |err| forkChildErrReport(err_pipe[1], err); + } + + if (self.uid) |uid| { + os.setreuid(uid, uid) catch |err| forkChildErrReport(err_pipe[1], err); + } + + os.execve(self.allocator, self.argv, env_map) catch |err| forkChildErrReport(err_pipe[1], err); + } + + // we are the parent + const pid = @intCast(i32, pid_result); + if (self.stdin_behavior == StdIo.Pipe) { + self.stdin = File.openHandle(stdin_pipe[1]); + } else { + self.stdin = null; + } + if (self.stdout_behavior == StdIo.Pipe) { + self.stdout = File.openHandle(stdout_pipe[0]); + } else { + self.stdout = null; + } + if (self.stderr_behavior == StdIo.Pipe) { + self.stderr = File.openHandle(stderr_pipe[0]); + } else { + self.stderr = null; + } + + self.pid = pid; + self.err_pipe = err_pipe; + self.llnode = TailQueue(*ChildProcess).Node.init(self); + self.term = null; + + if (self.stdin_behavior == StdIo.Pipe) { + os.close(stdin_pipe[0]); + } + if (self.stdout_behavior == StdIo.Pipe) { + os.close(stdout_pipe[1]); + } + if (self.stderr_behavior == StdIo.Pipe) { + os.close(stderr_pipe[1]); + } + } + + fn spawnWindows(self: *ChildProcess) !void { + const saAttr = windows.SECURITY_ATTRIBUTES{ + .nLength = @sizeOf(windows.SECURITY_ATTRIBUTES), + .bInheritHandle = windows.TRUE, + .lpSecurityDescriptor = null, + }; + + const any_ignore = (self.stdin_behavior == StdIo.Ignore or self.stdout_behavior == StdIo.Ignore or self.stderr_behavior == StdIo.Ignore); + + const nul_handle = if (any_ignore) blk: { + break :blk try windows.CreateFile("NUL", windows.GENERIC_READ, windows.FILE_SHARE_READ, null, windows.OPEN_EXISTING, windows.FILE_ATTRIBUTE_NORMAL, null); + } else blk: { + break :blk undefined; + }; + defer { + if (any_ignore) os.close(nul_handle); + } + if (any_ignore) { + try windows.SetHandleInformation(nul_handle, windows.HANDLE_FLAG_INHERIT, 0); + } + + var g_hChildStd_IN_Rd: ?windows.HANDLE = null; + var g_hChildStd_IN_Wr: ?windows.HANDLE = null; + switch (self.stdin_behavior) { + StdIo.Pipe => { + try windowsMakePipeIn(&g_hChildStd_IN_Rd, &g_hChildStd_IN_Wr, &saAttr); + }, + StdIo.Ignore => { + g_hChildStd_IN_Rd = nul_handle; + }, + StdIo.Inherit => { + g_hChildStd_IN_Rd = windows.GetStdHandle(windows.STD_INPUT_HANDLE) catch null; + }, + StdIo.Close => { + g_hChildStd_IN_Rd = null; + }, + } + errdefer if (self.stdin_behavior == StdIo.Pipe) { + windowsDestroyPipe(g_hChildStd_IN_Rd, g_hChildStd_IN_Wr); + }; + + var g_hChildStd_OUT_Rd: ?windows.HANDLE = null; + var g_hChildStd_OUT_Wr: ?windows.HANDLE = null; + switch (self.stdout_behavior) { + StdIo.Pipe => { + try windowsMakePipeOut(&g_hChildStd_OUT_Rd, &g_hChildStd_OUT_Wr, &saAttr); + }, + StdIo.Ignore => { + g_hChildStd_OUT_Wr = nul_handle; + }, + StdIo.Inherit => { + g_hChildStd_OUT_Wr = windows.GetStdHandle(windows.STD_OUTPUT_HANDLE) catch null; + }, + StdIo.Close => { + g_hChildStd_OUT_Wr = null; + }, + } + errdefer if (self.stdin_behavior == StdIo.Pipe) { + windowsDestroyPipe(g_hChildStd_OUT_Rd, g_hChildStd_OUT_Wr); + }; + + var g_hChildStd_ERR_Rd: ?windows.HANDLE = null; + var g_hChildStd_ERR_Wr: ?windows.HANDLE = null; + switch (self.stderr_behavior) { + StdIo.Pipe => { + try windowsMakePipeOut(&g_hChildStd_ERR_Rd, &g_hChildStd_ERR_Wr, &saAttr); + }, + StdIo.Ignore => { + g_hChildStd_ERR_Wr = nul_handle; + }, + StdIo.Inherit => { + g_hChildStd_ERR_Wr = windows.GetStdHandle(windows.STD_ERROR_HANDLE) catch null; + }, + StdIo.Close => { + g_hChildStd_ERR_Wr = null; + }, + } + errdefer if (self.stdin_behavior == StdIo.Pipe) { + windowsDestroyPipe(g_hChildStd_ERR_Rd, g_hChildStd_ERR_Wr); + }; + + const cmd_line = try windowsCreateCommandLine(self.allocator, self.argv); + defer self.allocator.free(cmd_line); + + var siStartInfo = windows.STARTUPINFOW{ + .cb = @sizeOf(windows.STARTUPINFOW), + .hStdError = g_hChildStd_ERR_Wr, + .hStdOutput = g_hChildStd_OUT_Wr, + .hStdInput = g_hChildStd_IN_Rd, + .dwFlags = windows.STARTF_USESTDHANDLES, + + .lpReserved = null, + .lpDesktop = null, + .lpTitle = null, + .dwX = 0, + .dwY = 0, + .dwXSize = 0, + .dwYSize = 0, + .dwXCountChars = 0, + .dwYCountChars = 0, + .dwFillAttribute = 0, + .wShowWindow = 0, + .cbReserved2 = 0, + .lpReserved2 = null, + }; + var piProcInfo: windows.PROCESS_INFORMATION = undefined; + + const cwd_slice = if (self.cwd) |cwd| try cstr.addNullByte(self.allocator, cwd) else null; + defer if (cwd_slice) |cwd| self.allocator.free(cwd); + const cwd_w = if (cwd_slice) |cwd| try unicode.utf8ToUtf16LeWithNull(self.allocator, cwd) else null; + defer if (cwd_w) |cwd| self.allocator.free(cwd); + const cwd_w_ptr = if (cwd_w) |cwd| cwd.ptr else null; + + const maybe_envp_buf = if (self.env_map) |env_map| try createWindowsEnvBlock(self.allocator, env_map) else null; + defer if (maybe_envp_buf) |envp_buf| self.allocator.free(envp_buf); + const envp_ptr = if (maybe_envp_buf) |envp_buf| envp_buf.ptr else null; + + // the cwd set in ChildProcess is in effect when choosing the executable path + // to match posix semantics + const app_name = x: { + if (self.cwd) |cwd| { + const resolved = try fs.path.resolve(self.allocator, [_][]const u8{ cwd, self.argv[0] }); + defer self.allocator.free(resolved); + break :x try cstr.addNullByte(self.allocator, resolved); + } else { + break :x try cstr.addNullByte(self.allocator, self.argv[0]); + } + }; + defer self.allocator.free(app_name); + + const app_name_w = try unicode.utf8ToUtf16LeWithNull(self.allocator, app_name); + defer self.allocator.free(app_name_w); + + const cmd_line_w = try unicode.utf8ToUtf16LeWithNull(self.allocator, cmd_line); + defer self.allocator.free(cmd_line_w); + + windowsCreateProcess(app_name_w.ptr, cmd_line_w.ptr, envp_ptr, cwd_w_ptr, &siStartInfo, &piProcInfo) catch |no_path_err| { + if (no_path_err != error.FileNotFound) return no_path_err; + + const PATH = try process.getEnvVarOwned(self.allocator, "PATH"); + defer self.allocator.free(PATH); + const PATHEXT = try process.getEnvVarOwned(self.allocator, "PATHEXT"); + defer self.allocator.free(PATHEXT); + + var it = mem.tokenize(PATH, ";"); + retry: while (it.next()) |search_path| { + var ext_it = mem.tokenize(PATHEXT, ";"); + while (ext_it.next()) |app_ext| { + const app_basename = try mem.concat(self.allocator, u8, [_][]const u8{ app_name[0 .. app_name.len - 1], app_ext }); + defer self.allocator.free(app_basename); + + const joined_path = try fs.path.join(self.allocator, [_][]const u8{ search_path, app_basename }); + defer self.allocator.free(joined_path); + + const joined_path_w = try unicode.utf8ToUtf16LeWithNull(self.allocator, joined_path); + defer self.allocator.free(joined_path_w); + + if (windowsCreateProcess(joined_path_w.ptr, cmd_line_w.ptr, envp_ptr, cwd_w_ptr, &siStartInfo, &piProcInfo)) |_| { + break :retry; + } else |err| switch (err) { + error.FileNotFound => continue, + error.AccessDenied => continue, + else => return err, + } + } + } else { + return no_path_err; // return the original error + } + }; + + if (g_hChildStd_IN_Wr) |h| { + self.stdin = File.openHandle(h); + } else { + self.stdin = null; + } + if (g_hChildStd_OUT_Rd) |h| { + self.stdout = File.openHandle(h); + } else { + self.stdout = null; + } + if (g_hChildStd_ERR_Rd) |h| { + self.stderr = File.openHandle(h); + } else { + self.stderr = null; + } + + self.handle = piProcInfo.hProcess; + self.thread_handle = piProcInfo.hThread; + self.term = null; + + if (self.stdin_behavior == StdIo.Pipe) { + os.close(g_hChildStd_IN_Rd.?); + } + if (self.stderr_behavior == StdIo.Pipe) { + os.close(g_hChildStd_ERR_Wr.?); + } + if (self.stdout_behavior == StdIo.Pipe) { + os.close(g_hChildStd_OUT_Wr.?); + } + } + + fn setUpChildIo(stdio: StdIo, pipe_fd: i32, std_fileno: i32, dev_null_fd: i32) !void { + switch (stdio) { + StdIo.Pipe => try os.dup2(pipe_fd, std_fileno), + StdIo.Close => os.close(std_fileno), + StdIo.Inherit => {}, + StdIo.Ignore => try os.dup2(dev_null_fd, std_fileno), + } + } +}; + +fn windowsCreateProcess(app_name: [*]u16, cmd_line: [*]u16, envp_ptr: ?[*]u16, cwd_ptr: ?[*]u16, lpStartupInfo: *windows.STARTUPINFOW, lpProcessInformation: *windows.PROCESS_INFORMATION) !void { + // TODO the docs for environment pointer say: + // > A pointer to the environment block for the new process. If this parameter + // > is NULL, the new process uses the environment of the calling process. + // > ... + // > An environment block can contain either Unicode or ANSI characters. If + // > the environment block pointed to by lpEnvironment contains Unicode + // > characters, be sure that dwCreationFlags includes CREATE_UNICODE_ENVIRONMENT. + // > If this parameter is NULL and the environment block of the parent process + // > contains Unicode characters, you must also ensure that dwCreationFlags + // > includes CREATE_UNICODE_ENVIRONMENT. + // This seems to imply that we have to somehow know whether our process parent passed + // CREATE_UNICODE_ENVIRONMENT if we want to pass NULL for the environment parameter. + // Since we do not know this information that would imply that we must not pass NULL + // for the parameter. + // However this would imply that programs compiled with -DUNICODE could not pass + // environment variables to programs that were not, which seems unlikely. + // More investigation is needed. + return windows.CreateProcessW( + app_name, + cmd_line, + null, + null, + windows.TRUE, + windows.CREATE_UNICODE_ENVIRONMENT, + @ptrCast(?*c_void, envp_ptr), + cwd_ptr, + lpStartupInfo, + lpProcessInformation, + ); +} + +/// Caller must dealloc. +/// Guarantees a null byte at result[result.len]. +fn windowsCreateCommandLine(allocator: *mem.Allocator, argv: []const []const u8) ![]u8 { + var buf = try Buffer.initSize(allocator, 0); + defer buf.deinit(); + + var buf_stream = &io.BufferOutStream.init(&buf).stream; + + for (argv) |arg, arg_i| { + if (arg_i != 0) try buf.appendByte(' '); + if (mem.indexOfAny(u8, arg, " \t\n\"") == null) { + try buf.append(arg); + continue; + } + try buf.appendByte('"'); + var backslash_count: usize = 0; + for (arg) |byte| { + switch (byte) { + '\\' => backslash_count += 1, + '"' => { + try buf_stream.writeByteNTimes('\\', backslash_count * 2 + 1); + try buf.appendByte('"'); + backslash_count = 0; + }, + else => { + try buf_stream.writeByteNTimes('\\', backslash_count); + try buf.appendByte(byte); + backslash_count = 0; + }, + } + } + try buf_stream.writeByteNTimes('\\', backslash_count * 2); + try buf.appendByte('"'); + } + + return buf.toOwnedSlice(); +} + +fn windowsDestroyPipe(rd: ?windows.HANDLE, wr: ?windows.HANDLE) void { + if (rd) |h| os.close(h); + if (wr) |h| os.close(h); +} + +fn windowsMakePipeIn(rd: *?windows.HANDLE, wr: *?windows.HANDLE, sattr: *const windows.SECURITY_ATTRIBUTES) !void { + var rd_h: windows.HANDLE = undefined; + var wr_h: windows.HANDLE = undefined; + try windows.CreatePipe(&rd_h, &wr_h, sattr); + errdefer windowsDestroyPipe(rd_h, wr_h); + try windows.SetHandleInformation(wr_h, windows.HANDLE_FLAG_INHERIT, 0); + rd.* = rd_h; + wr.* = wr_h; +} + +fn windowsMakePipeOut(rd: *?windows.HANDLE, wr: *?windows.HANDLE, sattr: *const windows.SECURITY_ATTRIBUTES) !void { + var rd_h: windows.HANDLE = undefined; + var wr_h: windows.HANDLE = undefined; + try windows.CreatePipe(&rd_h, &wr_h, sattr); + errdefer windowsDestroyPipe(rd_h, wr_h); + try windows.SetHandleInformation(rd_h, windows.HANDLE_FLAG_INHERIT, 0); + rd.* = rd_h; + wr.* = wr_h; +} + +fn destroyPipe(pipe: [2]os.fd_t) void { + os.close(pipe[0]); + os.close(pipe[1]); +} + +// Child of fork calls this to report an error to the fork parent. +// Then the child exits. +fn forkChildErrReport(fd: i32, err: ChildProcess.SpawnError) noreturn { + writeIntFd(fd, ErrInt(@errorToInt(err))) catch {}; + os.exit(1); +} + +const ErrInt = @IntType(false, @sizeOf(anyerror) * 8); + +fn writeIntFd(fd: i32, value: ErrInt) !void { + const stream = &File.openHandle(fd).outStream().stream; + stream.writeIntNative(ErrInt, value) catch return error.SystemResources; +} + +fn readIntFd(fd: i32) !ErrInt { + const stream = &File.openHandle(fd).inStream().stream; + return stream.readIntNative(ErrInt) catch return error.SystemResources; +} + +/// Caller must free result. +pub fn createWindowsEnvBlock(allocator: *mem.Allocator, env_map: *const BufMap) ![]u16 { + // count bytes needed + const max_chars_needed = x: { + var max_chars_needed: usize = 4; // 4 for the final 4 null bytes + var it = env_map.iterator(); + while (it.next()) |pair| { + // +1 for '=' + // +1 for null byte + max_chars_needed += pair.key.len + pair.value.len + 2; + } + break :x max_chars_needed; + }; + const result = try allocator.alloc(u16, max_chars_needed); + errdefer allocator.free(result); + + var it = env_map.iterator(); + var i: usize = 0; + while (it.next()) |pair| { + i += try unicode.utf8ToUtf16Le(result[i..], pair.key); + result[i] = '='; + i += 1; + i += try unicode.utf8ToUtf16Le(result[i..], pair.value); + result[i] = 0; + i += 1; + } + result[i] = 0; + i += 1; + result[i] = 0; + i += 1; + result[i] = 0; + i += 1; + result[i] = 0; + i += 1; + return allocator.shrink(result, i); +} diff --git a/lib/std/coff.zig b/lib/std/coff.zig new file mode 100644 index 0000000000..3890151d09 --- /dev/null +++ b/lib/std/coff.zig @@ -0,0 +1,277 @@ +const builtin = @import("builtin"); +const std = @import("std.zig"); +const io = std.io; +const mem = std.mem; +const os = std.os; +const File = std.fs.File; + +const ArrayList = std.ArrayList; + +// CoffHeader.machine values +// see https://msdn.microsoft.com/en-us/library/windows/desktop/ms680313(v=vs.85).aspx +const IMAGE_FILE_MACHINE_I386 = 0x014c; +const IMAGE_FILE_MACHINE_IA64 = 0x0200; +const IMAGE_FILE_MACHINE_AMD64 = 0x8664; + +// OptionalHeader.magic values +// see https://msdn.microsoft.com/en-us/library/windows/desktop/ms680339(v=vs.85).aspx +const IMAGE_NT_OPTIONAL_HDR32_MAGIC = 0x10b; +const IMAGE_NT_OPTIONAL_HDR64_MAGIC = 0x20b; + +const IMAGE_NUMBEROF_DIRECTORY_ENTRIES = 16; +const IMAGE_DEBUG_TYPE_CODEVIEW = 2; +const DEBUG_DIRECTORY = 6; + +pub const CoffError = error{ + InvalidPEMagic, + InvalidPEHeader, + InvalidMachine, + MissingCoffSection, +}; + +// Official documentation of the format: https://docs.microsoft.com/en-us/windows/win32/debug/pe-format +pub const Coff = struct { + in_file: File, + allocator: *mem.Allocator, + + coff_header: CoffHeader, + pe_header: OptionalHeader, + sections: ArrayList(Section), + + guid: [16]u8, + age: u32, + + pub fn init(allocator: *mem.Allocator, in_file: File) Coff { + return Coff{ + .in_file = in_file, + .allocator = allocator, + .coff_header = undefined, + .pe_header = undefined, + .sections = ArrayList(Section).init(allocator), + .guid = undefined, + .age = undefined, + }; + } + + pub fn loadHeader(self: *Coff) !void { + const pe_pointer_offset = 0x3C; + + var file_stream = self.in_file.inStream(); + const in = &file_stream.stream; + + var magic: [2]u8 = undefined; + try in.readNoEof(magic[0..]); + if (!mem.eql(u8, magic, "MZ")) + return error.InvalidPEMagic; + + // Seek to PE File Header (coff header) + try self.in_file.seekTo(pe_pointer_offset); + const pe_magic_offset = try in.readIntLittle(u32); + try self.in_file.seekTo(pe_magic_offset); + + var pe_header_magic: [4]u8 = undefined; + try in.readNoEof(pe_header_magic[0..]); + if (!mem.eql(u8, pe_header_magic, [_]u8{ 'P', 'E', 0, 0 })) + return error.InvalidPEHeader; + + self.coff_header = CoffHeader{ + .machine = try in.readIntLittle(u16), + .number_of_sections = try in.readIntLittle(u16), + .timedate_stamp = try in.readIntLittle(u32), + .pointer_to_symbol_table = try in.readIntLittle(u32), + .number_of_symbols = try in.readIntLittle(u32), + .size_of_optional_header = try in.readIntLittle(u16), + .characteristics = try in.readIntLittle(u16), + }; + + switch (self.coff_header.machine) { + IMAGE_FILE_MACHINE_I386, IMAGE_FILE_MACHINE_AMD64, IMAGE_FILE_MACHINE_IA64 => {}, + else => return error.InvalidMachine, + } + + try self.loadOptionalHeader(&file_stream); + } + + fn loadOptionalHeader(self: *Coff, file_stream: *File.InStream) !void { + const in = &file_stream.stream; + self.pe_header.magic = try in.readIntLittle(u16); + // For now we're only interested in finding the reference to the .pdb, + // so we'll skip most of this header, which size is different in 32 + // 64 bits by the way. + var skip_size: u16 = undefined; + if (self.pe_header.magic == IMAGE_NT_OPTIONAL_HDR32_MAGIC) { + skip_size = 2 * @sizeOf(u8) + 8 * @sizeOf(u16) + 18 * @sizeOf(u32); + } else if (self.pe_header.magic == IMAGE_NT_OPTIONAL_HDR64_MAGIC) { + skip_size = 2 * @sizeOf(u8) + 8 * @sizeOf(u16) + 12 * @sizeOf(u32) + 5 * @sizeOf(u64); + } else + return error.InvalidPEMagic; + + try self.in_file.seekBy(skip_size); + + const number_of_rva_and_sizes = try in.readIntLittle(u32); + if (number_of_rva_and_sizes != IMAGE_NUMBEROF_DIRECTORY_ENTRIES) + return error.InvalidPEHeader; + + for (self.pe_header.data_directory) |*data_dir| { + data_dir.* = OptionalHeader.DataDirectory{ + .virtual_address = try in.readIntLittle(u32), + .size = try in.readIntLittle(u32), + }; + } + } + + pub fn getPdbPath(self: *Coff, buffer: []u8) !usize { + try self.loadSections(); + + const header = blk: { + if (self.getSection(".buildid")) |section| { + break :blk section.header; + } else if (self.getSection(".rdata")) |section| { + break :blk section.header; + } else { + return error.MissingCoffSection; + } + }; + + const debug_dir = &self.pe_header.data_directory[DEBUG_DIRECTORY]; + const file_offset = debug_dir.virtual_address - header.virtual_address + header.pointer_to_raw_data; + + var file_stream = self.in_file.inStream(); + const in = &file_stream.stream; + try self.in_file.seekTo(file_offset); + + // Find the correct DebugDirectoryEntry, and where its data is stored. + // It can be in any section. + const debug_dir_entry_count = debug_dir.size / @sizeOf(DebugDirectoryEntry); + var i: u32 = 0; + blk: while (i < debug_dir_entry_count) : (i += 1) { + const debug_dir_entry = try in.readStruct(DebugDirectoryEntry); + if (debug_dir_entry.type == IMAGE_DEBUG_TYPE_CODEVIEW) { + for (self.sections.toSlice()) |*section| { + const section_start = section.header.virtual_address; + const section_size = section.header.misc.virtual_size; + const rva = debug_dir_entry.address_of_raw_data; + const offset = rva - section_start; + if (section_start <= rva and offset < section_size and debug_dir_entry.size_of_data <= section_size - offset) { + try self.in_file.seekTo(section.header.pointer_to_raw_data + offset); + break :blk; + } + } + } + } + + var cv_signature: [4]u8 = undefined; // CodeView signature + try in.readNoEof(cv_signature[0..]); + // 'RSDS' indicates PDB70 format, used by lld. + if (!mem.eql(u8, cv_signature, "RSDS")) + return error.InvalidPEMagic; + try in.readNoEof(self.guid[0..]); + self.age = try in.readIntLittle(u32); + + // Finally read the null-terminated string. + var byte = try in.readByte(); + i = 0; + while (byte != 0 and i < buffer.len) : (i += 1) { + buffer[i] = byte; + byte = try in.readByte(); + } + + if (byte != 0 and i == buffer.len) + return error.NameTooLong; + + return i; + } + + pub fn loadSections(self: *Coff) !void { + if (self.sections.len == self.coff_header.number_of_sections) + return; + + try self.sections.ensureCapacity(self.coff_header.number_of_sections); + + var file_stream = self.in_file.inStream(); + const in = &file_stream.stream; + + var name: [8]u8 = undefined; + + var i: u16 = 0; + while (i < self.coff_header.number_of_sections) : (i += 1) { + try in.readNoEof(name[0..]); + try self.sections.append(Section{ + .header = SectionHeader{ + .name = name, + .misc = SectionHeader.Misc{ .virtual_size = try in.readIntLittle(u32) }, + .virtual_address = try in.readIntLittle(u32), + .size_of_raw_data = try in.readIntLittle(u32), + .pointer_to_raw_data = try in.readIntLittle(u32), + .pointer_to_relocations = try in.readIntLittle(u32), + .pointer_to_line_numbers = try in.readIntLittle(u32), + .number_of_relocations = try in.readIntLittle(u16), + .number_of_line_numbers = try in.readIntLittle(u16), + .characteristics = try in.readIntLittle(u32), + }, + }); + } + } + + pub fn getSection(self: *Coff, comptime name: []const u8) ?*Section { + for (self.sections.toSlice()) |*sec| { + if (mem.eql(u8, sec.header.name[0..name.len], name)) { + return sec; + } + } + return null; + } +}; + +const CoffHeader = struct { + machine: u16, + number_of_sections: u16, + timedate_stamp: u32, + pointer_to_symbol_table: u32, + number_of_symbols: u32, + size_of_optional_header: u16, + characteristics: u16, +}; + +const OptionalHeader = struct { + const DataDirectory = struct { + virtual_address: u32, + size: u32, + }; + + magic: u16, + data_directory: [IMAGE_NUMBEROF_DIRECTORY_ENTRIES]DataDirectory, +}; + +const DebugDirectoryEntry = packed struct { + characteristiccs: u32, + time_date_stamp: u32, + major_version: u16, + minor_version: u16, + @"type": u32, + size_of_data: u32, + address_of_raw_data: u32, + pointer_to_raw_data: u32, +}; + +pub const Section = struct { + header: SectionHeader, +}; + +const SectionHeader = struct { + const Misc = union { + physical_address: u32, + virtual_size: u32, + }; + + name: [8]u8, + misc: Misc, + virtual_address: u32, + size_of_raw_data: u32, + pointer_to_raw_data: u32, + pointer_to_relocations: u32, + pointer_to_line_numbers: u32, + number_of_relocations: u16, + number_of_line_numbers: u16, + characteristics: u32, +}; diff --git a/lib/std/crypto.zig b/lib/std/crypto.zig new file mode 100644 index 0000000000..b7703f2f7a --- /dev/null +++ b/lib/std/crypto.zig @@ -0,0 +1,51 @@ +pub const Md5 = @import("crypto/md5.zig").Md5; +pub const Sha1 = @import("crypto/sha1.zig").Sha1; + +const sha2 = @import("crypto/sha2.zig"); +pub const Sha224 = sha2.Sha224; +pub const Sha256 = sha2.Sha256; +pub const Sha384 = sha2.Sha384; +pub const Sha512 = sha2.Sha512; + +const sha3 = @import("crypto/sha3.zig"); +pub const Sha3_224 = sha3.Sha3_224; +pub const Sha3_256 = sha3.Sha3_256; +pub const Sha3_384 = sha3.Sha3_384; +pub const Sha3_512 = sha3.Sha3_512; + +pub const gimli = @import("crypto/gimli.zig"); + +const blake2 = @import("crypto/blake2.zig"); +pub const Blake2s224 = blake2.Blake2s224; +pub const Blake2s256 = blake2.Blake2s256; +pub const Blake2b384 = blake2.Blake2b384; +pub const Blake2b512 = blake2.Blake2b512; + +const hmac = @import("crypto/hmac.zig"); +pub const HmacMd5 = hmac.HmacMd5; +pub const HmacSha1 = hmac.HmacSha1; +pub const HmacSha256 = hmac.HmacSha256; +pub const HmacBlake2s256 = hmac.HmacBlake2s256; + +const import_chaCha20 = @import("crypto/chacha20.zig"); +pub const chaCha20IETF = import_chaCha20.chaCha20IETF; +pub const chaCha20With64BitNonce = import_chaCha20.chaCha20With64BitNonce; + +pub const Poly1305 = @import("crypto/poly1305.zig").Poly1305; +pub const X25519 = @import("crypto/x25519.zig").X25519; + +const std = @import("std.zig"); +pub const randomBytes = std.os.getrandom; + +test "crypto" { + _ = @import("crypto/blake2.zig"); + _ = @import("crypto/chacha20.zig"); + _ = @import("crypto/gimli.zig"); + _ = @import("crypto/hmac.zig"); + _ = @import("crypto/md5.zig"); + _ = @import("crypto/poly1305.zig"); + _ = @import("crypto/sha1.zig"); + _ = @import("crypto/sha2.zig"); + _ = @import("crypto/sha3.zig"); + _ = @import("crypto/x25519.zig"); +} diff --git a/lib/std/crypto/benchmark.zig b/lib/std/crypto/benchmark.zig new file mode 100644 index 0000000000..ae5087a847 --- /dev/null +++ b/lib/std/crypto/benchmark.zig @@ -0,0 +1,198 @@ +// zig run benchmark.zig --release-fast --override-std-dir .. + +const builtin = @import("builtin"); +const std = @import("../std.zig"); +const time = std.time; +const Timer = time.Timer; +const crypto = std.crypto; + +const KiB = 1024; +const MiB = 1024 * KiB; + +var prng = std.rand.DefaultPrng.init(0); + +const Crypto = struct { + ty: type, + name: []const u8, +}; + +const hashes = [_]Crypto{ + Crypto{ .ty = crypto.Md5, .name = "md5" }, + Crypto{ .ty = crypto.Sha1, .name = "sha1" }, + Crypto{ .ty = crypto.Sha256, .name = "sha256" }, + Crypto{ .ty = crypto.Sha512, .name = "sha512" }, + Crypto{ .ty = crypto.Sha3_256, .name = "sha3-256" }, + Crypto{ .ty = crypto.Sha3_512, .name = "sha3-512" }, + Crypto{ .ty = crypto.Blake2s256, .name = "blake2s" }, + Crypto{ .ty = crypto.Blake2b512, .name = "blake2b" }, +}; + +pub fn benchmarkHash(comptime Hash: var, comptime bytes: comptime_int) !u64 { + var h = Hash.init(); + + var block: [Hash.digest_length]u8 = undefined; + prng.random.bytes(block[0..]); + + var offset: usize = 0; + var timer = try Timer.start(); + const start = timer.lap(); + while (offset < bytes) : (offset += block.len) { + h.update(block[0..]); + } + const end = timer.read(); + + const elapsed_s = @intToFloat(f64, end - start) / time.ns_per_s; + const throughput = @floatToInt(u64, bytes / elapsed_s); + + return throughput; +} + +const macs = [_]Crypto{ + Crypto{ .ty = crypto.Poly1305, .name = "poly1305" }, + Crypto{ .ty = crypto.HmacMd5, .name = "hmac-md5" }, + Crypto{ .ty = crypto.HmacSha1, .name = "hmac-sha1" }, + Crypto{ .ty = crypto.HmacSha256, .name = "hmac-sha256" }, +}; + +pub fn benchmarkMac(comptime Mac: var, comptime bytes: comptime_int) !u64 { + std.debug.assert(32 >= Mac.mac_length and 32 >= Mac.minimum_key_length); + + var in: [1 * MiB]u8 = undefined; + prng.random.bytes(in[0..]); + + var key: [32]u8 = undefined; + prng.random.bytes(key[0..]); + + var offset: usize = 0; + var timer = try Timer.start(); + const start = timer.lap(); + while (offset < bytes) : (offset += in.len) { + Mac.create(key[0..], in[0..], key); + } + const end = timer.read(); + + const elapsed_s = @intToFloat(f64, end - start) / time.ns_per_s; + const throughput = @floatToInt(u64, bytes / elapsed_s); + + return throughput; +} + +const exchanges = [_]Crypto{Crypto{ .ty = crypto.X25519, .name = "x25519" }}; + +pub fn benchmarkKeyExchange(comptime DhKeyExchange: var, comptime exchange_count: comptime_int) !u64 { + std.debug.assert(DhKeyExchange.minimum_key_length >= DhKeyExchange.secret_length); + + var in: [DhKeyExchange.minimum_key_length]u8 = undefined; + prng.random.bytes(in[0..]); + + var out: [DhKeyExchange.minimum_key_length]u8 = undefined; + prng.random.bytes(out[0..]); + + var offset: usize = 0; + var timer = try Timer.start(); + const start = timer.lap(); + { + var i: usize = 0; + while (i < exchange_count) : (i += 1) { + _ = DhKeyExchange.create(out[0..], out, in); + } + } + const end = timer.read(); + + const elapsed_s = @intToFloat(f64, end - start) / time.ns_per_s; + const throughput = @floatToInt(u64, exchange_count / elapsed_s); + + return throughput; +} + +fn usage() void { + std.debug.warn( + \\throughput_test [options] + \\ + \\Options: + \\ --filter [test-name] + \\ --seed [int] + \\ --help + \\ + ); +} + +fn mode(comptime x: comptime_int) comptime_int { + return if (builtin.mode == builtin.Mode.Debug) x / 64 else x; +} + +// TODO(#1358): Replace with builtin formatted padding when available. +fn printPad(stdout: var, s: []const u8) !void { + var i: usize = 0; + while (i < 12 - s.len) : (i += 1) { + try stdout.print(" "); + } + try stdout.print("{}", s); +} + +pub fn main() !void { + var stdout_file = try std.io.getStdOut(); + var stdout_out_stream = stdout_file.outStream(); + const stdout = &stdout_out_stream.stream; + + var buffer: [1024]u8 = undefined; + var fixed = std.heap.FixedBufferAllocator.init(buffer[0..]); + const args = try std.process.argsAlloc(&fixed.allocator); + + var filter: ?[]u8 = ""; + + var i: usize = 1; + while (i < args.len) : (i += 1) { + if (std.mem.eql(u8, args[i], "--mode")) { + try stdout.print("{}\n", builtin.mode); + return; + } else if (std.mem.eql(u8, args[i], "--seed")) { + i += 1; + if (i == args.len) { + usage(); + std.os.exit(1); + } + + const seed = try std.fmt.parseUnsigned(u32, args[i], 10); + prng.seed(seed); + } else if (std.mem.eql(u8, args[i], "--filter")) { + i += 1; + if (i == args.len) { + usage(); + std.os.exit(1); + } + + filter = args[i]; + } else if (std.mem.eql(u8, args[i], "--help")) { + usage(); + return; + } else { + usage(); + std.os.exit(1); + } + } + + inline for (hashes) |H| { + if (filter == null or std.mem.indexOf(u8, H.name, filter.?) != null) { + const throughput = try benchmarkHash(H.ty, mode(32 * MiB)); + try printPad(stdout, H.name); + try stdout.print(": {} MiB/s\n", throughput / (1 * MiB)); + } + } + + inline for (macs) |M| { + if (filter == null or std.mem.indexOf(u8, M.name, filter.?) != null) { + const throughput = try benchmarkMac(M.ty, mode(128 * MiB)); + try printPad(stdout, M.name); + try stdout.print(": {} MiB/s\n", throughput / (1 * MiB)); + } + } + + inline for (exchanges) |E| { + if (filter == null or std.mem.indexOf(u8, E.name, filter.?) != null) { + const throughput = try benchmarkKeyExchange(E.ty, mode(1000)); + try printPad(stdout, E.name); + try stdout.print(": {} exchanges/s\n", throughput); + } + } +} diff --git a/lib/std/crypto/blake2.zig b/lib/std/crypto/blake2.zig new file mode 100644 index 0000000000..6bb2764b92 --- /dev/null +++ b/lib/std/crypto/blake2.zig @@ -0,0 +1,495 @@ +const mem = @import("../mem.zig"); +const math = @import("../math.zig"); +const endian = @import("../endian.zig"); +const debug = @import("../debug.zig"); +const builtin = @import("builtin"); +const htest = @import("test.zig"); + +const RoundParam = struct { + a: usize, + b: usize, + c: usize, + d: usize, + x: usize, + y: usize, +}; + +fn Rp(a: usize, b: usize, c: usize, d: usize, x: usize, y: usize) RoundParam { + return RoundParam{ + .a = a, + .b = b, + .c = c, + .d = d, + .x = x, + .y = y, + }; +} + +///////////////////// +// Blake2s + +pub const Blake2s224 = Blake2s(224); +pub const Blake2s256 = Blake2s(256); + +fn Blake2s(comptime out_len: usize) type { + return struct { + const Self = @This(); + pub const block_length = 64; + pub const digest_length = out_len / 8; + + const iv = [8]u32{ + 0x6A09E667, + 0xBB67AE85, + 0x3C6EF372, + 0xA54FF53A, + 0x510E527F, + 0x9B05688C, + 0x1F83D9AB, + 0x5BE0CD19, + }; + + const sigma = [10][16]u8{ + [_]u8{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, + [_]u8{ 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 }, + [_]u8{ 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4 }, + [_]u8{ 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8 }, + [_]u8{ 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13 }, + [_]u8{ 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9 }, + [_]u8{ 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11 }, + [_]u8{ 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10 }, + [_]u8{ 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5 }, + [_]u8{ 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0 }, + }; + + h: [8]u32, + t: u64, + // Streaming cache + buf: [64]u8, + buf_len: u8, + + pub fn init() Self { + debug.assert(8 <= out_len and out_len <= 512); + + var s: Self = undefined; + s.reset(); + return s; + } + + pub fn reset(d: *Self) void { + mem.copy(u32, d.h[0..], iv[0..]); + + // No key plus default parameters + d.h[0] ^= 0x01010000 ^ @intCast(u32, out_len >> 3); + d.t = 0; + d.buf_len = 0; + } + + pub fn hash(b: []const u8, out: []u8) void { + var d = Self.init(); + d.update(b); + d.final(out); + } + + pub fn update(d: *Self, b: []const u8) void { + var off: usize = 0; + + // Partial buffer exists from previous update. Copy into buffer then hash. + if (d.buf_len != 0 and d.buf_len + b.len > 64) { + off += 64 - d.buf_len; + mem.copy(u8, d.buf[d.buf_len..], b[0..off]); + d.t += 64; + d.round(d.buf[0..], false); + d.buf_len = 0; + } + + // Full middle blocks. + while (off + 64 <= b.len) : (off += 64) { + d.t += 64; + d.round(b[off .. off + 64], false); + } + + // Copy any remainder for next pass. + mem.copy(u8, d.buf[d.buf_len..], b[off..]); + d.buf_len += @intCast(u8, b[off..].len); + } + + pub fn final(d: *Self, out: []u8) void { + debug.assert(out.len >= out_len / 8); + + mem.set(u8, d.buf[d.buf_len..], 0); + d.t += d.buf_len; + d.round(d.buf[0..], true); + + const rr = d.h[0 .. out_len / 32]; + + for (rr) |s, j| { + // TODO https://github.com/ziglang/zig/issues/863 + mem.writeIntSliceLittle(u32, out[4 * j .. 4 * j + 4], s); + } + } + + fn round(d: *Self, b: []const u8, last: bool) void { + debug.assert(b.len == 64); + + var m: [16]u32 = undefined; + var v: [16]u32 = undefined; + + for (m) |*r, i| { + // TODO https://github.com/ziglang/zig/issues/863 + r.* = mem.readIntSliceLittle(u32, b[4 * i .. 4 * i + 4]); + } + + var k: usize = 0; + while (k < 8) : (k += 1) { + v[k] = d.h[k]; + v[k + 8] = iv[k]; + } + + v[12] ^= @truncate(u32, d.t); + v[13] ^= @intCast(u32, d.t >> 32); + if (last) v[14] = ~v[14]; + + const rounds = comptime [_]RoundParam{ + Rp(0, 4, 8, 12, 0, 1), + Rp(1, 5, 9, 13, 2, 3), + Rp(2, 6, 10, 14, 4, 5), + Rp(3, 7, 11, 15, 6, 7), + Rp(0, 5, 10, 15, 8, 9), + Rp(1, 6, 11, 12, 10, 11), + Rp(2, 7, 8, 13, 12, 13), + Rp(3, 4, 9, 14, 14, 15), + }; + + comptime var j: usize = 0; + inline while (j < 10) : (j += 1) { + inline for (rounds) |r| { + v[r.a] = v[r.a] +% v[r.b] +% m[sigma[j][r.x]]; + v[r.d] = math.rotr(u32, v[r.d] ^ v[r.a], usize(16)); + v[r.c] = v[r.c] +% v[r.d]; + v[r.b] = math.rotr(u32, v[r.b] ^ v[r.c], usize(12)); + v[r.a] = v[r.a] +% v[r.b] +% m[sigma[j][r.y]]; + v[r.d] = math.rotr(u32, v[r.d] ^ v[r.a], usize(8)); + v[r.c] = v[r.c] +% v[r.d]; + v[r.b] = math.rotr(u32, v[r.b] ^ v[r.c], usize(7)); + } + } + + for (d.h) |*r, i| { + r.* ^= v[i] ^ v[i + 8]; + } + } + }; +} + +test "blake2s224 single" { + const h1 = "1fa1291e65248b37b3433475b2a0dd63d54a11ecc4e3e034e7bc1ef4"; + htest.assertEqualHash(Blake2s224, h1, ""); + + const h2 = "0b033fc226df7abde29f67a05d3dc62cf271ef3dfea4d387407fbd55"; + htest.assertEqualHash(Blake2s224, h2, "abc"); + + const h3 = "e4e5cb6c7cae41982b397bf7b7d2d9d1949823ae78435326e8db4912"; + htest.assertEqualHash(Blake2s224, h3, "The quick brown fox jumps over the lazy dog"); +} + +test "blake2s224 streaming" { + var h = Blake2s224.init(); + var out: [28]u8 = undefined; + + const h1 = "1fa1291e65248b37b3433475b2a0dd63d54a11ecc4e3e034e7bc1ef4"; + + h.final(out[0..]); + htest.assertEqual(h1, out[0..]); + + const h2 = "0b033fc226df7abde29f67a05d3dc62cf271ef3dfea4d387407fbd55"; + + h.reset(); + h.update("abc"); + h.final(out[0..]); + htest.assertEqual(h2, out[0..]); + + h.reset(); + h.update("a"); + h.update("b"); + h.update("c"); + h.final(out[0..]); + htest.assertEqual(h2, out[0..]); +} + +test "blake2s256 single" { + const h1 = "69217a3079908094e11121d042354a7c1f55b6482ca1a51e1b250dfd1ed0eef9"; + htest.assertEqualHash(Blake2s256, h1, ""); + + const h2 = "508c5e8c327c14e2e1a72ba34eeb452f37458b209ed63a294d999b4c86675982"; + htest.assertEqualHash(Blake2s256, h2, "abc"); + + const h3 = "606beeec743ccbeff6cbcdf5d5302aa855c256c29b88c8ed331ea1a6bf3c8812"; + htest.assertEqualHash(Blake2s256, h3, "The quick brown fox jumps over the lazy dog"); +} + +test "blake2s256 streaming" { + var h = Blake2s256.init(); + var out: [32]u8 = undefined; + + const h1 = "69217a3079908094e11121d042354a7c1f55b6482ca1a51e1b250dfd1ed0eef9"; + + h.final(out[0..]); + htest.assertEqual(h1, out[0..]); + + const h2 = "508c5e8c327c14e2e1a72ba34eeb452f37458b209ed63a294d999b4c86675982"; + + h.reset(); + h.update("abc"); + h.final(out[0..]); + htest.assertEqual(h2, out[0..]); + + h.reset(); + h.update("a"); + h.update("b"); + h.update("c"); + h.final(out[0..]); + htest.assertEqual(h2, out[0..]); +} + +test "blake2s256 aligned final" { + var block = [_]u8{0} ** Blake2s256.block_length; + var out: [Blake2s256.digest_length]u8 = undefined; + + var h = Blake2s256.init(); + h.update(block); + h.final(out[0..]); +} + +///////////////////// +// Blake2b + +pub const Blake2b384 = Blake2b(384); +pub const Blake2b512 = Blake2b(512); + +fn Blake2b(comptime out_len: usize) type { + return struct { + const Self = @This(); + pub const block_length = 128; + pub const digest_length = out_len / 8; + + const iv = [8]u64{ + 0x6a09e667f3bcc908, + 0xbb67ae8584caa73b, + 0x3c6ef372fe94f82b, + 0xa54ff53a5f1d36f1, + 0x510e527fade682d1, + 0x9b05688c2b3e6c1f, + 0x1f83d9abfb41bd6b, + 0x5be0cd19137e2179, + }; + + const sigma = [12][16]u8{ + [_]u8{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, + [_]u8{ 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 }, + [_]u8{ 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4 }, + [_]u8{ 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8 }, + [_]u8{ 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13 }, + [_]u8{ 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9 }, + [_]u8{ 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11 }, + [_]u8{ 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10 }, + [_]u8{ 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5 }, + [_]u8{ 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0 }, + [_]u8{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, + [_]u8{ 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 }, + }; + + h: [8]u64, + t: u128, + // Streaming cache + buf: [128]u8, + buf_len: u8, + + pub fn init() Self { + debug.assert(8 <= out_len and out_len <= 512); + + var s: Self = undefined; + s.reset(); + return s; + } + + pub fn reset(d: *Self) void { + mem.copy(u64, d.h[0..], iv[0..]); + + // No key plus default parameters + d.h[0] ^= 0x01010000 ^ (out_len >> 3); + d.t = 0; + d.buf_len = 0; + } + + pub fn hash(b: []const u8, out: []u8) void { + var d = Self.init(); + d.update(b); + d.final(out); + } + + pub fn update(d: *Self, b: []const u8) void { + var off: usize = 0; + + // Partial buffer exists from previous update. Copy into buffer then hash. + if (d.buf_len != 0 and d.buf_len + b.len > 128) { + off += 128 - d.buf_len; + mem.copy(u8, d.buf[d.buf_len..], b[0..off]); + d.t += 128; + d.round(d.buf[0..], false); + d.buf_len = 0; + } + + // Full middle blocks. + while (off + 128 <= b.len) : (off += 128) { + d.t += 128; + d.round(b[off .. off + 128], false); + } + + // Copy any remainder for next pass. + mem.copy(u8, d.buf[d.buf_len..], b[off..]); + d.buf_len += @intCast(u8, b[off..].len); + } + + pub fn final(d: *Self, out: []u8) void { + mem.set(u8, d.buf[d.buf_len..], 0); + d.t += d.buf_len; + d.round(d.buf[0..], true); + + const rr = d.h[0 .. out_len / 64]; + + for (rr) |s, j| { + // TODO https://github.com/ziglang/zig/issues/863 + mem.writeIntSliceLittle(u64, out[8 * j .. 8 * j + 8], s); + } + } + + fn round(d: *Self, b: []const u8, last: bool) void { + debug.assert(b.len == 128); + + var m: [16]u64 = undefined; + var v: [16]u64 = undefined; + + for (m) |*r, i| { + r.* = mem.readIntSliceLittle(u64, b[8 * i .. 8 * i + 8]); + } + + var k: usize = 0; + while (k < 8) : (k += 1) { + v[k] = d.h[k]; + v[k + 8] = iv[k]; + } + + v[12] ^= @truncate(u64, d.t); + v[13] ^= @intCast(u64, d.t >> 64); + if (last) v[14] = ~v[14]; + + const rounds = comptime [_]RoundParam{ + Rp(0, 4, 8, 12, 0, 1), + Rp(1, 5, 9, 13, 2, 3), + Rp(2, 6, 10, 14, 4, 5), + Rp(3, 7, 11, 15, 6, 7), + Rp(0, 5, 10, 15, 8, 9), + Rp(1, 6, 11, 12, 10, 11), + Rp(2, 7, 8, 13, 12, 13), + Rp(3, 4, 9, 14, 14, 15), + }; + + comptime var j: usize = 0; + inline while (j < 12) : (j += 1) { + inline for (rounds) |r| { + v[r.a] = v[r.a] +% v[r.b] +% m[sigma[j][r.x]]; + v[r.d] = math.rotr(u64, v[r.d] ^ v[r.a], usize(32)); + v[r.c] = v[r.c] +% v[r.d]; + v[r.b] = math.rotr(u64, v[r.b] ^ v[r.c], usize(24)); + v[r.a] = v[r.a] +% v[r.b] +% m[sigma[j][r.y]]; + v[r.d] = math.rotr(u64, v[r.d] ^ v[r.a], usize(16)); + v[r.c] = v[r.c] +% v[r.d]; + v[r.b] = math.rotr(u64, v[r.b] ^ v[r.c], usize(63)); + } + } + + for (d.h) |*r, i| { + r.* ^= v[i] ^ v[i + 8]; + } + } + }; +} + +test "blake2b384 single" { + const h1 = "b32811423377f52d7862286ee1a72ee540524380fda1724a6f25d7978c6fd3244a6caf0498812673c5e05ef583825100"; + htest.assertEqualHash(Blake2b384, h1, ""); + + const h2 = "6f56a82c8e7ef526dfe182eb5212f7db9df1317e57815dbda46083fc30f54ee6c66ba83be64b302d7cba6ce15bb556f4"; + htest.assertEqualHash(Blake2b384, h2, "abc"); + + const h3 = "b7c81b228b6bd912930e8f0b5387989691c1cee1e65aade4da3b86a3c9f678fc8018f6ed9e2906720c8d2a3aeda9c03d"; + htest.assertEqualHash(Blake2b384, h3, "The quick brown fox jumps over the lazy dog"); +} + +test "blake2b384 streaming" { + var h = Blake2b384.init(); + var out: [48]u8 = undefined; + + const h1 = "b32811423377f52d7862286ee1a72ee540524380fda1724a6f25d7978c6fd3244a6caf0498812673c5e05ef583825100"; + + h.final(out[0..]); + htest.assertEqual(h1, out[0..]); + + const h2 = "6f56a82c8e7ef526dfe182eb5212f7db9df1317e57815dbda46083fc30f54ee6c66ba83be64b302d7cba6ce15bb556f4"; + + h.reset(); + h.update("abc"); + h.final(out[0..]); + htest.assertEqual(h2, out[0..]); + + h.reset(); + h.update("a"); + h.update("b"); + h.update("c"); + h.final(out[0..]); + htest.assertEqual(h2, out[0..]); +} + +test "blake2b512 single" { + const h1 = "786a02f742015903c6c6fd852552d272912f4740e15847618a86e217f71f5419d25e1031afee585313896444934eb04b903a685b1448b755d56f701afe9be2ce"; + htest.assertEqualHash(Blake2b512, h1, ""); + + const h2 = "ba80a53f981c4d0d6a2797b69f12f6e94c212f14685ac4b74b12bb6fdbffa2d17d87c5392aab792dc252d5de4533cc9518d38aa8dbf1925ab92386edd4009923"; + htest.assertEqualHash(Blake2b512, h2, "abc"); + + const h3 = "a8add4bdddfd93e4877d2746e62817b116364a1fa7bc148d95090bc7333b3673f82401cf7aa2e4cb1ecd90296e3f14cb5413f8ed77be73045b13914cdcd6a918"; + htest.assertEqualHash(Blake2b512, h3, "The quick brown fox jumps over the lazy dog"); +} + +test "blake2b512 streaming" { + var h = Blake2b512.init(); + var out: [64]u8 = undefined; + + const h1 = "786a02f742015903c6c6fd852552d272912f4740e15847618a86e217f71f5419d25e1031afee585313896444934eb04b903a685b1448b755d56f701afe9be2ce"; + + h.final(out[0..]); + htest.assertEqual(h1, out[0..]); + + const h2 = "ba80a53f981c4d0d6a2797b69f12f6e94c212f14685ac4b74b12bb6fdbffa2d17d87c5392aab792dc252d5de4533cc9518d38aa8dbf1925ab92386edd4009923"; + + h.reset(); + h.update("abc"); + h.final(out[0..]); + htest.assertEqual(h2, out[0..]); + + h.reset(); + h.update("a"); + h.update("b"); + h.update("c"); + h.final(out[0..]); + htest.assertEqual(h2, out[0..]); +} + +test "blake2b512 aligned final" { + var block = [_]u8{0} ** Blake2b512.block_length; + var out: [Blake2b512.digest_length]u8 = undefined; + + var h = Blake2b512.init(); + h.update(block); + h.final(out[0..]); +} diff --git a/lib/std/crypto/chacha20.zig b/lib/std/crypto/chacha20.zig new file mode 100644 index 0000000000..0d997e0d14 --- /dev/null +++ b/lib/std/crypto/chacha20.zig @@ -0,0 +1,436 @@ +// Based on public domain Supercop by Daniel J. Bernstein + +const std = @import("../std.zig"); +const mem = std.mem; +const endian = std.endian; +const assert = std.debug.assert; +const testing = std.testing; +const builtin = @import("builtin"); +const maxInt = std.math.maxInt; + +const QuarterRound = struct { + a: usize, + b: usize, + c: usize, + d: usize, +}; + +fn Rp(a: usize, b: usize, c: usize, d: usize) QuarterRound { + return QuarterRound{ + .a = a, + .b = b, + .c = c, + .d = d, + }; +} + +// The chacha family of ciphers are based on the salsa family. +fn salsa20_wordtobyte(out: []u8, input: [16]u32) void { + assert(out.len >= 64); + + var x: [16]u32 = undefined; + + for (x) |_, i| + x[i] = input[i]; + + const rounds = comptime [_]QuarterRound{ + Rp(0, 4, 8, 12), + Rp(1, 5, 9, 13), + Rp(2, 6, 10, 14), + Rp(3, 7, 11, 15), + Rp(0, 5, 10, 15), + Rp(1, 6, 11, 12), + Rp(2, 7, 8, 13), + Rp(3, 4, 9, 14), + }; + + comptime var j: usize = 0; + inline while (j < 20) : (j += 2) { + // two-round cycles + inline for (rounds) |r| { + x[r.a] +%= x[r.b]; + x[r.d] = std.math.rotl(u32, x[r.d] ^ x[r.a], u32(16)); + x[r.c] +%= x[r.d]; + x[r.b] = std.math.rotl(u32, x[r.b] ^ x[r.c], u32(12)); + x[r.a] +%= x[r.b]; + x[r.d] = std.math.rotl(u32, x[r.d] ^ x[r.a], u32(8)); + x[r.c] +%= x[r.d]; + x[r.b] = std.math.rotl(u32, x[r.b] ^ x[r.c], u32(7)); + } + } + + for (x) |_, i| { + // TODO https://github.com/ziglang/zig/issues/863 + mem.writeIntSliceLittle(u32, out[4 * i .. 4 * i + 4], x[i] +% input[i]); + } +} + +fn chaCha20_internal(out: []u8, in: []const u8, key: [8]u32, counter: [4]u32) void { + var ctx: [16]u32 = undefined; + var remaining: usize = if (in.len > out.len) in.len else out.len; + var cursor: usize = 0; + + const c = "expand 32-byte k"; + const constant_le = [_]u32{ + mem.readIntSliceLittle(u32, c[0..4]), + mem.readIntSliceLittle(u32, c[4..8]), + mem.readIntSliceLittle(u32, c[8..12]), + mem.readIntSliceLittle(u32, c[12..16]), + }; + + mem.copy(u32, ctx[0..], constant_le[0..4]); + mem.copy(u32, ctx[4..12], key[0..8]); + mem.copy(u32, ctx[12..16], counter[0..4]); + + while (true) { + var buf: [64]u8 = undefined; + salsa20_wordtobyte(buf[0..], ctx); + + if (remaining < 64) { + var i: usize = 0; + while (i < remaining) : (i += 1) + out[cursor + i] = in[cursor + i] ^ buf[i]; + return; + } + + var i: usize = 0; + while (i < 64) : (i += 1) + out[cursor + i] = in[cursor + i] ^ buf[i]; + + cursor += 64; + remaining -= 64; + + ctx[12] += 1; + } +} + +/// ChaCha20 avoids the possibility of timing attacks, as there are no branches +/// on secret key data. +/// +/// in and out should be the same length. +/// counter should generally be 0 or 1 +/// +/// ChaCha20 is self-reversing. To decrypt just run the cipher with the same +/// counter, nonce, and key. +pub fn chaCha20IETF(out: []u8, in: []const u8, counter: u32, key: [32]u8, nonce: [12]u8) void { + assert(in.len >= out.len); + assert((in.len >> 6) + counter <= maxInt(u32)); + + var k: [8]u32 = undefined; + var c: [4]u32 = undefined; + + k[0] = mem.readIntSliceLittle(u32, key[0..4]); + k[1] = mem.readIntSliceLittle(u32, key[4..8]); + k[2] = mem.readIntSliceLittle(u32, key[8..12]); + k[3] = mem.readIntSliceLittle(u32, key[12..16]); + k[4] = mem.readIntSliceLittle(u32, key[16..20]); + k[5] = mem.readIntSliceLittle(u32, key[20..24]); + k[6] = mem.readIntSliceLittle(u32, key[24..28]); + k[7] = mem.readIntSliceLittle(u32, key[28..32]); + + c[0] = counter; + c[1] = mem.readIntSliceLittle(u32, nonce[0..4]); + c[2] = mem.readIntSliceLittle(u32, nonce[4..8]); + c[3] = mem.readIntSliceLittle(u32, nonce[8..12]); + chaCha20_internal(out, in, k, c); +} + +/// This is the original ChaCha20 before RFC 7539, which recommends using the +/// orgininal version on applications such as disk or file encryption that might +/// exceed the 256 GiB limit of the 96-bit nonce version. +pub fn chaCha20With64BitNonce(out: []u8, in: []const u8, counter: u64, key: [32]u8, nonce: [8]u8) void { + assert(in.len >= out.len); + assert(counter +% (in.len >> 6) >= counter); + + var cursor: usize = 0; + var k: [8]u32 = undefined; + var c: [4]u32 = undefined; + + k[0] = mem.readIntSliceLittle(u32, key[0..4]); + k[1] = mem.readIntSliceLittle(u32, key[4..8]); + k[2] = mem.readIntSliceLittle(u32, key[8..12]); + k[3] = mem.readIntSliceLittle(u32, key[12..16]); + k[4] = mem.readIntSliceLittle(u32, key[16..20]); + k[5] = mem.readIntSliceLittle(u32, key[20..24]); + k[6] = mem.readIntSliceLittle(u32, key[24..28]); + k[7] = mem.readIntSliceLittle(u32, key[28..32]); + + c[0] = @truncate(u32, counter); + c[1] = @truncate(u32, counter >> 32); + c[2] = mem.readIntSliceLittle(u32, nonce[0..4]); + c[3] = mem.readIntSliceLittle(u32, nonce[4..8]); + + const block_size = (1 << 6); + // The full block size is greater than the address space on a 32bit machine + const big_block = if (@sizeOf(usize) > 4) (block_size << 32) else maxInt(usize); + + // first partial big block + if (((@intCast(u64, maxInt(u32) - @truncate(u32, counter)) + 1) << 6) < in.len) { + chaCha20_internal(out[cursor..big_block], in[cursor..big_block], k, c); + cursor = big_block - cursor; + c[1] += 1; + if (comptime @sizeOf(usize) > 4) { + // A big block is giant: 256 GiB, but we can avoid this limitation + var remaining_blocks: u32 = @intCast(u32, (in.len / big_block)); + var i: u32 = 0; + while (remaining_blocks > 0) : (remaining_blocks -= 1) { + chaCha20_internal(out[cursor .. cursor + big_block], in[cursor .. cursor + big_block], k, c); + c[1] += 1; // upper 32-bit of counter, generic chaCha20_internal() doesn't know about this. + cursor += big_block; + } + } + } + + chaCha20_internal(out[cursor..], in[cursor..], k, c); +} + +// https://tools.ietf.org/html/rfc7539#section-2.4.2 +test "crypto.chacha20 test vector sunscreen" { + const expected_result = [_]u8{ + 0x6e, 0x2e, 0x35, 0x9a, 0x25, 0x68, 0xf9, 0x80, + 0x41, 0xba, 0x07, 0x28, 0xdd, 0x0d, 0x69, 0x81, + 0xe9, 0x7e, 0x7a, 0xec, 0x1d, 0x43, 0x60, 0xc2, + 0x0a, 0x27, 0xaf, 0xcc, 0xfd, 0x9f, 0xae, 0x0b, + 0xf9, 0x1b, 0x65, 0xc5, 0x52, 0x47, 0x33, 0xab, + 0x8f, 0x59, 0x3d, 0xab, 0xcd, 0x62, 0xb3, 0x57, + 0x16, 0x39, 0xd6, 0x24, 0xe6, 0x51, 0x52, 0xab, + 0x8f, 0x53, 0x0c, 0x35, 0x9f, 0x08, 0x61, 0xd8, + 0x07, 0xca, 0x0d, 0xbf, 0x50, 0x0d, 0x6a, 0x61, + 0x56, 0xa3, 0x8e, 0x08, 0x8a, 0x22, 0xb6, 0x5e, + 0x52, 0xbc, 0x51, 0x4d, 0x16, 0xcc, 0xf8, 0x06, + 0x81, 0x8c, 0xe9, 0x1a, 0xb7, 0x79, 0x37, 0x36, + 0x5a, 0xf9, 0x0b, 0xbf, 0x74, 0xa3, 0x5b, 0xe6, + 0xb4, 0x0b, 0x8e, 0xed, 0xf2, 0x78, 0x5e, 0x42, + 0x87, 0x4d, + }; + const input = "Ladies and Gentlemen of the class of '99: If I could offer you only one tip for the future, sunscreen would be it."; + var result: [114]u8 = undefined; + const key = [_]u8{ + 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, + }; + const nonce = [_]u8{ + 0, 0, 0, 0, + 0, 0, 0, 0x4a, + 0, 0, 0, 0, + }; + + chaCha20IETF(result[0..], input[0..], 1, key, nonce); + testing.expectEqualSlices(u8, expected_result, result); + + // Chacha20 is self-reversing. + var plaintext: [114]u8 = undefined; + chaCha20IETF(plaintext[0..], result[0..], 1, key, nonce); + testing.expect(mem.compare(u8, input, plaintext) == mem.Compare.Equal); +} + +// https://tools.ietf.org/html/draft-agl-tls-chacha20poly1305-04#section-7 +test "crypto.chacha20 test vector 1" { + const expected_result = [_]u8{ + 0x76, 0xb8, 0xe0, 0xad, 0xa0, 0xf1, 0x3d, 0x90, + 0x40, 0x5d, 0x6a, 0xe5, 0x53, 0x86, 0xbd, 0x28, + 0xbd, 0xd2, 0x19, 0xb8, 0xa0, 0x8d, 0xed, 0x1a, + 0xa8, 0x36, 0xef, 0xcc, 0x8b, 0x77, 0x0d, 0xc7, + 0xda, 0x41, 0x59, 0x7c, 0x51, 0x57, 0x48, 0x8d, + 0x77, 0x24, 0xe0, 0x3f, 0xb8, 0xd8, 0x4a, 0x37, + 0x6a, 0x43, 0xb8, 0xf4, 0x15, 0x18, 0xa1, 0x1c, + 0xc3, 0x87, 0xb6, 0x69, 0xb2, 0xee, 0x65, 0x86, + }; + const input = [_]u8{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }; + var result: [64]u8 = undefined; + const key = [_]u8{ + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + }; + const nonce = [_]u8{ 0, 0, 0, 0, 0, 0, 0, 0 }; + + chaCha20With64BitNonce(result[0..], input[0..], 0, key, nonce); + testing.expectEqualSlices(u8, expected_result, result); +} + +test "crypto.chacha20 test vector 2" { + const expected_result = [_]u8{ + 0x45, 0x40, 0xf0, 0x5a, 0x9f, 0x1f, 0xb2, 0x96, + 0xd7, 0x73, 0x6e, 0x7b, 0x20, 0x8e, 0x3c, 0x96, + 0xeb, 0x4f, 0xe1, 0x83, 0x46, 0x88, 0xd2, 0x60, + 0x4f, 0x45, 0x09, 0x52, 0xed, 0x43, 0x2d, 0x41, + 0xbb, 0xe2, 0xa0, 0xb6, 0xea, 0x75, 0x66, 0xd2, + 0xa5, 0xd1, 0xe7, 0xe2, 0x0d, 0x42, 0xaf, 0x2c, + 0x53, 0xd7, 0x92, 0xb1, 0xc4, 0x3f, 0xea, 0x81, + 0x7e, 0x9a, 0xd2, 0x75, 0xae, 0x54, 0x69, 0x63, + }; + const input = [_]u8{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }; + var result: [64]u8 = undefined; + const key = [_]u8{ + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1, + }; + const nonce = [_]u8{ 0, 0, 0, 0, 0, 0, 0, 0 }; + + chaCha20With64BitNonce(result[0..], input[0..], 0, key, nonce); + testing.expectEqualSlices(u8, expected_result, result); +} + +test "crypto.chacha20 test vector 3" { + const expected_result = [_]u8{ + 0xde, 0x9c, 0xba, 0x7b, 0xf3, 0xd6, 0x9e, 0xf5, + 0xe7, 0x86, 0xdc, 0x63, 0x97, 0x3f, 0x65, 0x3a, + 0x0b, 0x49, 0xe0, 0x15, 0xad, 0xbf, 0xf7, 0x13, + 0x4f, 0xcb, 0x7d, 0xf1, 0x37, 0x82, 0x10, 0x31, + 0xe8, 0x5a, 0x05, 0x02, 0x78, 0xa7, 0x08, 0x45, + 0x27, 0x21, 0x4f, 0x73, 0xef, 0xc7, 0xfa, 0x5b, + 0x52, 0x77, 0x06, 0x2e, 0xb7, 0xa0, 0x43, 0x3e, + 0x44, 0x5f, 0x41, 0xe3, + }; + const input = [_]u8{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + }; + var result: [60]u8 = undefined; + const key = [_]u8{ + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + }; + const nonce = [_]u8{ 0, 0, 0, 0, 0, 0, 0, 1 }; + + chaCha20With64BitNonce(result[0..], input[0..], 0, key, nonce); + testing.expectEqualSlices(u8, expected_result, result); +} + +test "crypto.chacha20 test vector 4" { + const expected_result = [_]u8{ + 0xef, 0x3f, 0xdf, 0xd6, 0xc6, 0x15, 0x78, 0xfb, + 0xf5, 0xcf, 0x35, 0xbd, 0x3d, 0xd3, 0x3b, 0x80, + 0x09, 0x63, 0x16, 0x34, 0xd2, 0x1e, 0x42, 0xac, + 0x33, 0x96, 0x0b, 0xd1, 0x38, 0xe5, 0x0d, 0x32, + 0x11, 0x1e, 0x4c, 0xaf, 0x23, 0x7e, 0xe5, 0x3c, + 0xa8, 0xad, 0x64, 0x26, 0x19, 0x4a, 0x88, 0x54, + 0x5d, 0xdc, 0x49, 0x7a, 0x0b, 0x46, 0x6e, 0x7d, + 0x6b, 0xbd, 0xb0, 0x04, 0x1b, 0x2f, 0x58, 0x6b, + }; + const input = [_]u8{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }; + var result: [64]u8 = undefined; + const key = [_]u8{ + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + }; + const nonce = [_]u8{ 1, 0, 0, 0, 0, 0, 0, 0 }; + + chaCha20With64BitNonce(result[0..], input[0..], 0, key, nonce); + testing.expectEqualSlices(u8, expected_result, result); +} + +test "crypto.chacha20 test vector 5" { + const expected_result = [_]u8{ + 0xf7, 0x98, 0xa1, 0x89, 0xf1, 0x95, 0xe6, 0x69, + 0x82, 0x10, 0x5f, 0xfb, 0x64, 0x0b, 0xb7, 0x75, + 0x7f, 0x57, 0x9d, 0xa3, 0x16, 0x02, 0xfc, 0x93, + 0xec, 0x01, 0xac, 0x56, 0xf8, 0x5a, 0xc3, 0xc1, + 0x34, 0xa4, 0x54, 0x7b, 0x73, 0x3b, 0x46, 0x41, + 0x30, 0x42, 0xc9, 0x44, 0x00, 0x49, 0x17, 0x69, + 0x05, 0xd3, 0xbe, 0x59, 0xea, 0x1c, 0x53, 0xf1, + 0x59, 0x16, 0x15, 0x5c, 0x2b, 0xe8, 0x24, 0x1a, + + 0x38, 0x00, 0x8b, 0x9a, 0x26, 0xbc, 0x35, 0x94, + 0x1e, 0x24, 0x44, 0x17, 0x7c, 0x8a, 0xde, 0x66, + 0x89, 0xde, 0x95, 0x26, 0x49, 0x86, 0xd9, 0x58, + 0x89, 0xfb, 0x60, 0xe8, 0x46, 0x29, 0xc9, 0xbd, + 0x9a, 0x5a, 0xcb, 0x1c, 0xc1, 0x18, 0xbe, 0x56, + 0x3e, 0xb9, 0xb3, 0xa4, 0xa4, 0x72, 0xf8, 0x2e, + 0x09, 0xa7, 0xe7, 0x78, 0x49, 0x2b, 0x56, 0x2e, + 0xf7, 0x13, 0x0e, 0x88, 0xdf, 0xe0, 0x31, 0xc7, + + 0x9d, 0xb9, 0xd4, 0xf7, 0xc7, 0xa8, 0x99, 0x15, + 0x1b, 0x9a, 0x47, 0x50, 0x32, 0xb6, 0x3f, 0xc3, + 0x85, 0x24, 0x5f, 0xe0, 0x54, 0xe3, 0xdd, 0x5a, + 0x97, 0xa5, 0xf5, 0x76, 0xfe, 0x06, 0x40, 0x25, + 0xd3, 0xce, 0x04, 0x2c, 0x56, 0x6a, 0xb2, 0xc5, + 0x07, 0xb1, 0x38, 0xdb, 0x85, 0x3e, 0x3d, 0x69, + 0x59, 0x66, 0x09, 0x96, 0x54, 0x6c, 0xc9, 0xc4, + 0xa6, 0xea, 0xfd, 0xc7, 0x77, 0xc0, 0x40, 0xd7, + + 0x0e, 0xaf, 0x46, 0xf7, 0x6d, 0xad, 0x39, 0x79, + 0xe5, 0xc5, 0x36, 0x0c, 0x33, 0x17, 0x16, 0x6a, + 0x1c, 0x89, 0x4c, 0x94, 0xa3, 0x71, 0x87, 0x6a, + 0x94, 0xdf, 0x76, 0x28, 0xfe, 0x4e, 0xaa, 0xf2, + 0xcc, 0xb2, 0x7d, 0x5a, 0xaa, 0xe0, 0xad, 0x7a, + 0xd0, 0xf9, 0xd4, 0xb6, 0xad, 0x3b, 0x54, 0x09, + 0x87, 0x46, 0xd4, 0x52, 0x4d, 0x38, 0x40, 0x7a, + 0x6d, 0xeb, 0x3a, 0xb7, 0x8f, 0xab, 0x78, 0xc9, + }; + const input = [_]u8{ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + var result: [256]u8 = undefined; + const key = [_]u8{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, + 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + }; + const nonce = [_]u8{ + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + }; + + chaCha20With64BitNonce(result[0..], input[0..], 0, key, nonce); + testing.expectEqualSlices(u8, expected_result, result); +} diff --git a/lib/std/crypto/gimli.zig b/lib/std/crypto/gimli.zig new file mode 100644 index 0000000000..0a0a5056c6 --- /dev/null +++ b/lib/std/crypto/gimli.zig @@ -0,0 +1,168 @@ +// Gimli is a 384-bit permutation designed to achieve high security with high +// performance across a broad range of platforms, including 64-bit Intel/AMD +// server CPUs, 64-bit and 32-bit ARM smartphone CPUs, 32-bit ARM +// microcontrollers, 8-bit AVR microcontrollers, FPGAs, ASICs without +// side-channel protection, and ASICs with side-channel protection. +// +// https://gimli.cr.yp.to/ +// https://csrc.nist.gov/CSRC/media/Projects/Lightweight-Cryptography/documents/round-1/spec-doc/gimli-spec.pdf + +const std = @import("../std.zig"); +const mem = std.mem; +const math = std.math; +const debug = std.debug; +const assert = std.debug.assert; +const testing = std.testing; +const htest = @import("test.zig"); + +pub const State = struct { + pub const BLOCKBYTES = 48; + pub const RATE = 16; + + // TODO: https://github.com/ziglang/zig/issues/2673#issuecomment-501763017 + data: [BLOCKBYTES / 4]u32, + + const Self = @This(); + + pub fn toSlice(self: *Self) []u8 { + return @sliceToBytes(self.data[0..]); + } + + pub fn toSliceConst(self: *Self) []const u8 { + return @sliceToBytes(self.data[0..]); + } + + pub fn permute(self: *Self) void { + const state = &self.data; + var round = u32(24); + while (round > 0) : (round -= 1) { + var column = usize(0); + while (column < 4) : (column += 1) { + const x = math.rotl(u32, state[column], 24); + const y = math.rotl(u32, state[4 + column], 9); + const z = state[8 + column]; + state[8 + column] = ((x ^ (z << 1)) ^ ((y & z) << 2)); + state[4 + column] = ((y ^ x) ^ ((x | z) << 1)); + state[column] = ((z ^ y) ^ ((x & y) << 3)); + } + switch (round & 3) { + 0 => { + mem.swap(u32, &state[0], &state[1]); + mem.swap(u32, &state[2], &state[3]); + state[0] ^= round | 0x9e377900; + }, + 2 => { + mem.swap(u32, &state[0], &state[2]); + mem.swap(u32, &state[1], &state[3]); + }, + else => {}, + } + } + } + + pub fn squeeze(self: *Self, out: []u8) void { + var i = usize(0); + while (i + RATE <= out.len) : (i += RATE) { + self.permute(); + mem.copy(u8, out[i..], self.toSliceConst()[0..RATE]); + } + const leftover = out.len - i; + if (leftover != 0) { + self.permute(); + mem.copy(u8, out[i..], self.toSliceConst()[0..leftover]); + } + } +}; + +test "permute" { + // test vector from gimli-20170627 + var state = State{ + .data = blk: { + var input: [12]u32 = undefined; + var i = u32(0); + while (i < 12) : (i += 1) { + input[i] = i * i * i + i *% 0x9e3779b9; + } + testing.expectEqualSlices(u32, input, [_]u32{ + 0x00000000, 0x9e3779ba, 0x3c6ef37a, 0xdaa66d46, + 0x78dde724, 0x1715611a, 0xb54cdb2e, 0x53845566, + 0xf1bbcfc8, 0x8ff34a5a, 0x2e2ac522, 0xcc624026, + }); + break :blk input; + }, + }; + state.permute(); + testing.expectEqualSlices(u32, state.data, [_]u32{ + 0xba11c85a, 0x91bad119, 0x380ce880, 0xd24c2c68, + 0x3eceffea, 0x277a921c, 0x4f73a0bd, 0xda5a9cd8, + 0x84b673f0, 0x34e52ff7, 0x9e2bef49, 0xf41bb8d6, + }); +} + +pub const Hash = struct { + state: State, + buf_off: usize, + + const Self = @This(); + + pub fn init() Self { + return Self{ + .state = State{ + .data = [_]u32{0} ** (State.BLOCKBYTES / 4), + }, + .buf_off = 0, + }; + } + + /// Also known as 'absorb' + pub fn update(self: *Self, data: []const u8) void { + const buf = self.state.toSlice(); + var in = data; + while (in.len > 0) { + var left = State.RATE - self.buf_off; + if (left == 0) { + self.state.permute(); + self.buf_off = 0; + left = State.RATE; + } + const ps = math.min(in.len, left); + for (buf[self.buf_off .. self.buf_off + ps]) |*p, i| { + p.* ^= in[i]; + } + self.buf_off += ps; + in = in[ps..]; + } + } + + /// Finish the current hashing operation, writing the hash to `out` + /// + /// From 4.9 "Application to hashing" + /// By default, Gimli-Hash provides a fixed-length output of 32 bytes + /// (the concatenation of two 16-byte blocks). However, Gimli-Hash can + /// be used as an “extendable one-way function” (XOF). + pub fn final(self: *Self, out: []u8) void { + const buf = self.state.toSlice(); + + // XOR 1 into the next byte of the state + buf[self.buf_off] ^= 1; + // XOR 1 into the last byte of the state, position 47. + buf[buf.len - 1] ^= 1; + + self.state.squeeze(out); + } +}; + +pub fn hash(out: []u8, in: []const u8) void { + var st = Hash.init(); + st.update(in); + st.final(out); +} + +test "hash" { + // a test vector (30) from NIST KAT submission. + var msg: [58 / 2]u8 = undefined; + try std.fmt.hexToBytes(&msg, "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C"); + var md: [32]u8 = undefined; + hash(&md, msg); + htest.assertEqual("1C9A03DC6A5DDC5444CFC6F4B154CFF5CF081633B2CEA4D7D0AE7CCFED5AAA44", md); +} diff --git a/lib/std/crypto/hmac.zig b/lib/std/crypto/hmac.zig new file mode 100644 index 0000000000..69c1b86386 --- /dev/null +++ b/lib/std/crypto/hmac.zig @@ -0,0 +1,99 @@ +const std = @import("../std.zig"); +const crypto = std.crypto; +const debug = std.debug; +const mem = std.mem; + +pub const HmacMd5 = Hmac(crypto.Md5); +pub const HmacSha1 = Hmac(crypto.Sha1); +pub const HmacSha256 = Hmac(crypto.Sha256); +pub const HmacBlake2s256 = Hmac(crypto.Blake2s256); + +pub fn Hmac(comptime Hash: type) type { + return struct { + const Self = @This(); + pub const mac_length = Hash.digest_length; + pub const minimum_key_length = 0; + + o_key_pad: [Hash.block_length]u8, + i_key_pad: [Hash.block_length]u8, + scratch: [Hash.block_length]u8, + hash: Hash, + + // HMAC(k, m) = H(o_key_pad | H(i_key_pad | msg)) where | is concatenation + pub fn create(out: []u8, msg: []const u8, key: []const u8) void { + var ctx = Self.init(key); + ctx.update(msg); + ctx.final(out[0..]); + } + + pub fn init(key: []const u8) Self { + var ctx: Self = undefined; + + // Normalize key length to block size of hash + if (key.len > Hash.block_length) { + Hash.hash(key, ctx.scratch[0..mac_length]); + mem.set(u8, ctx.scratch[mac_length..Hash.block_length], 0); + } else if (key.len < Hash.block_length) { + mem.copy(u8, ctx.scratch[0..key.len], key); + mem.set(u8, ctx.scratch[key.len..Hash.block_length], 0); + } else { + mem.copy(u8, ctx.scratch[0..], key); + } + + for (ctx.o_key_pad) |*b, i| { + b.* = ctx.scratch[i] ^ 0x5c; + } + + for (ctx.i_key_pad) |*b, i| { + b.* = ctx.scratch[i] ^ 0x36; + } + + ctx.hash = Hash.init(); + ctx.hash.update(ctx.i_key_pad[0..]); + return ctx; + } + + pub fn update(ctx: *Self, msg: []const u8) void { + ctx.hash.update(msg); + } + + pub fn final(ctx: *Self, out: []u8) void { + debug.assert(Hash.block_length >= out.len and out.len >= mac_length); + + ctx.hash.final(ctx.scratch[0..mac_length]); + ctx.hash.reset(); + ctx.hash.update(ctx.o_key_pad[0..]); + ctx.hash.update(ctx.scratch[0..mac_length]); + ctx.hash.final(out[0..mac_length]); + } + }; +} + +const htest = @import("test.zig"); + +test "hmac md5" { + var out: [HmacMd5.mac_length]u8 = undefined; + HmacMd5.create(out[0..], "", ""); + htest.assertEqual("74e6f7298a9c2d168935f58c001bad88", out[0..]); + + HmacMd5.create(out[0..], "The quick brown fox jumps over the lazy dog", "key"); + htest.assertEqual("80070713463e7749b90c2dc24911e275", out[0..]); +} + +test "hmac sha1" { + var out: [HmacSha1.mac_length]u8 = undefined; + HmacSha1.create(out[0..], "", ""); + htest.assertEqual("fbdb1d1b18aa6c08324b7d64b71fb76370690e1d", out[0..]); + + HmacSha1.create(out[0..], "The quick brown fox jumps over the lazy dog", "key"); + htest.assertEqual("de7c9b85b8b78aa6bc8a7a36f70a90701c9db4d9", out[0..]); +} + +test "hmac sha256" { + var out: [HmacSha256.mac_length]u8 = undefined; + HmacSha256.create(out[0..], "", ""); + htest.assertEqual("b613679a0814d9ec772f95d778c35fc5ff1697c493715653c6c712144292c5ad", out[0..]); + + HmacSha256.create(out[0..], "The quick brown fox jumps over the lazy dog", "key"); + htest.assertEqual("f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8", out[0..]); +} diff --git a/lib/std/crypto/md5.zig b/lib/std/crypto/md5.zig new file mode 100644 index 0000000000..ddbb39a9df --- /dev/null +++ b/lib/std/crypto/md5.zig @@ -0,0 +1,281 @@ +const mem = @import("../mem.zig"); +const math = @import("../math.zig"); +const endian = @import("../endian.zig"); +const builtin = @import("builtin"); +const debug = @import("../debug.zig"); +const fmt = @import("../fmt.zig"); + +const RoundParam = struct { + a: usize, + b: usize, + c: usize, + d: usize, + k: usize, + s: u32, + t: u32, +}; + +fn Rp(a: usize, b: usize, c: usize, d: usize, k: usize, s: u32, t: u32) RoundParam { + return RoundParam{ + .a = a, + .b = b, + .c = c, + .d = d, + .k = k, + .s = s, + .t = t, + }; +} + +pub const Md5 = struct { + const Self = @This(); + pub const block_length = 64; + pub const digest_length = 16; + + s: [4]u32, + // Streaming Cache + buf: [64]u8, + buf_len: u8, + total_len: u64, + + pub fn init() Self { + var d: Self = undefined; + d.reset(); + return d; + } + + pub fn reset(d: *Self) void { + d.s[0] = 0x67452301; + d.s[1] = 0xEFCDAB89; + d.s[2] = 0x98BADCFE; + d.s[3] = 0x10325476; + d.buf_len = 0; + d.total_len = 0; + } + + pub fn hash(b: []const u8, out: []u8) void { + var d = Md5.init(); + d.update(b); + d.final(out); + } + + pub fn update(d: *Self, b: []const u8) void { + var off: usize = 0; + + // Partial buffer exists from previous update. Copy into buffer then hash. + if (d.buf_len != 0 and d.buf_len + b.len > 64) { + off += 64 - d.buf_len; + mem.copy(u8, d.buf[d.buf_len..], b[0..off]); + + d.round(d.buf[0..]); + d.buf_len = 0; + } + + // Full middle blocks. + while (off + 64 <= b.len) : (off += 64) { + d.round(b[off .. off + 64]); + } + + // Copy any remainder for next pass. + mem.copy(u8, d.buf[d.buf_len..], b[off..]); + d.buf_len += @intCast(u8, b[off..].len); + + // Md5 uses the bottom 64-bits for length padding + d.total_len +%= b.len; + } + + pub fn final(d: *Self, out: []u8) void { + debug.assert(out.len >= 16); + + // The buffer here will never be completely full. + mem.set(u8, d.buf[d.buf_len..], 0); + + // Append padding bits. + d.buf[d.buf_len] = 0x80; + d.buf_len += 1; + + // > 448 mod 512 so need to add an extra round to wrap around. + if (64 - d.buf_len < 8) { + d.round(d.buf[0..]); + mem.set(u8, d.buf[0..], 0); + } + + // Append message length. + var i: usize = 1; + var len = d.total_len >> 5; + d.buf[56] = @intCast(u8, d.total_len & 0x1f) << 3; + while (i < 8) : (i += 1) { + d.buf[56 + i] = @intCast(u8, len & 0xff); + len >>= 8; + } + + d.round(d.buf[0..]); + + for (d.s) |s, j| { + // TODO https://github.com/ziglang/zig/issues/863 + mem.writeIntSliceLittle(u32, out[4 * j .. 4 * j + 4], s); + } + } + + fn round(d: *Self, b: []const u8) void { + debug.assert(b.len == 64); + + var s: [16]u32 = undefined; + + var i: usize = 0; + while (i < 16) : (i += 1) { + // NOTE: Performing or's separately improves perf by ~10% + s[i] = 0; + s[i] |= u32(b[i * 4 + 0]); + s[i] |= u32(b[i * 4 + 1]) << 8; + s[i] |= u32(b[i * 4 + 2]) << 16; + s[i] |= u32(b[i * 4 + 3]) << 24; + } + + var v: [4]u32 = [_]u32{ + d.s[0], + d.s[1], + d.s[2], + d.s[3], + }; + + const round0 = comptime [_]RoundParam{ + Rp(0, 1, 2, 3, 0, 7, 0xD76AA478), + Rp(3, 0, 1, 2, 1, 12, 0xE8C7B756), + Rp(2, 3, 0, 1, 2, 17, 0x242070DB), + Rp(1, 2, 3, 0, 3, 22, 0xC1BDCEEE), + Rp(0, 1, 2, 3, 4, 7, 0xF57C0FAF), + Rp(3, 0, 1, 2, 5, 12, 0x4787C62A), + Rp(2, 3, 0, 1, 6, 17, 0xA8304613), + Rp(1, 2, 3, 0, 7, 22, 0xFD469501), + Rp(0, 1, 2, 3, 8, 7, 0x698098D8), + Rp(3, 0, 1, 2, 9, 12, 0x8B44F7AF), + Rp(2, 3, 0, 1, 10, 17, 0xFFFF5BB1), + Rp(1, 2, 3, 0, 11, 22, 0x895CD7BE), + Rp(0, 1, 2, 3, 12, 7, 0x6B901122), + Rp(3, 0, 1, 2, 13, 12, 0xFD987193), + Rp(2, 3, 0, 1, 14, 17, 0xA679438E), + Rp(1, 2, 3, 0, 15, 22, 0x49B40821), + }; + inline for (round0) |r| { + v[r.a] = v[r.a] +% (v[r.d] ^ (v[r.b] & (v[r.c] ^ v[r.d]))) +% r.t +% s[r.k]; + v[r.a] = v[r.b] +% math.rotl(u32, v[r.a], r.s); + } + + const round1 = comptime [_]RoundParam{ + Rp(0, 1, 2, 3, 1, 5, 0xF61E2562), + Rp(3, 0, 1, 2, 6, 9, 0xC040B340), + Rp(2, 3, 0, 1, 11, 14, 0x265E5A51), + Rp(1, 2, 3, 0, 0, 20, 0xE9B6C7AA), + Rp(0, 1, 2, 3, 5, 5, 0xD62F105D), + Rp(3, 0, 1, 2, 10, 9, 0x02441453), + Rp(2, 3, 0, 1, 15, 14, 0xD8A1E681), + Rp(1, 2, 3, 0, 4, 20, 0xE7D3FBC8), + Rp(0, 1, 2, 3, 9, 5, 0x21E1CDE6), + Rp(3, 0, 1, 2, 14, 9, 0xC33707D6), + Rp(2, 3, 0, 1, 3, 14, 0xF4D50D87), + Rp(1, 2, 3, 0, 8, 20, 0x455A14ED), + Rp(0, 1, 2, 3, 13, 5, 0xA9E3E905), + Rp(3, 0, 1, 2, 2, 9, 0xFCEFA3F8), + Rp(2, 3, 0, 1, 7, 14, 0x676F02D9), + Rp(1, 2, 3, 0, 12, 20, 0x8D2A4C8A), + }; + inline for (round1) |r| { + v[r.a] = v[r.a] +% (v[r.c] ^ (v[r.d] & (v[r.b] ^ v[r.c]))) +% r.t +% s[r.k]; + v[r.a] = v[r.b] +% math.rotl(u32, v[r.a], r.s); + } + + const round2 = comptime [_]RoundParam{ + Rp(0, 1, 2, 3, 5, 4, 0xFFFA3942), + Rp(3, 0, 1, 2, 8, 11, 0x8771F681), + Rp(2, 3, 0, 1, 11, 16, 0x6D9D6122), + Rp(1, 2, 3, 0, 14, 23, 0xFDE5380C), + Rp(0, 1, 2, 3, 1, 4, 0xA4BEEA44), + Rp(3, 0, 1, 2, 4, 11, 0x4BDECFA9), + Rp(2, 3, 0, 1, 7, 16, 0xF6BB4B60), + Rp(1, 2, 3, 0, 10, 23, 0xBEBFBC70), + Rp(0, 1, 2, 3, 13, 4, 0x289B7EC6), + Rp(3, 0, 1, 2, 0, 11, 0xEAA127FA), + Rp(2, 3, 0, 1, 3, 16, 0xD4EF3085), + Rp(1, 2, 3, 0, 6, 23, 0x04881D05), + Rp(0, 1, 2, 3, 9, 4, 0xD9D4D039), + Rp(3, 0, 1, 2, 12, 11, 0xE6DB99E5), + Rp(2, 3, 0, 1, 15, 16, 0x1FA27CF8), + Rp(1, 2, 3, 0, 2, 23, 0xC4AC5665), + }; + inline for (round2) |r| { + v[r.a] = v[r.a] +% (v[r.b] ^ v[r.c] ^ v[r.d]) +% r.t +% s[r.k]; + v[r.a] = v[r.b] +% math.rotl(u32, v[r.a], r.s); + } + + const round3 = comptime [_]RoundParam{ + Rp(0, 1, 2, 3, 0, 6, 0xF4292244), + Rp(3, 0, 1, 2, 7, 10, 0x432AFF97), + Rp(2, 3, 0, 1, 14, 15, 0xAB9423A7), + Rp(1, 2, 3, 0, 5, 21, 0xFC93A039), + Rp(0, 1, 2, 3, 12, 6, 0x655B59C3), + Rp(3, 0, 1, 2, 3, 10, 0x8F0CCC92), + Rp(2, 3, 0, 1, 10, 15, 0xFFEFF47D), + Rp(1, 2, 3, 0, 1, 21, 0x85845DD1), + Rp(0, 1, 2, 3, 8, 6, 0x6FA87E4F), + Rp(3, 0, 1, 2, 15, 10, 0xFE2CE6E0), + Rp(2, 3, 0, 1, 6, 15, 0xA3014314), + Rp(1, 2, 3, 0, 13, 21, 0x4E0811A1), + Rp(0, 1, 2, 3, 4, 6, 0xF7537E82), + Rp(3, 0, 1, 2, 11, 10, 0xBD3AF235), + Rp(2, 3, 0, 1, 2, 15, 0x2AD7D2BB), + Rp(1, 2, 3, 0, 9, 21, 0xEB86D391), + }; + inline for (round3) |r| { + v[r.a] = v[r.a] +% (v[r.c] ^ (v[r.b] | ~v[r.d])) +% r.t +% s[r.k]; + v[r.a] = v[r.b] +% math.rotl(u32, v[r.a], r.s); + } + + d.s[0] +%= v[0]; + d.s[1] +%= v[1]; + d.s[2] +%= v[2]; + d.s[3] +%= v[3]; + } +}; + +const htest = @import("test.zig"); + +test "md5 single" { + htest.assertEqualHash(Md5, "d41d8cd98f00b204e9800998ecf8427e", ""); + htest.assertEqualHash(Md5, "0cc175b9c0f1b6a831c399e269772661", "a"); + htest.assertEqualHash(Md5, "900150983cd24fb0d6963f7d28e17f72", "abc"); + htest.assertEqualHash(Md5, "f96b697d7cb7938d525a2f31aaf161d0", "message digest"); + htest.assertEqualHash(Md5, "c3fcd3d76192e4007dfb496cca67e13b", "abcdefghijklmnopqrstuvwxyz"); + htest.assertEqualHash(Md5, "d174ab98d277d9f5a5611c2c9f419d9f", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"); + htest.assertEqualHash(Md5, "57edf4a22be3c955ac49da2e2107b67a", "12345678901234567890123456789012345678901234567890123456789012345678901234567890"); +} + +test "md5 streaming" { + var h = Md5.init(); + var out: [16]u8 = undefined; + + h.final(out[0..]); + htest.assertEqual("d41d8cd98f00b204e9800998ecf8427e", out[0..]); + + h.reset(); + h.update("abc"); + h.final(out[0..]); + htest.assertEqual("900150983cd24fb0d6963f7d28e17f72", out[0..]); + + h.reset(); + h.update("a"); + h.update("b"); + h.update("c"); + h.final(out[0..]); + + htest.assertEqual("900150983cd24fb0d6963f7d28e17f72", out[0..]); +} + +test "md5 aligned final" { + var block = [_]u8{0} ** Md5.block_length; + var out: [Md5.digest_length]u8 = undefined; + + var h = Md5.init(); + h.update(block); + h.final(out[0..]); +} diff --git a/lib/std/crypto/poly1305.zig b/lib/std/crypto/poly1305.zig new file mode 100644 index 0000000000..bd0b33e586 --- /dev/null +++ b/lib/std/crypto/poly1305.zig @@ -0,0 +1,234 @@ +// Translated from monocypher which is licensed under CC-0/BSD-3. +// +// https://monocypher.org/ + +const std = @import("../std.zig"); +const builtin = @import("builtin"); + +const Endian = builtin.Endian; +const readIntSliceLittle = std.mem.readIntSliceLittle; +const writeIntSliceLittle = std.mem.writeIntSliceLittle; + +pub const Poly1305 = struct { + const Self = @This(); + + pub const mac_length = 16; + pub const minimum_key_length = 32; + + // constant multiplier (from the secret key) + r: [4]u32, + // accumulated hash + h: [5]u32, + // chunk of the message + c: [5]u32, + // random number added at the end (from the secret key) + pad: [4]u32, + // How many bytes are there in the chunk. + c_idx: usize, + + fn secureZero(self: *Self) void { + std.mem.secureZero(u8, @ptrCast([*]u8, self)[0..@sizeOf(Poly1305)]); + } + + pub fn create(out: []u8, msg: []const u8, key: []const u8) void { + std.debug.assert(out.len >= mac_length); + std.debug.assert(key.len >= minimum_key_length); + + var ctx = Poly1305.init(key); + ctx.update(msg); + ctx.final(out); + } + + // Initialize the MAC context. + // - key.len is sufficient size. + pub fn init(key: []const u8) Self { + var ctx: Poly1305 = undefined; + + // Initial hash is zero + { + var i: usize = 0; + while (i < 5) : (i += 1) { + ctx.h[i] = 0; + } + } + // add 2^130 to every input block + ctx.c[4] = 1; + polyClearC(&ctx); + + // load r and pad (r has some of its bits cleared) + { + var i: usize = 0; + while (i < 1) : (i += 1) { + ctx.r[0] = readIntSliceLittle(u32, key[0..4]) & 0x0fffffff; + } + } + { + var i: usize = 1; + while (i < 4) : (i += 1) { + ctx.r[i] = readIntSliceLittle(u32, key[i * 4 .. i * 4 + 4]) & 0x0ffffffc; + } + } + { + var i: usize = 0; + while (i < 4) : (i += 1) { + ctx.pad[i] = readIntSliceLittle(u32, key[i * 4 + 16 .. i * 4 + 16 + 4]); + } + } + + return ctx; + } + + // h = (h + c) * r + // preconditions: + // ctx->h <= 4_ffffffff_ffffffff_ffffffff_ffffffff + // ctx->c <= 1_ffffffff_ffffffff_ffffffff_ffffffff + // ctx->r <= 0ffffffc_0ffffffc_0ffffffc_0fffffff + // Postcondition: + // ctx->h <= 4_ffffffff_ffffffff_ffffffff_ffffffff + fn polyBlock(ctx: *Self) void { + // s = h + c, without carry propagation + const s0 = u64(ctx.h[0]) + ctx.c[0]; // s0 <= 1_fffffffe + const s1 = u64(ctx.h[1]) + ctx.c[1]; // s1 <= 1_fffffffe + const s2 = u64(ctx.h[2]) + ctx.c[2]; // s2 <= 1_fffffffe + const s3 = u64(ctx.h[3]) + ctx.c[3]; // s3 <= 1_fffffffe + const s4 = u64(ctx.h[4]) + ctx.c[4]; // s4 <= 5 + + // Local all the things! + const r0 = ctx.r[0]; // r0 <= 0fffffff + const r1 = ctx.r[1]; // r1 <= 0ffffffc + const r2 = ctx.r[2]; // r2 <= 0ffffffc + const r3 = ctx.r[3]; // r3 <= 0ffffffc + const rr0 = (r0 >> 2) * 5; // rr0 <= 13fffffb // lose 2 bits... + const rr1 = (r1 >> 2) + r1; // rr1 <= 13fffffb // rr1 == (r1 >> 2) * 5 + const rr2 = (r2 >> 2) + r2; // rr2 <= 13fffffb // rr1 == (r2 >> 2) * 5 + const rr3 = (r3 >> 2) + r3; // rr3 <= 13fffffb // rr1 == (r3 >> 2) * 5 + + // (h + c) * r, without carry propagation + const x0 = s0 * r0 + s1 * rr3 + s2 * rr2 + s3 * rr1 + s4 * rr0; //<=97ffffe007fffff8 + const x1 = s0 * r1 + s1 * r0 + s2 * rr3 + s3 * rr2 + s4 * rr1; //<=8fffffe20ffffff6 + const x2 = s0 * r2 + s1 * r1 + s2 * r0 + s3 * rr3 + s4 * rr2; //<=87ffffe417fffff4 + const x3 = s0 * r3 + s1 * r2 + s2 * r1 + s3 * r0 + s4 * rr3; //<=7fffffe61ffffff2 + const x4 = s4 * (r0 & 3); // ...recover 2 bits //<= f + + // partial reduction modulo 2^130 - 5 + const _u5 = @truncate(u32, x4 + (x3 >> 32)); // u5 <= 7ffffff5 + const _u0 = (_u5 >> 2) * 5 + (x0 & 0xffffffff); + const _u1 = (_u0 >> 32) + (x1 & 0xffffffff) + (x0 >> 32); + const _u2 = (_u1 >> 32) + (x2 & 0xffffffff) + (x1 >> 32); + const _u3 = (_u2 >> 32) + (x3 & 0xffffffff) + (x2 >> 32); + const _u4 = (_u3 >> 32) + (_u5 & 3); + + // Update the hash + ctx.h[0] = @truncate(u32, _u0); // u0 <= 1_9ffffff0 + ctx.h[1] = @truncate(u32, _u1); // u1 <= 1_97ffffe0 + ctx.h[2] = @truncate(u32, _u2); // u2 <= 1_8fffffe2 + ctx.h[3] = @truncate(u32, _u3); // u3 <= 1_87ffffe4 + ctx.h[4] = @truncate(u32, _u4); // u4 <= 4 + } + + // (re-)initializes the input counter and input buffer + fn polyClearC(ctx: *Self) void { + ctx.c[0] = 0; + ctx.c[1] = 0; + ctx.c[2] = 0; + ctx.c[3] = 0; + ctx.c_idx = 0; + } + + fn polyTakeInput(ctx: *Self, input: u8) void { + const word = ctx.c_idx >> 2; + const byte = ctx.c_idx & 3; + ctx.c[word] |= std.math.shl(u32, input, byte * 8); + ctx.c_idx += 1; + } + + fn polyUpdate(ctx: *Self, msg: []const u8) void { + for (msg) |b| { + polyTakeInput(ctx, b); + if (ctx.c_idx == 16) { + polyBlock(ctx); + polyClearC(ctx); + } + } + } + + fn alignTo(x: usize, block_size: usize) usize { + return ((~x) +% 1) & (block_size - 1); + } + + // Feed data into the MAC context. + pub fn update(ctx: *Self, msg: []const u8) void { + // Align ourselves with block boundaries + const alignm = std.math.min(alignTo(ctx.c_idx, 16), msg.len); + polyUpdate(ctx, msg[0..alignm]); + + var nmsg = msg[alignm..]; + + // Process the msg block by block + const nb_blocks = nmsg.len >> 4; + var i: usize = 0; + while (i < nb_blocks) : (i += 1) { + ctx.c[0] = readIntSliceLittle(u32, nmsg[0..4]); + ctx.c[1] = readIntSliceLittle(u32, nmsg[4..8]); + ctx.c[2] = readIntSliceLittle(u32, nmsg[8..12]); + ctx.c[3] = readIntSliceLittle(u32, nmsg[12..16]); + polyBlock(ctx); + nmsg = nmsg[16..]; + } + if (nb_blocks > 0) { + polyClearC(ctx); + } + + // remaining bytes + polyUpdate(ctx, nmsg[0..]); + } + + // Finalize the MAC and output into buffer provided by caller. + pub fn final(ctx: *Self, out: []u8) void { + // Process the last block (if any) + if (ctx.c_idx != 0) { + // move the final 1 according to remaining input length + // (We may add less than 2^130 to the last input block) + ctx.c[4] = 0; + polyTakeInput(ctx, 1); + // one last hash update + polyBlock(ctx); + } + + // check if we should subtract 2^130-5 by performing the + // corresponding carry propagation. + const _u0 = u64(5) + ctx.h[0]; // <= 1_00000004 + const _u1 = (_u0 >> 32) + ctx.h[1]; // <= 1_00000000 + const _u2 = (_u1 >> 32) + ctx.h[2]; // <= 1_00000000 + const _u3 = (_u2 >> 32) + ctx.h[3]; // <= 1_00000000 + const _u4 = (_u3 >> 32) + ctx.h[4]; // <= 5 + // u4 indicates how many times we should subtract 2^130-5 (0 or 1) + + // h + pad, minus 2^130-5 if u4 exceeds 3 + const uu0 = (_u4 >> 2) * 5 + ctx.h[0] + ctx.pad[0]; // <= 2_00000003 + const uu1 = (uu0 >> 32) + ctx.h[1] + ctx.pad[1]; // <= 2_00000000 + const uu2 = (uu1 >> 32) + ctx.h[2] + ctx.pad[2]; // <= 2_00000000 + const uu3 = (uu2 >> 32) + ctx.h[3] + ctx.pad[3]; // <= 2_00000000 + + // TODO https://github.com/ziglang/zig/issues/863 + writeIntSliceLittle(u32, out[0..], @truncate(u32, uu0)); + writeIntSliceLittle(u32, out[4..], @truncate(u32, uu1)); + writeIntSliceLittle(u32, out[8..], @truncate(u32, uu2)); + writeIntSliceLittle(u32, out[12..], @truncate(u32, uu3)); + + ctx.secureZero(); + } +}; + +test "poly1305 rfc7439 vector1" { + const expected_mac = "\xa8\x06\x1d\xc1\x30\x51\x36\xc6\xc2\x2b\x8b\xaf\x0c\x01\x27\xa9"; + + const msg = "Cryptographic Forum Research Group"; + const key = "\x85\xd6\xbe\x78\x57\x55\x6d\x33\x7f\x44\x52\xfe\x42\xd5\x06\xa8" ++ + "\x01\x03\x80\x8a\xfb\x0d\xb2\xfd\x4a\xbf\xf6\xaf\x41\x49\xf5\x1b"; + + var mac: [16]u8 = undefined; + Poly1305.create(mac[0..], msg, key); + + std.testing.expectEqualSlices(u8, expected_mac, mac); +} diff --git a/lib/std/crypto/sha1.zig b/lib/std/crypto/sha1.zig new file mode 100644 index 0000000000..c5160a1f37 --- /dev/null +++ b/lib/std/crypto/sha1.zig @@ -0,0 +1,302 @@ +const mem = @import("../mem.zig"); +const math = @import("../math.zig"); +const endian = @import("../endian.zig"); +const debug = @import("../debug.zig"); +const builtin = @import("builtin"); + +const RoundParam = struct { + a: usize, + b: usize, + c: usize, + d: usize, + e: usize, + i: u32, +}; + +fn Rp(a: usize, b: usize, c: usize, d: usize, e: usize, i: u32) RoundParam { + return RoundParam{ + .a = a, + .b = b, + .c = c, + .d = d, + .e = e, + .i = i, + }; +} + +pub const Sha1 = struct { + const Self = @This(); + pub const block_length = 64; + pub const digest_length = 20; + + s: [5]u32, + // Streaming Cache + buf: [64]u8, + buf_len: u8, + total_len: u64, + + pub fn init() Self { + var d: Self = undefined; + d.reset(); + return d; + } + + pub fn reset(d: *Self) void { + d.s[0] = 0x67452301; + d.s[1] = 0xEFCDAB89; + d.s[2] = 0x98BADCFE; + d.s[3] = 0x10325476; + d.s[4] = 0xC3D2E1F0; + d.buf_len = 0; + d.total_len = 0; + } + + pub fn hash(b: []const u8, out: []u8) void { + var d = Sha1.init(); + d.update(b); + d.final(out); + } + + pub fn update(d: *Self, b: []const u8) void { + var off: usize = 0; + + // Partial buffer exists from previous update. Copy into buffer then hash. + if (d.buf_len != 0 and d.buf_len + b.len > 64) { + off += 64 - d.buf_len; + mem.copy(u8, d.buf[d.buf_len..], b[0..off]); + + d.round(d.buf[0..]); + d.buf_len = 0; + } + + // Full middle blocks. + while (off + 64 <= b.len) : (off += 64) { + d.round(b[off .. off + 64]); + } + + // Copy any remainder for next pass. + mem.copy(u8, d.buf[d.buf_len..], b[off..]); + d.buf_len += @intCast(u8, b[off..].len); + + d.total_len += b.len; + } + + pub fn final(d: *Self, out: []u8) void { + debug.assert(out.len >= 20); + + // The buffer here will never be completely full. + mem.set(u8, d.buf[d.buf_len..], 0); + + // Append padding bits. + d.buf[d.buf_len] = 0x80; + d.buf_len += 1; + + // > 448 mod 512 so need to add an extra round to wrap around. + if (64 - d.buf_len < 8) { + d.round(d.buf[0..]); + mem.set(u8, d.buf[0..], 0); + } + + // Append message length. + var i: usize = 1; + var len = d.total_len >> 5; + d.buf[63] = @intCast(u8, d.total_len & 0x1f) << 3; + while (i < 8) : (i += 1) { + d.buf[63 - i] = @intCast(u8, len & 0xff); + len >>= 8; + } + + d.round(d.buf[0..]); + + for (d.s) |s, j| { + // TODO https://github.com/ziglang/zig/issues/863 + mem.writeIntSliceBig(u32, out[4 * j .. 4 * j + 4], s); + } + } + + fn round(d: *Self, b: []const u8) void { + debug.assert(b.len == 64); + + var s: [16]u32 = undefined; + + var v: [5]u32 = [_]u32{ + d.s[0], + d.s[1], + d.s[2], + d.s[3], + d.s[4], + }; + + const round0a = comptime [_]RoundParam{ + Rp(0, 1, 2, 3, 4, 0), + Rp(4, 0, 1, 2, 3, 1), + Rp(3, 4, 0, 1, 2, 2), + Rp(2, 3, 4, 0, 1, 3), + Rp(1, 2, 3, 4, 0, 4), + Rp(0, 1, 2, 3, 4, 5), + Rp(4, 0, 1, 2, 3, 6), + Rp(3, 4, 0, 1, 2, 7), + Rp(2, 3, 4, 0, 1, 8), + Rp(1, 2, 3, 4, 0, 9), + Rp(0, 1, 2, 3, 4, 10), + Rp(4, 0, 1, 2, 3, 11), + Rp(3, 4, 0, 1, 2, 12), + Rp(2, 3, 4, 0, 1, 13), + Rp(1, 2, 3, 4, 0, 14), + Rp(0, 1, 2, 3, 4, 15), + }; + inline for (round0a) |r| { + s[r.i] = (u32(b[r.i * 4 + 0]) << 24) | (u32(b[r.i * 4 + 1]) << 16) | (u32(b[r.i * 4 + 2]) << 8) | (u32(b[r.i * 4 + 3]) << 0); + + v[r.e] = v[r.e] +% math.rotl(u32, v[r.a], u32(5)) +% 0x5A827999 +% s[r.i & 0xf] +% ((v[r.b] & v[r.c]) | (~v[r.b] & v[r.d])); + v[r.b] = math.rotl(u32, v[r.b], u32(30)); + } + + const round0b = comptime [_]RoundParam{ + Rp(4, 0, 1, 2, 3, 16), + Rp(3, 4, 0, 1, 2, 17), + Rp(2, 3, 4, 0, 1, 18), + Rp(1, 2, 3, 4, 0, 19), + }; + inline for (round0b) |r| { + const t = s[(r.i - 3) & 0xf] ^ s[(r.i - 8) & 0xf] ^ s[(r.i - 14) & 0xf] ^ s[(r.i - 16) & 0xf]; + s[r.i & 0xf] = math.rotl(u32, t, u32(1)); + + v[r.e] = v[r.e] +% math.rotl(u32, v[r.a], u32(5)) +% 0x5A827999 +% s[r.i & 0xf] +% ((v[r.b] & v[r.c]) | (~v[r.b] & v[r.d])); + v[r.b] = math.rotl(u32, v[r.b], u32(30)); + } + + const round1 = comptime [_]RoundParam{ + Rp(0, 1, 2, 3, 4, 20), + Rp(4, 0, 1, 2, 3, 21), + Rp(3, 4, 0, 1, 2, 22), + Rp(2, 3, 4, 0, 1, 23), + Rp(1, 2, 3, 4, 0, 24), + Rp(0, 1, 2, 3, 4, 25), + Rp(4, 0, 1, 2, 3, 26), + Rp(3, 4, 0, 1, 2, 27), + Rp(2, 3, 4, 0, 1, 28), + Rp(1, 2, 3, 4, 0, 29), + Rp(0, 1, 2, 3, 4, 30), + Rp(4, 0, 1, 2, 3, 31), + Rp(3, 4, 0, 1, 2, 32), + Rp(2, 3, 4, 0, 1, 33), + Rp(1, 2, 3, 4, 0, 34), + Rp(0, 1, 2, 3, 4, 35), + Rp(4, 0, 1, 2, 3, 36), + Rp(3, 4, 0, 1, 2, 37), + Rp(2, 3, 4, 0, 1, 38), + Rp(1, 2, 3, 4, 0, 39), + }; + inline for (round1) |r| { + const t = s[(r.i - 3) & 0xf] ^ s[(r.i - 8) & 0xf] ^ s[(r.i - 14) & 0xf] ^ s[(r.i - 16) & 0xf]; + s[r.i & 0xf] = math.rotl(u32, t, u32(1)); + + v[r.e] = v[r.e] +% math.rotl(u32, v[r.a], u32(5)) +% 0x6ED9EBA1 +% s[r.i & 0xf] +% (v[r.b] ^ v[r.c] ^ v[r.d]); + v[r.b] = math.rotl(u32, v[r.b], u32(30)); + } + + const round2 = comptime [_]RoundParam{ + Rp(0, 1, 2, 3, 4, 40), + Rp(4, 0, 1, 2, 3, 41), + Rp(3, 4, 0, 1, 2, 42), + Rp(2, 3, 4, 0, 1, 43), + Rp(1, 2, 3, 4, 0, 44), + Rp(0, 1, 2, 3, 4, 45), + Rp(4, 0, 1, 2, 3, 46), + Rp(3, 4, 0, 1, 2, 47), + Rp(2, 3, 4, 0, 1, 48), + Rp(1, 2, 3, 4, 0, 49), + Rp(0, 1, 2, 3, 4, 50), + Rp(4, 0, 1, 2, 3, 51), + Rp(3, 4, 0, 1, 2, 52), + Rp(2, 3, 4, 0, 1, 53), + Rp(1, 2, 3, 4, 0, 54), + Rp(0, 1, 2, 3, 4, 55), + Rp(4, 0, 1, 2, 3, 56), + Rp(3, 4, 0, 1, 2, 57), + Rp(2, 3, 4, 0, 1, 58), + Rp(1, 2, 3, 4, 0, 59), + }; + inline for (round2) |r| { + const t = s[(r.i - 3) & 0xf] ^ s[(r.i - 8) & 0xf] ^ s[(r.i - 14) & 0xf] ^ s[(r.i - 16) & 0xf]; + s[r.i & 0xf] = math.rotl(u32, t, u32(1)); + + v[r.e] = v[r.e] +% math.rotl(u32, v[r.a], u32(5)) +% 0x8F1BBCDC +% s[r.i & 0xf] +% ((v[r.b] & v[r.c]) ^ (v[r.b] & v[r.d]) ^ (v[r.c] & v[r.d])); + v[r.b] = math.rotl(u32, v[r.b], u32(30)); + } + + const round3 = comptime [_]RoundParam{ + Rp(0, 1, 2, 3, 4, 60), + Rp(4, 0, 1, 2, 3, 61), + Rp(3, 4, 0, 1, 2, 62), + Rp(2, 3, 4, 0, 1, 63), + Rp(1, 2, 3, 4, 0, 64), + Rp(0, 1, 2, 3, 4, 65), + Rp(4, 0, 1, 2, 3, 66), + Rp(3, 4, 0, 1, 2, 67), + Rp(2, 3, 4, 0, 1, 68), + Rp(1, 2, 3, 4, 0, 69), + Rp(0, 1, 2, 3, 4, 70), + Rp(4, 0, 1, 2, 3, 71), + Rp(3, 4, 0, 1, 2, 72), + Rp(2, 3, 4, 0, 1, 73), + Rp(1, 2, 3, 4, 0, 74), + Rp(0, 1, 2, 3, 4, 75), + Rp(4, 0, 1, 2, 3, 76), + Rp(3, 4, 0, 1, 2, 77), + Rp(2, 3, 4, 0, 1, 78), + Rp(1, 2, 3, 4, 0, 79), + }; + inline for (round3) |r| { + const t = s[(r.i - 3) & 0xf] ^ s[(r.i - 8) & 0xf] ^ s[(r.i - 14) & 0xf] ^ s[(r.i - 16) & 0xf]; + s[r.i & 0xf] = math.rotl(u32, t, u32(1)); + + v[r.e] = v[r.e] +% math.rotl(u32, v[r.a], u32(5)) +% 0xCA62C1D6 +% s[r.i & 0xf] +% (v[r.b] ^ v[r.c] ^ v[r.d]); + v[r.b] = math.rotl(u32, v[r.b], u32(30)); + } + + d.s[0] +%= v[0]; + d.s[1] +%= v[1]; + d.s[2] +%= v[2]; + d.s[3] +%= v[3]; + d.s[4] +%= v[4]; + } +}; + +const htest = @import("test.zig"); + +test "sha1 single" { + htest.assertEqualHash(Sha1, "da39a3ee5e6b4b0d3255bfef95601890afd80709", ""); + htest.assertEqualHash(Sha1, "a9993e364706816aba3e25717850c26c9cd0d89d", "abc"); + htest.assertEqualHash(Sha1, "a49b2446a02c645bf419f995b67091253a04a259", "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"); +} + +test "sha1 streaming" { + var h = Sha1.init(); + var out: [20]u8 = undefined; + + h.final(out[0..]); + htest.assertEqual("da39a3ee5e6b4b0d3255bfef95601890afd80709", out[0..]); + + h.reset(); + h.update("abc"); + h.final(out[0..]); + htest.assertEqual("a9993e364706816aba3e25717850c26c9cd0d89d", out[0..]); + + h.reset(); + h.update("a"); + h.update("b"); + h.update("c"); + h.final(out[0..]); + htest.assertEqual("a9993e364706816aba3e25717850c26c9cd0d89d", out[0..]); +} + +test "sha1 aligned final" { + var block = [_]u8{0} ** Sha1.block_length; + var out: [Sha1.digest_length]u8 = undefined; + + var h = Sha1.init(); + h.update(block); + h.final(out[0..]); +} diff --git a/lib/std/crypto/sha2.zig b/lib/std/crypto/sha2.zig new file mode 100644 index 0000000000..b40a39d579 --- /dev/null +++ b/lib/std/crypto/sha2.zig @@ -0,0 +1,726 @@ +const mem = @import("../mem.zig"); +const math = @import("../math.zig"); +const endian = @import("../endian.zig"); +const debug = @import("../debug.zig"); +const builtin = @import("builtin"); +const htest = @import("test.zig"); + +///////////////////// +// Sha224 + Sha256 + +const RoundParam256 = struct { + a: usize, + b: usize, + c: usize, + d: usize, + e: usize, + f: usize, + g: usize, + h: usize, + i: usize, + k: u32, +}; + +fn Rp256(a: usize, b: usize, c: usize, d: usize, e: usize, f: usize, g: usize, h: usize, i: usize, k: u32) RoundParam256 { + return RoundParam256{ + .a = a, + .b = b, + .c = c, + .d = d, + .e = e, + .f = f, + .g = g, + .h = h, + .i = i, + .k = k, + }; +} + +const Sha2Params32 = struct { + iv0: u32, + iv1: u32, + iv2: u32, + iv3: u32, + iv4: u32, + iv5: u32, + iv6: u32, + iv7: u32, + out_len: usize, +}; + +const Sha224Params = Sha2Params32{ + .iv0 = 0xC1059ED8, + .iv1 = 0x367CD507, + .iv2 = 0x3070DD17, + .iv3 = 0xF70E5939, + .iv4 = 0xFFC00B31, + .iv5 = 0x68581511, + .iv6 = 0x64F98FA7, + .iv7 = 0xBEFA4FA4, + .out_len = 224, +}; + +const Sha256Params = Sha2Params32{ + .iv0 = 0x6A09E667, + .iv1 = 0xBB67AE85, + .iv2 = 0x3C6EF372, + .iv3 = 0xA54FF53A, + .iv4 = 0x510E527F, + .iv5 = 0x9B05688C, + .iv6 = 0x1F83D9AB, + .iv7 = 0x5BE0CD19, + .out_len = 256, +}; + +pub const Sha224 = Sha2_32(Sha224Params); +pub const Sha256 = Sha2_32(Sha256Params); + +fn Sha2_32(comptime params: Sha2Params32) type { + return struct { + const Self = @This(); + pub const block_length = 64; + pub const digest_length = params.out_len / 8; + + s: [8]u32, + // Streaming Cache + buf: [64]u8, + buf_len: u8, + total_len: u64, + + pub fn init() Self { + var d: Self = undefined; + d.reset(); + return d; + } + + pub fn reset(d: *Self) void { + d.s[0] = params.iv0; + d.s[1] = params.iv1; + d.s[2] = params.iv2; + d.s[3] = params.iv3; + d.s[4] = params.iv4; + d.s[5] = params.iv5; + d.s[6] = params.iv6; + d.s[7] = params.iv7; + d.buf_len = 0; + d.total_len = 0; + } + + pub fn hash(b: []const u8, out: []u8) void { + var d = Self.init(); + d.update(b); + d.final(out); + } + + pub fn update(d: *Self, b: []const u8) void { + var off: usize = 0; + + // Partial buffer exists from previous update. Copy into buffer then hash. + if (d.buf_len != 0 and d.buf_len + b.len > 64) { + off += 64 - d.buf_len; + mem.copy(u8, d.buf[d.buf_len..], b[0..off]); + + d.round(d.buf[0..]); + d.buf_len = 0; + } + + // Full middle blocks. + while (off + 64 <= b.len) : (off += 64) { + d.round(b[off .. off + 64]); + } + + // Copy any remainder for next pass. + mem.copy(u8, d.buf[d.buf_len..], b[off..]); + d.buf_len += @intCast(u8, b[off..].len); + + d.total_len += b.len; + } + + pub fn final(d: *Self, out: []u8) void { + debug.assert(out.len >= params.out_len / 8); + + // The buffer here will never be completely full. + mem.set(u8, d.buf[d.buf_len..], 0); + + // Append padding bits. + d.buf[d.buf_len] = 0x80; + d.buf_len += 1; + + // > 448 mod 512 so need to add an extra round to wrap around. + if (64 - d.buf_len < 8) { + d.round(d.buf[0..]); + mem.set(u8, d.buf[0..], 0); + } + + // Append message length. + var i: usize = 1; + var len = d.total_len >> 5; + d.buf[63] = @intCast(u8, d.total_len & 0x1f) << 3; + while (i < 8) : (i += 1) { + d.buf[63 - i] = @intCast(u8, len & 0xff); + len >>= 8; + } + + d.round(d.buf[0..]); + + // May truncate for possible 224 output + const rr = d.s[0 .. params.out_len / 32]; + + for (rr) |s, j| { + // TODO https://github.com/ziglang/zig/issues/863 + mem.writeIntSliceBig(u32, out[4 * j .. 4 * j + 4], s); + } + } + + fn round(d: *Self, b: []const u8) void { + debug.assert(b.len == 64); + + var s: [64]u32 = undefined; + + var i: usize = 0; + while (i < 16) : (i += 1) { + s[i] = 0; + s[i] |= u32(b[i * 4 + 0]) << 24; + s[i] |= u32(b[i * 4 + 1]) << 16; + s[i] |= u32(b[i * 4 + 2]) << 8; + s[i] |= u32(b[i * 4 + 3]) << 0; + } + while (i < 64) : (i += 1) { + s[i] = s[i - 16] +% s[i - 7] +% (math.rotr(u32, s[i - 15], u32(7)) ^ math.rotr(u32, s[i - 15], u32(18)) ^ (s[i - 15] >> 3)) +% (math.rotr(u32, s[i - 2], u32(17)) ^ math.rotr(u32, s[i - 2], u32(19)) ^ (s[i - 2] >> 10)); + } + + var v: [8]u32 = [_]u32{ + d.s[0], + d.s[1], + d.s[2], + d.s[3], + d.s[4], + d.s[5], + d.s[6], + d.s[7], + }; + + const round0 = comptime [_]RoundParam256{ + Rp256(0, 1, 2, 3, 4, 5, 6, 7, 0, 0x428A2F98), + Rp256(7, 0, 1, 2, 3, 4, 5, 6, 1, 0x71374491), + Rp256(6, 7, 0, 1, 2, 3, 4, 5, 2, 0xB5C0FBCF), + Rp256(5, 6, 7, 0, 1, 2, 3, 4, 3, 0xE9B5DBA5), + Rp256(4, 5, 6, 7, 0, 1, 2, 3, 4, 0x3956C25B), + Rp256(3, 4, 5, 6, 7, 0, 1, 2, 5, 0x59F111F1), + Rp256(2, 3, 4, 5, 6, 7, 0, 1, 6, 0x923F82A4), + Rp256(1, 2, 3, 4, 5, 6, 7, 0, 7, 0xAB1C5ED5), + Rp256(0, 1, 2, 3, 4, 5, 6, 7, 8, 0xD807AA98), + Rp256(7, 0, 1, 2, 3, 4, 5, 6, 9, 0x12835B01), + Rp256(6, 7, 0, 1, 2, 3, 4, 5, 10, 0x243185BE), + Rp256(5, 6, 7, 0, 1, 2, 3, 4, 11, 0x550C7DC3), + Rp256(4, 5, 6, 7, 0, 1, 2, 3, 12, 0x72BE5D74), + Rp256(3, 4, 5, 6, 7, 0, 1, 2, 13, 0x80DEB1FE), + Rp256(2, 3, 4, 5, 6, 7, 0, 1, 14, 0x9BDC06A7), + Rp256(1, 2, 3, 4, 5, 6, 7, 0, 15, 0xC19BF174), + Rp256(0, 1, 2, 3, 4, 5, 6, 7, 16, 0xE49B69C1), + Rp256(7, 0, 1, 2, 3, 4, 5, 6, 17, 0xEFBE4786), + Rp256(6, 7, 0, 1, 2, 3, 4, 5, 18, 0x0FC19DC6), + Rp256(5, 6, 7, 0, 1, 2, 3, 4, 19, 0x240CA1CC), + Rp256(4, 5, 6, 7, 0, 1, 2, 3, 20, 0x2DE92C6F), + Rp256(3, 4, 5, 6, 7, 0, 1, 2, 21, 0x4A7484AA), + Rp256(2, 3, 4, 5, 6, 7, 0, 1, 22, 0x5CB0A9DC), + Rp256(1, 2, 3, 4, 5, 6, 7, 0, 23, 0x76F988DA), + Rp256(0, 1, 2, 3, 4, 5, 6, 7, 24, 0x983E5152), + Rp256(7, 0, 1, 2, 3, 4, 5, 6, 25, 0xA831C66D), + Rp256(6, 7, 0, 1, 2, 3, 4, 5, 26, 0xB00327C8), + Rp256(5, 6, 7, 0, 1, 2, 3, 4, 27, 0xBF597FC7), + Rp256(4, 5, 6, 7, 0, 1, 2, 3, 28, 0xC6E00BF3), + Rp256(3, 4, 5, 6, 7, 0, 1, 2, 29, 0xD5A79147), + Rp256(2, 3, 4, 5, 6, 7, 0, 1, 30, 0x06CA6351), + Rp256(1, 2, 3, 4, 5, 6, 7, 0, 31, 0x14292967), + Rp256(0, 1, 2, 3, 4, 5, 6, 7, 32, 0x27B70A85), + Rp256(7, 0, 1, 2, 3, 4, 5, 6, 33, 0x2E1B2138), + Rp256(6, 7, 0, 1, 2, 3, 4, 5, 34, 0x4D2C6DFC), + Rp256(5, 6, 7, 0, 1, 2, 3, 4, 35, 0x53380D13), + Rp256(4, 5, 6, 7, 0, 1, 2, 3, 36, 0x650A7354), + Rp256(3, 4, 5, 6, 7, 0, 1, 2, 37, 0x766A0ABB), + Rp256(2, 3, 4, 5, 6, 7, 0, 1, 38, 0x81C2C92E), + Rp256(1, 2, 3, 4, 5, 6, 7, 0, 39, 0x92722C85), + Rp256(0, 1, 2, 3, 4, 5, 6, 7, 40, 0xA2BFE8A1), + Rp256(7, 0, 1, 2, 3, 4, 5, 6, 41, 0xA81A664B), + Rp256(6, 7, 0, 1, 2, 3, 4, 5, 42, 0xC24B8B70), + Rp256(5, 6, 7, 0, 1, 2, 3, 4, 43, 0xC76C51A3), + Rp256(4, 5, 6, 7, 0, 1, 2, 3, 44, 0xD192E819), + Rp256(3, 4, 5, 6, 7, 0, 1, 2, 45, 0xD6990624), + Rp256(2, 3, 4, 5, 6, 7, 0, 1, 46, 0xF40E3585), + Rp256(1, 2, 3, 4, 5, 6, 7, 0, 47, 0x106AA070), + Rp256(0, 1, 2, 3, 4, 5, 6, 7, 48, 0x19A4C116), + Rp256(7, 0, 1, 2, 3, 4, 5, 6, 49, 0x1E376C08), + Rp256(6, 7, 0, 1, 2, 3, 4, 5, 50, 0x2748774C), + Rp256(5, 6, 7, 0, 1, 2, 3, 4, 51, 0x34B0BCB5), + Rp256(4, 5, 6, 7, 0, 1, 2, 3, 52, 0x391C0CB3), + Rp256(3, 4, 5, 6, 7, 0, 1, 2, 53, 0x4ED8AA4A), + Rp256(2, 3, 4, 5, 6, 7, 0, 1, 54, 0x5B9CCA4F), + Rp256(1, 2, 3, 4, 5, 6, 7, 0, 55, 0x682E6FF3), + Rp256(0, 1, 2, 3, 4, 5, 6, 7, 56, 0x748F82EE), + Rp256(7, 0, 1, 2, 3, 4, 5, 6, 57, 0x78A5636F), + Rp256(6, 7, 0, 1, 2, 3, 4, 5, 58, 0x84C87814), + Rp256(5, 6, 7, 0, 1, 2, 3, 4, 59, 0x8CC70208), + Rp256(4, 5, 6, 7, 0, 1, 2, 3, 60, 0x90BEFFFA), + Rp256(3, 4, 5, 6, 7, 0, 1, 2, 61, 0xA4506CEB), + Rp256(2, 3, 4, 5, 6, 7, 0, 1, 62, 0xBEF9A3F7), + Rp256(1, 2, 3, 4, 5, 6, 7, 0, 63, 0xC67178F2), + }; + inline for (round0) |r| { + v[r.h] = v[r.h] +% (math.rotr(u32, v[r.e], u32(6)) ^ math.rotr(u32, v[r.e], u32(11)) ^ math.rotr(u32, v[r.e], u32(25))) +% (v[r.g] ^ (v[r.e] & (v[r.f] ^ v[r.g]))) +% r.k +% s[r.i]; + + v[r.d] = v[r.d] +% v[r.h]; + + v[r.h] = v[r.h] +% (math.rotr(u32, v[r.a], u32(2)) ^ math.rotr(u32, v[r.a], u32(13)) ^ math.rotr(u32, v[r.a], u32(22))) +% ((v[r.a] & (v[r.b] | v[r.c])) | (v[r.b] & v[r.c])); + } + + d.s[0] +%= v[0]; + d.s[1] +%= v[1]; + d.s[2] +%= v[2]; + d.s[3] +%= v[3]; + d.s[4] +%= v[4]; + d.s[5] +%= v[5]; + d.s[6] +%= v[6]; + d.s[7] +%= v[7]; + } + }; +} + +test "sha224 single" { + htest.assertEqualHash(Sha224, "d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f", ""); + htest.assertEqualHash(Sha224, "23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7", "abc"); + htest.assertEqualHash(Sha224, "c97ca9a559850ce97a04a96def6d99a9e0e0e2ab14e6b8df265fc0b3", "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"); +} + +test "sha224 streaming" { + var h = Sha224.init(); + var out: [28]u8 = undefined; + + h.final(out[0..]); + htest.assertEqual("d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f", out[0..]); + + h.reset(); + h.update("abc"); + h.final(out[0..]); + htest.assertEqual("23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7", out[0..]); + + h.reset(); + h.update("a"); + h.update("b"); + h.update("c"); + h.final(out[0..]); + htest.assertEqual("23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7", out[0..]); +} + +test "sha256 single" { + htest.assertEqualHash(Sha256, "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", ""); + htest.assertEqualHash(Sha256, "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", "abc"); + htest.assertEqualHash(Sha256, "cf5b16a778af8380036ce59e7b0492370b249b11e8f07a51afac45037afee9d1", "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"); +} + +test "sha256 streaming" { + var h = Sha256.init(); + var out: [32]u8 = undefined; + + h.final(out[0..]); + htest.assertEqual("e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", out[0..]); + + h.reset(); + h.update("abc"); + h.final(out[0..]); + htest.assertEqual("ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", out[0..]); + + h.reset(); + h.update("a"); + h.update("b"); + h.update("c"); + h.final(out[0..]); + htest.assertEqual("ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", out[0..]); +} + +test "sha256 aligned final" { + var block = [_]u8{0} ** Sha256.block_length; + var out: [Sha256.digest_length]u8 = undefined; + + var h = Sha256.init(); + h.update(block); + h.final(out[0..]); +} + +///////////////////// +// Sha384 + Sha512 + +const RoundParam512 = struct { + a: usize, + b: usize, + c: usize, + d: usize, + e: usize, + f: usize, + g: usize, + h: usize, + i: usize, + k: u64, +}; + +fn Rp512(a: usize, b: usize, c: usize, d: usize, e: usize, f: usize, g: usize, h: usize, i: usize, k: u64) RoundParam512 { + return RoundParam512{ + .a = a, + .b = b, + .c = c, + .d = d, + .e = e, + .f = f, + .g = g, + .h = h, + .i = i, + .k = k, + }; +} + +const Sha2Params64 = struct { + iv0: u64, + iv1: u64, + iv2: u64, + iv3: u64, + iv4: u64, + iv5: u64, + iv6: u64, + iv7: u64, + out_len: usize, +}; + +const Sha384Params = Sha2Params64{ + .iv0 = 0xCBBB9D5DC1059ED8, + .iv1 = 0x629A292A367CD507, + .iv2 = 0x9159015A3070DD17, + .iv3 = 0x152FECD8F70E5939, + .iv4 = 0x67332667FFC00B31, + .iv5 = 0x8EB44A8768581511, + .iv6 = 0xDB0C2E0D64F98FA7, + .iv7 = 0x47B5481DBEFA4FA4, + .out_len = 384, +}; + +const Sha512Params = Sha2Params64{ + .iv0 = 0x6A09E667F3BCC908, + .iv1 = 0xBB67AE8584CAA73B, + .iv2 = 0x3C6EF372FE94F82B, + .iv3 = 0xA54FF53A5F1D36F1, + .iv4 = 0x510E527FADE682D1, + .iv5 = 0x9B05688C2B3E6C1F, + .iv6 = 0x1F83D9ABFB41BD6B, + .iv7 = 0x5BE0CD19137E2179, + .out_len = 512, +}; + +pub const Sha384 = Sha2_64(Sha384Params); +pub const Sha512 = Sha2_64(Sha512Params); + +fn Sha2_64(comptime params: Sha2Params64) type { + return struct { + const Self = @This(); + pub const block_length = 128; + pub const digest_length = params.out_len / 8; + + s: [8]u64, + // Streaming Cache + buf: [128]u8, + buf_len: u8, + total_len: u128, + + pub fn init() Self { + var d: Self = undefined; + d.reset(); + return d; + } + + pub fn reset(d: *Self) void { + d.s[0] = params.iv0; + d.s[1] = params.iv1; + d.s[2] = params.iv2; + d.s[3] = params.iv3; + d.s[4] = params.iv4; + d.s[5] = params.iv5; + d.s[6] = params.iv6; + d.s[7] = params.iv7; + d.buf_len = 0; + d.total_len = 0; + } + + pub fn hash(b: []const u8, out: []u8) void { + var d = Self.init(); + d.update(b); + d.final(out); + } + + pub fn update(d: *Self, b: []const u8) void { + var off: usize = 0; + + // Partial buffer exists from previous update. Copy into buffer then hash. + if (d.buf_len != 0 and d.buf_len + b.len > 128) { + off += 128 - d.buf_len; + mem.copy(u8, d.buf[d.buf_len..], b[0..off]); + + d.round(d.buf[0..]); + d.buf_len = 0; + } + + // Full middle blocks. + while (off + 128 <= b.len) : (off += 128) { + d.round(b[off .. off + 128]); + } + + // Copy any remainder for next pass. + mem.copy(u8, d.buf[d.buf_len..], b[off..]); + d.buf_len += @intCast(u8, b[off..].len); + + d.total_len += b.len; + } + + pub fn final(d: *Self, out: []u8) void { + debug.assert(out.len >= params.out_len / 8); + + // The buffer here will never be completely full. + mem.set(u8, d.buf[d.buf_len..], 0); + + // Append padding bits. + d.buf[d.buf_len] = 0x80; + d.buf_len += 1; + + // > 896 mod 1024 so need to add an extra round to wrap around. + if (128 - d.buf_len < 16) { + d.round(d.buf[0..]); + mem.set(u8, d.buf[0..], 0); + } + + // Append message length. + var i: usize = 1; + var len = d.total_len >> 5; + d.buf[127] = @intCast(u8, d.total_len & 0x1f) << 3; + while (i < 16) : (i += 1) { + d.buf[127 - i] = @intCast(u8, len & 0xff); + len >>= 8; + } + + d.round(d.buf[0..]); + + // May truncate for possible 384 output + const rr = d.s[0 .. params.out_len / 64]; + + for (rr) |s, j| { + // TODO https://github.com/ziglang/zig/issues/863 + mem.writeIntSliceBig(u64, out[8 * j .. 8 * j + 8], s); + } + } + + fn round(d: *Self, b: []const u8) void { + debug.assert(b.len == 128); + + var s: [80]u64 = undefined; + + var i: usize = 0; + while (i < 16) : (i += 1) { + s[i] = 0; + s[i] |= u64(b[i * 8 + 0]) << 56; + s[i] |= u64(b[i * 8 + 1]) << 48; + s[i] |= u64(b[i * 8 + 2]) << 40; + s[i] |= u64(b[i * 8 + 3]) << 32; + s[i] |= u64(b[i * 8 + 4]) << 24; + s[i] |= u64(b[i * 8 + 5]) << 16; + s[i] |= u64(b[i * 8 + 6]) << 8; + s[i] |= u64(b[i * 8 + 7]) << 0; + } + while (i < 80) : (i += 1) { + s[i] = s[i - 16] +% s[i - 7] +% (math.rotr(u64, s[i - 15], u64(1)) ^ math.rotr(u64, s[i - 15], u64(8)) ^ (s[i - 15] >> 7)) +% (math.rotr(u64, s[i - 2], u64(19)) ^ math.rotr(u64, s[i - 2], u64(61)) ^ (s[i - 2] >> 6)); + } + + var v: [8]u64 = [_]u64{ + d.s[0], + d.s[1], + d.s[2], + d.s[3], + d.s[4], + d.s[5], + d.s[6], + d.s[7], + }; + + const round0 = comptime [_]RoundParam512{ + Rp512(0, 1, 2, 3, 4, 5, 6, 7, 0, 0x428A2F98D728AE22), + Rp512(7, 0, 1, 2, 3, 4, 5, 6, 1, 0x7137449123EF65CD), + Rp512(6, 7, 0, 1, 2, 3, 4, 5, 2, 0xB5C0FBCFEC4D3B2F), + Rp512(5, 6, 7, 0, 1, 2, 3, 4, 3, 0xE9B5DBA58189DBBC), + Rp512(4, 5, 6, 7, 0, 1, 2, 3, 4, 0x3956C25BF348B538), + Rp512(3, 4, 5, 6, 7, 0, 1, 2, 5, 0x59F111F1B605D019), + Rp512(2, 3, 4, 5, 6, 7, 0, 1, 6, 0x923F82A4AF194F9B), + Rp512(1, 2, 3, 4, 5, 6, 7, 0, 7, 0xAB1C5ED5DA6D8118), + Rp512(0, 1, 2, 3, 4, 5, 6, 7, 8, 0xD807AA98A3030242), + Rp512(7, 0, 1, 2, 3, 4, 5, 6, 9, 0x12835B0145706FBE), + Rp512(6, 7, 0, 1, 2, 3, 4, 5, 10, 0x243185BE4EE4B28C), + Rp512(5, 6, 7, 0, 1, 2, 3, 4, 11, 0x550C7DC3D5FFB4E2), + Rp512(4, 5, 6, 7, 0, 1, 2, 3, 12, 0x72BE5D74F27B896F), + Rp512(3, 4, 5, 6, 7, 0, 1, 2, 13, 0x80DEB1FE3B1696B1), + Rp512(2, 3, 4, 5, 6, 7, 0, 1, 14, 0x9BDC06A725C71235), + Rp512(1, 2, 3, 4, 5, 6, 7, 0, 15, 0xC19BF174CF692694), + Rp512(0, 1, 2, 3, 4, 5, 6, 7, 16, 0xE49B69C19EF14AD2), + Rp512(7, 0, 1, 2, 3, 4, 5, 6, 17, 0xEFBE4786384F25E3), + Rp512(6, 7, 0, 1, 2, 3, 4, 5, 18, 0x0FC19DC68B8CD5B5), + Rp512(5, 6, 7, 0, 1, 2, 3, 4, 19, 0x240CA1CC77AC9C65), + Rp512(4, 5, 6, 7, 0, 1, 2, 3, 20, 0x2DE92C6F592B0275), + Rp512(3, 4, 5, 6, 7, 0, 1, 2, 21, 0x4A7484AA6EA6E483), + Rp512(2, 3, 4, 5, 6, 7, 0, 1, 22, 0x5CB0A9DCBD41FBD4), + Rp512(1, 2, 3, 4, 5, 6, 7, 0, 23, 0x76F988DA831153B5), + Rp512(0, 1, 2, 3, 4, 5, 6, 7, 24, 0x983E5152EE66DFAB), + Rp512(7, 0, 1, 2, 3, 4, 5, 6, 25, 0xA831C66D2DB43210), + Rp512(6, 7, 0, 1, 2, 3, 4, 5, 26, 0xB00327C898FB213F), + Rp512(5, 6, 7, 0, 1, 2, 3, 4, 27, 0xBF597FC7BEEF0EE4), + Rp512(4, 5, 6, 7, 0, 1, 2, 3, 28, 0xC6E00BF33DA88FC2), + Rp512(3, 4, 5, 6, 7, 0, 1, 2, 29, 0xD5A79147930AA725), + Rp512(2, 3, 4, 5, 6, 7, 0, 1, 30, 0x06CA6351E003826F), + Rp512(1, 2, 3, 4, 5, 6, 7, 0, 31, 0x142929670A0E6E70), + Rp512(0, 1, 2, 3, 4, 5, 6, 7, 32, 0x27B70A8546D22FFC), + Rp512(7, 0, 1, 2, 3, 4, 5, 6, 33, 0x2E1B21385C26C926), + Rp512(6, 7, 0, 1, 2, 3, 4, 5, 34, 0x4D2C6DFC5AC42AED), + Rp512(5, 6, 7, 0, 1, 2, 3, 4, 35, 0x53380D139D95B3DF), + Rp512(4, 5, 6, 7, 0, 1, 2, 3, 36, 0x650A73548BAF63DE), + Rp512(3, 4, 5, 6, 7, 0, 1, 2, 37, 0x766A0ABB3C77B2A8), + Rp512(2, 3, 4, 5, 6, 7, 0, 1, 38, 0x81C2C92E47EDAEE6), + Rp512(1, 2, 3, 4, 5, 6, 7, 0, 39, 0x92722C851482353B), + Rp512(0, 1, 2, 3, 4, 5, 6, 7, 40, 0xA2BFE8A14CF10364), + Rp512(7, 0, 1, 2, 3, 4, 5, 6, 41, 0xA81A664BBC423001), + Rp512(6, 7, 0, 1, 2, 3, 4, 5, 42, 0xC24B8B70D0F89791), + Rp512(5, 6, 7, 0, 1, 2, 3, 4, 43, 0xC76C51A30654BE30), + Rp512(4, 5, 6, 7, 0, 1, 2, 3, 44, 0xD192E819D6EF5218), + Rp512(3, 4, 5, 6, 7, 0, 1, 2, 45, 0xD69906245565A910), + Rp512(2, 3, 4, 5, 6, 7, 0, 1, 46, 0xF40E35855771202A), + Rp512(1, 2, 3, 4, 5, 6, 7, 0, 47, 0x106AA07032BBD1B8), + Rp512(0, 1, 2, 3, 4, 5, 6, 7, 48, 0x19A4C116B8D2D0C8), + Rp512(7, 0, 1, 2, 3, 4, 5, 6, 49, 0x1E376C085141AB53), + Rp512(6, 7, 0, 1, 2, 3, 4, 5, 50, 0x2748774CDF8EEB99), + Rp512(5, 6, 7, 0, 1, 2, 3, 4, 51, 0x34B0BCB5E19B48A8), + Rp512(4, 5, 6, 7, 0, 1, 2, 3, 52, 0x391C0CB3C5C95A63), + Rp512(3, 4, 5, 6, 7, 0, 1, 2, 53, 0x4ED8AA4AE3418ACB), + Rp512(2, 3, 4, 5, 6, 7, 0, 1, 54, 0x5B9CCA4F7763E373), + Rp512(1, 2, 3, 4, 5, 6, 7, 0, 55, 0x682E6FF3D6B2B8A3), + Rp512(0, 1, 2, 3, 4, 5, 6, 7, 56, 0x748F82EE5DEFB2FC), + Rp512(7, 0, 1, 2, 3, 4, 5, 6, 57, 0x78A5636F43172F60), + Rp512(6, 7, 0, 1, 2, 3, 4, 5, 58, 0x84C87814A1F0AB72), + Rp512(5, 6, 7, 0, 1, 2, 3, 4, 59, 0x8CC702081A6439EC), + Rp512(4, 5, 6, 7, 0, 1, 2, 3, 60, 0x90BEFFFA23631E28), + Rp512(3, 4, 5, 6, 7, 0, 1, 2, 61, 0xA4506CEBDE82BDE9), + Rp512(2, 3, 4, 5, 6, 7, 0, 1, 62, 0xBEF9A3F7B2C67915), + Rp512(1, 2, 3, 4, 5, 6, 7, 0, 63, 0xC67178F2E372532B), + Rp512(0, 1, 2, 3, 4, 5, 6, 7, 64, 0xCA273ECEEA26619C), + Rp512(7, 0, 1, 2, 3, 4, 5, 6, 65, 0xD186B8C721C0C207), + Rp512(6, 7, 0, 1, 2, 3, 4, 5, 66, 0xEADA7DD6CDE0EB1E), + Rp512(5, 6, 7, 0, 1, 2, 3, 4, 67, 0xF57D4F7FEE6ED178), + Rp512(4, 5, 6, 7, 0, 1, 2, 3, 68, 0x06F067AA72176FBA), + Rp512(3, 4, 5, 6, 7, 0, 1, 2, 69, 0x0A637DC5A2C898A6), + Rp512(2, 3, 4, 5, 6, 7, 0, 1, 70, 0x113F9804BEF90DAE), + Rp512(1, 2, 3, 4, 5, 6, 7, 0, 71, 0x1B710B35131C471B), + Rp512(0, 1, 2, 3, 4, 5, 6, 7, 72, 0x28DB77F523047D84), + Rp512(7, 0, 1, 2, 3, 4, 5, 6, 73, 0x32CAAB7B40C72493), + Rp512(6, 7, 0, 1, 2, 3, 4, 5, 74, 0x3C9EBE0A15C9BEBC), + Rp512(5, 6, 7, 0, 1, 2, 3, 4, 75, 0x431D67C49C100D4C), + Rp512(4, 5, 6, 7, 0, 1, 2, 3, 76, 0x4CC5D4BECB3E42B6), + Rp512(3, 4, 5, 6, 7, 0, 1, 2, 77, 0x597F299CFC657E2A), + Rp512(2, 3, 4, 5, 6, 7, 0, 1, 78, 0x5FCB6FAB3AD6FAEC), + Rp512(1, 2, 3, 4, 5, 6, 7, 0, 79, 0x6C44198C4A475817), + }; + inline for (round0) |r| { + v[r.h] = v[r.h] +% (math.rotr(u64, v[r.e], u64(14)) ^ math.rotr(u64, v[r.e], u64(18)) ^ math.rotr(u64, v[r.e], u64(41))) +% (v[r.g] ^ (v[r.e] & (v[r.f] ^ v[r.g]))) +% r.k +% s[r.i]; + + v[r.d] = v[r.d] +% v[r.h]; + + v[r.h] = v[r.h] +% (math.rotr(u64, v[r.a], u64(28)) ^ math.rotr(u64, v[r.a], u64(34)) ^ math.rotr(u64, v[r.a], u64(39))) +% ((v[r.a] & (v[r.b] | v[r.c])) | (v[r.b] & v[r.c])); + } + + d.s[0] +%= v[0]; + d.s[1] +%= v[1]; + d.s[2] +%= v[2]; + d.s[3] +%= v[3]; + d.s[4] +%= v[4]; + d.s[5] +%= v[5]; + d.s[6] +%= v[6]; + d.s[7] +%= v[7]; + } + }; +} + +test "sha384 single" { + const h1 = "38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b"; + htest.assertEqualHash(Sha384, h1, ""); + + const h2 = "cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7"; + htest.assertEqualHash(Sha384, h2, "abc"); + + const h3 = "09330c33f71147e83d192fc782cd1b4753111b173b3b05d22fa08086e3b0f712fcc7c71a557e2db966c3e9fa91746039"; + htest.assertEqualHash(Sha384, h3, "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"); +} + +test "sha384 streaming" { + var h = Sha384.init(); + var out: [48]u8 = undefined; + + const h1 = "38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b"; + h.final(out[0..]); + htest.assertEqual(h1, out[0..]); + + const h2 = "cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7"; + + h.reset(); + h.update("abc"); + h.final(out[0..]); + htest.assertEqual(h2, out[0..]); + + h.reset(); + h.update("a"); + h.update("b"); + h.update("c"); + h.final(out[0..]); + htest.assertEqual(h2, out[0..]); +} + +test "sha512 single" { + const h1 = "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e"; + htest.assertEqualHash(Sha512, h1, ""); + + const h2 = "ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f"; + htest.assertEqualHash(Sha512, h2, "abc"); + + const h3 = "8e959b75dae313da8cf4f72814fc143f8f7779c6eb9f7fa17299aeadb6889018501d289e4900f7e4331b99dec4b5433ac7d329eeb6dd26545e96e55b874be909"; + htest.assertEqualHash(Sha512, h3, "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"); +} + +test "sha512 streaming" { + var h = Sha512.init(); + var out: [64]u8 = undefined; + + const h1 = "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e"; + h.final(out[0..]); + htest.assertEqual(h1, out[0..]); + + const h2 = "ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f"; + + h.reset(); + h.update("abc"); + h.final(out[0..]); + htest.assertEqual(h2, out[0..]); + + h.reset(); + h.update("a"); + h.update("b"); + h.update("c"); + h.final(out[0..]); + htest.assertEqual(h2, out[0..]); +} + +test "sha512 aligned final" { + var block = [_]u8{0} ** Sha512.block_length; + var out: [Sha512.digest_length]u8 = undefined; + + var h = Sha512.init(); + h.update(block); + h.final(out[0..]); +} diff --git a/lib/std/crypto/sha3.zig b/lib/std/crypto/sha3.zig new file mode 100644 index 0000000000..659e7a254f --- /dev/null +++ b/lib/std/crypto/sha3.zig @@ -0,0 +1,305 @@ +const mem = @import("../mem.zig"); +const math = @import("../math.zig"); +const endian = @import("../endian.zig"); +const debug = @import("../debug.zig"); +const builtin = @import("builtin"); +const htest = @import("test.zig"); + +pub const Sha3_224 = Keccak(224, 0x06); +pub const Sha3_256 = Keccak(256, 0x06); +pub const Sha3_384 = Keccak(384, 0x06); +pub const Sha3_512 = Keccak(512, 0x06); + +fn Keccak(comptime bits: usize, comptime delim: u8) type { + return struct { + const Self = @This(); + pub const block_length = 200; + pub const digest_length = bits / 8; + + s: [200]u8, + offset: usize, + rate: usize, + + pub fn init() Self { + var d: Self = undefined; + d.reset(); + return d; + } + + pub fn reset(d: *Self) void { + mem.set(u8, d.s[0..], 0); + d.offset = 0; + d.rate = 200 - (bits / 4); + } + + pub fn hash(b: []const u8, out: []u8) void { + var d = Self.init(); + d.update(b); + d.final(out); + } + + pub fn update(d: *Self, b: []const u8) void { + var ip: usize = 0; + var len = b.len; + var rate = d.rate - d.offset; + var offset = d.offset; + + // absorb + while (len >= rate) { + for (d.s[offset .. offset + rate]) |*r, i| + r.* ^= b[ip..][i]; + + keccak_f(1600, d.s[0..]); + + ip += rate; + len -= rate; + rate = d.rate; + offset = 0; + } + + for (d.s[offset .. offset + len]) |*r, i| + r.* ^= b[ip..][i]; + + d.offset = offset + len; + } + + pub fn final(d: *Self, out: []u8) void { + // padding + d.s[d.offset] ^= delim; + d.s[d.rate - 1] ^= 0x80; + + keccak_f(1600, d.s[0..]); + + // squeeze + var op: usize = 0; + var len: usize = bits / 8; + + while (len >= d.rate) { + mem.copy(u8, out[op..], d.s[0..d.rate]); + keccak_f(1600, d.s[0..]); + op += d.rate; + len -= d.rate; + } + + mem.copy(u8, out[op..], d.s[0..len]); + } + }; +} + +const RC = [_]u64{ + 0x0000000000000001, 0x0000000000008082, 0x800000000000808a, 0x8000000080008000, + 0x000000000000808b, 0x0000000080000001, 0x8000000080008081, 0x8000000000008009, + 0x000000000000008a, 0x0000000000000088, 0x0000000080008009, 0x000000008000000a, + 0x000000008000808b, 0x800000000000008b, 0x8000000000008089, 0x8000000000008003, + 0x8000000000008002, 0x8000000000000080, 0x000000000000800a, 0x800000008000000a, + 0x8000000080008081, 0x8000000000008080, 0x0000000080000001, 0x8000000080008008, +}; + +const ROTC = [_]usize{ + 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 2, 14, 27, 41, 56, 8, 25, 43, 62, 18, 39, 61, 20, 44, +}; + +const PIL = [_]usize{ + 10, 7, 11, 17, 18, 3, 5, 16, 8, 21, 24, 4, 15, 23, 19, 13, 12, 2, 20, 14, 22, 9, 6, 1, +}; + +const M5 = [_]usize{ + 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, +}; + +fn keccak_f(comptime F: usize, d: []u8) void { + debug.assert(d.len == F / 8); + + const B = F / 25; + const no_rounds = comptime x: { + break :x 12 + 2 * math.log2(B); + }; + + var s = [_]u64{0} ** 25; + var t = [_]u64{0} ** 1; + var c = [_]u64{0} ** 5; + + for (s) |*r, i| { + r.* = mem.readIntSliceLittle(u64, d[8 * i .. 8 * i + 8]); + } + + comptime var x: usize = 0; + comptime var y: usize = 0; + for (RC[0..no_rounds]) |round| { + // theta + x = 0; + inline while (x < 5) : (x += 1) { + c[x] = s[x] ^ s[x + 5] ^ s[x + 10] ^ s[x + 15] ^ s[x + 20]; + } + x = 0; + inline while (x < 5) : (x += 1) { + t[0] = c[M5[x + 4]] ^ math.rotl(u64, c[M5[x + 1]], usize(1)); + y = 0; + inline while (y < 5) : (y += 1) { + s[x + y * 5] ^= t[0]; + } + } + + // rho+pi + t[0] = s[1]; + x = 0; + inline while (x < 24) : (x += 1) { + c[0] = s[PIL[x]]; + s[PIL[x]] = math.rotl(u64, t[0], ROTC[x]); + t[0] = c[0]; + } + + // chi + y = 0; + inline while (y < 5) : (y += 1) { + x = 0; + inline while (x < 5) : (x += 1) { + c[x] = s[x + y * 5]; + } + x = 0; + inline while (x < 5) : (x += 1) { + s[x + y * 5] = c[x] ^ (~c[M5[x + 1]] & c[M5[x + 2]]); + } + } + + // iota + s[0] ^= round; + } + + for (s) |r, i| { + // TODO https://github.com/ziglang/zig/issues/863 + mem.writeIntSliceLittle(u64, d[8 * i .. 8 * i + 8], r); + } +} + +test "sha3-224 single" { + htest.assertEqualHash(Sha3_224, "6b4e03423667dbb73b6e15454f0eb1abd4597f9a1b078e3f5b5a6bc7", ""); + htest.assertEqualHash(Sha3_224, "e642824c3f8cf24ad09234ee7d3c766fc9a3a5168d0c94ad73b46fdf", "abc"); + htest.assertEqualHash(Sha3_224, "543e6868e1666c1a643630df77367ae5a62a85070a51c14cbf665cbc", "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"); +} + +test "sha3-224 streaming" { + var h = Sha3_224.init(); + var out: [28]u8 = undefined; + + h.final(out[0..]); + htest.assertEqual("6b4e03423667dbb73b6e15454f0eb1abd4597f9a1b078e3f5b5a6bc7", out[0..]); + + h.reset(); + h.update("abc"); + h.final(out[0..]); + htest.assertEqual("e642824c3f8cf24ad09234ee7d3c766fc9a3a5168d0c94ad73b46fdf", out[0..]); + + h.reset(); + h.update("a"); + h.update("b"); + h.update("c"); + h.final(out[0..]); + htest.assertEqual("e642824c3f8cf24ad09234ee7d3c766fc9a3a5168d0c94ad73b46fdf", out[0..]); +} + +test "sha3-256 single" { + htest.assertEqualHash(Sha3_256, "a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a", ""); + htest.assertEqualHash(Sha3_256, "3a985da74fe225b2045c172d6bd390bd855f086e3e9d525b46bfe24511431532", "abc"); + htest.assertEqualHash(Sha3_256, "916f6061fe879741ca6469b43971dfdb28b1a32dc36cb3254e812be27aad1d18", "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"); +} + +test "sha3-256 streaming" { + var h = Sha3_256.init(); + var out: [32]u8 = undefined; + + h.final(out[0..]); + htest.assertEqual("a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a", out[0..]); + + h.reset(); + h.update("abc"); + h.final(out[0..]); + htest.assertEqual("3a985da74fe225b2045c172d6bd390bd855f086e3e9d525b46bfe24511431532", out[0..]); + + h.reset(); + h.update("a"); + h.update("b"); + h.update("c"); + h.final(out[0..]); + htest.assertEqual("3a985da74fe225b2045c172d6bd390bd855f086e3e9d525b46bfe24511431532", out[0..]); +} + +test "sha3-256 aligned final" { + var block = [_]u8{0} ** Sha3_256.block_length; + var out: [Sha3_256.digest_length]u8 = undefined; + + var h = Sha3_256.init(); + h.update(block); + h.final(out[0..]); +} + +test "sha3-384 single" { + const h1 = "0c63a75b845e4f7d01107d852e4c2485c51a50aaaa94fc61995e71bbee983a2ac3713831264adb47fb6bd1e058d5f004"; + htest.assertEqualHash(Sha3_384, h1, ""); + const h2 = "ec01498288516fc926459f58e2c6ad8df9b473cb0fc08c2596da7cf0e49be4b298d88cea927ac7f539f1edf228376d25"; + htest.assertEqualHash(Sha3_384, h2, "abc"); + const h3 = "79407d3b5916b59c3e30b09822974791c313fb9ecc849e406f23592d04f625dc8c709b98b43b3852b337216179aa7fc7"; + htest.assertEqualHash(Sha3_384, h3, "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"); +} + +test "sha3-384 streaming" { + var h = Sha3_384.init(); + var out: [48]u8 = undefined; + + const h1 = "0c63a75b845e4f7d01107d852e4c2485c51a50aaaa94fc61995e71bbee983a2ac3713831264adb47fb6bd1e058d5f004"; + h.final(out[0..]); + htest.assertEqual(h1, out[0..]); + + const h2 = "ec01498288516fc926459f58e2c6ad8df9b473cb0fc08c2596da7cf0e49be4b298d88cea927ac7f539f1edf228376d25"; + h.reset(); + h.update("abc"); + h.final(out[0..]); + htest.assertEqual(h2, out[0..]); + + h.reset(); + h.update("a"); + h.update("b"); + h.update("c"); + h.final(out[0..]); + htest.assertEqual(h2, out[0..]); +} + +test "sha3-512 single" { + const h1 = "a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26"; + htest.assertEqualHash(Sha3_512, h1, ""); + const h2 = "b751850b1a57168a5693cd924b6b096e08f621827444f70d884f5d0240d2712e10e116e9192af3c91a7ec57647e3934057340b4cf408d5a56592f8274eec53f0"; + htest.assertEqualHash(Sha3_512, h2, "abc"); + const h3 = "afebb2ef542e6579c50cad06d2e578f9f8dd6881d7dc824d26360feebf18a4fa73e3261122948efcfd492e74e82e2189ed0fb440d187f382270cb455f21dd185"; + htest.assertEqualHash(Sha3_512, h3, "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu"); +} + +test "sha3-512 streaming" { + var h = Sha3_512.init(); + var out: [64]u8 = undefined; + + const h1 = "a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26"; + h.final(out[0..]); + htest.assertEqual(h1, out[0..]); + + const h2 = "b751850b1a57168a5693cd924b6b096e08f621827444f70d884f5d0240d2712e10e116e9192af3c91a7ec57647e3934057340b4cf408d5a56592f8274eec53f0"; + h.reset(); + h.update("abc"); + h.final(out[0..]); + htest.assertEqual(h2, out[0..]); + + h.reset(); + h.update("a"); + h.update("b"); + h.update("c"); + h.final(out[0..]); + htest.assertEqual(h2, out[0..]); +} + +test "sha3-512 aligned final" { + var block = [_]u8{0} ** Sha3_512.block_length; + var out: [Sha3_512.digest_length]u8 = undefined; + + var h = Sha3_512.init(); + h.update(block); + h.final(out[0..]); +} diff --git a/lib/std/crypto/test.zig b/lib/std/crypto/test.zig new file mode 100644 index 0000000000..a0ddad6c83 --- /dev/null +++ b/lib/std/crypto/test.zig @@ -0,0 +1,22 @@ +const std = @import("../std.zig"); +const testing = std.testing; +const mem = std.mem; +const fmt = std.fmt; + +// Hash using the specified hasher `H` asserting `expected == H(input)`. +pub fn assertEqualHash(comptime Hasher: var, comptime expected: []const u8, input: []const u8) void { + var h: [expected.len / 2]u8 = undefined; + Hasher.hash(input, h[0..]); + + assertEqual(expected, h); +} + +// Assert `expected` == `input` where `input` is a bytestring. +pub fn assertEqual(comptime expected: []const u8, input: []const u8) void { + var expected_bytes: [expected.len / 2]u8 = undefined; + for (expected_bytes) |*r, i| { + r.* = fmt.parseInt(u8, expected[2 * i .. 2 * i + 2], 16) catch unreachable; + } + + testing.expectEqualSlices(u8, expected_bytes, input); +} diff --git a/lib/std/crypto/x25519.zig b/lib/std/crypto/x25519.zig new file mode 100644 index 0000000000..7f9220c3f4 --- /dev/null +++ b/lib/std/crypto/x25519.zig @@ -0,0 +1,676 @@ +// Translated from monocypher which is licensed under CC-0/BSD-3. +// +// https://monocypher.org/ + +const std = @import("../std.zig"); +const builtin = @import("builtin"); +const fmt = std.fmt; + +const Endian = builtin.Endian; +const readIntSliceLittle = std.mem.readIntSliceLittle; +const writeIntSliceLittle = std.mem.writeIntSliceLittle; + +// Based on Supercop's ref10 implementation. +pub const X25519 = struct { + pub const secret_length = 32; + pub const minimum_key_length = 32; + + fn trimScalar(s: []u8) void { + s[0] &= 248; + s[31] &= 127; + s[31] |= 64; + } + + fn scalarBit(s: []const u8, i: usize) i32 { + return (s[i >> 3] >> @intCast(u3, i & 7)) & 1; + } + + pub fn create(out: []u8, private_key: []const u8, public_key: []const u8) bool { + std.debug.assert(out.len >= secret_length); + std.debug.assert(private_key.len >= minimum_key_length); + std.debug.assert(public_key.len >= minimum_key_length); + + var storage: [7]Fe = undefined; + var x1 = &storage[0]; + var x2 = &storage[1]; + var z2 = &storage[2]; + var x3 = &storage[3]; + var z3 = &storage[4]; + var t0 = &storage[5]; + var t1 = &storage[6]; + + // computes the scalar product + Fe.fromBytes(x1, public_key); + + // restrict the possible scalar values + var e: [32]u8 = undefined; + for (e[0..]) |_, i| { + e[i] = private_key[i]; + } + trimScalar(e[0..]); + + // computes the actual scalar product (the result is in x2 and z2) + + // Montgomery ladder + // In projective coordinates, to avoid divisions: x = X / Z + // We don't care about the y coordinate, it's only 1 bit of information + Fe.init1(x2); + Fe.init0(z2); // "zero" point + Fe.copy(x3, x1); + Fe.init1(z3); + + var swap: i32 = 0; + var pos: isize = 254; + while (pos >= 0) : (pos -= 1) { + // constant time conditional swap before ladder step + const b = scalarBit(e, @intCast(usize, pos)); + swap ^= b; // xor trick avoids swapping at the end of the loop + Fe.cswap(x2, x3, swap); + Fe.cswap(z2, z3, swap); + swap = b; // anticipates one last swap after the loop + + // Montgomery ladder step: replaces (P2, P3) by (P2*2, P2+P3) + // with differential addition + Fe.sub(t0, x3, z3); + Fe.sub(t1, x2, z2); + Fe.add(x2, x2, z2); + Fe.add(z2, x3, z3); + Fe.mul(z3, t0, x2); + Fe.mul(z2, z2, t1); + Fe.sq(t0, t1); + Fe.sq(t1, x2); + Fe.add(x3, z3, z2); + Fe.sub(z2, z3, z2); + Fe.mul(x2, t1, t0); + Fe.sub(t1, t1, t0); + Fe.sq(z2, z2); + Fe.mulSmall(z3, t1, 121666); + Fe.sq(x3, x3); + Fe.add(t0, t0, z3); + Fe.mul(z3, x1, z2); + Fe.mul(z2, t1, t0); + } + + // last swap is necessary to compensate for the xor trick + // Note: after this swap, P3 == P2 + P1. + Fe.cswap(x2, x3, swap); + Fe.cswap(z2, z3, swap); + + // normalises the coordinates: x == X / Z + Fe.invert(z2, z2); + Fe.mul(x2, x2, z2); + Fe.toBytes(out, x2); + + x1.secureZero(); + x2.secureZero(); + x3.secureZero(); + t0.secureZero(); + t1.secureZero(); + z2.secureZero(); + z3.secureZero(); + std.mem.secureZero(u8, e[0..]); + + // Returns false if the output is all zero + // (happens with some malicious public keys) + return !zerocmp(u8, out); + } + + pub fn createPublicKey(public_key: []u8, private_key: []const u8) bool { + var base_point = [_]u8{9} ++ [_]u8{0} ** 31; + return create(public_key, private_key, base_point); + } +}; + +// Constant time compare to zero. +fn zerocmp(comptime T: type, a: []const T) bool { + var s: T = 0; + for (a) |b| { + s |= b; + } + return s == 0; +} + +//////////////////////////////////// +/// Arithmetic modulo 2^255 - 19 /// +//////////////////////////////////// +// Taken from Supercop's ref10 implementation. +// A bit bigger than TweetNaCl, over 4 times faster. + +// field element +const Fe = struct { + b: [10]i32, + + fn secureZero(self: *Fe) void { + std.mem.secureZero(u8, @ptrCast([*]u8, self)[0..@sizeOf(Fe)]); + } + + fn init0(h: *Fe) void { + for (h.b) |*e| { + e.* = 0; + } + } + + fn init1(h: *Fe) void { + for (h.b[1..]) |*e| { + e.* = 0; + } + h.b[0] = 1; + } + + fn copy(h: *Fe, f: *const Fe) void { + for (h.b) |_, i| { + h.b[i] = f.b[i]; + } + } + + fn neg(h: *Fe, f: *const Fe) void { + for (h.b) |_, i| { + h.b[i] = -f.b[i]; + } + } + + fn add(h: *Fe, f: *const Fe, g: *const Fe) void { + for (h.b) |_, i| { + h.b[i] = f.b[i] + g.b[i]; + } + } + + fn sub(h: *Fe, f: *const Fe, g: *const Fe) void { + for (h.b) |_, i| { + h.b[i] = f.b[i] - g.b[i]; + } + } + + fn cswap(f: *Fe, g: *Fe, b: i32) void { + for (f.b) |_, i| { + const x = (f.b[i] ^ g.b[i]) & -b; + f.b[i] ^= x; + g.b[i] ^= x; + } + } + + fn ccopy(f: *Fe, g: *const Fe, b: i32) void { + for (f.b) |_, i| { + const x = (f.b[i] ^ g.b[i]) & -b; + f.b[i] ^= x; + } + } + + inline fn carryRound(c: []i64, t: []i64, comptime i: comptime_int, comptime shift: comptime_int, comptime mult: comptime_int) void { + const j = (i + 1) % 10; + + c[i] = (t[i] + (i64(1) << shift)) >> (shift + 1); + t[j] += c[i] * mult; + t[i] -= c[i] * (i64(1) << (shift + 1)); + } + + fn carry1(h: *Fe, t: []i64) void { + var c: [10]i64 = undefined; + + var sc = c[0..]; + var st = t[0..]; + + carryRound(sc, st, 9, 24, 19); + carryRound(sc, st, 1, 24, 1); + carryRound(sc, st, 3, 24, 1); + carryRound(sc, st, 5, 24, 1); + carryRound(sc, st, 7, 24, 1); + carryRound(sc, st, 0, 25, 1); + carryRound(sc, st, 2, 25, 1); + carryRound(sc, st, 4, 25, 1); + carryRound(sc, st, 6, 25, 1); + carryRound(sc, st, 8, 25, 1); + + for (h.b) |_, i| { + h.b[i] = @intCast(i32, t[i]); + } + } + + fn carry2(h: *Fe, t: []i64) void { + var c: [10]i64 = undefined; + + var sc = c[0..]; + var st = t[0..]; + + carryRound(sc, st, 0, 25, 1); + carryRound(sc, st, 4, 25, 1); + carryRound(sc, st, 1, 24, 1); + carryRound(sc, st, 5, 24, 1); + carryRound(sc, st, 2, 25, 1); + carryRound(sc, st, 6, 25, 1); + carryRound(sc, st, 3, 24, 1); + carryRound(sc, st, 7, 24, 1); + carryRound(sc, st, 4, 25, 1); + carryRound(sc, st, 8, 25, 1); + carryRound(sc, st, 9, 24, 19); + carryRound(sc, st, 0, 25, 1); + + for (h.b) |_, i| { + h.b[i] = @intCast(i32, t[i]); + } + } + + fn fromBytes(h: *Fe, s: []const u8) void { + std.debug.assert(s.len >= 32); + + var t: [10]i64 = undefined; + + t[0] = readIntSliceLittle(u32, s[0..4]); + t[1] = u32(readIntSliceLittle(u24, s[4..7])) << 6; + t[2] = u32(readIntSliceLittle(u24, s[7..10])) << 5; + t[3] = u32(readIntSliceLittle(u24, s[10..13])) << 3; + t[4] = u32(readIntSliceLittle(u24, s[13..16])) << 2; + t[5] = readIntSliceLittle(u32, s[16..20]); + t[6] = u32(readIntSliceLittle(u24, s[20..23])) << 7; + t[7] = u32(readIntSliceLittle(u24, s[23..26])) << 5; + t[8] = u32(readIntSliceLittle(u24, s[26..29])) << 4; + t[9] = (u32(readIntSliceLittle(u24, s[29..32])) & 0x7fffff) << 2; + + carry1(h, t[0..]); + } + + fn mulSmall(h: *Fe, f: *const Fe, comptime g: comptime_int) void { + var t: [10]i64 = undefined; + + for (t[0..]) |_, i| { + t[i] = i64(f.b[i]) * g; + } + + carry1(h, t[0..]); + } + + fn mul(h: *Fe, f1: *const Fe, g1: *const Fe) void { + const f = f1.b; + const g = g1.b; + + var F: [10]i32 = undefined; + var G: [10]i32 = undefined; + + F[1] = f[1] * 2; + F[3] = f[3] * 2; + F[5] = f[5] * 2; + F[7] = f[7] * 2; + F[9] = f[9] * 2; + + G[1] = g[1] * 19; + G[2] = g[2] * 19; + G[3] = g[3] * 19; + G[4] = g[4] * 19; + G[5] = g[5] * 19; + G[6] = g[6] * 19; + G[7] = g[7] * 19; + G[8] = g[8] * 19; + G[9] = g[9] * 19; + + // t's become h + var t: [10]i64 = undefined; + + t[0] = f[0] * i64(g[0]) + F[1] * i64(G[9]) + f[2] * i64(G[8]) + F[3] * i64(G[7]) + f[4] * i64(G[6]) + F[5] * i64(G[5]) + f[6] * i64(G[4]) + F[7] * i64(G[3]) + f[8] * i64(G[2]) + F[9] * i64(G[1]); + t[1] = f[0] * i64(g[1]) + f[1] * i64(g[0]) + f[2] * i64(G[9]) + f[3] * i64(G[8]) + f[4] * i64(G[7]) + f[5] * i64(G[6]) + f[6] * i64(G[5]) + f[7] * i64(G[4]) + f[8] * i64(G[3]) + f[9] * i64(G[2]); + t[2] = f[0] * i64(g[2]) + F[1] * i64(g[1]) + f[2] * i64(g[0]) + F[3] * i64(G[9]) + f[4] * i64(G[8]) + F[5] * i64(G[7]) + f[6] * i64(G[6]) + F[7] * i64(G[5]) + f[8] * i64(G[4]) + F[9] * i64(G[3]); + t[3] = f[0] * i64(g[3]) + f[1] * i64(g[2]) + f[2] * i64(g[1]) + f[3] * i64(g[0]) + f[4] * i64(G[9]) + f[5] * i64(G[8]) + f[6] * i64(G[7]) + f[7] * i64(G[6]) + f[8] * i64(G[5]) + f[9] * i64(G[4]); + t[4] = f[0] * i64(g[4]) + F[1] * i64(g[3]) + f[2] * i64(g[2]) + F[3] * i64(g[1]) + f[4] * i64(g[0]) + F[5] * i64(G[9]) + f[6] * i64(G[8]) + F[7] * i64(G[7]) + f[8] * i64(G[6]) + F[9] * i64(G[5]); + t[5] = f[0] * i64(g[5]) + f[1] * i64(g[4]) + f[2] * i64(g[3]) + f[3] * i64(g[2]) + f[4] * i64(g[1]) + f[5] * i64(g[0]) + f[6] * i64(G[9]) + f[7] * i64(G[8]) + f[8] * i64(G[7]) + f[9] * i64(G[6]); + t[6] = f[0] * i64(g[6]) + F[1] * i64(g[5]) + f[2] * i64(g[4]) + F[3] * i64(g[3]) + f[4] * i64(g[2]) + F[5] * i64(g[1]) + f[6] * i64(g[0]) + F[7] * i64(G[9]) + f[8] * i64(G[8]) + F[9] * i64(G[7]); + t[7] = f[0] * i64(g[7]) + f[1] * i64(g[6]) + f[2] * i64(g[5]) + f[3] * i64(g[4]) + f[4] * i64(g[3]) + f[5] * i64(g[2]) + f[6] * i64(g[1]) + f[7] * i64(g[0]) + f[8] * i64(G[9]) + f[9] * i64(G[8]); + t[8] = f[0] * i64(g[8]) + F[1] * i64(g[7]) + f[2] * i64(g[6]) + F[3] * i64(g[5]) + f[4] * i64(g[4]) + F[5] * i64(g[3]) + f[6] * i64(g[2]) + F[7] * i64(g[1]) + f[8] * i64(g[0]) + F[9] * i64(G[9]); + t[9] = f[0] * i64(g[9]) + f[1] * i64(g[8]) + f[2] * i64(g[7]) + f[3] * i64(g[6]) + f[4] * i64(g[5]) + f[5] * i64(g[4]) + f[6] * i64(g[3]) + f[7] * i64(g[2]) + f[8] * i64(g[1]) + f[9] * i64(g[0]); + + carry2(h, t[0..]); + } + + // we could use Fe.mul() for this, but this is significantly faster + fn sq(h: *Fe, fz: *const Fe) void { + const f0 = fz.b[0]; + const f1 = fz.b[1]; + const f2 = fz.b[2]; + const f3 = fz.b[3]; + const f4 = fz.b[4]; + const f5 = fz.b[5]; + const f6 = fz.b[6]; + const f7 = fz.b[7]; + const f8 = fz.b[8]; + const f9 = fz.b[9]; + + const f0_2 = f0 * 2; + const f1_2 = f1 * 2; + const f2_2 = f2 * 2; + const f3_2 = f3 * 2; + const f4_2 = f4 * 2; + const f5_2 = f5 * 2; + const f6_2 = f6 * 2; + const f7_2 = f7 * 2; + const f5_38 = f5 * 38; + const f6_19 = f6 * 19; + const f7_38 = f7 * 38; + const f8_19 = f8 * 19; + const f9_38 = f9 * 38; + + var t: [10]i64 = undefined; + + t[0] = f0 * i64(f0) + f1_2 * i64(f9_38) + f2_2 * i64(f8_19) + f3_2 * i64(f7_38) + f4_2 * i64(f6_19) + f5 * i64(f5_38); + t[1] = f0_2 * i64(f1) + f2 * i64(f9_38) + f3_2 * i64(f8_19) + f4 * i64(f7_38) + f5_2 * i64(f6_19); + t[2] = f0_2 * i64(f2) + f1_2 * i64(f1) + f3_2 * i64(f9_38) + f4_2 * i64(f8_19) + f5_2 * i64(f7_38) + f6 * i64(f6_19); + t[3] = f0_2 * i64(f3) + f1_2 * i64(f2) + f4 * i64(f9_38) + f5_2 * i64(f8_19) + f6 * i64(f7_38); + t[4] = f0_2 * i64(f4) + f1_2 * i64(f3_2) + f2 * i64(f2) + f5_2 * i64(f9_38) + f6_2 * i64(f8_19) + f7 * i64(f7_38); + t[5] = f0_2 * i64(f5) + f1_2 * i64(f4) + f2_2 * i64(f3) + f6 * i64(f9_38) + f7_2 * i64(f8_19); + t[6] = f0_2 * i64(f6) + f1_2 * i64(f5_2) + f2_2 * i64(f4) + f3_2 * i64(f3) + f7_2 * i64(f9_38) + f8 * i64(f8_19); + t[7] = f0_2 * i64(f7) + f1_2 * i64(f6) + f2_2 * i64(f5) + f3_2 * i64(f4) + f8 * i64(f9_38); + t[8] = f0_2 * i64(f8) + f1_2 * i64(f7_2) + f2_2 * i64(f6) + f3_2 * i64(f5_2) + f4 * i64(f4) + f9 * i64(f9_38); + t[9] = f0_2 * i64(f9) + f1_2 * i64(f8) + f2_2 * i64(f7) + f3_2 * i64(f6) + f4 * i64(f5_2); + + carry2(h, t[0..]); + } + + fn sq2(h: *Fe, f: *const Fe) void { + Fe.sq(h, f); + Fe.mul_small(h, h, 2); + } + + // This could be simplified, but it would be slower + fn invert(out: *Fe, z: *const Fe) void { + var i: usize = undefined; + + var t: [4]Fe = undefined; + var t0 = &t[0]; + var t1 = &t[1]; + var t2 = &t[2]; + var t3 = &t[3]; + + Fe.sq(t0, z); + Fe.sq(t1, t0); + Fe.sq(t1, t1); + Fe.mul(t1, z, t1); + Fe.mul(t0, t0, t1); + + Fe.sq(t2, t0); + Fe.mul(t1, t1, t2); + + Fe.sq(t2, t1); + i = 1; + while (i < 5) : (i += 1) Fe.sq(t2, t2); + Fe.mul(t1, t2, t1); + + Fe.sq(t2, t1); + i = 1; + while (i < 10) : (i += 1) Fe.sq(t2, t2); + Fe.mul(t2, t2, t1); + + Fe.sq(t3, t2); + i = 1; + while (i < 20) : (i += 1) Fe.sq(t3, t3); + Fe.mul(t2, t3, t2); + + Fe.sq(t2, t2); + i = 1; + while (i < 10) : (i += 1) Fe.sq(t2, t2); + Fe.mul(t1, t2, t1); + + Fe.sq(t2, t1); + i = 1; + while (i < 50) : (i += 1) Fe.sq(t2, t2); + Fe.mul(t2, t2, t1); + + Fe.sq(t3, t2); + i = 1; + while (i < 100) : (i += 1) Fe.sq(t3, t3); + Fe.mul(t2, t3, t2); + + Fe.sq(t2, t2); + i = 1; + while (i < 50) : (i += 1) Fe.sq(t2, t2); + Fe.mul(t1, t2, t1); + + Fe.sq(t1, t1); + i = 1; + while (i < 5) : (i += 1) Fe.sq(t1, t1); + Fe.mul(out, t1, t0); + + t0.secureZero(); + t1.secureZero(); + t2.secureZero(); + t3.secureZero(); + } + + // This could be simplified, but it would be slower + fn pow22523(out: *Fe, z: *const Fe) void { + var i: usize = undefined; + + var t: [3]Fe = undefined; + var t0 = &t[0]; + var t1 = &t[1]; + var t2 = &t[2]; + + Fe.sq(t0, z); + Fe.sq(t1, t0); + Fe.sq(t1, t1); + Fe.mul(t1, z, t1); + Fe.mul(t0, t0, t1); + + Fe.sq(t0, t0); + Fe.mul(t0, t1, t0); + + Fe.sq(t1, t0); + i = 1; + while (i < 5) : (i += 1) Fe.sq(t1, t1); + Fe.mul(t0, t1, t0); + + Fe.sq(t1, t0); + i = 1; + while (i < 10) : (i += 1) Fe.sq(t1, t1); + Fe.mul(t1, t1, t0); + + Fe.sq(t2, t1); + i = 1; + while (i < 20) : (i += 1) Fe.sq(t2, t2); + Fe.mul(t1, t2, t1); + + Fe.sq(t1, t1); + i = 1; + while (i < 10) : (i += 1) Fe.sq(t1, t1); + Fe.mul(t0, t1, t0); + + Fe.sq(t1, t0); + i = 1; + while (i < 50) : (i += 1) Fe.sq(t1, t1); + Fe.mul(t1, t1, t0); + + Fe.sq(t2, t1); + i = 1; + while (i < 100) : (i += 1) Fe.sq(t2, t2); + Fe.mul(t1, t2, t1); + + Fe.sq(t1, t1); + i = 1; + while (i < 50) : (i += 1) Fe.sq(t1, t1); + Fe.mul(t0, t1, t0); + + Fe.sq(t0, t0); + i = 1; + while (i < 2) : (i += 1) Fe.sq(t0, t0); + Fe.mul(out, t0, z); + + t0.secureZero(); + t1.secureZero(); + t2.secureZero(); + } + + inline fn toBytesRound(c: []i64, t: []i64, comptime i: comptime_int, comptime shift: comptime_int) void { + c[i] = t[i] >> shift; + if (i + 1 < 10) { + t[i + 1] += c[i]; + } + t[i] -= c[i] * (i32(1) << shift); + } + + fn toBytes(s: []u8, h: *const Fe) void { + std.debug.assert(s.len >= 32); + + var t: [10]i64 = undefined; + for (h.b[0..]) |_, i| { + t[i] = h.b[i]; + } + + var q = (19 * t[9] + ((i32(1) << 24))) >> 25; + { + var i: usize = 0; + while (i < 5) : (i += 1) { + q += t[2 * i]; + q >>= 26; + q += t[2 * i + 1]; + q >>= 25; + } + } + t[0] += 19 * q; + + var c: [10]i64 = undefined; + + var st = t[0..]; + var sc = c[0..]; + + toBytesRound(sc, st, 0, 26); + toBytesRound(sc, st, 1, 25); + toBytesRound(sc, st, 2, 26); + toBytesRound(sc, st, 3, 25); + toBytesRound(sc, st, 4, 26); + toBytesRound(sc, st, 5, 25); + toBytesRound(sc, st, 6, 26); + toBytesRound(sc, st, 7, 25); + toBytesRound(sc, st, 8, 26); + toBytesRound(sc, st, 9, 25); + + var ut: [10]u32 = undefined; + for (ut[0..]) |_, i| { + ut[i] = @bitCast(u32, @intCast(i32, t[i])); + } + + // TODO https://github.com/ziglang/zig/issues/863 + writeIntSliceLittle(u32, s[0..4], (ut[0] >> 0) | (ut[1] << 26)); + writeIntSliceLittle(u32, s[4..8], (ut[1] >> 6) | (ut[2] << 19)); + writeIntSliceLittle(u32, s[8..12], (ut[2] >> 13) | (ut[3] << 13)); + writeIntSliceLittle(u32, s[12..16], (ut[3] >> 19) | (ut[4] << 6)); + writeIntSliceLittle(u32, s[16..20], (ut[5] >> 0) | (ut[6] << 25)); + writeIntSliceLittle(u32, s[20..24], (ut[6] >> 7) | (ut[7] << 19)); + writeIntSliceLittle(u32, s[24..28], (ut[7] >> 13) | (ut[8] << 12)); + writeIntSliceLittle(u32, s[28..], (ut[8] >> 20) | (ut[9] << 6)); + + std.mem.secureZero(i64, t[0..]); + } + + // Parity check. Returns 0 if even, 1 if odd + fn isNegative(f: *const Fe) bool { + var s: [32]u8 = undefined; + Fe.toBytes(s[0..], f); + const isneg = s[0] & 1; + s.secureZero(); + return isneg; + } + + fn isNonZero(f: *const Fe) bool { + var s: [32]u8 = undefined; + Fe.toBytes(s[0..], f); + const isnonzero = zerocmp(u8, s[0..]); + s.secureZero(); + return isneg; + } +}; + +test "x25519 public key calculation from secret key" { + var sk: [32]u8 = undefined; + var pk_expected: [32]u8 = undefined; + var pk_calculated: [32]u8 = undefined; + try fmt.hexToBytes(sk[0..], "8052030376d47112be7f73ed7a019293dd12ad910b654455798b4667d73de166"); + try fmt.hexToBytes(pk_expected[0..], "f1814f0e8ff1043d8a44d25babff3cedcae6c22c3edaa48f857ae70de2baae50"); + std.testing.expect(X25519.createPublicKey(pk_calculated[0..], sk)); + std.testing.expect(std.mem.eql(u8, pk_calculated, pk_expected)); +} + +test "x25519 rfc7748 vector1" { + const secret_key = "\xa5\x46\xe3\x6b\xf0\x52\x7c\x9d\x3b\x16\x15\x4b\x82\x46\x5e\xdd\x62\x14\x4c\x0a\xc1\xfc\x5a\x18\x50\x6a\x22\x44\xba\x44\x9a\xc4"; + const public_key = "\xe6\xdb\x68\x67\x58\x30\x30\xdb\x35\x94\xc1\xa4\x24\xb1\x5f\x7c\x72\x66\x24\xec\x26\xb3\x35\x3b\x10\xa9\x03\xa6\xd0\xab\x1c\x4c"; + + const expected_output = "\xc3\xda\x55\x37\x9d\xe9\xc6\x90\x8e\x94\xea\x4d\xf2\x8d\x08\x4f\x32\xec\xcf\x03\x49\x1c\x71\xf7\x54\xb4\x07\x55\x77\xa2\x85\x52"; + + var output: [32]u8 = undefined; + + std.testing.expect(X25519.create(output[0..], secret_key, public_key)); + std.testing.expect(std.mem.eql(u8, output, expected_output)); +} + +test "x25519 rfc7748 vector2" { + const secret_key = "\x4b\x66\xe9\xd4\xd1\xb4\x67\x3c\x5a\xd2\x26\x91\x95\x7d\x6a\xf5\xc1\x1b\x64\x21\xe0\xea\x01\xd4\x2c\xa4\x16\x9e\x79\x18\xba\x0d"; + const public_key = "\xe5\x21\x0f\x12\x78\x68\x11\xd3\xf4\xb7\x95\x9d\x05\x38\xae\x2c\x31\xdb\xe7\x10\x6f\xc0\x3c\x3e\xfc\x4c\xd5\x49\xc7\x15\xa4\x93"; + + const expected_output = "\x95\xcb\xde\x94\x76\xe8\x90\x7d\x7a\xad\xe4\x5c\xb4\xb8\x73\xf8\x8b\x59\x5a\x68\x79\x9f\xa1\x52\xe6\xf8\xf7\x64\x7a\xac\x79\x57"; + + var output: [32]u8 = undefined; + + std.testing.expect(X25519.create(output[0..], secret_key, public_key)); + std.testing.expect(std.mem.eql(u8, output, expected_output)); +} + +test "x25519 rfc7748 one iteration" { + const initial_value = "\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"; + const expected_output = "\x42\x2c\x8e\x7a\x62\x27\xd7\xbc\xa1\x35\x0b\x3e\x2b\xb7\x27\x9f\x78\x97\xb8\x7b\xb6\x85\x4b\x78\x3c\x60\xe8\x03\x11\xae\x30\x79"; + + var k: [32]u8 = initial_value; + var u: [32]u8 = initial_value; + + var i: usize = 0; + while (i < 1) : (i += 1) { + var output: [32]u8 = undefined; + std.testing.expect(X25519.create(output[0..], k, u)); + + std.mem.copy(u8, u[0..], k[0..]); + std.mem.copy(u8, k[0..], output[0..]); + } + + std.testing.expect(std.mem.eql(u8, k[0..], expected_output)); +} + +test "x25519 rfc7748 1,000 iterations" { + // These iteration tests are slow so we always skip them. Results have been verified. + if (true) { + return error.SkipZigTest; + } + + const initial_value = "\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"; + const expected_output = "\x68\x4c\xf5\x9b\xa8\x33\x09\x55\x28\x00\xef\x56\x6f\x2f\x4d\x3c\x1c\x38\x87\xc4\x93\x60\xe3\x87\x5f\x2e\xb9\x4d\x99\x53\x2c\x51"; + + var k: [32]u8 = initial_value; + var u: [32]u8 = initial_value; + + var i: usize = 0; + while (i < 1000) : (i += 1) { + var output: [32]u8 = undefined; + std.testing.expect(X25519.create(output[0..], k, u)); + + std.mem.copy(u8, u[0..], k[0..]); + std.mem.copy(u8, k[0..], output[0..]); + } + + std.testing.expect(std.mem.eql(u8, k[0..], expected_output)); +} + +test "x25519 rfc7748 1,000,000 iterations" { + if (true) { + return error.SkipZigTest; + } + + const initial_value = "\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"; + const expected_output = "\x7c\x39\x11\xe0\xab\x25\x86\xfd\x86\x44\x97\x29\x7e\x57\x5e\x6f\x3b\xc6\x01\xc0\x88\x3c\x30\xdf\x5f\x4d\xd2\xd2\x4f\x66\x54\x24"; + + var k: [32]u8 = initial_value; + var u: [32]u8 = initial_value; + + var i: usize = 0; + while (i < 1000000) : (i += 1) { + var output: [32]u8 = undefined; + std.testing.expect(X25519.create(output[0..], k, u)); + + std.mem.copy(u8, u[0..], k[0..]); + std.mem.copy(u8, k[0..], output[0..]); + } + + std.testing.expect(std.mem.eql(u8, k[0..], expected_output)); +} diff --git a/lib/std/cstr.zig b/lib/std/cstr.zig new file mode 100644 index 0000000000..dd28e50449 --- /dev/null +++ b/lib/std/cstr.zig @@ -0,0 +1,94 @@ +const std = @import("std.zig"); +const builtin = @import("builtin"); +const debug = std.debug; +const mem = std.mem; +const testing = std.testing; + +pub const line_sep = switch (builtin.os) { + builtin.Os.windows => "\r\n", + else => "\n", +}; + +pub fn cmp(a: [*]const u8, b: [*]const u8) i8 { + var index: usize = 0; + while (a[index] == b[index] and a[index] != 0) : (index += 1) {} + if (a[index] > b[index]) { + return 1; + } else if (a[index] < b[index]) { + return -1; + } else { + return 0; + } +} + +test "cstr fns" { + comptime testCStrFnsImpl(); + testCStrFnsImpl(); +} + +fn testCStrFnsImpl() void { + testing.expect(cmp(c"aoeu", c"aoez") == -1); + testing.expect(mem.len(u8, c"123456789") == 9); +} + +/// Returns a mutable slice with 1 more byte of length which is a null byte. +/// Caller owns the returned memory. +pub fn addNullByte(allocator: *mem.Allocator, slice: []const u8) ![]u8 { + const result = try allocator.alloc(u8, slice.len + 1); + mem.copy(u8, result, slice); + result[slice.len] = 0; + return result; +} + +pub const NullTerminated2DArray = struct { + allocator: *mem.Allocator, + byte_count: usize, + ptr: ?[*]?[*]u8, + + /// Takes N lists of strings, concatenates the lists together, and adds a null terminator + /// Caller must deinit result + pub fn fromSlices(allocator: *mem.Allocator, slices: []const []const []const u8) !NullTerminated2DArray { + var new_len: usize = 1; // 1 for the list null + var byte_count: usize = 0; + for (slices) |slice| { + new_len += slice.len; + for (slice) |inner| { + byte_count += inner.len; + } + byte_count += slice.len; // for the null terminators of inner + } + + const index_size = @sizeOf(usize) * new_len; // size of the ptrs + byte_count += index_size; + + const buf = try allocator.alignedAlloc(u8, @alignOf(?*u8), byte_count); + errdefer allocator.free(buf); + + var write_index = index_size; + const index_buf = @bytesToSlice(?[*]u8, buf); + + var i: usize = 0; + for (slices) |slice| { + for (slice) |inner| { + index_buf[i] = buf.ptr + write_index; + i += 1; + mem.copy(u8, buf[write_index..], inner); + write_index += inner.len; + buf[write_index] = 0; + write_index += 1; + } + } + index_buf[i] = null; + + return NullTerminated2DArray{ + .allocator = allocator, + .byte_count = byte_count, + .ptr = @ptrCast(?[*]?[*]u8, buf.ptr), + }; + } + + pub fn deinit(self: *NullTerminated2DArray) void { + const buf = @ptrCast([*]u8, self.ptr); + self.allocator.free(buf[0..self.byte_count]); + } +}; diff --git a/lib/std/debug.zig b/lib/std/debug.zig new file mode 100644 index 0000000000..52f33660fb --- /dev/null +++ b/lib/std/debug.zig @@ -0,0 +1,2422 @@ +const std = @import("std.zig"); +const math = std.math; +const mem = std.mem; +const io = std.io; +const os = std.os; +const fs = std.fs; +const process = std.process; +const elf = std.elf; +const DW = std.dwarf; +const macho = std.macho; +const coff = std.coff; +const pdb = std.pdb; +const ArrayList = std.ArrayList; +const builtin = @import("builtin"); +const root = @import("root"); +const maxInt = std.math.maxInt; +const File = std.fs.File; +const windows = std.os.windows; + +const leb = @import("debug/leb128.zig"); + +pub const FailingAllocator = @import("debug/failing_allocator.zig").FailingAllocator; +pub const failing_allocator = &FailingAllocator.init(global_allocator, 0).allocator; + +pub const runtime_safety = switch (builtin.mode) { + .Debug, .ReleaseSafe => true, + .ReleaseFast, .ReleaseSmall => false, +}; + +const Module = struct { + mod_info: pdb.ModInfo, + module_name: []u8, + obj_file_name: []u8, + + populated: bool, + symbols: []u8, + subsect_info: []u8, + checksum_offset: ?usize, +}; + +/// Tries to write to stderr, unbuffered, and ignores any error returned. +/// Does not append a newline. +var stderr_file: File = undefined; +var stderr_file_out_stream: File.OutStream = undefined; + +var stderr_stream: ?*io.OutStream(File.WriteError) = null; +var stderr_mutex = std.Mutex.init(); +pub fn warn(comptime fmt: []const u8, args: ...) void { + const held = stderr_mutex.acquire(); + defer held.release(); + const stderr = getStderrStream() catch return; + stderr.print(fmt, args) catch return; +} + +pub fn getStderrStream() !*io.OutStream(File.WriteError) { + if (stderr_stream) |st| { + return st; + } else { + stderr_file = try io.getStdErr(); + stderr_file_out_stream = stderr_file.outStream(); + const st = &stderr_file_out_stream.stream; + stderr_stream = st; + return st; + } +} + +/// TODO multithreaded awareness +var self_debug_info: ?DebugInfo = null; + +pub fn getSelfDebugInfo() !*DebugInfo { + if (self_debug_info) |*info| { + return info; + } else { + self_debug_info = try openSelfDebugInfo(getDebugInfoAllocator()); + return &self_debug_info.?; + } +} + +fn wantTtyColor() bool { + var bytes: [128]u8 = undefined; + const allocator = &std.heap.FixedBufferAllocator.init(bytes[0..]).allocator; + return if (process.getEnvVarOwned(allocator, "ZIG_DEBUG_COLOR")) |_| true else |_| stderr_file.isTty(); +} + +/// Tries to print the current stack trace to stderr, unbuffered, and ignores any error returned. +/// TODO multithreaded awareness +pub fn dumpCurrentStackTrace(start_addr: ?usize) void { + const stderr = getStderrStream() catch return; + if (builtin.strip_debug_info) { + stderr.print("Unable to dump stack trace: debug info stripped\n") catch return; + return; + } + const debug_info = getSelfDebugInfo() catch |err| { + stderr.print("Unable to dump stack trace: Unable to open debug info: {}\n", @errorName(err)) catch return; + return; + }; + writeCurrentStackTrace(stderr, debug_info, wantTtyColor(), start_addr) catch |err| { + stderr.print("Unable to dump stack trace: {}\n", @errorName(err)) catch return; + return; + }; +} + +/// Tries to print the stack trace starting from the supplied base pointer to stderr, +/// unbuffered, and ignores any error returned. +/// TODO multithreaded awareness +pub fn dumpStackTraceFromBase(bp: usize, ip: usize) void { + const stderr = getStderrStream() catch return; + if (builtin.strip_debug_info) { + stderr.print("Unable to dump stack trace: debug info stripped\n") catch return; + return; + } + const debug_info = getSelfDebugInfo() catch |err| { + stderr.print("Unable to dump stack trace: Unable to open debug info: {}\n", @errorName(err)) catch return; + return; + }; + const tty_color = wantTtyColor(); + printSourceAtAddress(debug_info, stderr, ip, tty_color) catch return; + const first_return_address = @intToPtr(*const usize, bp + @sizeOf(usize)).*; + printSourceAtAddress(debug_info, stderr, first_return_address - 1, tty_color) catch return; + var it = StackIterator{ + .first_addr = null, + .fp = bp, + }; + while (it.next()) |return_address| { + printSourceAtAddress(debug_info, stderr, return_address - 1, tty_color) catch return; + } +} + +/// Returns a slice with the same pointer as addresses, with a potentially smaller len. +/// On Windows, when first_address is not null, we ask for at least 32 stack frames, +/// and then try to find the first address. If addresses.len is more than 32, we +/// capture that many stack frames exactly, and then look for the first address, +/// chopping off the irrelevant frames and shifting so that the returned addresses pointer +/// equals the passed in addresses pointer. +pub fn captureStackTrace(first_address: ?usize, stack_trace: *builtin.StackTrace) void { + if (windows.is_the_target) { + const addrs = stack_trace.instruction_addresses; + const u32_addrs_len = @intCast(u32, addrs.len); + const first_addr = first_address orelse { + stack_trace.index = windows.ntdll.RtlCaptureStackBackTrace( + 0, + u32_addrs_len, + @ptrCast(**c_void, addrs.ptr), + null, + ); + return; + }; + var addr_buf_stack: [32]usize = undefined; + const addr_buf = if (addr_buf_stack.len > addrs.len) addr_buf_stack[0..] else addrs; + const n = windows.ntdll.RtlCaptureStackBackTrace(0, u32_addrs_len, @ptrCast(**c_void, addr_buf.ptr), null); + const first_index = for (addr_buf[0..n]) |addr, i| { + if (addr == first_addr) { + break i; + } + } else { + stack_trace.index = 0; + return; + }; + const slice = addr_buf[first_index..n]; + // We use a for loop here because slice and addrs may alias. + for (slice) |addr, i| { + addrs[i] = addr; + } + stack_trace.index = slice.len; + } else { + var it = StackIterator.init(first_address); + for (stack_trace.instruction_addresses) |*addr, i| { + addr.* = it.next() orelse { + stack_trace.index = i; + return; + }; + } + stack_trace.index = stack_trace.instruction_addresses.len; + } +} + +/// Tries to print a stack trace to stderr, unbuffered, and ignores any error returned. +/// TODO multithreaded awareness +pub fn dumpStackTrace(stack_trace: builtin.StackTrace) void { + const stderr = getStderrStream() catch return; + if (builtin.strip_debug_info) { + stderr.print("Unable to dump stack trace: debug info stripped\n") catch return; + return; + } + const debug_info = getSelfDebugInfo() catch |err| { + stderr.print("Unable to dump stack trace: Unable to open debug info: {}\n", @errorName(err)) catch return; + return; + }; + writeStackTrace(stack_trace, stderr, getDebugInfoAllocator(), debug_info, wantTtyColor()) catch |err| { + stderr.print("Unable to dump stack trace: {}\n", @errorName(err)) catch return; + return; + }; +} + +/// This function invokes undefined behavior when `ok` is `false`. +/// In Debug and ReleaseSafe modes, calls to this function are always +/// generated, and the `unreachable` statement triggers a panic. +/// In ReleaseFast and ReleaseSmall modes, calls to this function are +/// optimized away, and in fact the optimizer is able to use the assertion +/// in its heuristics. +/// Inside a test block, it is best to use the `std.testing` module rather +/// than this function, because this function may not detect a test failure +/// in ReleaseFast and ReleaseSmall mode. Outside of a test block, this assert +/// function is the correct function to use. +pub fn assert(ok: bool) void { + if (!ok) unreachable; // assertion failure +} + +pub fn panic(comptime format: []const u8, args: ...) noreturn { + @setCold(true); + const first_trace_addr = @returnAddress(); + panicExtra(null, first_trace_addr, format, args); +} + +/// TODO multithreaded awareness +var panicking: u8 = 0; // TODO make this a bool + +pub fn panicExtra(trace: ?*const builtin.StackTrace, first_trace_addr: ?usize, comptime format: []const u8, args: ...) noreturn { + @setCold(true); + + if (enable_segfault_handler) { + // If a segfault happens while panicking, we want it to actually segfault, not trigger + // the handler. + resetSegfaultHandler(); + } + + if (@atomicRmw(u8, &panicking, builtin.AtomicRmwOp.Xchg, 1, builtin.AtomicOrder.SeqCst) == 1) { + // Panicked during a panic. + + // TODO detect if a different thread caused the panic, because in that case + // we would want to return here instead of calling abort, so that the thread + // which first called panic can finish printing a stack trace. + os.abort(); + } + const stderr = getStderrStream() catch os.abort(); + stderr.print(format ++ "\n", args) catch os.abort(); + if (trace) |t| { + dumpStackTrace(t.*); + } + dumpCurrentStackTrace(first_trace_addr); + + os.abort(); +} + +const RED = "\x1b[31;1m"; +const GREEN = "\x1b[32;1m"; +const CYAN = "\x1b[36;1m"; +const WHITE = "\x1b[37;1m"; +const DIM = "\x1b[2m"; +const RESET = "\x1b[0m"; + +pub fn writeStackTrace( + stack_trace: builtin.StackTrace, + out_stream: var, + allocator: *mem.Allocator, + debug_info: *DebugInfo, + tty_color: bool, +) !void { + if (builtin.strip_debug_info) return error.MissingDebugInfo; + var frame_index: usize = 0; + var frames_left: usize = std.math.min(stack_trace.index, stack_trace.instruction_addresses.len); + + while (frames_left != 0) : ({ + frames_left -= 1; + frame_index = (frame_index + 1) % stack_trace.instruction_addresses.len; + }) { + const return_address = stack_trace.instruction_addresses[frame_index]; + try printSourceAtAddress(debug_info, out_stream, return_address - 1, tty_color); + } +} + +pub const StackIterator = struct { + first_addr: ?usize, + fp: usize, + + pub fn init(first_addr: ?usize) StackIterator { + return StackIterator{ + .first_addr = first_addr, + .fp = @frameAddress(), + }; + } + + fn next(self: *StackIterator) ?usize { + if (self.fp == 0) return null; + self.fp = @intToPtr(*const usize, self.fp).*; + if (self.fp == 0) return null; + + if (self.first_addr) |addr| { + while (self.fp != 0) : (self.fp = @intToPtr(*const usize, self.fp).*) { + const return_address = @intToPtr(*const usize, self.fp + @sizeOf(usize)).*; + if (addr == return_address) { + self.first_addr = null; + return return_address; + } + } + } + + const return_address = @intToPtr(*const usize, self.fp + @sizeOf(usize)).*; + return return_address; + } +}; + +pub fn writeCurrentStackTrace(out_stream: var, debug_info: *DebugInfo, tty_color: bool, start_addr: ?usize) !void { + if (windows.is_the_target) { + return writeCurrentStackTraceWindows(out_stream, debug_info, tty_color, start_addr); + } + var it = StackIterator.init(start_addr); + while (it.next()) |return_address| { + try printSourceAtAddress(debug_info, out_stream, return_address - 1, tty_color); + } +} + +pub fn writeCurrentStackTraceWindows( + out_stream: var, + debug_info: *DebugInfo, + tty_color: bool, + start_addr: ?usize, +) !void { + var addr_buf: [1024]usize = undefined; + const n = windows.ntdll.RtlCaptureStackBackTrace(0, addr_buf.len, @ptrCast(**c_void, &addr_buf), null); + const addrs = addr_buf[0..n]; + var start_i: usize = if (start_addr) |saddr| blk: { + for (addrs) |addr, i| { + if (addr == saddr) break :blk i; + } + return; + } else 0; + for (addrs[start_i..]) |addr| { + try printSourceAtAddress(debug_info, out_stream, addr, tty_color); + } +} + +/// TODO once https://github.com/ziglang/zig/issues/3157 is fully implemented, +/// make this `noasync fn` and remove the individual noasync calls. +pub fn printSourceAtAddress(debug_info: *DebugInfo, out_stream: var, address: usize, tty_color: bool) !void { + if (windows.is_the_target) { + return noasync printSourceAtAddressWindows(debug_info, out_stream, address, tty_color); + } + if (os.darwin.is_the_target) { + return noasync printSourceAtAddressMacOs(debug_info, out_stream, address, tty_color); + } + return noasync printSourceAtAddressPosix(debug_info, out_stream, address, tty_color); +} + +fn printSourceAtAddressWindows(di: *DebugInfo, out_stream: var, relocated_address: usize, tty_color: bool) !void { + const allocator = getDebugInfoAllocator(); + const base_address = process.getBaseAddress(); + const relative_address = relocated_address - base_address; + + var coff_section: *coff.Section = undefined; + const mod_index = for (di.sect_contribs) |sect_contrib| { + if (sect_contrib.Section > di.coff.sections.len) continue; + // Remember that SectionContribEntry.Section is 1-based. + coff_section = &di.coff.sections.toSlice()[sect_contrib.Section - 1]; + + const vaddr_start = coff_section.header.virtual_address + sect_contrib.Offset; + const vaddr_end = vaddr_start + sect_contrib.Size; + if (relative_address >= vaddr_start and relative_address < vaddr_end) { + break sect_contrib.ModuleIndex; + } + } else { + // we have no information to add to the address + if (tty_color) { + try out_stream.print("???:?:?: "); + setTtyColor(TtyColor.Dim); + try out_stream.print("0x{x} in ??? (???)", relocated_address); + setTtyColor(TtyColor.Reset); + try out_stream.print("\n\n\n"); + } else { + try out_stream.print("???:?:?: 0x{x} in ??? (???)\n\n\n", relocated_address); + } + return; + }; + + const mod = &di.modules[mod_index]; + try populateModule(di, mod); + const obj_basename = fs.path.basename(mod.obj_file_name); + + var symbol_i: usize = 0; + const symbol_name = if (!mod.populated) "???" else while (symbol_i != mod.symbols.len) { + const prefix = @ptrCast(*pdb.RecordPrefix, &mod.symbols[symbol_i]); + if (prefix.RecordLen < 2) + return error.InvalidDebugInfo; + switch (prefix.RecordKind) { + pdb.SymbolKind.S_LPROC32 => { + const proc_sym = @ptrCast(*pdb.ProcSym, &mod.symbols[symbol_i + @sizeOf(pdb.RecordPrefix)]); + const vaddr_start = coff_section.header.virtual_address + proc_sym.CodeOffset; + const vaddr_end = vaddr_start + proc_sym.CodeSize; + if (relative_address >= vaddr_start and relative_address < vaddr_end) { + break mem.toSliceConst(u8, @ptrCast([*]u8, proc_sym) + @sizeOf(pdb.ProcSym)); + } + }, + else => {}, + } + symbol_i += prefix.RecordLen + @sizeOf(u16); + if (symbol_i > mod.symbols.len) + return error.InvalidDebugInfo; + } else "???"; + + const subsect_info = mod.subsect_info; + + var sect_offset: usize = 0; + var skip_len: usize = undefined; + const opt_line_info = subsections: { + const checksum_offset = mod.checksum_offset orelse break :subsections null; + while (sect_offset != subsect_info.len) : (sect_offset += skip_len) { + const subsect_hdr = @ptrCast(*pdb.DebugSubsectionHeader, &subsect_info[sect_offset]); + skip_len = subsect_hdr.Length; + sect_offset += @sizeOf(pdb.DebugSubsectionHeader); + + switch (subsect_hdr.Kind) { + pdb.DebugSubsectionKind.Lines => { + var line_index = sect_offset; + + const line_hdr = @ptrCast(*pdb.LineFragmentHeader, &subsect_info[line_index]); + if (line_hdr.RelocSegment == 0) return error.MissingDebugInfo; + line_index += @sizeOf(pdb.LineFragmentHeader); + const frag_vaddr_start = coff_section.header.virtual_address + line_hdr.RelocOffset; + const frag_vaddr_end = frag_vaddr_start + line_hdr.CodeSize; + + if (relative_address >= frag_vaddr_start and relative_address < frag_vaddr_end) { + // There is an unknown number of LineBlockFragmentHeaders (and their accompanying line and column records) + // from now on. We will iterate through them, and eventually find a LineInfo that we're interested in, + // breaking out to :subsections. If not, we will make sure to not read anything outside of this subsection. + const subsection_end_index = sect_offset + subsect_hdr.Length; + + while (line_index < subsection_end_index) { + const block_hdr = @ptrCast(*pdb.LineBlockFragmentHeader, &subsect_info[line_index]); + line_index += @sizeOf(pdb.LineBlockFragmentHeader); + const start_line_index = line_index; + + const has_column = line_hdr.Flags.LF_HaveColumns; + + // All line entries are stored inside their line block by ascending start address. + // Heuristic: we want to find the last line entry that has a vaddr_start <= relative_address. + // This is done with a simple linear search. + var line_i: u32 = 0; + while (line_i < block_hdr.NumLines) : (line_i += 1) { + const line_num_entry = @ptrCast(*pdb.LineNumberEntry, &subsect_info[line_index]); + line_index += @sizeOf(pdb.LineNumberEntry); + + const vaddr_start = frag_vaddr_start + line_num_entry.Offset; + if (relative_address <= vaddr_start) { + break; + } + } + + // line_i == 0 would mean that no matching LineNumberEntry was found. + if (line_i > 0) { + const subsect_index = checksum_offset + block_hdr.NameIndex; + const chksum_hdr = @ptrCast(*pdb.FileChecksumEntryHeader, &mod.subsect_info[subsect_index]); + const strtab_offset = @sizeOf(pdb.PDBStringTableHeader) + chksum_hdr.FileNameOffset; + try di.pdb.string_table.seekTo(strtab_offset); + const source_file_name = try di.pdb.string_table.readNullTermString(allocator); + + const line_entry_idx = line_i - 1; + + const column = if (has_column) blk: { + const start_col_index = start_line_index + @sizeOf(pdb.LineNumberEntry) * block_hdr.NumLines; + const col_index = start_col_index + @sizeOf(pdb.ColumnNumberEntry) * line_entry_idx; + const col_num_entry = @ptrCast(*pdb.ColumnNumberEntry, &subsect_info[col_index]); + break :blk col_num_entry.StartColumn; + } else 0; + + const found_line_index = start_line_index + line_entry_idx * @sizeOf(pdb.LineNumberEntry); + const line_num_entry = @ptrCast(*pdb.LineNumberEntry, &subsect_info[found_line_index]); + const flags = @ptrCast(*pdb.LineNumberEntry.Flags, &line_num_entry.Flags); + + break :subsections LineInfo{ + .allocator = allocator, + .file_name = source_file_name, + .line = flags.Start, + .column = column, + }; + } + } + + // Checking that we are not reading garbage after the (possibly) multiple block fragments. + if (line_index != subsection_end_index) { + return error.InvalidDebugInfo; + } + } + }, + else => {}, + } + + if (sect_offset > subsect_info.len) + return error.InvalidDebugInfo; + } else { + break :subsections null; + } + }; + + if (tty_color) { + setTtyColor(TtyColor.White); + if (opt_line_info) |li| { + try out_stream.print("{}:{}:{}", li.file_name, li.line, li.column); + } else { + try out_stream.print("???:?:?"); + } + setTtyColor(TtyColor.Reset); + try out_stream.print(": "); + setTtyColor(TtyColor.Dim); + try out_stream.print("0x{x} in {} ({})", relocated_address, symbol_name, obj_basename); + setTtyColor(TtyColor.Reset); + + if (opt_line_info) |line_info| { + try out_stream.print("\n"); + if (printLineFromFileAnyOs(out_stream, line_info)) { + if (line_info.column == 0) { + try out_stream.write("\n"); + } else { + { + var col_i: usize = 1; + while (col_i < line_info.column) : (col_i += 1) { + try out_stream.writeByte(' '); + } + } + setTtyColor(TtyColor.Green); + try out_stream.write("^"); + setTtyColor(TtyColor.Reset); + try out_stream.write("\n"); + } + } else |err| switch (err) { + error.EndOfFile => {}, + error.FileNotFound => { + setTtyColor(TtyColor.Dim); + try out_stream.write("file not found\n\n"); + setTtyColor(TtyColor.White); + }, + else => return err, + } + } else { + try out_stream.print("\n\n\n"); + } + } else { + if (opt_line_info) |li| { + try out_stream.print("{}:{}:{}: 0x{x} in {} ({})\n\n\n", li.file_name, li.line, li.column, relocated_address, symbol_name, obj_basename); + } else { + try out_stream.print("???:?:?: 0x{x} in {} ({})\n\n\n", relocated_address, symbol_name, obj_basename); + } + } +} + +const TtyColor = enum { + Red, + Green, + Cyan, + White, + Dim, + Bold, + Reset, +}; + +/// TODO this is a special case hack right now. clean it up and maybe make it part of std.fmt +fn setTtyColor(tty_color: TtyColor) void { + if (stderr_file.supportsAnsiEscapeCodes()) { + switch (tty_color) { + TtyColor.Red => { + stderr_file.write(RED) catch return; + }, + TtyColor.Green => { + stderr_file.write(GREEN) catch return; + }, + TtyColor.Cyan => { + stderr_file.write(CYAN) catch return; + }, + TtyColor.White, TtyColor.Bold => { + stderr_file.write(WHITE) catch return; + }, + TtyColor.Dim => { + stderr_file.write(DIM) catch return; + }, + TtyColor.Reset => { + stderr_file.write(RESET) catch return; + }, + } + } else { + const S = struct { + var attrs: windows.WORD = undefined; + var init_attrs = false; + }; + if (!S.init_attrs) { + S.init_attrs = true; + var info: windows.CONSOLE_SCREEN_BUFFER_INFO = undefined; + // TODO handle error + _ = windows.kernel32.GetConsoleScreenBufferInfo(stderr_file.handle, &info); + S.attrs = info.wAttributes; + } + + // TODO handle errors + switch (tty_color) { + TtyColor.Red => { + _ = windows.SetConsoleTextAttribute(stderr_file.handle, windows.FOREGROUND_RED | windows.FOREGROUND_INTENSITY) catch {}; + }, + TtyColor.Green => { + _ = windows.SetConsoleTextAttribute(stderr_file.handle, windows.FOREGROUND_GREEN | windows.FOREGROUND_INTENSITY) catch {}; + }, + TtyColor.Cyan => { + _ = windows.SetConsoleTextAttribute(stderr_file.handle, windows.FOREGROUND_GREEN | windows.FOREGROUND_BLUE | windows.FOREGROUND_INTENSITY) catch {}; + }, + TtyColor.White, TtyColor.Bold => { + _ = windows.SetConsoleTextAttribute(stderr_file.handle, windows.FOREGROUND_RED | windows.FOREGROUND_GREEN | windows.FOREGROUND_BLUE | windows.FOREGROUND_INTENSITY) catch {}; + }, + TtyColor.Dim => { + _ = windows.SetConsoleTextAttribute(stderr_file.handle, windows.FOREGROUND_INTENSITY) catch {}; + }, + TtyColor.Reset => { + _ = windows.SetConsoleTextAttribute(stderr_file.handle, S.attrs) catch {}; + }, + } + } +} + +fn populateModule(di: *DebugInfo, mod: *Module) !void { + if (mod.populated) + return; + const allocator = getDebugInfoAllocator(); + + // At most one can be non-zero. + if (mod.mod_info.C11ByteSize != 0 and mod.mod_info.C13ByteSize != 0) + return error.InvalidDebugInfo; + + if (mod.mod_info.C13ByteSize == 0) + return; + + const modi = di.pdb.getStreamById(mod.mod_info.ModuleSymStream) orelse return error.MissingDebugInfo; + + const signature = try modi.stream.readIntLittle(u32); + if (signature != 4) + return error.InvalidDebugInfo; + + mod.symbols = try allocator.alloc(u8, mod.mod_info.SymByteSize - 4); + try modi.stream.readNoEof(mod.symbols); + + mod.subsect_info = try allocator.alloc(u8, mod.mod_info.C13ByteSize); + try modi.stream.readNoEof(mod.subsect_info); + + var sect_offset: usize = 0; + var skip_len: usize = undefined; + while (sect_offset != mod.subsect_info.len) : (sect_offset += skip_len) { + const subsect_hdr = @ptrCast(*pdb.DebugSubsectionHeader, &mod.subsect_info[sect_offset]); + skip_len = subsect_hdr.Length; + sect_offset += @sizeOf(pdb.DebugSubsectionHeader); + + switch (subsect_hdr.Kind) { + pdb.DebugSubsectionKind.FileChecksums => { + mod.checksum_offset = sect_offset; + break; + }, + else => {}, + } + + if (sect_offset > mod.subsect_info.len) + return error.InvalidDebugInfo; + } + + mod.populated = true; +} + +fn machoSearchSymbols(symbols: []const MachoSymbol, address: usize) ?*const MachoSymbol { + var min: usize = 0; + var max: usize = symbols.len - 1; // Exclude sentinel. + while (min < max) { + const mid = min + (max - min) / 2; + const curr = &symbols[mid]; + const next = &symbols[mid + 1]; + if (address >= next.address()) { + min = mid + 1; + } else if (address < curr.address()) { + max = mid; + } else { + return curr; + } + } + return null; +} + +fn printSourceAtAddressMacOs(di: *DebugInfo, out_stream: var, address: usize, tty_color: bool) !void { + const base_addr = process.getBaseAddress(); + const adjusted_addr = 0x100000000 + (address - base_addr); + + const symbol = machoSearchSymbols(di.symbols, adjusted_addr) orelse { + if (tty_color) { + try out_stream.print("???:?:?: " ++ DIM ++ "0x{x} in ??? (???)" ++ RESET ++ "\n\n\n", address); + } else { + try out_stream.print("???:?:?: 0x{x} in ??? (???)\n\n\n", address); + } + return; + }; + + const symbol_name = mem.toSliceConst(u8, di.strings.ptr + symbol.nlist.n_strx); + const compile_unit_name = if (symbol.ofile) |ofile| blk: { + const ofile_path = mem.toSliceConst(u8, di.strings.ptr + ofile.n_strx); + break :blk fs.path.basename(ofile_path); + } else "???"; + if (getLineNumberInfoMacOs(di, symbol.*, adjusted_addr)) |line_info| { + defer line_info.deinit(); + try printLineInfo( + out_stream, + line_info, + address, + symbol_name, + compile_unit_name, + tty_color, + printLineFromFileAnyOs, + ); + } else |err| switch (err) { + error.MissingDebugInfo, error.InvalidDebugInfo => { + if (tty_color) { + try out_stream.print("???:?:?: " ++ DIM ++ "0x{x} in {} ({})" ++ RESET ++ "\n\n\n", address, symbol_name, compile_unit_name); + } else { + try out_stream.print("???:?:?: 0x{x} in {} ({})\n\n\n", address, symbol_name, compile_unit_name); + } + }, + else => return err, + } +} + +/// This function works in freestanding mode. +/// fn printLineFromFile(out_stream: var, line_info: LineInfo) !void +pub fn printSourceAtAddressDwarf( + debug_info: *DwarfInfo, + out_stream: var, + address: usize, + tty_color: bool, + comptime printLineFromFile: var, +) !void { + const compile_unit = findCompileUnit(debug_info, address) catch { + if (tty_color) { + try out_stream.print("???:?:?: " ++ DIM ++ "0x{x} in ??? (???)" ++ RESET ++ "\n\n\n", address); + } else { + try out_stream.print("???:?:?: 0x{x} in ??? (???)\n\n\n", address); + } + return; + }; + const compile_unit_name = try compile_unit.die.getAttrString(debug_info, DW.AT_name); + if (getLineNumberInfoDwarf(debug_info, compile_unit.*, address)) |line_info| { + defer line_info.deinit(); + const symbol_name = getSymbolNameDwarf(debug_info, address) orelse "???"; + try printLineInfo( + out_stream, + line_info, + address, + symbol_name, + compile_unit_name, + tty_color, + printLineFromFile, + ); + } else |err| switch (err) { + error.MissingDebugInfo, error.InvalidDebugInfo => { + if (tty_color) { + try out_stream.print("???:?:?: " ++ DIM ++ "0x{x} in ??? ({})" ++ RESET ++ "\n\n\n", address, compile_unit_name); + } else { + try out_stream.print("???:?:?: 0x{x} in ??? ({})\n\n\n", address, compile_unit_name); + } + }, + else => return err, + } +} + +pub fn printSourceAtAddressPosix(debug_info: *DebugInfo, out_stream: var, address: usize, tty_color: bool) !void { + return printSourceAtAddressDwarf(debug_info, out_stream, address, tty_color, printLineFromFileAnyOs); +} + +fn printLineInfo( + out_stream: var, + line_info: LineInfo, + address: usize, + symbol_name: []const u8, + compile_unit_name: []const u8, + tty_color: bool, + comptime printLineFromFile: var, +) !void { + if (tty_color) { + try out_stream.print( + WHITE ++ "{}:{}:{}" ++ RESET ++ ": " ++ DIM ++ "0x{x} in {} ({})" ++ RESET ++ "\n", + line_info.file_name, + line_info.line, + line_info.column, + address, + symbol_name, + compile_unit_name, + ); + if (printLineFromFile(out_stream, line_info)) { + if (line_info.column == 0) { + try out_stream.write("\n"); + } else { + { + var col_i: usize = 1; + while (col_i < line_info.column) : (col_i += 1) { + try out_stream.writeByte(' '); + } + } + try out_stream.write(GREEN ++ "^" ++ RESET ++ "\n"); + } + } else |err| switch (err) { + error.EndOfFile, error.FileNotFound => {}, + else => return err, + } + } else { + try out_stream.print( + "{}:{}:{}: 0x{x} in {} ({})\n", + line_info.file_name, + line_info.line, + line_info.column, + address, + symbol_name, + compile_unit_name, + ); + } +} + +// TODO use this +pub const OpenSelfDebugInfoError = error{ + MissingDebugInfo, + OutOfMemory, + UnsupportedOperatingSystem, +}; + +/// TODO once https://github.com/ziglang/zig/issues/3157 is fully implemented, +/// make this `noasync fn` and remove the individual noasync calls. +pub fn openSelfDebugInfo(allocator: *mem.Allocator) !DebugInfo { + if (builtin.strip_debug_info) + return error.MissingDebugInfo; + if (windows.is_the_target) { + return noasync openSelfDebugInfoWindows(allocator); + } + if (os.darwin.is_the_target) { + return noasync openSelfDebugInfoMacOs(allocator); + } + return noasync openSelfDebugInfoPosix(allocator); +} + +fn openSelfDebugInfoWindows(allocator: *mem.Allocator) !DebugInfo { + const self_file = try fs.openSelfExe(); + defer self_file.close(); + + const coff_obj = try allocator.create(coff.Coff); + coff_obj.* = coff.Coff.init(allocator, self_file); + + var di = DebugInfo{ + .coff = coff_obj, + .pdb = undefined, + .sect_contribs = undefined, + .modules = undefined, + }; + + try di.coff.loadHeader(); + + var path_buf: [windows.MAX_PATH]u8 = undefined; + const len = try di.coff.getPdbPath(path_buf[0..]); + const raw_path = path_buf[0..len]; + + const path = try fs.path.resolve(allocator, [_][]const u8{raw_path}); + + try di.pdb.openFile(di.coff, path); + + var pdb_stream = di.pdb.getStream(pdb.StreamType.Pdb) orelse return error.InvalidDebugInfo; + const version = try pdb_stream.stream.readIntLittle(u32); + const signature = try pdb_stream.stream.readIntLittle(u32); + const age = try pdb_stream.stream.readIntLittle(u32); + var guid: [16]u8 = undefined; + try pdb_stream.stream.readNoEof(guid[0..]); + if (version != 20000404) // VC70, only value observed by LLVM team + return error.UnknownPDBVersion; + if (!mem.eql(u8, di.coff.guid, guid) or di.coff.age != age) + return error.PDBMismatch; + // We validated the executable and pdb match. + + const string_table_index = str_tab_index: { + const name_bytes_len = try pdb_stream.stream.readIntLittle(u32); + const name_bytes = try allocator.alloc(u8, name_bytes_len); + try pdb_stream.stream.readNoEof(name_bytes); + + const HashTableHeader = packed struct { + Size: u32, + Capacity: u32, + + fn maxLoad(cap: u32) u32 { + return cap * 2 / 3 + 1; + } + }; + const hash_tbl_hdr = try pdb_stream.stream.readStruct(HashTableHeader); + if (hash_tbl_hdr.Capacity == 0) + return error.InvalidDebugInfo; + + if (hash_tbl_hdr.Size > HashTableHeader.maxLoad(hash_tbl_hdr.Capacity)) + return error.InvalidDebugInfo; + + const present = try readSparseBitVector(&pdb_stream.stream, allocator); + if (present.len != hash_tbl_hdr.Size) + return error.InvalidDebugInfo; + const deleted = try readSparseBitVector(&pdb_stream.stream, allocator); + + const Bucket = struct { + first: u32, + second: u32, + }; + const bucket_list = try allocator.alloc(Bucket, present.len); + for (present) |_| { + const name_offset = try pdb_stream.stream.readIntLittle(u32); + const name_index = try pdb_stream.stream.readIntLittle(u32); + const name = mem.toSlice(u8, name_bytes.ptr + name_offset); + if (mem.eql(u8, name, "/names")) { + break :str_tab_index name_index; + } + } + return error.MissingDebugInfo; + }; + + di.pdb.string_table = di.pdb.getStreamById(string_table_index) orelse return error.MissingDebugInfo; + di.pdb.dbi = di.pdb.getStream(pdb.StreamType.Dbi) orelse return error.MissingDebugInfo; + + const dbi = di.pdb.dbi; + + // Dbi Header + const dbi_stream_header = try dbi.stream.readStruct(pdb.DbiStreamHeader); + if (dbi_stream_header.VersionHeader != 19990903) // V70, only value observed by LLVM team + return error.UnknownPDBVersion; + if (dbi_stream_header.Age != age) + return error.UnmatchingPDB; + + const mod_info_size = dbi_stream_header.ModInfoSize; + const section_contrib_size = dbi_stream_header.SectionContributionSize; + + var modules = ArrayList(Module).init(allocator); + + // Module Info Substream + var mod_info_offset: usize = 0; + while (mod_info_offset != mod_info_size) { + const mod_info = try dbi.stream.readStruct(pdb.ModInfo); + var this_record_len: usize = @sizeOf(pdb.ModInfo); + + const module_name = try dbi.readNullTermString(allocator); + this_record_len += module_name.len + 1; + + const obj_file_name = try dbi.readNullTermString(allocator); + this_record_len += obj_file_name.len + 1; + + if (this_record_len % 4 != 0) { + const round_to_next_4 = (this_record_len | 0x3) + 1; + const march_forward_bytes = round_to_next_4 - this_record_len; + try dbi.seekBy(@intCast(isize, march_forward_bytes)); + this_record_len += march_forward_bytes; + } + + try modules.append(Module{ + .mod_info = mod_info, + .module_name = module_name, + .obj_file_name = obj_file_name, + + .populated = false, + .symbols = undefined, + .subsect_info = undefined, + .checksum_offset = null, + }); + + mod_info_offset += this_record_len; + if (mod_info_offset > mod_info_size) + return error.InvalidDebugInfo; + } + + di.modules = modules.toOwnedSlice(); + + // Section Contribution Substream + var sect_contribs = ArrayList(pdb.SectionContribEntry).init(allocator); + var sect_cont_offset: usize = 0; + if (section_contrib_size != 0) { + const ver = @intToEnum(pdb.SectionContrSubstreamVersion, try dbi.stream.readIntLittle(u32)); + if (ver != pdb.SectionContrSubstreamVersion.Ver60) + return error.InvalidDebugInfo; + sect_cont_offset += @sizeOf(u32); + } + while (sect_cont_offset != section_contrib_size) { + const entry = try sect_contribs.addOne(); + entry.* = try dbi.stream.readStruct(pdb.SectionContribEntry); + sect_cont_offset += @sizeOf(pdb.SectionContribEntry); + + if (sect_cont_offset > section_contrib_size) + return error.InvalidDebugInfo; + } + + di.sect_contribs = sect_contribs.toOwnedSlice(); + + return di; +} + +fn readSparseBitVector(stream: var, allocator: *mem.Allocator) ![]usize { + const num_words = try stream.readIntLittle(u32); + var word_i: usize = 0; + var list = ArrayList(usize).init(allocator); + while (word_i != num_words) : (word_i += 1) { + const word = try stream.readIntLittle(u32); + var bit_i: u5 = 0; + while (true) : (bit_i += 1) { + if (word & (u32(1) << bit_i) != 0) { + try list.append(word_i * 32 + bit_i); + } + if (bit_i == maxInt(u5)) break; + } + } + return list.toOwnedSlice(); +} + +fn findDwarfSectionFromElf(elf_file: *elf.Elf, name: []const u8) !?DwarfInfo.Section { + const elf_header = (try elf_file.findSection(name)) orelse return null; + return DwarfInfo.Section{ + .offset = elf_header.offset, + .size = elf_header.size, + }; +} + +/// Initialize DWARF info. The caller has the responsibility to initialize most +/// the DwarfInfo fields before calling. These fields can be left undefined: +/// * abbrev_table_list +/// * compile_unit_list +pub fn openDwarfDebugInfo(di: *DwarfInfo, allocator: *mem.Allocator) !void { + di.abbrev_table_list = ArrayList(AbbrevTableHeader).init(allocator); + di.compile_unit_list = ArrayList(CompileUnit).init(allocator); + di.func_list = ArrayList(Func).init(allocator); + try scanAllFunctions(di); + try scanAllCompileUnits(di); +} + +pub fn openElfDebugInfo( + allocator: *mem.Allocator, + elf_seekable_stream: *DwarfSeekableStream, + elf_in_stream: *DwarfInStream, +) !DwarfInfo { + var efile = try elf.Elf.openStream(allocator, elf_seekable_stream, elf_in_stream); + errdefer efile.close(); + + var di = DwarfInfo{ + .dwarf_seekable_stream = elf_seekable_stream, + .dwarf_in_stream = elf_in_stream, + .endian = efile.endian, + .debug_info = (try findDwarfSectionFromElf(&efile, ".debug_info")) orelse return error.MissingDebugInfo, + .debug_abbrev = (try findDwarfSectionFromElf(&efile, ".debug_abbrev")) orelse return error.MissingDebugInfo, + .debug_str = (try findDwarfSectionFromElf(&efile, ".debug_str")) orelse return error.MissingDebugInfo, + .debug_line = (try findDwarfSectionFromElf(&efile, ".debug_line")) orelse return error.MissingDebugInfo, + .debug_ranges = (try findDwarfSectionFromElf(&efile, ".debug_ranges")), + .abbrev_table_list = undefined, + .compile_unit_list = undefined, + .func_list = undefined, + }; + try openDwarfDebugInfo(&di, allocator); + return di; +} + +fn openSelfDebugInfoPosix(allocator: *mem.Allocator) !DwarfInfo { + const S = struct { + var self_exe_file: File = undefined; + var self_exe_mmap_seekable: io.SliceSeekableInStream = undefined; + }; + + S.self_exe_file = try fs.openSelfExe(); + errdefer S.self_exe_file.close(); + + const self_exe_len = math.cast(usize, try S.self_exe_file.getEndPos()) catch return error.DebugInfoTooLarge; + const self_exe_mmap_len = mem.alignForward(self_exe_len, mem.page_size); + const self_exe_mmap = try os.mmap( + null, + self_exe_mmap_len, + os.PROT_READ, + os.MAP_SHARED, + S.self_exe_file.handle, + 0, + ); + errdefer os.munmap(self_exe_mmap); + + S.self_exe_mmap_seekable = io.SliceSeekableInStream.init(self_exe_mmap); + + return openElfDebugInfo( + allocator, + // TODO https://github.com/ziglang/zig/issues/764 + @ptrCast(*DwarfSeekableStream, &S.self_exe_mmap_seekable.seekable_stream), + // TODO https://github.com/ziglang/zig/issues/764 + @ptrCast(*DwarfInStream, &S.self_exe_mmap_seekable.stream), + ); +} + +fn openSelfDebugInfoMacOs(allocator: *mem.Allocator) !DebugInfo { + const hdr = &std.c._mh_execute_header; + assert(hdr.magic == std.macho.MH_MAGIC_64); + + const hdr_base = @ptrCast([*]u8, hdr); + var ptr = hdr_base + @sizeOf(macho.mach_header_64); + var ncmd: u32 = hdr.ncmds; + const symtab = while (ncmd != 0) : (ncmd -= 1) { + const lc = @ptrCast(*std.macho.load_command, ptr); + switch (lc.cmd) { + std.macho.LC_SYMTAB => break @ptrCast(*std.macho.symtab_command, ptr), + else => {}, + } + ptr += lc.cmdsize; // TODO https://github.com/ziglang/zig/issues/1403 + } else { + return error.MissingDebugInfo; + }; + const syms = @ptrCast([*]macho.nlist_64, @alignCast(@alignOf(macho.nlist_64), hdr_base + symtab.symoff))[0..symtab.nsyms]; + const strings = @ptrCast([*]u8, hdr_base + symtab.stroff)[0..symtab.strsize]; + + const symbols_buf = try allocator.alloc(MachoSymbol, syms.len); + + var ofile: ?*macho.nlist_64 = null; + var reloc: u64 = 0; + var symbol_index: usize = 0; + var last_len: u64 = 0; + for (syms) |*sym| { + if (sym.n_type & std.macho.N_STAB != 0) { + switch (sym.n_type) { + std.macho.N_OSO => { + ofile = sym; + reloc = 0; + }, + std.macho.N_FUN => { + if (sym.n_sect == 0) { + last_len = sym.n_value; + } else { + symbols_buf[symbol_index] = MachoSymbol{ + .nlist = sym, + .ofile = ofile, + .reloc = reloc, + }; + symbol_index += 1; + } + }, + std.macho.N_BNSYM => { + if (reloc == 0) { + reloc = sym.n_value; + } + }, + else => continue, + } + } + } + const sentinel = try allocator.create(macho.nlist_64); + sentinel.* = macho.nlist_64{ + .n_strx = 0, + .n_type = 36, + .n_sect = 0, + .n_desc = 0, + .n_value = symbols_buf[symbol_index - 1].nlist.n_value + last_len, + }; + + const symbols = allocator.shrink(symbols_buf, symbol_index); + + // Even though lld emits symbols in ascending order, this debug code + // should work for programs linked in any valid way. + // This sort is so that we can binary search later. + std.sort.sort(MachoSymbol, symbols, MachoSymbol.addressLessThan); + + return DebugInfo{ + .ofiles = DebugInfo.OFileTable.init(allocator), + .symbols = symbols, + .strings = strings, + }; +} + +fn printLineFromFileAnyOs(out_stream: var, line_info: LineInfo) !void { + var f = try File.openRead(line_info.file_name); + defer f.close(); + // TODO fstat and make sure that the file has the correct size + + var buf: [mem.page_size]u8 = undefined; + var line: usize = 1; + var column: usize = 1; + var abs_index: usize = 0; + while (true) { + const amt_read = try f.read(buf[0..]); + const slice = buf[0..amt_read]; + + for (slice) |byte| { + if (line == line_info.line) { + try out_stream.writeByte(byte); + if (byte == '\n') { + return; + } + } + if (byte == '\n') { + line += 1; + column = 1; + } else { + column += 1; + } + } + + if (amt_read < buf.len) return error.EndOfFile; + } +} + +const MachoSymbol = struct { + nlist: *macho.nlist_64, + ofile: ?*macho.nlist_64, + reloc: u64, + + /// Returns the address from the macho file + fn address(self: MachoSymbol) u64 { + return self.nlist.n_value; + } + + fn addressLessThan(lhs: MachoSymbol, rhs: MachoSymbol) bool { + return lhs.address() < rhs.address(); + } +}; + +const MachOFile = struct { + bytes: []align(@alignOf(macho.mach_header_64)) const u8, + sect_debug_info: ?*const macho.section_64, + sect_debug_line: ?*const macho.section_64, +}; + +pub const DwarfSeekableStream = io.SeekableStream(anyerror, anyerror); +pub const DwarfInStream = io.InStream(anyerror); + +pub const DwarfInfo = struct { + dwarf_seekable_stream: *DwarfSeekableStream, + dwarf_in_stream: *DwarfInStream, + endian: builtin.Endian, + debug_info: Section, + debug_abbrev: Section, + debug_str: Section, + debug_line: Section, + debug_ranges: ?Section, + abbrev_table_list: ArrayList(AbbrevTableHeader), + compile_unit_list: ArrayList(CompileUnit), + func_list: ArrayList(Func), + + pub const Section = struct { + offset: u64, + size: u64, + }; + + pub fn allocator(self: DwarfInfo) *mem.Allocator { + return self.abbrev_table_list.allocator; + } + + pub fn readString(self: *DwarfInfo) ![]u8 { + return readStringRaw(self.allocator(), self.dwarf_in_stream); + } +}; + +pub const DebugInfo = switch (builtin.os) { + .macosx, .ios, .watchos, .tvos => struct { + symbols: []const MachoSymbol, + strings: []const u8, + ofiles: OFileTable, + + const OFileTable = std.HashMap( + *macho.nlist_64, + MachOFile, + std.hash_map.getHashPtrAddrFn(*macho.nlist_64), + std.hash_map.getTrivialEqlFn(*macho.nlist_64), + ); + + pub fn allocator(self: DebugInfo) *mem.Allocator { + return self.ofiles.allocator; + } + }, + .uefi, .windows => struct { + pdb: pdb.Pdb, + coff: *coff.Coff, + sect_contribs: []pdb.SectionContribEntry, + modules: []Module, + }, + .linux, .freebsd, .netbsd => DwarfInfo, + else => @compileError("Unsupported OS"), +}; + +const PcRange = struct { + start: u64, + end: u64, +}; + +const CompileUnit = struct { + version: u16, + is_64: bool, + die: *Die, + pc_range: ?PcRange, +}; + +const AbbrevTable = ArrayList(AbbrevTableEntry); + +const AbbrevTableHeader = struct { + // offset from .debug_abbrev + offset: u64, + table: AbbrevTable, +}; + +const AbbrevTableEntry = struct { + has_children: bool, + abbrev_code: u64, + tag_id: u64, + attrs: ArrayList(AbbrevAttr), +}; + +const AbbrevAttr = struct { + attr_id: u64, + form_id: u64, +}; + +const FormValue = union(enum) { + Address: u64, + Block: []u8, + Const: Constant, + ExprLoc: []u8, + Flag: bool, + SecOffset: u64, + Ref: u64, + RefAddr: u64, + String: []u8, + StrPtr: u64, +}; + +const Constant = struct { + payload: u64, + signed: bool, + + fn asUnsignedLe(self: *const Constant) !u64 { + if (self.signed) return error.InvalidDebugInfo; + return self.payload; + } +}; + +const Die = struct { + tag_id: u64, + has_children: bool, + attrs: ArrayList(Attr), + + const Attr = struct { + id: u64, + value: FormValue, + }; + + fn getAttr(self: *const Die, id: u64) ?*const FormValue { + for (self.attrs.toSliceConst()) |*attr| { + if (attr.id == id) return &attr.value; + } + return null; + } + + fn getAttrAddr(self: *const Die, id: u64) !u64 { + const form_value = self.getAttr(id) orelse return error.MissingDebugInfo; + return switch (form_value.*) { + FormValue.Address => |value| value, + else => error.InvalidDebugInfo, + }; + } + + fn getAttrSecOffset(self: *const Die, id: u64) !u64 { + const form_value = self.getAttr(id) orelse return error.MissingDebugInfo; + return switch (form_value.*) { + FormValue.Const => |value| value.asUnsignedLe(), + FormValue.SecOffset => |value| value, + else => error.InvalidDebugInfo, + }; + } + + fn getAttrUnsignedLe(self: *const Die, id: u64) !u64 { + const form_value = self.getAttr(id) orelse return error.MissingDebugInfo; + return switch (form_value.*) { + FormValue.Const => |value| value.asUnsignedLe(), + else => error.InvalidDebugInfo, + }; + } + + fn getAttrRef(self: *const Die, id: u64) !u64 { + const form_value = self.getAttr(id) orelse return error.MissingDebugInfo; + return switch (form_value.*) { + FormValue.Ref => |value| value, + else => error.InvalidDebugInfo, + }; + } + + fn getAttrString(self: *const Die, di: *DwarfInfo, id: u64) ![]u8 { + const form_value = self.getAttr(id) orelse return error.MissingDebugInfo; + return switch (form_value.*) { + FormValue.String => |value| value, + FormValue.StrPtr => |offset| getString(di, offset), + else => error.InvalidDebugInfo, + }; + } +}; + +const FileEntry = struct { + file_name: []const u8, + dir_index: usize, + mtime: usize, + len_bytes: usize, +}; + +pub const LineInfo = struct { + line: u64, + column: u64, + file_name: []const u8, + allocator: ?*mem.Allocator, + + fn deinit(self: LineInfo) void { + const allocator = self.allocator orelse return; + allocator.free(self.file_name); + } +}; + +const LineNumberProgram = struct { + address: usize, + file: usize, + line: i64, + column: u64, + is_stmt: bool, + basic_block: bool, + end_sequence: bool, + + target_address: usize, + include_dirs: []const []const u8, + file_entries: *ArrayList(FileEntry), + + prev_address: usize, + prev_file: usize, + prev_line: i64, + prev_column: u64, + prev_is_stmt: bool, + prev_basic_block: bool, + prev_end_sequence: bool, + + pub fn init(is_stmt: bool, include_dirs: []const []const u8, file_entries: *ArrayList(FileEntry), target_address: usize) LineNumberProgram { + return LineNumberProgram{ + .address = 0, + .file = 1, + .line = 1, + .column = 0, + .is_stmt = is_stmt, + .basic_block = false, + .end_sequence = false, + .include_dirs = include_dirs, + .file_entries = file_entries, + .target_address = target_address, + .prev_address = 0, + .prev_file = undefined, + .prev_line = undefined, + .prev_column = undefined, + .prev_is_stmt = undefined, + .prev_basic_block = undefined, + .prev_end_sequence = undefined, + }; + } + + pub fn checkLineMatch(self: *LineNumberProgram) !?LineInfo { + if (self.target_address >= self.prev_address and self.target_address < self.address) { + const file_entry = if (self.prev_file == 0) { + return error.MissingDebugInfo; + } else if (self.prev_file - 1 >= self.file_entries.len) { + return error.InvalidDebugInfo; + } else + &self.file_entries.items[self.prev_file - 1]; + + const dir_name = if (file_entry.dir_index >= self.include_dirs.len) { + return error.InvalidDebugInfo; + } else + self.include_dirs[file_entry.dir_index]; + const file_name = try fs.path.join(self.file_entries.allocator, [_][]const u8{ dir_name, file_entry.file_name }); + errdefer self.file_entries.allocator.free(file_name); + return LineInfo{ + .line = if (self.prev_line >= 0) @intCast(u64, self.prev_line) else 0, + .column = self.prev_column, + .file_name = file_name, + .allocator = self.file_entries.allocator, + }; + } + + self.prev_address = self.address; + self.prev_file = self.file; + self.prev_line = self.line; + self.prev_column = self.column; + self.prev_is_stmt = self.is_stmt; + self.prev_basic_block = self.basic_block; + self.prev_end_sequence = self.end_sequence; + return null; + } +}; + +// TODO the noasyncs here are workarounds +fn readStringRaw(allocator: *mem.Allocator, in_stream: var) ![]u8 { + var buf = ArrayList(u8).init(allocator); + while (true) { + const byte = try noasync in_stream.readByte(); + if (byte == 0) break; + try buf.append(byte); + } + return buf.toSlice(); +} + +fn getString(di: *DwarfInfo, offset: u64) ![]u8 { + const pos = di.debug_str.offset + offset; + try di.dwarf_seekable_stream.seekTo(pos); + return di.readString(); +} + +// TODO the noasyncs here are workarounds +fn readAllocBytes(allocator: *mem.Allocator, in_stream: var, size: usize) ![]u8 { + const buf = try allocator.alloc(u8, size); + errdefer allocator.free(buf); + if ((try noasync in_stream.read(buf)) < size) return error.EndOfFile; + return buf; +} + +fn parseFormValueBlockLen(allocator: *mem.Allocator, in_stream: var, size: usize) !FormValue { + const buf = try readAllocBytes(allocator, in_stream, size); + return FormValue{ .Block = buf }; +} + +// TODO the noasyncs here are workarounds +fn parseFormValueBlock(allocator: *mem.Allocator, in_stream: var, size: usize) !FormValue { + const block_len = try noasync in_stream.readVarInt(usize, builtin.Endian.Little, size); + return parseFormValueBlockLen(allocator, in_stream, block_len); +} + +fn parseFormValueConstant(allocator: *mem.Allocator, in_stream: var, signed: bool, comptime size: i32) !FormValue { + // TODO: Please forgive me, I've worked around zig not properly spilling some intermediate values here. + // `noasync` should be removed from all the function calls once it is fixed. + return FormValue{ + .Const = Constant{ + .signed = signed, + .payload = switch (size) { + 1 => try noasync in_stream.readIntLittle(u8), + 2 => try noasync in_stream.readIntLittle(u16), + 4 => try noasync in_stream.readIntLittle(u32), + 8 => try noasync in_stream.readIntLittle(u64), + -1 => blk: { + if (signed) { + const x = try noasync leb.readILEB128(i64, in_stream); + break :blk @bitCast(u64, x); + } else { + const x = try noasync leb.readULEB128(u64, in_stream); + break :blk x; + } + }, + else => @compileError("Invalid size"), + }, + }, + }; +} + +// TODO the noasyncs here are workarounds +fn parseFormValueDwarfOffsetSize(in_stream: var, is_64: bool) !u64 { + return if (is_64) try noasync in_stream.readIntLittle(u64) else u64(try noasync in_stream.readIntLittle(u32)); +} + +// TODO the noasyncs here are workarounds +fn parseFormValueTargetAddrSize(in_stream: var) !u64 { + if (@sizeOf(usize) == 4) { + return u64(try noasync in_stream.readIntLittle(u32)); + } else if (@sizeOf(usize) == 8) { + return noasync in_stream.readIntLittle(u64); + } else { + unreachable; + } +} + +// TODO the noasyncs here are workarounds +fn parseFormValueRef(allocator: *mem.Allocator, in_stream: var, size: i32) !FormValue { + return FormValue{ + .Ref = switch (size) { + 1 => try noasync in_stream.readIntLittle(u8), + 2 => try noasync in_stream.readIntLittle(u16), + 4 => try noasync in_stream.readIntLittle(u32), + 8 => try noasync in_stream.readIntLittle(u64), + -1 => try noasync leb.readULEB128(u64, in_stream), + else => unreachable, + }, + }; +} + +// TODO the noasyncs here are workarounds +fn parseFormValue(allocator: *mem.Allocator, in_stream: var, form_id: u64, is_64: bool) anyerror!FormValue { + return switch (form_id) { + DW.FORM_addr => FormValue{ .Address = try parseFormValueTargetAddrSize(in_stream) }, + DW.FORM_block1 => parseFormValueBlock(allocator, in_stream, 1), + DW.FORM_block2 => parseFormValueBlock(allocator, in_stream, 2), + DW.FORM_block4 => parseFormValueBlock(allocator, in_stream, 4), + DW.FORM_block => x: { + const block_len = try noasync leb.readULEB128(usize, in_stream); + return parseFormValueBlockLen(allocator, in_stream, block_len); + }, + DW.FORM_data1 => parseFormValueConstant(allocator, in_stream, false, 1), + DW.FORM_data2 => parseFormValueConstant(allocator, in_stream, false, 2), + DW.FORM_data4 => parseFormValueConstant(allocator, in_stream, false, 4), + DW.FORM_data8 => parseFormValueConstant(allocator, in_stream, false, 8), + DW.FORM_udata, DW.FORM_sdata => { + const signed = form_id == DW.FORM_sdata; + return parseFormValueConstant(allocator, in_stream, signed, -1); + }, + DW.FORM_exprloc => { + const size = try noasync leb.readULEB128(usize, in_stream); + const buf = try readAllocBytes(allocator, in_stream, size); + return FormValue{ .ExprLoc = buf }; + }, + DW.FORM_flag => FormValue{ .Flag = (try noasync in_stream.readByte()) != 0 }, + DW.FORM_flag_present => FormValue{ .Flag = true }, + DW.FORM_sec_offset => FormValue{ .SecOffset = try parseFormValueDwarfOffsetSize(in_stream, is_64) }, + + DW.FORM_ref1 => parseFormValueRef(allocator, in_stream, 1), + DW.FORM_ref2 => parseFormValueRef(allocator, in_stream, 2), + DW.FORM_ref4 => parseFormValueRef(allocator, in_stream, 4), + DW.FORM_ref8 => parseFormValueRef(allocator, in_stream, 8), + DW.FORM_ref_udata => parseFormValueRef(allocator, in_stream, -1), + + DW.FORM_ref_addr => FormValue{ .RefAddr = try parseFormValueDwarfOffsetSize(in_stream, is_64) }, + DW.FORM_ref_sig8 => FormValue{ .Ref = try noasync in_stream.readIntLittle(u64) }, + + DW.FORM_string => FormValue{ .String = try readStringRaw(allocator, in_stream) }, + DW.FORM_strp => FormValue{ .StrPtr = try parseFormValueDwarfOffsetSize(in_stream, is_64) }, + DW.FORM_indirect => { + const child_form_id = try noasync leb.readULEB128(u64, in_stream); + const F = @typeOf(async parseFormValue(allocator, in_stream, child_form_id, is_64)); + var frame = try allocator.create(F); + defer allocator.destroy(frame); + return await @asyncCall(frame, {}, parseFormValue, allocator, in_stream, child_form_id, is_64); + }, + else => error.InvalidDebugInfo, + }; +} + +fn parseAbbrevTable(di: *DwarfInfo) !AbbrevTable { + var result = AbbrevTable.init(di.allocator()); + while (true) { + const abbrev_code = try leb.readULEB128(u64, di.dwarf_in_stream); + if (abbrev_code == 0) return result; + try result.append(AbbrevTableEntry{ + .abbrev_code = abbrev_code, + .tag_id = try leb.readULEB128(u64, di.dwarf_in_stream), + .has_children = (try di.dwarf_in_stream.readByte()) == DW.CHILDREN_yes, + .attrs = ArrayList(AbbrevAttr).init(di.allocator()), + }); + const attrs = &result.items[result.len - 1].attrs; + + while (true) { + const attr_id = try leb.readULEB128(u64, di.dwarf_in_stream); + const form_id = try leb.readULEB128(u64, di.dwarf_in_stream); + if (attr_id == 0 and form_id == 0) break; + try attrs.append(AbbrevAttr{ + .attr_id = attr_id, + .form_id = form_id, + }); + } + } +} + +/// Gets an already existing AbbrevTable given the abbrev_offset, or if not found, +/// seeks in the stream and parses it. +fn getAbbrevTable(di: *DwarfInfo, abbrev_offset: u64) !*const AbbrevTable { + for (di.abbrev_table_list.toSlice()) |*header| { + if (header.offset == abbrev_offset) { + return &header.table; + } + } + try di.dwarf_seekable_stream.seekTo(di.debug_abbrev.offset + abbrev_offset); + try di.abbrev_table_list.append(AbbrevTableHeader{ + .offset = abbrev_offset, + .table = try parseAbbrevTable(di), + }); + return &di.abbrev_table_list.items[di.abbrev_table_list.len - 1].table; +} + +fn getAbbrevTableEntry(abbrev_table: *const AbbrevTable, abbrev_code: u64) ?*const AbbrevTableEntry { + for (abbrev_table.toSliceConst()) |*table_entry| { + if (table_entry.abbrev_code == abbrev_code) return table_entry; + } + return null; +} + +fn parseDie(di: *DwarfInfo, abbrev_table: *const AbbrevTable, is_64: bool) !?Die { + const abbrev_code = try leb.readULEB128(u64, di.dwarf_in_stream); + if (abbrev_code == 0) return null; + const table_entry = getAbbrevTableEntry(abbrev_table, abbrev_code) orelse return error.InvalidDebugInfo; + + var result = Die{ + .tag_id = table_entry.tag_id, + .has_children = table_entry.has_children, + .attrs = ArrayList(Die.Attr).init(di.allocator()), + }; + try result.attrs.resize(table_entry.attrs.len); + for (table_entry.attrs.toSliceConst()) |attr, i| { + result.attrs.items[i] = Die.Attr{ + .id = attr.attr_id, + .value = try parseFormValue(di.allocator(), di.dwarf_in_stream, attr.form_id, is_64), + }; + } + return result; +} + +fn getLineNumberInfoMacOs(di: *DebugInfo, symbol: MachoSymbol, target_address: usize) !LineInfo { + const ofile = symbol.ofile orelse return error.MissingDebugInfo; + const gop = try di.ofiles.getOrPut(ofile); + const mach_o_file = if (gop.found_existing) &gop.kv.value else blk: { + errdefer _ = di.ofiles.remove(ofile); + const ofile_path = mem.toSliceConst(u8, di.strings.ptr + ofile.n_strx); + + gop.kv.value = MachOFile{ + .bytes = try std.io.readFileAllocAligned(di.ofiles.allocator, ofile_path, @alignOf(macho.mach_header_64)), + .sect_debug_info = null, + .sect_debug_line = null, + }; + const hdr = @ptrCast(*const macho.mach_header_64, gop.kv.value.bytes.ptr); + if (hdr.magic != std.macho.MH_MAGIC_64) return error.InvalidDebugInfo; + + const hdr_base = @ptrCast([*]const u8, hdr); + var ptr = hdr_base + @sizeOf(macho.mach_header_64); + var ncmd: u32 = hdr.ncmds; + const segcmd = while (ncmd != 0) : (ncmd -= 1) { + const lc = @ptrCast(*const std.macho.load_command, ptr); + switch (lc.cmd) { + std.macho.LC_SEGMENT_64 => break @ptrCast(*const std.macho.segment_command_64, @alignCast(@alignOf(std.macho.segment_command_64), ptr)), + else => {}, + } + ptr += lc.cmdsize; // TODO https://github.com/ziglang/zig/issues/1403 + } else { + return error.MissingDebugInfo; + }; + const sections = @ptrCast([*]const macho.section_64, @alignCast(@alignOf(macho.section_64), ptr + @sizeOf(std.macho.segment_command_64)))[0..segcmd.nsects]; + for (sections) |*sect| { + if (sect.flags & macho.SECTION_TYPE == macho.S_REGULAR and + (sect.flags & macho.SECTION_ATTRIBUTES) & macho.S_ATTR_DEBUG == macho.S_ATTR_DEBUG) + { + const sect_name = mem.toSliceConst(u8, §.sectname); + if (mem.eql(u8, sect_name, "__debug_line")) { + gop.kv.value.sect_debug_line = sect; + } else if (mem.eql(u8, sect_name, "__debug_info")) { + gop.kv.value.sect_debug_info = sect; + } + } + } + + break :blk &gop.kv.value; + }; + + const sect_debug_line = mach_o_file.sect_debug_line orelse return error.MissingDebugInfo; + var ptr = mach_o_file.bytes.ptr + sect_debug_line.offset; + + var is_64: bool = undefined; + const unit_length = try readInitialLengthMem(&ptr, &is_64); + if (unit_length == 0) return error.MissingDebugInfo; + + const version = readIntMem(&ptr, u16, builtin.Endian.Little); + // TODO support 3 and 5 + if (version != 2 and version != 4) return error.InvalidDebugInfo; + + const prologue_length = if (is_64) + readIntMem(&ptr, u64, builtin.Endian.Little) + else + readIntMem(&ptr, u32, builtin.Endian.Little); + const prog_start = ptr + prologue_length; + + const minimum_instruction_length = readByteMem(&ptr); + if (minimum_instruction_length == 0) return error.InvalidDebugInfo; + + if (version >= 4) { + // maximum_operations_per_instruction + ptr += 1; + } + + const default_is_stmt = readByteMem(&ptr) != 0; + const line_base = readByteSignedMem(&ptr); + + const line_range = readByteMem(&ptr); + if (line_range == 0) return error.InvalidDebugInfo; + + const opcode_base = readByteMem(&ptr); + + const standard_opcode_lengths = ptr[0 .. opcode_base - 1]; + ptr += opcode_base - 1; + + var include_directories = ArrayList([]const u8).init(di.allocator()); + try include_directories.append(""); + while (true) { + const dir = readStringMem(&ptr); + if (dir.len == 0) break; + try include_directories.append(dir); + } + + var file_entries = ArrayList(FileEntry).init(di.allocator()); + var prog = LineNumberProgram.init(default_is_stmt, include_directories.toSliceConst(), &file_entries, target_address); + + while (true) { + const file_name = readStringMem(&ptr); + if (file_name.len == 0) break; + const dir_index = try leb.readULEB128Mem(usize, &ptr); + const mtime = try leb.readULEB128Mem(usize, &ptr); + const len_bytes = try leb.readULEB128Mem(usize, &ptr); + try file_entries.append(FileEntry{ + .file_name = file_name, + .dir_index = dir_index, + .mtime = mtime, + .len_bytes = len_bytes, + }); + } + + ptr = prog_start; + while (true) { + const opcode = readByteMem(&ptr); + + if (opcode == DW.LNS_extended_op) { + const op_size = try leb.readULEB128Mem(u64, &ptr); + if (op_size < 1) return error.InvalidDebugInfo; + var sub_op = readByteMem(&ptr); + switch (sub_op) { + DW.LNE_end_sequence => { + prog.end_sequence = true; + if (try prog.checkLineMatch()) |info| return info; + return error.MissingDebugInfo; + }, + DW.LNE_set_address => { + const addr = readIntMem(&ptr, usize, builtin.Endian.Little); + prog.address = symbol.reloc + addr; + }, + DW.LNE_define_file => { + const file_name = readStringMem(&ptr); + const dir_index = try leb.readULEB128Mem(usize, &ptr); + const mtime = try leb.readULEB128Mem(usize, &ptr); + const len_bytes = try leb.readULEB128Mem(usize, &ptr); + try file_entries.append(FileEntry{ + .file_name = file_name, + .dir_index = dir_index, + .mtime = mtime, + .len_bytes = len_bytes, + }); + }, + else => { + ptr += op_size - 1; + }, + } + } else if (opcode >= opcode_base) { + // special opcodes + const adjusted_opcode = opcode - opcode_base; + const inc_addr = minimum_instruction_length * (adjusted_opcode / line_range); + const inc_line = i32(line_base) + i32(adjusted_opcode % line_range); + prog.line += inc_line; + prog.address += inc_addr; + if (try prog.checkLineMatch()) |info| return info; + prog.basic_block = false; + } else { + switch (opcode) { + DW.LNS_copy => { + if (try prog.checkLineMatch()) |info| return info; + prog.basic_block = false; + }, + DW.LNS_advance_pc => { + const arg = try leb.readULEB128Mem(usize, &ptr); + prog.address += arg * minimum_instruction_length; + }, + DW.LNS_advance_line => { + const arg = try leb.readILEB128Mem(i64, &ptr); + prog.line += arg; + }, + DW.LNS_set_file => { + const arg = try leb.readULEB128Mem(usize, &ptr); + prog.file = arg; + }, + DW.LNS_set_column => { + const arg = try leb.readULEB128Mem(u64, &ptr); + prog.column = arg; + }, + DW.LNS_negate_stmt => { + prog.is_stmt = !prog.is_stmt; + }, + DW.LNS_set_basic_block => { + prog.basic_block = true; + }, + DW.LNS_const_add_pc => { + const inc_addr = minimum_instruction_length * ((255 - opcode_base) / line_range); + prog.address += inc_addr; + }, + DW.LNS_fixed_advance_pc => { + const arg = readIntMem(&ptr, u16, builtin.Endian.Little); + prog.address += arg; + }, + DW.LNS_set_prologue_end => {}, + else => { + if (opcode - 1 >= standard_opcode_lengths.len) return error.InvalidDebugInfo; + const len_bytes = standard_opcode_lengths[opcode - 1]; + ptr += len_bytes; + }, + } + } + } + + return error.MissingDebugInfo; +} + +fn getLineNumberInfoDwarf(di: *DwarfInfo, compile_unit: CompileUnit, target_address: usize) !LineInfo { + const compile_unit_cwd = try compile_unit.die.getAttrString(di, DW.AT_comp_dir); + const line_info_offset = try compile_unit.die.getAttrSecOffset(DW.AT_stmt_list); + + assert(line_info_offset < di.debug_line.size); + + try di.dwarf_seekable_stream.seekTo(di.debug_line.offset + line_info_offset); + + var is_64: bool = undefined; + const unit_length = try readInitialLength(@typeOf(di.dwarf_in_stream.readFn).ReturnType.ErrorSet, di.dwarf_in_stream, &is_64); + if (unit_length == 0) { + return error.MissingDebugInfo; + } + const next_offset = unit_length + (if (is_64) usize(12) else usize(4)); + + const version = try di.dwarf_in_stream.readInt(u16, di.endian); + // TODO support 3 and 5 + if (version != 2 and version != 4) return error.InvalidDebugInfo; + + const prologue_length = if (is_64) try di.dwarf_in_stream.readInt(u64, di.endian) else try di.dwarf_in_stream.readInt(u32, di.endian); + const prog_start_offset = (try di.dwarf_seekable_stream.getPos()) + prologue_length; + + const minimum_instruction_length = try di.dwarf_in_stream.readByte(); + if (minimum_instruction_length == 0) return error.InvalidDebugInfo; + + if (version >= 4) { + // maximum_operations_per_instruction + _ = try di.dwarf_in_stream.readByte(); + } + + const default_is_stmt = (try di.dwarf_in_stream.readByte()) != 0; + const line_base = try di.dwarf_in_stream.readByteSigned(); + + const line_range = try di.dwarf_in_stream.readByte(); + if (line_range == 0) return error.InvalidDebugInfo; + + const opcode_base = try di.dwarf_in_stream.readByte(); + + const standard_opcode_lengths = try di.allocator().alloc(u8, opcode_base - 1); + + { + var i: usize = 0; + while (i < opcode_base - 1) : (i += 1) { + standard_opcode_lengths[i] = try di.dwarf_in_stream.readByte(); + } + } + + var include_directories = ArrayList([]u8).init(di.allocator()); + try include_directories.append(compile_unit_cwd); + while (true) { + const dir = try di.readString(); + if (dir.len == 0) break; + try include_directories.append(dir); + } + + var file_entries = ArrayList(FileEntry).init(di.allocator()); + var prog = LineNumberProgram.init(default_is_stmt, include_directories.toSliceConst(), &file_entries, target_address); + + while (true) { + const file_name = try di.readString(); + if (file_name.len == 0) break; + const dir_index = try leb.readULEB128(usize, di.dwarf_in_stream); + const mtime = try leb.readULEB128(usize, di.dwarf_in_stream); + const len_bytes = try leb.readULEB128(usize, di.dwarf_in_stream); + try file_entries.append(FileEntry{ + .file_name = file_name, + .dir_index = dir_index, + .mtime = mtime, + .len_bytes = len_bytes, + }); + } + + try di.dwarf_seekable_stream.seekTo(prog_start_offset); + + while (true) { + const opcode = try di.dwarf_in_stream.readByte(); + + if (opcode == DW.LNS_extended_op) { + const op_size = try leb.readULEB128(u64, di.dwarf_in_stream); + if (op_size < 1) return error.InvalidDebugInfo; + var sub_op = try di.dwarf_in_stream.readByte(); + switch (sub_op) { + DW.LNE_end_sequence => { + prog.end_sequence = true; + if (try prog.checkLineMatch()) |info| return info; + return error.MissingDebugInfo; + }, + DW.LNE_set_address => { + const addr = try di.dwarf_in_stream.readInt(usize, di.endian); + prog.address = addr; + }, + DW.LNE_define_file => { + const file_name = try di.readString(); + const dir_index = try leb.readULEB128(usize, di.dwarf_in_stream); + const mtime = try leb.readULEB128(usize, di.dwarf_in_stream); + const len_bytes = try leb.readULEB128(usize, di.dwarf_in_stream); + try file_entries.append(FileEntry{ + .file_name = file_name, + .dir_index = dir_index, + .mtime = mtime, + .len_bytes = len_bytes, + }); + }, + else => { + const fwd_amt = math.cast(isize, op_size - 1) catch return error.InvalidDebugInfo; + try di.dwarf_seekable_stream.seekBy(fwd_amt); + }, + } + } else if (opcode >= opcode_base) { + // special opcodes + const adjusted_opcode = opcode - opcode_base; + const inc_addr = minimum_instruction_length * (adjusted_opcode / line_range); + const inc_line = i32(line_base) + i32(adjusted_opcode % line_range); + prog.line += inc_line; + prog.address += inc_addr; + if (try prog.checkLineMatch()) |info| return info; + prog.basic_block = false; + } else { + switch (opcode) { + DW.LNS_copy => { + if (try prog.checkLineMatch()) |info| return info; + prog.basic_block = false; + }, + DW.LNS_advance_pc => { + const arg = try leb.readULEB128(usize, di.dwarf_in_stream); + prog.address += arg * minimum_instruction_length; + }, + DW.LNS_advance_line => { + const arg = try leb.readILEB128(i64, di.dwarf_in_stream); + prog.line += arg; + }, + DW.LNS_set_file => { + const arg = try leb.readULEB128(usize, di.dwarf_in_stream); + prog.file = arg; + }, + DW.LNS_set_column => { + const arg = try leb.readULEB128(u64, di.dwarf_in_stream); + prog.column = arg; + }, + DW.LNS_negate_stmt => { + prog.is_stmt = !prog.is_stmt; + }, + DW.LNS_set_basic_block => { + prog.basic_block = true; + }, + DW.LNS_const_add_pc => { + const inc_addr = minimum_instruction_length * ((255 - opcode_base) / line_range); + prog.address += inc_addr; + }, + DW.LNS_fixed_advance_pc => { + const arg = try di.dwarf_in_stream.readInt(u16, di.endian); + prog.address += arg; + }, + DW.LNS_set_prologue_end => {}, + else => { + if (opcode - 1 >= standard_opcode_lengths.len) return error.InvalidDebugInfo; + const len_bytes = standard_opcode_lengths[opcode - 1]; + try di.dwarf_seekable_stream.seekBy(len_bytes); + }, + } + } + } + + return error.MissingDebugInfo; +} + +const Func = struct { + pc_range: ?PcRange, + name: ?[]u8, +}; + +fn getSymbolNameDwarf(di: *DwarfInfo, address: u64) ?[]const u8 { + for (di.func_list.toSliceConst()) |*func| { + if (func.pc_range) |range| { + if (address >= range.start and address < range.end) { + return func.name; + } + } + } + + return null; +} + +fn scanAllFunctions(di: *DwarfInfo) !void { + const debug_info_end = di.debug_info.offset + di.debug_info.size; + var this_unit_offset = di.debug_info.offset; + + while (this_unit_offset < debug_info_end) { + try di.dwarf_seekable_stream.seekTo(this_unit_offset); + + var is_64: bool = undefined; + const unit_length = try readInitialLength(@typeOf(di.dwarf_in_stream.readFn).ReturnType.ErrorSet, di.dwarf_in_stream, &is_64); + if (unit_length == 0) return; + const next_offset = unit_length + (if (is_64) usize(12) else usize(4)); + + const version = try di.dwarf_in_stream.readInt(u16, di.endian); + if (version < 2 or version > 5) return error.InvalidDebugInfo; + + const debug_abbrev_offset = if (is_64) try di.dwarf_in_stream.readInt(u64, di.endian) else try di.dwarf_in_stream.readInt(u32, di.endian); + + const address_size = try di.dwarf_in_stream.readByte(); + if (address_size != @sizeOf(usize)) return error.InvalidDebugInfo; + + const compile_unit_pos = try di.dwarf_seekable_stream.getPos(); + const abbrev_table = try getAbbrevTable(di, debug_abbrev_offset); + + try di.dwarf_seekable_stream.seekTo(compile_unit_pos); + + const next_unit_pos = this_unit_offset + next_offset; + + while ((try di.dwarf_seekable_stream.getPos()) < next_unit_pos) { + const die_obj = (try parseDie(di, abbrev_table, is_64)) orelse continue; + const after_die_offset = try di.dwarf_seekable_stream.getPos(); + + switch (die_obj.tag_id) { + DW.TAG_subprogram, DW.TAG_inlined_subroutine, DW.TAG_subroutine, DW.TAG_entry_point => { + const fn_name = x: { + var depth: i32 = 3; + var this_die_obj = die_obj; + // Prenvent endless loops + while (depth > 0) : (depth -= 1) { + if (this_die_obj.getAttr(DW.AT_name)) |_| { + const name = try this_die_obj.getAttrString(di, DW.AT_name); + break :x name; + } else if (this_die_obj.getAttr(DW.AT_abstract_origin)) |ref| { + // Follow the DIE it points to and repeat + const ref_offset = try this_die_obj.getAttrRef(DW.AT_abstract_origin); + if (ref_offset > next_offset) return error.InvalidDebugInfo; + try di.dwarf_seekable_stream.seekTo(this_unit_offset + ref_offset); + this_die_obj = (try parseDie(di, abbrev_table, is_64)) orelse return error.InvalidDebugInfo; + } else if (this_die_obj.getAttr(DW.AT_specification)) |ref| { + // Follow the DIE it points to and repeat + const ref_offset = try this_die_obj.getAttrRef(DW.AT_specification); + if (ref_offset > next_offset) return error.InvalidDebugInfo; + try di.dwarf_seekable_stream.seekTo(this_unit_offset + ref_offset); + this_die_obj = (try parseDie(di, abbrev_table, is_64)) orelse return error.InvalidDebugInfo; + } else { + break :x null; + } + } + + break :x null; + }; + + const pc_range = x: { + if (die_obj.getAttrAddr(DW.AT_low_pc)) |low_pc| { + if (die_obj.getAttr(DW.AT_high_pc)) |high_pc_value| { + const pc_end = switch (high_pc_value.*) { + FormValue.Address => |value| value, + FormValue.Const => |value| b: { + const offset = try value.asUnsignedLe(); + break :b (low_pc + offset); + }, + else => return error.InvalidDebugInfo, + }; + break :x PcRange{ + .start = low_pc, + .end = pc_end, + }; + } else { + break :x null; + } + } else |err| { + if (err != error.MissingDebugInfo) return err; + break :x null; + } + }; + + try di.func_list.append(Func{ + .name = fn_name, + .pc_range = pc_range, + }); + }, + else => { + continue; + }, + } + + try di.dwarf_seekable_stream.seekTo(after_die_offset); + } + + this_unit_offset += next_offset; + } +} + +fn scanAllCompileUnits(di: *DwarfInfo) !void { + const debug_info_end = di.debug_info.offset + di.debug_info.size; + var this_unit_offset = di.debug_info.offset; + + while (this_unit_offset < debug_info_end) { + try di.dwarf_seekable_stream.seekTo(this_unit_offset); + + var is_64: bool = undefined; + const unit_length = try readInitialLength(@typeOf(di.dwarf_in_stream.readFn).ReturnType.ErrorSet, di.dwarf_in_stream, &is_64); + if (unit_length == 0) return; + const next_offset = unit_length + (if (is_64) usize(12) else usize(4)); + + const version = try di.dwarf_in_stream.readInt(u16, di.endian); + if (version < 2 or version > 5) return error.InvalidDebugInfo; + + const debug_abbrev_offset = if (is_64) try di.dwarf_in_stream.readInt(u64, di.endian) else try di.dwarf_in_stream.readInt(u32, di.endian); + + const address_size = try di.dwarf_in_stream.readByte(); + if (address_size != @sizeOf(usize)) return error.InvalidDebugInfo; + + const compile_unit_pos = try di.dwarf_seekable_stream.getPos(); + const abbrev_table = try getAbbrevTable(di, debug_abbrev_offset); + + try di.dwarf_seekable_stream.seekTo(compile_unit_pos); + + const compile_unit_die = try di.allocator().create(Die); + compile_unit_die.* = (try parseDie(di, abbrev_table, is_64)) orelse return error.InvalidDebugInfo; + + if (compile_unit_die.tag_id != DW.TAG_compile_unit) return error.InvalidDebugInfo; + + const pc_range = x: { + if (compile_unit_die.getAttrAddr(DW.AT_low_pc)) |low_pc| { + if (compile_unit_die.getAttr(DW.AT_high_pc)) |high_pc_value| { + const pc_end = switch (high_pc_value.*) { + FormValue.Address => |value| value, + FormValue.Const => |value| b: { + const offset = try value.asUnsignedLe(); + break :b (low_pc + offset); + }, + else => return error.InvalidDebugInfo, + }; + break :x PcRange{ + .start = low_pc, + .end = pc_end, + }; + } else { + break :x null; + } + } else |err| { + if (err != error.MissingDebugInfo) return err; + break :x null; + } + }; + + try di.compile_unit_list.append(CompileUnit{ + .version = version, + .is_64 = is_64, + .pc_range = pc_range, + .die = compile_unit_die, + }); + + this_unit_offset += next_offset; + } +} + +fn findCompileUnit(di: *DwarfInfo, target_address: u64) !*const CompileUnit { + for (di.compile_unit_list.toSlice()) |*compile_unit| { + if (compile_unit.pc_range) |range| { + if (target_address >= range.start and target_address < range.end) return compile_unit; + } + if (compile_unit.die.getAttrSecOffset(DW.AT_ranges)) |ranges_offset| { + var base_address: usize = 0; + if (di.debug_ranges) |debug_ranges| { + try di.dwarf_seekable_stream.seekTo(debug_ranges.offset + ranges_offset); + while (true) { + const begin_addr = try di.dwarf_in_stream.readIntLittle(usize); + const end_addr = try di.dwarf_in_stream.readIntLittle(usize); + if (begin_addr == 0 and end_addr == 0) { + break; + } + if (begin_addr == maxInt(usize)) { + base_address = begin_addr; + continue; + } + if (target_address >= begin_addr and target_address < end_addr) { + return compile_unit; + } + } + } + } else |err| { + if (err != error.MissingDebugInfo) return err; + continue; + } + } + return error.MissingDebugInfo; +} + +fn readIntMem(ptr: *[*]const u8, comptime T: type, endian: builtin.Endian) T { + // TODO https://github.com/ziglang/zig/issues/863 + const size = (T.bit_count + 7) / 8; + const result = mem.readIntSlice(T, ptr.*[0..size], endian); + ptr.* += size; + return result; +} + +fn readByteMem(ptr: *[*]const u8) u8 { + const result = ptr.*[0]; + ptr.* += 1; + return result; +} + +fn readByteSignedMem(ptr: *[*]const u8) i8 { + return @bitCast(i8, readByteMem(ptr)); +} + +fn readInitialLengthMem(ptr: *[*]const u8, is_64: *bool) !u64 { + // TODO this code can be improved with https://github.com/ziglang/zig/issues/863 + const first_32_bits = mem.readIntSliceLittle(u32, ptr.*[0..4]); + is_64.* = (first_32_bits == 0xffffffff); + if (is_64.*) { + ptr.* += 4; + const result = mem.readIntSliceLittle(u64, ptr.*[0..8]); + ptr.* += 8; + return result; + } else { + if (first_32_bits >= 0xfffffff0) return error.InvalidDebugInfo; + ptr.* += 4; + return u64(first_32_bits); + } +} + +fn readStringMem(ptr: *[*]const u8) []const u8 { + const result = mem.toSliceConst(u8, ptr.*); + ptr.* += result.len + 1; + return result; +} + +fn readInitialLength(comptime E: type, in_stream: *io.InStream(E), is_64: *bool) !u64 { + const first_32_bits = try in_stream.readIntLittle(u32); + is_64.* = (first_32_bits == 0xffffffff); + if (is_64.*) { + return in_stream.readIntLittle(u64); + } else { + if (first_32_bits >= 0xfffffff0) return error.InvalidDebugInfo; + return u64(first_32_bits); + } +} + +/// This should only be used in temporary test programs. +pub const global_allocator = &global_fixed_allocator.allocator; +var global_fixed_allocator = std.heap.ThreadSafeFixedBufferAllocator.init(global_allocator_mem[0..]); +var global_allocator_mem: [100 * 1024]u8 = undefined; + +/// TODO multithreaded awareness +var debug_info_allocator: ?*mem.Allocator = null; +var debug_info_arena_allocator: std.heap.ArenaAllocator = undefined; +fn getDebugInfoAllocator() *mem.Allocator { + if (debug_info_allocator) |a| return a; + + debug_info_arena_allocator = std.heap.ArenaAllocator.init(std.heap.direct_allocator); + debug_info_allocator = &debug_info_arena_allocator.allocator; + return &debug_info_arena_allocator.allocator; +} + +/// Whether or not the current target can print useful debug information when a segfault occurs. +pub const have_segfault_handling_support = (builtin.arch == builtin.Arch.x86_64 and builtin.os == .linux) or builtin.os == .windows; +pub const enable_segfault_handler: bool = if (@hasDecl(root, "enable_segfault_handler")) + root.enable_segfault_handler +else + runtime_safety and have_segfault_handling_support; + +pub fn maybeEnableSegfaultHandler() void { + if (enable_segfault_handler) { + std.debug.attachSegfaultHandler(); + } +} + +var windows_segfault_handle: ?windows.HANDLE = null; + +/// Attaches a global SIGSEGV handler which calls @panic("segmentation fault"); +pub fn attachSegfaultHandler() void { + if (!have_segfault_handling_support) { + @compileError("segfault handler not supported for this target"); + } + if (windows.is_the_target) { + windows_segfault_handle = windows.kernel32.AddVectoredExceptionHandler(0, handleSegfaultWindows); + return; + } + var act = os.Sigaction{ + .sigaction = handleSegfaultLinux, + .mask = os.empty_sigset, + .flags = (os.SA_SIGINFO | os.SA_RESTART | os.SA_RESETHAND), + }; + + os.sigaction(os.SIGSEGV, &act, null); +} + +fn resetSegfaultHandler() void { + if (windows.is_the_target) { + if (windows_segfault_handle) |handle| { + assert(windows.kernel32.RemoveVectoredExceptionHandler(handle) != 0); + windows_segfault_handle = null; + } + return; + } + var act = os.Sigaction{ + .sigaction = os.SIG_DFL, + .mask = os.empty_sigset, + .flags = 0, + }; + os.sigaction(os.SIGSEGV, &act, null); +} + +extern fn handleSegfaultLinux(sig: i32, info: *const os.siginfo_t, ctx_ptr: *const c_void) noreturn { + // Reset to the default handler so that if a segfault happens in this handler it will crash + // the process. Also when this handler returns, the original instruction will be repeated + // and the resulting segfault will crash the process rather than continually dump stack traces. + resetSegfaultHandler(); + + const ctx = @ptrCast(*const os.ucontext_t, @alignCast(@alignOf(os.ucontext_t), ctx_ptr)); + const ip = @intCast(usize, ctx.mcontext.gregs[os.REG_RIP]); + const bp = @intCast(usize, ctx.mcontext.gregs[os.REG_RBP]); + const addr = @ptrToInt(info.fields.sigfault.addr); + std.debug.warn("Segmentation fault at address 0x{x}\n", addr); + dumpStackTraceFromBase(bp, ip); + + // We cannot allow the signal handler to return because when it runs the original instruction + // again, the memory may be mapped and undefined behavior would occur rather than repeating + // the segfault. So we simply abort here. + os.abort(); +} + +stdcallcc fn handleSegfaultWindows(info: *windows.EXCEPTION_POINTERS) c_long { + const exception_address = @ptrToInt(info.ExceptionRecord.ExceptionAddress); + switch (info.ExceptionRecord.ExceptionCode) { + windows.EXCEPTION_DATATYPE_MISALIGNMENT => panicExtra(null, exception_address, "Unaligned Memory Access"), + windows.EXCEPTION_ACCESS_VIOLATION => panicExtra(null, exception_address, "Segmentation fault at address 0x{x}", info.ExceptionRecord.ExceptionInformation[1]), + windows.EXCEPTION_ILLEGAL_INSTRUCTION => panicExtra(null, exception_address, "Illegal Instruction"), + windows.EXCEPTION_STACK_OVERFLOW => panicExtra(null, exception_address, "Stack Overflow"), + else => return windows.EXCEPTION_CONTINUE_SEARCH, + } +} + +pub fn dumpStackPointerAddr(prefix: []const u8) void { + const sp = asm ("" + : [argc] "={rsp}" (-> usize) + ); + std.debug.warn("{} sp = 0x{x}\n", prefix, sp); +} diff --git a/lib/std/debug/failing_allocator.zig b/lib/std/debug/failing_allocator.zig new file mode 100644 index 0000000000..5776d23194 --- /dev/null +++ b/lib/std/debug/failing_allocator.zig @@ -0,0 +1,65 @@ +const std = @import("../std.zig"); +const mem = std.mem; + +/// Allocator that fails after N allocations, useful for making sure out of +/// memory conditions are handled correctly. +pub const FailingAllocator = struct { + allocator: mem.Allocator, + index: usize, + fail_index: usize, + internal_allocator: *mem.Allocator, + allocated_bytes: usize, + freed_bytes: usize, + allocations: usize, + deallocations: usize, + + pub fn init(allocator: *mem.Allocator, fail_index: usize) FailingAllocator { + return FailingAllocator{ + .internal_allocator = allocator, + .fail_index = fail_index, + .index = 0, + .allocated_bytes = 0, + .freed_bytes = 0, + .allocations = 0, + .deallocations = 0, + .allocator = mem.Allocator{ + .reallocFn = realloc, + .shrinkFn = shrink, + }, + }; + } + + fn realloc(allocator: *mem.Allocator, old_mem: []u8, old_align: u29, new_size: usize, new_align: u29) ![]u8 { + const self = @fieldParentPtr(FailingAllocator, "allocator", allocator); + if (self.index == self.fail_index) { + return error.OutOfMemory; + } + const result = try self.internal_allocator.reallocFn( + self.internal_allocator, + old_mem, + old_align, + new_size, + new_align, + ); + if (new_size < old_mem.len) { + self.freed_bytes += old_mem.len - new_size; + if (new_size == 0) + self.deallocations += 1; + } else if (new_size > old_mem.len) { + self.allocated_bytes += new_size - old_mem.len; + if (old_mem.len == 0) + self.allocations += 1; + } + self.index += 1; + return result; + } + + fn shrink(allocator: *mem.Allocator, old_mem: []u8, old_align: u29, new_size: usize, new_align: u29) []u8 { + const self = @fieldParentPtr(FailingAllocator, "allocator", allocator); + const r = self.internal_allocator.shrinkFn(self.internal_allocator, old_mem, old_align, new_size, new_align); + self.freed_bytes += old_mem.len - r.len; + if (new_size == 0) + self.deallocations += 1; + return r; + } +}; diff --git a/lib/std/debug/leb128.zig b/lib/std/debug/leb128.zig new file mode 100644 index 0000000000..cb59c5b0d2 --- /dev/null +++ b/lib/std/debug/leb128.zig @@ -0,0 +1,256 @@ +const std = @import("std"); +const testing = std.testing; + +pub fn readULEB128(comptime T: type, in_stream: var) !T { + const ShiftT = @IntType(false, std.math.log2(T.bit_count)); + + var result: T = 0; + var shift: usize = 0; + + while (true) { + const byte = try in_stream.readByte(); + + if (shift > T.bit_count) + return error.Overflow; + + var operand: T = undefined; + if (@shlWithOverflow(T, byte & 0x7f, @intCast(ShiftT, shift), &operand)) + return error.Overflow; + + result |= operand; + + if ((byte & 0x80) == 0) + return result; + + shift += 7; + } +} + +pub fn readULEB128Mem(comptime T: type, ptr: *[*]const u8) !T { + const ShiftT = @IntType(false, std.math.log2(T.bit_count)); + + var result: T = 0; + var shift: usize = 0; + var i: usize = 0; + + while (true) : (i += 1) { + const byte = ptr.*[i]; + + if (shift > T.bit_count) + return error.Overflow; + + var operand: T = undefined; + if (@shlWithOverflow(T, byte & 0x7f, @intCast(ShiftT, shift), &operand)) + return error.Overflow; + + result |= operand; + + if ((byte & 0x80) == 0) { + ptr.* += i + 1; + return result; + } + + shift += 7; + } +} + +pub fn readILEB128(comptime T: type, in_stream: var) !T { + const UT = @IntType(false, T.bit_count); + const ShiftT = @IntType(false, std.math.log2(T.bit_count)); + + var result: UT = 0; + var shift: usize = 0; + + while (true) { + const byte = u8(try in_stream.readByte()); + + if (shift > T.bit_count) + return error.Overflow; + + var operand: UT = undefined; + if (@shlWithOverflow(UT, UT(byte & 0x7f), @intCast(ShiftT, shift), &operand)) { + if (byte != 0x7f) + return error.Overflow; + } + + result |= operand; + + shift += 7; + + if ((byte & 0x80) == 0) { + if (shift < T.bit_count and (byte & 0x40) != 0) { + result |= @bitCast(UT, @intCast(T, -1)) << @intCast(ShiftT, shift); + } + return @bitCast(T, result); + } + } +} + +pub fn readILEB128Mem(comptime T: type, ptr: *[*]const u8) !T { + const UT = @IntType(false, T.bit_count); + const ShiftT = @IntType(false, std.math.log2(T.bit_count)); + + var result: UT = 0; + var shift: usize = 0; + var i: usize = 0; + + while (true) : (i += 1) { + const byte = ptr.*[i]; + + if (shift > T.bit_count) + return error.Overflow; + + var operand: UT = undefined; + if (@shlWithOverflow(UT, UT(byte & 0x7f), @intCast(ShiftT, shift), &operand)) { + if (byte != 0x7f) + return error.Overflow; + } + + result |= operand; + + shift += 7; + + if ((byte & 0x80) == 0) { + if (shift < T.bit_count and (byte & 0x40) != 0) { + result |= @bitCast(UT, @intCast(T, -1)) << @intCast(ShiftT, shift); + } + ptr.* += i + 1; + return @bitCast(T, result); + } + } +} + +fn test_read_stream_ileb128(comptime T: type, encoded: []const u8) !T { + var in_stream = std.io.SliceInStream.init(encoded); + return try readILEB128(T, &in_stream.stream); +} + +fn test_read_stream_uleb128(comptime T: type, encoded: []const u8) !T { + var in_stream = std.io.SliceInStream.init(encoded); + return try readULEB128(T, &in_stream.stream); +} + +fn test_read_ileb128(comptime T: type, encoded: []const u8) !T { + var in_stream = std.io.SliceInStream.init(encoded); + const v1 = readILEB128(T, &in_stream.stream); + var in_ptr = encoded.ptr; + const v2 = readILEB128Mem(T, &in_ptr); + testing.expectEqual(v1, v2); + return v1; +} + +fn test_read_uleb128(comptime T: type, encoded: []const u8) !T { + var in_stream = std.io.SliceInStream.init(encoded); + const v1 = readULEB128(T, &in_stream.stream); + var in_ptr = encoded.ptr; + const v2 = readULEB128Mem(T, &in_ptr); + testing.expectEqual(v1, v2); + return v1; +} + +fn test_read_ileb128_seq(comptime T: type, comptime N: usize, encoded: []const u8) void { + var in_stream = std.io.SliceInStream.init(encoded); + var in_ptr = encoded.ptr; + var i: usize = 0; + while (i < N) : (i += 1) { + const v1 = readILEB128(T, &in_stream.stream); + const v2 = readILEB128Mem(T, &in_ptr); + testing.expectEqual(v1, v2); + } +} + +fn test_read_uleb128_seq(comptime T: type, comptime N: usize, encoded: []const u8) void { + var in_stream = std.io.SliceInStream.init(encoded); + var in_ptr = encoded.ptr; + var i: usize = 0; + while (i < N) : (i += 1) { + const v1 = readULEB128(T, &in_stream.stream); + const v2 = readULEB128Mem(T, &in_ptr); + testing.expectEqual(v1, v2); + } +} + +test "deserialize signed LEB128" { + // Truncated + testing.expectError(error.EndOfStream, test_read_stream_ileb128(i64, "\x80")); + + // Overflow + testing.expectError(error.Overflow, test_read_ileb128(i8, "\x80\x80\x40")); + testing.expectError(error.Overflow, test_read_ileb128(i16, "\x80\x80\x80\x40")); + testing.expectError(error.Overflow, test_read_ileb128(i32, "\x80\x80\x80\x80\x40")); + testing.expectError(error.Overflow, test_read_ileb128(i64, "\x80\x80\x80\x80\x80\x80\x80\x80\x80\x40")); + testing.expectError(error.Overflow, test_read_ileb128(i8, "\xff\x7e")); + + // Decode SLEB128 + testing.expect((try test_read_ileb128(i64, "\x00")) == 0); + testing.expect((try test_read_ileb128(i64, "\x01")) == 1); + testing.expect((try test_read_ileb128(i64, "\x3f")) == 63); + testing.expect((try test_read_ileb128(i64, "\x40")) == -64); + testing.expect((try test_read_ileb128(i64, "\x41")) == -63); + testing.expect((try test_read_ileb128(i64, "\x7f")) == -1); + testing.expect((try test_read_ileb128(i64, "\x80\x01")) == 128); + testing.expect((try test_read_ileb128(i64, "\x81\x01")) == 129); + testing.expect((try test_read_ileb128(i64, "\xff\x7e")) == -129); + testing.expect((try test_read_ileb128(i64, "\x80\x7f")) == -128); + testing.expect((try test_read_ileb128(i64, "\x81\x7f")) == -127); + testing.expect((try test_read_ileb128(i64, "\xc0\x00")) == 64); + testing.expect((try test_read_ileb128(i64, "\xc7\x9f\x7f")) == -12345); + testing.expect((try test_read_ileb128(i8, "\xff\x7f")) == -1); + testing.expect((try test_read_ileb128(i16, "\xff\xff\x7f")) == -1); + testing.expect((try test_read_ileb128(i32, "\xff\xff\xff\xff\x7f")) == -1); + testing.expect((try test_read_ileb128(i32, "\x80\x80\x80\x80\x08")) == -0x80000000); + testing.expect((try test_read_ileb128(i64, "\x80\x80\x80\x80\x80\x80\x80\x80\x80\x01")) == @bitCast(i64, @intCast(u64, 0x8000000000000000))); + testing.expect((try test_read_ileb128(i64, "\x80\x80\x80\x80\x80\x80\x80\x80\x40")) == -0x4000000000000000); + testing.expect((try test_read_ileb128(i64, "\x80\x80\x80\x80\x80\x80\x80\x80\x80\x7f")) == -0x8000000000000000); + + // Decode unnormalized SLEB128 with extra padding bytes. + testing.expect((try test_read_ileb128(i64, "\x80\x00")) == 0); + testing.expect((try test_read_ileb128(i64, "\x80\x80\x00")) == 0); + testing.expect((try test_read_ileb128(i64, "\xff\x00")) == 0x7f); + testing.expect((try test_read_ileb128(i64, "\xff\x80\x00")) == 0x7f); + testing.expect((try test_read_ileb128(i64, "\x80\x81\x00")) == 0x80); + testing.expect((try test_read_ileb128(i64, "\x80\x81\x80\x00")) == 0x80); + + // Decode sequence of SLEB128 values + test_read_ileb128_seq(i64, 4, "\x81\x01\x3f\x80\x7f\x80\x80\x80\x00"); +} + +test "deserialize unsigned LEB128" { + // Truncated + testing.expectError(error.EndOfStream, test_read_stream_uleb128(u64, "\x80")); + + // Overflow + testing.expectError(error.Overflow, test_read_uleb128(u8, "\x80\x02")); + testing.expectError(error.Overflow, test_read_uleb128(u8, "\x80\x80\x40")); + testing.expectError(error.Overflow, test_read_uleb128(u16, "\x80\x80\x84")); + testing.expectError(error.Overflow, test_read_uleb128(u16, "\x80\x80\x80\x40")); + testing.expectError(error.Overflow, test_read_uleb128(u32, "\x80\x80\x80\x80\x90")); + testing.expectError(error.Overflow, test_read_uleb128(u32, "\x80\x80\x80\x80\x40")); + testing.expectError(error.Overflow, test_read_uleb128(u64, "\x80\x80\x80\x80\x80\x80\x80\x80\x80\x40")); + + // Decode ULEB128 + testing.expect((try test_read_uleb128(u64, "\x00")) == 0); + testing.expect((try test_read_uleb128(u64, "\x01")) == 1); + testing.expect((try test_read_uleb128(u64, "\x3f")) == 63); + testing.expect((try test_read_uleb128(u64, "\x40")) == 64); + testing.expect((try test_read_uleb128(u64, "\x7f")) == 0x7f); + testing.expect((try test_read_uleb128(u64, "\x80\x01")) == 0x80); + testing.expect((try test_read_uleb128(u64, "\x81\x01")) == 0x81); + testing.expect((try test_read_uleb128(u64, "\x90\x01")) == 0x90); + testing.expect((try test_read_uleb128(u64, "\xff\x01")) == 0xff); + testing.expect((try test_read_uleb128(u64, "\x80\x02")) == 0x100); + testing.expect((try test_read_uleb128(u64, "\x81\x02")) == 0x101); + testing.expect((try test_read_uleb128(u64, "\x80\xc1\x80\x80\x10")) == 4294975616); + testing.expect((try test_read_uleb128(u64, "\x80\x80\x80\x80\x80\x80\x80\x80\x80\x01")) == 0x8000000000000000); + + // Decode ULEB128 with extra padding bytes + testing.expect((try test_read_uleb128(u64, "\x80\x00")) == 0); + testing.expect((try test_read_uleb128(u64, "\x80\x80\x00")) == 0); + testing.expect((try test_read_uleb128(u64, "\xff\x00")) == 0x7f); + testing.expect((try test_read_uleb128(u64, "\xff\x80\x00")) == 0x7f); + testing.expect((try test_read_uleb128(u64, "\x80\x81\x00")) == 0x80); + testing.expect((try test_read_uleb128(u64, "\x80\x81\x80\x00")) == 0x80); + + // Decode sequence of ULEB128 values + test_read_uleb128_seq(u64, 4, "\x81\x01\x3f\x80\x7f\x80\x80\x80\x00"); +} diff --git a/lib/std/dwarf.zig b/lib/std/dwarf.zig new file mode 100644 index 0000000000..2f3b29302d --- /dev/null +++ b/lib/std/dwarf.zig @@ -0,0 +1,682 @@ +pub const TAG_padding = 0x00; +pub const TAG_array_type = 0x01; +pub const TAG_class_type = 0x02; +pub const TAG_entry_point = 0x03; +pub const TAG_enumeration_type = 0x04; +pub const TAG_formal_parameter = 0x05; +pub const TAG_imported_declaration = 0x08; +pub const TAG_label = 0x0a; +pub const TAG_lexical_block = 0x0b; +pub const TAG_member = 0x0d; +pub const TAG_pointer_type = 0x0f; +pub const TAG_reference_type = 0x10; +pub const TAG_compile_unit = 0x11; +pub const TAG_string_type = 0x12; +pub const TAG_structure_type = 0x13; +pub const TAG_subroutine = 0x14; +pub const TAG_subroutine_type = 0x15; +pub const TAG_typedef = 0x16; +pub const TAG_union_type = 0x17; +pub const TAG_unspecified_parameters = 0x18; +pub const TAG_variant = 0x19; +pub const TAG_common_block = 0x1a; +pub const TAG_common_inclusion = 0x1b; +pub const TAG_inheritance = 0x1c; +pub const TAG_inlined_subroutine = 0x1d; +pub const TAG_module = 0x1e; +pub const TAG_ptr_to_member_type = 0x1f; +pub const TAG_set_type = 0x20; +pub const TAG_subrange_type = 0x21; +pub const TAG_with_stmt = 0x22; +pub const TAG_access_declaration = 0x23; +pub const TAG_base_type = 0x24; +pub const TAG_catch_block = 0x25; +pub const TAG_const_type = 0x26; +pub const TAG_constant = 0x27; +pub const TAG_enumerator = 0x28; +pub const TAG_file_type = 0x29; +pub const TAG_friend = 0x2a; +pub const TAG_namelist = 0x2b; +pub const TAG_namelist_item = 0x2c; +pub const TAG_packed_type = 0x2d; +pub const TAG_subprogram = 0x2e; +pub const TAG_template_type_param = 0x2f; +pub const TAG_template_value_param = 0x30; +pub const TAG_thrown_type = 0x31; +pub const TAG_try_block = 0x32; +pub const TAG_variant_part = 0x33; +pub const TAG_variable = 0x34; +pub const TAG_volatile_type = 0x35; + +// DWARF 3 +pub const TAG_dwarf_procedure = 0x36; +pub const TAG_restrict_type = 0x37; +pub const TAG_interface_type = 0x38; +pub const TAG_namespace = 0x39; +pub const TAG_imported_module = 0x3a; +pub const TAG_unspecified_type = 0x3b; +pub const TAG_partial_unit = 0x3c; +pub const TAG_imported_unit = 0x3d; +pub const TAG_condition = 0x3f; +pub const TAG_shared_type = 0x40; + +// DWARF 4 +pub const TAG_type_unit = 0x41; +pub const TAG_rvalue_reference_type = 0x42; +pub const TAG_template_alias = 0x43; + +pub const TAG_lo_user = 0x4080; +pub const TAG_hi_user = 0xffff; + +// SGI/MIPS Extensions. +pub const DW_TAG_MIPS_loop = 0x4081; + +// HP extensions. See: ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz . +pub const TAG_HP_array_descriptor = 0x4090; +pub const TAG_HP_Bliss_field = 0x4091; +pub const TAG_HP_Bliss_field_set = 0x4092; + +// GNU extensions. +pub const TAG_format_label = 0x4101; // For FORTRAN 77 and Fortran 90. +pub const TAG_function_template = 0x4102; // For C++. +pub const TAG_class_template = 0x4103; //For C++. +pub const TAG_GNU_BINCL = 0x4104; +pub const TAG_GNU_EINCL = 0x4105; + +// Template template parameter. +// See http://gcc.gnu.org/wiki/TemplateParmsDwarf . +pub const TAG_GNU_template_template_param = 0x4106; + +// Template parameter pack extension = specified at +// http://wiki.dwarfstd.org/index.php?title=C%2B%2B0x:_Variadic_templates +// The values of these two TAGS are in the DW_TAG_GNU_* space until the tags +// are properly part of DWARF 5. +pub const TAG_GNU_template_parameter_pack = 0x4107; +pub const TAG_GNU_formal_parameter_pack = 0x4108; +// The GNU call site extension = specified at +// http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open . +// The values of these two TAGS are in the DW_TAG_GNU_* space until the tags +// are properly part of DWARF 5. +pub const TAG_GNU_call_site = 0x4109; +pub const TAG_GNU_call_site_parameter = 0x410a; +// Extensions for UPC. See: http://dwarfstd.org/doc/DWARF4.pdf. +pub const TAG_upc_shared_type = 0x8765; +pub const TAG_upc_strict_type = 0x8766; +pub const TAG_upc_relaxed_type = 0x8767; +// PGI (STMicroelectronics; extensions. No documentation available. +pub const TAG_PGI_kanji_type = 0xA000; +pub const TAG_PGI_interface_block = 0xA020; + +pub const FORM_addr = 0x01; +pub const FORM_block2 = 0x03; +pub const FORM_block4 = 0x04; +pub const FORM_data2 = 0x05; +pub const FORM_data4 = 0x06; +pub const FORM_data8 = 0x07; +pub const FORM_string = 0x08; +pub const FORM_block = 0x09; +pub const FORM_block1 = 0x0a; +pub const FORM_data1 = 0x0b; +pub const FORM_flag = 0x0c; +pub const FORM_sdata = 0x0d; +pub const FORM_strp = 0x0e; +pub const FORM_udata = 0x0f; +pub const FORM_ref_addr = 0x10; +pub const FORM_ref1 = 0x11; +pub const FORM_ref2 = 0x12; +pub const FORM_ref4 = 0x13; +pub const FORM_ref8 = 0x14; +pub const FORM_ref_udata = 0x15; +pub const FORM_indirect = 0x16; +pub const FORM_sec_offset = 0x17; +pub const FORM_exprloc = 0x18; +pub const FORM_flag_present = 0x19; +pub const FORM_ref_sig8 = 0x20; + +// Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. +pub const FORM_GNU_addr_index = 0x1f01; +pub const FORM_GNU_str_index = 0x1f02; + +// Extensions for DWZ multifile. +// See http://www.dwarfstd.org/ShowIssue.php?issue=120604.1&type=open . +pub const FORM_GNU_ref_alt = 0x1f20; +pub const FORM_GNU_strp_alt = 0x1f21; + +pub const AT_sibling = 0x01; +pub const AT_location = 0x02; +pub const AT_name = 0x03; +pub const AT_ordering = 0x09; +pub const AT_subscr_data = 0x0a; +pub const AT_byte_size = 0x0b; +pub const AT_bit_offset = 0x0c; +pub const AT_bit_size = 0x0d; +pub const AT_element_list = 0x0f; +pub const AT_stmt_list = 0x10; +pub const AT_low_pc = 0x11; +pub const AT_high_pc = 0x12; +pub const AT_language = 0x13; +pub const AT_member = 0x14; +pub const AT_discr = 0x15; +pub const AT_discr_value = 0x16; +pub const AT_visibility = 0x17; +pub const AT_import = 0x18; +pub const AT_string_length = 0x19; +pub const AT_common_reference = 0x1a; +pub const AT_comp_dir = 0x1b; +pub const AT_const_value = 0x1c; +pub const AT_containing_type = 0x1d; +pub const AT_default_value = 0x1e; +pub const AT_inline = 0x20; +pub const AT_is_optional = 0x21; +pub const AT_lower_bound = 0x22; +pub const AT_producer = 0x25; +pub const AT_prototyped = 0x27; +pub const AT_return_addr = 0x2a; +pub const AT_start_scope = 0x2c; +pub const AT_bit_stride = 0x2e; +pub const AT_upper_bound = 0x2f; +pub const AT_abstract_origin = 0x31; +pub const AT_accessibility = 0x32; +pub const AT_address_class = 0x33; +pub const AT_artificial = 0x34; +pub const AT_base_types = 0x35; +pub const AT_calling_convention = 0x36; +pub const AT_count = 0x37; +pub const AT_data_member_location = 0x38; +pub const AT_decl_column = 0x39; +pub const AT_decl_file = 0x3a; +pub const AT_decl_line = 0x3b; +pub const AT_declaration = 0x3c; +pub const AT_discr_list = 0x3d; +pub const AT_encoding = 0x3e; +pub const AT_external = 0x3f; +pub const AT_frame_base = 0x40; +pub const AT_friend = 0x41; +pub const AT_identifier_case = 0x42; +pub const AT_macro_info = 0x43; +pub const AT_namelist_items = 0x44; +pub const AT_priority = 0x45; +pub const AT_segment = 0x46; +pub const AT_specification = 0x47; +pub const AT_static_link = 0x48; +pub const AT_type = 0x49; +pub const AT_use_location = 0x4a; +pub const AT_variable_parameter = 0x4b; +pub const AT_virtuality = 0x4c; +pub const AT_vtable_elem_location = 0x4d; + +// DWARF 3 values. +pub const AT_allocated = 0x4e; +pub const AT_associated = 0x4f; +pub const AT_data_location = 0x50; +pub const AT_byte_stride = 0x51; +pub const AT_entry_pc = 0x52; +pub const AT_use_UTF8 = 0x53; +pub const AT_extension = 0x54; +pub const AT_ranges = 0x55; +pub const AT_trampoline = 0x56; +pub const AT_call_column = 0x57; +pub const AT_call_file = 0x58; +pub const AT_call_line = 0x59; +pub const AT_description = 0x5a; +pub const AT_binary_scale = 0x5b; +pub const AT_decimal_scale = 0x5c; +pub const AT_small = 0x5d; +pub const AT_decimal_sign = 0x5e; +pub const AT_digit_count = 0x5f; +pub const AT_picture_string = 0x60; +pub const AT_mutable = 0x61; +pub const AT_threads_scaled = 0x62; +pub const AT_explicit = 0x63; +pub const AT_object_pointer = 0x64; +pub const AT_endianity = 0x65; +pub const AT_elemental = 0x66; +pub const AT_pure = 0x67; +pub const AT_recursive = 0x68; + +// DWARF 4. +pub const AT_signature = 0x69; +pub const AT_main_subprogram = 0x6a; +pub const AT_data_bit_offset = 0x6b; +pub const AT_const_expr = 0x6c; +pub const AT_enum_class = 0x6d; +pub const AT_linkage_name = 0x6e; + +// DWARF 5 +pub const AT_alignment = 0x88; + +pub const AT_lo_user = 0x2000; // Implementation-defined range start. +pub const AT_hi_user = 0x3fff; // Implementation-defined range end. + +// SGI/MIPS extensions. +pub const AT_MIPS_fde = 0x2001; +pub const AT_MIPS_loop_begin = 0x2002; +pub const AT_MIPS_tail_loop_begin = 0x2003; +pub const AT_MIPS_epilog_begin = 0x2004; +pub const AT_MIPS_loop_unroll_factor = 0x2005; +pub const AT_MIPS_software_pipeline_depth = 0x2006; +pub const AT_MIPS_linkage_name = 0x2007; +pub const AT_MIPS_stride = 0x2008; +pub const AT_MIPS_abstract_name = 0x2009; +pub const AT_MIPS_clone_origin = 0x200a; +pub const AT_MIPS_has_inlines = 0x200b; + +// HP extensions. +pub const AT_HP_block_index = 0x2000; +pub const AT_HP_unmodifiable = 0x2001; // Same as DW_AT_MIPS_fde. +pub const AT_HP_prologue = 0x2005; // Same as DW_AT_MIPS_loop_unroll. +pub const AT_HP_epilogue = 0x2008; // Same as DW_AT_MIPS_stride. +pub const AT_HP_actuals_stmt_list = 0x2010; +pub const AT_HP_proc_per_section = 0x2011; +pub const AT_HP_raw_data_ptr = 0x2012; +pub const AT_HP_pass_by_reference = 0x2013; +pub const AT_HP_opt_level = 0x2014; +pub const AT_HP_prof_version_id = 0x2015; +pub const AT_HP_opt_flags = 0x2016; +pub const AT_HP_cold_region_low_pc = 0x2017; +pub const AT_HP_cold_region_high_pc = 0x2018; +pub const AT_HP_all_variables_modifiable = 0x2019; +pub const AT_HP_linkage_name = 0x201a; +pub const AT_HP_prof_flags = 0x201b; // In comp unit of procs_info for -g. +pub const AT_HP_unit_name = 0x201f; +pub const AT_HP_unit_size = 0x2020; +pub const AT_HP_widened_byte_size = 0x2021; +pub const AT_HP_definition_points = 0x2022; +pub const AT_HP_default_location = 0x2023; +pub const AT_HP_is_result_param = 0x2029; + +// GNU extensions. +pub const AT_sf_names = 0x2101; +pub const AT_src_info = 0x2102; +pub const AT_mac_info = 0x2103; +pub const AT_src_coords = 0x2104; +pub const AT_body_begin = 0x2105; +pub const AT_body_end = 0x2106; +pub const AT_GNU_vector = 0x2107; +// Thread-safety annotations. +// See http://gcc.gnu.org/wiki/ThreadSafetyAnnotation . +pub const AT_GNU_guarded_by = 0x2108; +pub const AT_GNU_pt_guarded_by = 0x2109; +pub const AT_GNU_guarded = 0x210a; +pub const AT_GNU_pt_guarded = 0x210b; +pub const AT_GNU_locks_excluded = 0x210c; +pub const AT_GNU_exclusive_locks_required = 0x210d; +pub const AT_GNU_shared_locks_required = 0x210e; +// One-definition rule violation detection. +// See http://gcc.gnu.org/wiki/DwarfSeparateTypeInfo . +pub const AT_GNU_odr_signature = 0x210f; +// Template template argument name. +// See http://gcc.gnu.org/wiki/TemplateParmsDwarf . +pub const AT_GNU_template_name = 0x2110; +// The GNU call site extension. +// See http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open . +pub const AT_GNU_call_site_value = 0x2111; +pub const AT_GNU_call_site_data_value = 0x2112; +pub const AT_GNU_call_site_target = 0x2113; +pub const AT_GNU_call_site_target_clobbered = 0x2114; +pub const AT_GNU_tail_call = 0x2115; +pub const AT_GNU_all_tail_call_sites = 0x2116; +pub const AT_GNU_all_call_sites = 0x2117; +pub const AT_GNU_all_source_call_sites = 0x2118; +// Section offset into .debug_macro section. +pub const AT_GNU_macros = 0x2119; +// Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. +pub const AT_GNU_dwo_name = 0x2130; +pub const AT_GNU_dwo_id = 0x2131; +pub const AT_GNU_ranges_base = 0x2132; +pub const AT_GNU_addr_base = 0x2133; +pub const AT_GNU_pubnames = 0x2134; +pub const AT_GNU_pubtypes = 0x2135; +// VMS extensions. +pub const AT_VMS_rtnbeg_pd_address = 0x2201; +// GNAT extensions. +// GNAT descriptive type. +// See http://gcc.gnu.org/wiki/DW_AT_GNAT_descriptive_type . +pub const AT_use_GNAT_descriptive_type = 0x2301; +pub const AT_GNAT_descriptive_type = 0x2302; +// UPC extension. +pub const AT_upc_threads_scaled = 0x3210; +// PGI (STMicroelectronics) extensions. +pub const AT_PGI_lbase = 0x3a00; +pub const AT_PGI_soffset = 0x3a01; +pub const AT_PGI_lstride = 0x3a02; + +pub const OP_addr = 0x03; +pub const OP_deref = 0x06; +pub const OP_const1u = 0x08; +pub const OP_const1s = 0x09; +pub const OP_const2u = 0x0a; +pub const OP_const2s = 0x0b; +pub const OP_const4u = 0x0c; +pub const OP_const4s = 0x0d; +pub const OP_const8u = 0x0e; +pub const OP_const8s = 0x0f; +pub const OP_constu = 0x10; +pub const OP_consts = 0x11; +pub const OP_dup = 0x12; +pub const OP_drop = 0x13; +pub const OP_over = 0x14; +pub const OP_pick = 0x15; +pub const OP_swap = 0x16; +pub const OP_rot = 0x17; +pub const OP_xderef = 0x18; +pub const OP_abs = 0x19; +pub const OP_and = 0x1a; +pub const OP_div = 0x1b; +pub const OP_minus = 0x1c; +pub const OP_mod = 0x1d; +pub const OP_mul = 0x1e; +pub const OP_neg = 0x1f; +pub const OP_not = 0x20; +pub const OP_or = 0x21; +pub const OP_plus = 0x22; +pub const OP_plus_uconst = 0x23; +pub const OP_shl = 0x24; +pub const OP_shr = 0x25; +pub const OP_shra = 0x26; +pub const OP_xor = 0x27; +pub const OP_bra = 0x28; +pub const OP_eq = 0x29; +pub const OP_ge = 0x2a; +pub const OP_gt = 0x2b; +pub const OP_le = 0x2c; +pub const OP_lt = 0x2d; +pub const OP_ne = 0x2e; +pub const OP_skip = 0x2f; +pub const OP_lit0 = 0x30; +pub const OP_lit1 = 0x31; +pub const OP_lit2 = 0x32; +pub const OP_lit3 = 0x33; +pub const OP_lit4 = 0x34; +pub const OP_lit5 = 0x35; +pub const OP_lit6 = 0x36; +pub const OP_lit7 = 0x37; +pub const OP_lit8 = 0x38; +pub const OP_lit9 = 0x39; +pub const OP_lit10 = 0x3a; +pub const OP_lit11 = 0x3b; +pub const OP_lit12 = 0x3c; +pub const OP_lit13 = 0x3d; +pub const OP_lit14 = 0x3e; +pub const OP_lit15 = 0x3f; +pub const OP_lit16 = 0x40; +pub const OP_lit17 = 0x41; +pub const OP_lit18 = 0x42; +pub const OP_lit19 = 0x43; +pub const OP_lit20 = 0x44; +pub const OP_lit21 = 0x45; +pub const OP_lit22 = 0x46; +pub const OP_lit23 = 0x47; +pub const OP_lit24 = 0x48; +pub const OP_lit25 = 0x49; +pub const OP_lit26 = 0x4a; +pub const OP_lit27 = 0x4b; +pub const OP_lit28 = 0x4c; +pub const OP_lit29 = 0x4d; +pub const OP_lit30 = 0x4e; +pub const OP_lit31 = 0x4f; +pub const OP_reg0 = 0x50; +pub const OP_reg1 = 0x51; +pub const OP_reg2 = 0x52; +pub const OP_reg3 = 0x53; +pub const OP_reg4 = 0x54; +pub const OP_reg5 = 0x55; +pub const OP_reg6 = 0x56; +pub const OP_reg7 = 0x57; +pub const OP_reg8 = 0x58; +pub const OP_reg9 = 0x59; +pub const OP_reg10 = 0x5a; +pub const OP_reg11 = 0x5b; +pub const OP_reg12 = 0x5c; +pub const OP_reg13 = 0x5d; +pub const OP_reg14 = 0x5e; +pub const OP_reg15 = 0x5f; +pub const OP_reg16 = 0x60; +pub const OP_reg17 = 0x61; +pub const OP_reg18 = 0x62; +pub const OP_reg19 = 0x63; +pub const OP_reg20 = 0x64; +pub const OP_reg21 = 0x65; +pub const OP_reg22 = 0x66; +pub const OP_reg23 = 0x67; +pub const OP_reg24 = 0x68; +pub const OP_reg25 = 0x69; +pub const OP_reg26 = 0x6a; +pub const OP_reg27 = 0x6b; +pub const OP_reg28 = 0x6c; +pub const OP_reg29 = 0x6d; +pub const OP_reg30 = 0x6e; +pub const OP_reg31 = 0x6f; +pub const OP_breg0 = 0x70; +pub const OP_breg1 = 0x71; +pub const OP_breg2 = 0x72; +pub const OP_breg3 = 0x73; +pub const OP_breg4 = 0x74; +pub const OP_breg5 = 0x75; +pub const OP_breg6 = 0x76; +pub const OP_breg7 = 0x77; +pub const OP_breg8 = 0x78; +pub const OP_breg9 = 0x79; +pub const OP_breg10 = 0x7a; +pub const OP_breg11 = 0x7b; +pub const OP_breg12 = 0x7c; +pub const OP_breg13 = 0x7d; +pub const OP_breg14 = 0x7e; +pub const OP_breg15 = 0x7f; +pub const OP_breg16 = 0x80; +pub const OP_breg17 = 0x81; +pub const OP_breg18 = 0x82; +pub const OP_breg19 = 0x83; +pub const OP_breg20 = 0x84; +pub const OP_breg21 = 0x85; +pub const OP_breg22 = 0x86; +pub const OP_breg23 = 0x87; +pub const OP_breg24 = 0x88; +pub const OP_breg25 = 0x89; +pub const OP_breg26 = 0x8a; +pub const OP_breg27 = 0x8b; +pub const OP_breg28 = 0x8c; +pub const OP_breg29 = 0x8d; +pub const OP_breg30 = 0x8e; +pub const OP_breg31 = 0x8f; +pub const OP_regx = 0x90; +pub const OP_fbreg = 0x91; +pub const OP_bregx = 0x92; +pub const OP_piece = 0x93; +pub const OP_deref_size = 0x94; +pub const OP_xderef_size = 0x95; +pub const OP_nop = 0x96; + +// DWARF 3 extensions. +pub const OP_push_object_address = 0x97; +pub const OP_call2 = 0x98; +pub const OP_call4 = 0x99; +pub const OP_call_ref = 0x9a; +pub const OP_form_tls_address = 0x9b; +pub const OP_call_frame_cfa = 0x9c; +pub const OP_bit_piece = 0x9d; + +// DWARF 4 extensions. +pub const OP_implicit_value = 0x9e; +pub const OP_stack_value = 0x9f; + +pub const OP_lo_user = 0xe0; // Implementation-defined range start. +pub const OP_hi_user = 0xff; // Implementation-defined range end. + +// GNU extensions. +pub const OP_GNU_push_tls_address = 0xe0; +// The following is for marking variables that are uninitialized. +pub const OP_GNU_uninit = 0xf0; +pub const OP_GNU_encoded_addr = 0xf1; +// The GNU implicit pointer extension. +// See http://www.dwarfstd.org/ShowIssue.php?issue=100831.1&type=open . +pub const OP_GNU_implicit_pointer = 0xf2; +// The GNU entry value extension. +// See http://www.dwarfstd.org/ShowIssue.php?issue=100909.1&type=open . +pub const OP_GNU_entry_value = 0xf3; +// The GNU typed stack extension. +// See http://www.dwarfstd.org/doc/040408.1.html . +pub const OP_GNU_const_type = 0xf4; +pub const OP_GNU_regval_type = 0xf5; +pub const OP_GNU_deref_type = 0xf6; +pub const OP_GNU_convert = 0xf7; +pub const OP_GNU_reinterpret = 0xf9; +// The GNU parameter ref extension. +pub const OP_GNU_parameter_ref = 0xfa; +// Extension for Fission. See http://gcc.gnu.org/wiki/DebugFission. +pub const OP_GNU_addr_index = 0xfb; +pub const OP_GNU_const_index = 0xfc; +// HP extensions. +pub const OP_HP_unknown = 0xe0; // Ouch, the same as GNU_push_tls_address. +pub const OP_HP_is_value = 0xe1; +pub const OP_HP_fltconst4 = 0xe2; +pub const OP_HP_fltconst8 = 0xe3; +pub const OP_HP_mod_range = 0xe4; +pub const OP_HP_unmod_range = 0xe5; +pub const OP_HP_tls = 0xe6; +// PGI (STMicroelectronics) extensions. +pub const OP_PGI_omp_thread_num = 0xf8; + +pub const ATE_void = 0x0; +pub const ATE_address = 0x1; +pub const ATE_boolean = 0x2; +pub const ATE_complex_float = 0x3; +pub const ATE_float = 0x4; +pub const ATE_signed = 0x5; +pub const ATE_signed_char = 0x6; +pub const ATE_unsigned = 0x7; +pub const ATE_unsigned_char = 0x8; + +// DWARF 3. +pub const ATE_imaginary_float = 0x9; +pub const ATE_packed_decimal = 0xa; +pub const ATE_numeric_string = 0xb; +pub const ATE_edited = 0xc; +pub const ATE_signed_fixed = 0xd; +pub const ATE_unsigned_fixed = 0xe; +pub const ATE_decimal_float = 0xf; + +// DWARF 4. +pub const ATE_UTF = 0x10; + +pub const ATE_lo_user = 0x80; +pub const ATE_hi_user = 0xff; + +// HP extensions. +pub const ATE_HP_float80 = 0x80; // Floating-point (80 bit). +pub const ATE_HP_complex_float80 = 0x81; // Complex floating-point (80 bit). +pub const ATE_HP_float128 = 0x82; // Floating-point (128 bit). +pub const ATE_HP_complex_float128 = 0x83; // Complex fp (128 bit). +pub const ATE_HP_floathpintel = 0x84; // Floating-point (82 bit IA64). +pub const ATE_HP_imaginary_float80 = 0x85; +pub const ATE_HP_imaginary_float128 = 0x86; +pub const ATE_HP_VAX_float = 0x88; // F or G floating. +pub const ATE_HP_VAX_float_d = 0x89; // D floating. +pub const ATE_HP_packed_decimal = 0x8a; // Cobol. +pub const ATE_HP_zoned_decimal = 0x8b; // Cobol. +pub const ATE_HP_edited = 0x8c; // Cobol. +pub const ATE_HP_signed_fixed = 0x8d; // Cobol. +pub const ATE_HP_unsigned_fixed = 0x8e; // Cobol. +pub const ATE_HP_VAX_complex_float = 0x8f; // F or G floating complex. +pub const ATE_HP_VAX_complex_float_d = 0x90; // D floating complex. + +pub const CFA_advance_loc = 0x40; +pub const CFA_offset = 0x80; +pub const CFA_restore = 0xc0; +pub const CFA_nop = 0x00; +pub const CFA_set_loc = 0x01; +pub const CFA_advance_loc1 = 0x02; +pub const CFA_advance_loc2 = 0x03; +pub const CFA_advance_loc4 = 0x04; +pub const CFA_offset_extended = 0x05; +pub const CFA_restore_extended = 0x06; +pub const CFA_undefined = 0x07; +pub const CFA_same_value = 0x08; +pub const CFA_register = 0x09; +pub const CFA_remember_state = 0x0a; +pub const CFA_restore_state = 0x0b; +pub const CFA_def_cfa = 0x0c; +pub const CFA_def_cfa_register = 0x0d; +pub const CFA_def_cfa_offset = 0x0e; + +// DWARF 3. +pub const CFA_def_cfa_expression = 0x0f; +pub const CFA_expression = 0x10; +pub const CFA_offset_extended_sf = 0x11; +pub const CFA_def_cfa_sf = 0x12; +pub const CFA_def_cfa_offset_sf = 0x13; +pub const CFA_val_offset = 0x14; +pub const CFA_val_offset_sf = 0x15; +pub const CFA_val_expression = 0x16; + +pub const CFA_lo_user = 0x1c; +pub const CFA_hi_user = 0x3f; + +// SGI/MIPS specific. +pub const CFA_MIPS_advance_loc8 = 0x1d; + +// GNU extensions. +pub const CFA_GNU_window_save = 0x2d; +pub const CFA_GNU_args_size = 0x2e; +pub const CFA_GNU_negative_offset_extended = 0x2f; + +pub const CHILDREN_no = 0x00; +pub const CHILDREN_yes = 0x01; + +pub const LNS_extended_op = 0x00; +pub const LNS_copy = 0x01; +pub const LNS_advance_pc = 0x02; +pub const LNS_advance_line = 0x03; +pub const LNS_set_file = 0x04; +pub const LNS_set_column = 0x05; +pub const LNS_negate_stmt = 0x06; +pub const LNS_set_basic_block = 0x07; +pub const LNS_const_add_pc = 0x08; +pub const LNS_fixed_advance_pc = 0x09; +pub const LNS_set_prologue_end = 0x0a; +pub const LNS_set_epilogue_begin = 0x0b; +pub const LNS_set_isa = 0x0c; + +pub const LNE_end_sequence = 0x01; +pub const LNE_set_address = 0x02; +pub const LNE_define_file = 0x03; +pub const LNE_set_discriminator = 0x04; +pub const LNE_lo_user = 0x80; +pub const LNE_hi_user = 0xff; + +pub const LANG_C89 = 0x0001; +pub const LANG_C = 0x0002; +pub const LANG_Ada83 = 0x0003; +pub const LANG_C_plus_plus = 0x0004; +pub const LANG_Cobol74 = 0x0005; +pub const LANG_Cobol85 = 0x0006; +pub const LANG_Fortran77 = 0x0007; +pub const LANG_Fortran90 = 0x0008; +pub const LANG_Pascal83 = 0x0009; +pub const LANG_Modula2 = 0x000a; +pub const LANG_Java = 0x000b; +pub const LANG_C99 = 0x000c; +pub const LANG_Ada95 = 0x000d; +pub const LANG_Fortran95 = 0x000e; +pub const LANG_PLI = 0x000f; +pub const LANG_ObjC = 0x0010; +pub const LANG_ObjC_plus_plus = 0x0011; +pub const LANG_UPC = 0x0012; +pub const LANG_D = 0x0013; +pub const LANG_Python = 0x0014; +pub const LANG_Go = 0x0016; +pub const LANG_C_plus_plus_11 = 0x001a; +pub const LANG_Rust = 0x001c; +pub const LANG_C11 = 0x001d; +pub const LANG_C_plus_plus_14 = 0x0021; +pub const LANG_Fortran03 = 0x0022; +pub const LANG_Fortran08 = 0x0023; +pub const LANG_lo_user = 0x8000; +pub const LANG_hi_user = 0xffff; +pub const LANG_Mips_Assembler = 0x8001; +pub const LANG_Upc = 0x8765; +pub const LANG_HP_Bliss = 0x8003; +pub const LANG_HP_Basic91 = 0x8004; +pub const LANG_HP_Pascal91 = 0x8005; +pub const LANG_HP_IMacro = 0x8006; +pub const LANG_HP_Assembler = 0x8007; diff --git a/lib/std/dynamic_library.zig b/lib/std/dynamic_library.zig new file mode 100644 index 0000000000..3413788019 --- /dev/null +++ b/lib/std/dynamic_library.zig @@ -0,0 +1,280 @@ +const builtin = @import("builtin"); + +const std = @import("std.zig"); +const mem = std.mem; +const os = std.os; +const assert = std.debug.assert; +const testing = std.testing; +const elf = std.elf; +const windows = std.os.windows; +const maxInt = std.math.maxInt; + +pub const DynLib = switch (builtin.os) { + .linux => LinuxDynLib, + .windows => WindowsDynLib, + else => void, +}; + +// The link_map structure is not completely specified beside the fields +// reported below, any libc is free to store additional data in the remaining +// space. +// An iterator is provided in order to traverse the linked list in a idiomatic +// fashion. +const LinkMap = extern struct { + l_addr: usize, + l_name: [*]const u8, + l_ld: ?*elf.Dyn, + l_next: ?*LinkMap, + l_prev: ?*LinkMap, + + pub const Iterator = struct { + current: ?*LinkMap, + + fn end(self: *Iterator) bool { + return self.current == null; + } + + fn next(self: *Iterator) ?*LinkMap { + if (self.current) |it| { + self.current = it.l_next; + return it; + } + return null; + } + }; +}; + +const RDebug = extern struct { + r_version: i32, + r_map: ?*LinkMap, + r_brk: usize, + r_ldbase: usize, +}; + +fn elf_get_va_offset(phdrs: []elf.Phdr) !usize { + for (phdrs) |*phdr| { + if (phdr.p_type == elf.PT_LOAD) { + return @ptrToInt(phdr) - phdr.p_vaddr; + } + } + return error.InvalidExe; +} + +pub fn linkmap_iterator(phdrs: []elf.Phdr) !LinkMap.Iterator { + const va_offset = try elf_get_va_offset(phdrs); + + const dyn_table = init: { + for (phdrs) |*phdr| { + if (phdr.p_type == elf.PT_DYNAMIC) { + const ptr = @intToPtr([*]elf.Dyn, va_offset + phdr.p_vaddr); + break :init ptr[0 .. phdr.p_memsz / @sizeOf(elf.Dyn)]; + } + } + // No PT_DYNAMIC means this is either a statically-linked program or a + // badly corrupted one + return LinkMap.Iterator{ .current = null }; + }; + + const link_map_ptr = init: { + for (dyn_table) |*dyn| { + switch (dyn.d_tag) { + elf.DT_DEBUG => { + const r_debug = @intToPtr(*RDebug, dyn.d_un.d_ptr); + if (r_debug.r_version != 1) return error.InvalidExe; + break :init r_debug.r_map; + }, + elf.DT_PLTGOT => { + const got_table = @intToPtr([*]usize, dyn.d_un.d_ptr); + // The address to the link_map structure is stored in the + // second slot + break :init @intToPtr(?*LinkMap, got_table[1]); + }, + else => {}, + } + } + return error.InvalidExe; + }; + + return LinkMap.Iterator{ .current = link_map_ptr }; +} + +pub const LinuxDynLib = struct { + elf_lib: ElfLib, + fd: i32, + memory: []align(mem.page_size) u8, + + /// Trusts the file + pub fn open(path: []const u8) !DynLib { + const fd = try os.open(path, 0, os.O_RDONLY | os.O_CLOEXEC); + errdefer os.close(fd); + + // TODO remove this @intCast + const size = @intCast(usize, (try os.fstat(fd)).size); + + const bytes = try os.mmap( + null, + mem.alignForward(size, mem.page_size), + os.PROT_READ | os.PROT_EXEC, + os.MAP_PRIVATE, + fd, + 0, + ); + errdefer os.munmap(bytes); + + return DynLib{ + .elf_lib = try ElfLib.init(bytes), + .fd = fd, + .memory = bytes, + }; + } + + pub fn close(self: *DynLib) void { + os.munmap(self.memory); + os.close(self.fd); + self.* = undefined; + } + + pub fn lookup(self: *DynLib, name: []const u8) ?usize { + return self.elf_lib.lookup("", name); + } +}; + +pub const ElfLib = struct { + strings: [*]u8, + syms: [*]elf.Sym, + hashtab: [*]os.Elf_Symndx, + versym: ?[*]u16, + verdef: ?*elf.Verdef, + base: usize, + + // Trusts the memory + pub fn init(bytes: []align(@alignOf(elf.Ehdr)) u8) !ElfLib { + const eh = @ptrCast(*elf.Ehdr, bytes.ptr); + if (!mem.eql(u8, eh.e_ident[0..4], "\x7fELF")) return error.NotElfFile; + if (eh.e_type != elf.ET_DYN) return error.NotDynamicLibrary; + + const elf_addr = @ptrToInt(bytes.ptr); + var ph_addr: usize = elf_addr + eh.e_phoff; + + var base: usize = maxInt(usize); + var maybe_dynv: ?[*]usize = null; + { + var i: usize = 0; + while (i < eh.e_phnum) : ({ + i += 1; + ph_addr += eh.e_phentsize; + }) { + const ph = @intToPtr(*elf.Phdr, ph_addr); + switch (ph.p_type) { + elf.PT_LOAD => base = elf_addr + ph.p_offset - ph.p_vaddr, + elf.PT_DYNAMIC => maybe_dynv = @intToPtr([*]usize, elf_addr + ph.p_offset), + else => {}, + } + } + } + const dynv = maybe_dynv orelse return error.MissingDynamicLinkingInformation; + if (base == maxInt(usize)) return error.BaseNotFound; + + var maybe_strings: ?[*]u8 = null; + var maybe_syms: ?[*]elf.Sym = null; + var maybe_hashtab: ?[*]os.Elf_Symndx = null; + var maybe_versym: ?[*]u16 = null; + var maybe_verdef: ?*elf.Verdef = null; + + { + var i: usize = 0; + while (dynv[i] != 0) : (i += 2) { + const p = base + dynv[i + 1]; + switch (dynv[i]) { + elf.DT_STRTAB => maybe_strings = @intToPtr([*]u8, p), + elf.DT_SYMTAB => maybe_syms = @intToPtr([*]elf.Sym, p), + elf.DT_HASH => maybe_hashtab = @intToPtr([*]os.Elf_Symndx, p), + elf.DT_VERSYM => maybe_versym = @intToPtr([*]u16, p), + elf.DT_VERDEF => maybe_verdef = @intToPtr(*elf.Verdef, p), + else => {}, + } + } + } + + return ElfLib{ + .base = base, + .strings = maybe_strings orelse return error.ElfStringSectionNotFound, + .syms = maybe_syms orelse return error.ElfSymSectionNotFound, + .hashtab = maybe_hashtab orelse return error.ElfHashTableNotFound, + .versym = maybe_versym, + .verdef = maybe_verdef, + }; + } + + /// Returns the address of the symbol + pub fn lookup(self: *const ElfLib, vername: []const u8, name: []const u8) ?usize { + const maybe_versym = if (self.verdef == null) null else self.versym; + + const OK_TYPES = (1 << elf.STT_NOTYPE | 1 << elf.STT_OBJECT | 1 << elf.STT_FUNC | 1 << elf.STT_COMMON); + const OK_BINDS = (1 << elf.STB_GLOBAL | 1 << elf.STB_WEAK | 1 << elf.STB_GNU_UNIQUE); + + var i: usize = 0; + while (i < self.hashtab[1]) : (i += 1) { + if (0 == (u32(1) << @intCast(u5, self.syms[i].st_info & 0xf) & OK_TYPES)) continue; + if (0 == (u32(1) << @intCast(u5, self.syms[i].st_info >> 4) & OK_BINDS)) continue; + if (0 == self.syms[i].st_shndx) continue; + if (!mem.eql(u8, name, mem.toSliceConst(u8, self.strings + self.syms[i].st_name))) continue; + if (maybe_versym) |versym| { + if (!checkver(self.verdef.?, versym[i], vername, self.strings)) + continue; + } + return self.base + self.syms[i].st_value; + } + + return null; + } +}; + +fn checkver(def_arg: *elf.Verdef, vsym_arg: i32, vername: []const u8, strings: [*]u8) bool { + var def = def_arg; + const vsym = @bitCast(u32, vsym_arg) & 0x7fff; + while (true) { + if (0 == (def.vd_flags & elf.VER_FLG_BASE) and (def.vd_ndx & 0x7fff) == vsym) + break; + if (def.vd_next == 0) + return false; + def = @intToPtr(*elf.Verdef, @ptrToInt(def) + def.vd_next); + } + const aux = @intToPtr(*elf.Verdaux, @ptrToInt(def) + def.vd_aux); + return mem.eql(u8, vername, mem.toSliceConst(u8, strings + aux.vda_name)); +} + +pub const WindowsDynLib = struct { + dll: windows.HMODULE, + + pub fn open(path: []const u8) !WindowsDynLib { + const wpath = try windows.sliceToPrefixedFileW(path); + + return WindowsDynLib{ + .dll = try windows.LoadLibraryW(&wpath), + }; + } + + pub fn close(self: *WindowsDynLib) void { + windows.FreeLibrary(self.dll); + self.* = undefined; + } + + pub fn lookup(self: *WindowsDynLib, name: []const u8) ?usize { + return @ptrToInt(windows.kernel32.GetProcAddress(self.dll, name.ptr)); + } +}; + +test "dynamic_library" { + const libname = switch (builtin.os) { + .linux => "invalid_so.so", + .windows => "invalid_dll.dll", + else => return, + }; + + const dynlib = DynLib.open(libname) catch |err| { + testing.expect(err == error.FileNotFound); + return; + }; + @panic("Expected error from function"); +} diff --git a/lib/std/elf.zig b/lib/std/elf.zig new file mode 100644 index 0000000000..37635895fd --- /dev/null +++ b/lib/std/elf.zig @@ -0,0 +1,902 @@ +const builtin = @import("builtin"); +const std = @import("std.zig"); +const io = std.io; +const os = std.os; +const math = std.math; +const mem = std.mem; +const debug = std.debug; +const InStream = std.stream.InStream; +const File = std.fs.File; + +pub const AT_NULL = 0; +pub const AT_IGNORE = 1; +pub const AT_EXECFD = 2; +pub const AT_PHDR = 3; +pub const AT_PHENT = 4; +pub const AT_PHNUM = 5; +pub const AT_PAGESZ = 6; +pub const AT_BASE = 7; +pub const AT_FLAGS = 8; +pub const AT_ENTRY = 9; +pub const AT_NOTELF = 10; +pub const AT_UID = 11; +pub const AT_EUID = 12; +pub const AT_GID = 13; +pub const AT_EGID = 14; +pub const AT_CLKTCK = 17; +pub const AT_PLATFORM = 15; +pub const AT_HWCAP = 16; +pub const AT_FPUCW = 18; +pub const AT_DCACHEBSIZE = 19; +pub const AT_ICACHEBSIZE = 20; +pub const AT_UCACHEBSIZE = 21; +pub const AT_IGNOREPPC = 22; +pub const AT_SECURE = 23; +pub const AT_BASE_PLATFORM = 24; +pub const AT_RANDOM = 25; +pub const AT_HWCAP2 = 26; +pub const AT_EXECFN = 31; +pub const AT_SYSINFO = 32; +pub const AT_SYSINFO_EHDR = 33; +pub const AT_L1I_CACHESHAPE = 34; +pub const AT_L1D_CACHESHAPE = 35; +pub const AT_L2_CACHESHAPE = 36; +pub const AT_L3_CACHESHAPE = 37; +pub const AT_L1I_CACHESIZE = 40; +pub const AT_L1I_CACHEGEOMETRY = 41; +pub const AT_L1D_CACHESIZE = 42; +pub const AT_L1D_CACHEGEOMETRY = 43; +pub const AT_L2_CACHESIZE = 44; +pub const AT_L2_CACHEGEOMETRY = 45; +pub const AT_L3_CACHESIZE = 46; +pub const AT_L3_CACHEGEOMETRY = 47; + +pub const DT_NULL = 0; +pub const DT_NEEDED = 1; +pub const DT_PLTRELSZ = 2; +pub const DT_PLTGOT = 3; +pub const DT_HASH = 4; +pub const DT_STRTAB = 5; +pub const DT_SYMTAB = 6; +pub const DT_RELA = 7; +pub const DT_RELASZ = 8; +pub const DT_RELAENT = 9; +pub const DT_STRSZ = 10; +pub const DT_SYMENT = 11; +pub const DT_INIT = 12; +pub const DT_FINI = 13; +pub const DT_SONAME = 14; +pub const DT_RPATH = 15; +pub const DT_SYMBOLIC = 16; +pub const DT_REL = 17; +pub const DT_RELSZ = 18; +pub const DT_RELENT = 19; +pub const DT_PLTREL = 20; +pub const DT_DEBUG = 21; +pub const DT_TEXTREL = 22; +pub const DT_JMPREL = 23; +pub const DT_BIND_NOW = 24; +pub const DT_INIT_ARRAY = 25; +pub const DT_FINI_ARRAY = 26; +pub const DT_INIT_ARRAYSZ = 27; +pub const DT_FINI_ARRAYSZ = 28; +pub const DT_RUNPATH = 29; +pub const DT_FLAGS = 30; +pub const DT_ENCODING = 32; +pub const DT_PREINIT_ARRAY = 32; +pub const DT_PREINIT_ARRAYSZ = 33; +pub const DT_SYMTAB_SHNDX = 34; +pub const DT_NUM = 35; +pub const DT_LOOS = 0x6000000d; +pub const DT_HIOS = 0x6ffff000; +pub const DT_LOPROC = 0x70000000; +pub const DT_HIPROC = 0x7fffffff; +pub const DT_PROCNUM = DT_MIPS_NUM; + +pub const DT_VALRNGLO = 0x6ffffd00; +pub const DT_GNU_PRELINKED = 0x6ffffdf5; +pub const DT_GNU_CONFLICTSZ = 0x6ffffdf6; +pub const DT_GNU_LIBLISTSZ = 0x6ffffdf7; +pub const DT_CHECKSUM = 0x6ffffdf8; +pub const DT_PLTPADSZ = 0x6ffffdf9; +pub const DT_MOVEENT = 0x6ffffdfa; +pub const DT_MOVESZ = 0x6ffffdfb; +pub const DT_FEATURE_1 = 0x6ffffdfc; +pub const DT_POSFLAG_1 = 0x6ffffdfd; + +pub const DT_SYMINSZ = 0x6ffffdfe; +pub const DT_SYMINENT = 0x6ffffdff; +pub const DT_VALRNGHI = 0x6ffffdff; +pub const DT_VALNUM = 12; + +pub const DT_ADDRRNGLO = 0x6ffffe00; +pub const DT_GNU_HASH = 0x6ffffef5; +pub const DT_TLSDESC_PLT = 0x6ffffef6; +pub const DT_TLSDESC_GOT = 0x6ffffef7; +pub const DT_GNU_CONFLICT = 0x6ffffef8; +pub const DT_GNU_LIBLIST = 0x6ffffef9; +pub const DT_CONFIG = 0x6ffffefa; +pub const DT_DEPAUDIT = 0x6ffffefb; +pub const DT_AUDIT = 0x6ffffefc; +pub const DT_PLTPAD = 0x6ffffefd; +pub const DT_MOVETAB = 0x6ffffefe; +pub const DT_SYMINFO = 0x6ffffeff; +pub const DT_ADDRRNGHI = 0x6ffffeff; +pub const DT_ADDRNUM = 11; + +pub const DT_VERSYM = 0x6ffffff0; + +pub const DT_RELACOUNT = 0x6ffffff9; +pub const DT_RELCOUNT = 0x6ffffffa; + +pub const DT_FLAGS_1 = 0x6ffffffb; +pub const DT_VERDEF = 0x6ffffffc; + +pub const DT_VERDEFNUM = 0x6ffffffd; +pub const DT_VERNEED = 0x6ffffffe; + +pub const DT_VERNEEDNUM = 0x6fffffff; +pub const DT_VERSIONTAGNUM = 16; + +pub const DT_AUXILIARY = 0x7ffffffd; +pub const DT_FILTER = 0x7fffffff; +pub const DT_EXTRANUM = 3; + +pub const DT_SPARC_REGISTER = 0x70000001; +pub const DT_SPARC_NUM = 2; + +pub const DT_MIPS_RLD_VERSION = 0x70000001; +pub const DT_MIPS_TIME_STAMP = 0x70000002; +pub const DT_MIPS_ICHECKSUM = 0x70000003; +pub const DT_MIPS_IVERSION = 0x70000004; +pub const DT_MIPS_FLAGS = 0x70000005; +pub const DT_MIPS_BASE_ADDRESS = 0x70000006; +pub const DT_MIPS_MSYM = 0x70000007; +pub const DT_MIPS_CONFLICT = 0x70000008; +pub const DT_MIPS_LIBLIST = 0x70000009; +pub const DT_MIPS_LOCAL_GOTNO = 0x7000000a; +pub const DT_MIPS_CONFLICTNO = 0x7000000b; +pub const DT_MIPS_LIBLISTNO = 0x70000010; +pub const DT_MIPS_SYMTABNO = 0x70000011; +pub const DT_MIPS_UNREFEXTNO = 0x70000012; +pub const DT_MIPS_GOTSYM = 0x70000013; +pub const DT_MIPS_HIPAGENO = 0x70000014; +pub const DT_MIPS_RLD_MAP = 0x70000016; +pub const DT_MIPS_DELTA_CLASS = 0x70000017; +pub const DT_MIPS_DELTA_CLASS_NO = 0x70000018; + +pub const DT_MIPS_DELTA_INSTANCE = 0x70000019; +pub const DT_MIPS_DELTA_INSTANCE_NO = 0x7000001a; + +pub const DT_MIPS_DELTA_RELOC = 0x7000001b; +pub const DT_MIPS_DELTA_RELOC_NO = 0x7000001c; + +pub const DT_MIPS_DELTA_SYM = 0x7000001d; + +pub const DT_MIPS_DELTA_SYM_NO = 0x7000001e; + +pub const DT_MIPS_DELTA_CLASSSYM = 0x70000020; + +pub const DT_MIPS_DELTA_CLASSSYM_NO = 0x70000021; + +pub const DT_MIPS_CXX_FLAGS = 0x70000022; +pub const DT_MIPS_PIXIE_INIT = 0x70000023; +pub const DT_MIPS_SYMBOL_LIB = 0x70000024; +pub const DT_MIPS_LOCALPAGE_GOTIDX = 0x70000025; +pub const DT_MIPS_LOCAL_GOTIDX = 0x70000026; +pub const DT_MIPS_HIDDEN_GOTIDX = 0x70000027; +pub const DT_MIPS_PROTECTED_GOTIDX = 0x70000028; +pub const DT_MIPS_OPTIONS = 0x70000029; +pub const DT_MIPS_INTERFACE = 0x7000002a; +pub const DT_MIPS_DYNSTR_ALIGN = 0x7000002b; +pub const DT_MIPS_INTERFACE_SIZE = 0x7000002c; +pub const DT_MIPS_RLD_TEXT_RESOLVE_ADDR = 0x7000002d; + +pub const DT_MIPS_PERF_SUFFIX = 0x7000002e; + +pub const DT_MIPS_COMPACT_SIZE = 0x7000002f; +pub const DT_MIPS_GP_VALUE = 0x70000030; +pub const DT_MIPS_AUX_DYNAMIC = 0x70000031; + +pub const DT_MIPS_PLTGOT = 0x70000032; + +pub const DT_MIPS_RWPLT = 0x70000034; +pub const DT_MIPS_RLD_MAP_REL = 0x70000035; +pub const DT_MIPS_NUM = 0x36; + +pub const DT_ALPHA_PLTRO = (DT_LOPROC + 0); +pub const DT_ALPHA_NUM = 1; + +pub const DT_PPC_GOT = (DT_LOPROC + 0); +pub const DT_PPC_OPT = (DT_LOPROC + 1); +pub const DT_PPC_NUM = 2; + +pub const DT_PPC64_GLINK = (DT_LOPROC + 0); +pub const DT_PPC64_OPD = (DT_LOPROC + 1); +pub const DT_PPC64_OPDSZ = (DT_LOPROC + 2); +pub const DT_PPC64_OPT = (DT_LOPROC + 3); +pub const DT_PPC64_NUM = 4; + +pub const DT_IA_64_PLT_RESERVE = (DT_LOPROC + 0); +pub const DT_IA_64_NUM = 1; + +pub const DT_NIOS2_GP = 0x70000002; + +pub const PT_NULL = 0; +pub const PT_LOAD = 1; +pub const PT_DYNAMIC = 2; +pub const PT_INTERP = 3; +pub const PT_NOTE = 4; +pub const PT_SHLIB = 5; +pub const PT_PHDR = 6; +pub const PT_TLS = 7; +pub const PT_NUM = 8; +pub const PT_LOOS = 0x60000000; +pub const PT_GNU_EH_FRAME = 0x6474e550; +pub const PT_GNU_STACK = 0x6474e551; +pub const PT_GNU_RELRO = 0x6474e552; +pub const PT_LOSUNW = 0x6ffffffa; +pub const PT_SUNWBSS = 0x6ffffffa; +pub const PT_SUNWSTACK = 0x6ffffffb; +pub const PT_HISUNW = 0x6fffffff; +pub const PT_HIOS = 0x6fffffff; +pub const PT_LOPROC = 0x70000000; +pub const PT_HIPROC = 0x7fffffff; + +pub const SHT_NULL = 0; +pub const SHT_PROGBITS = 1; +pub const SHT_SYMTAB = 2; +pub const SHT_STRTAB = 3; +pub const SHT_RELA = 4; +pub const SHT_HASH = 5; +pub const SHT_DYNAMIC = 6; +pub const SHT_NOTE = 7; +pub const SHT_NOBITS = 8; +pub const SHT_REL = 9; +pub const SHT_SHLIB = 10; +pub const SHT_DYNSYM = 11; +pub const SHT_INIT_ARRAY = 14; +pub const SHT_FINI_ARRAY = 15; +pub const SHT_PREINIT_ARRAY = 16; +pub const SHT_GROUP = 17; +pub const SHT_SYMTAB_SHNDX = 18; +pub const SHT_LOOS = 0x60000000; +pub const SHT_HIOS = 0x6fffffff; +pub const SHT_LOPROC = 0x70000000; +pub const SHT_HIPROC = 0x7fffffff; +pub const SHT_LOUSER = 0x80000000; +pub const SHT_HIUSER = 0xffffffff; + +pub const STB_LOCAL = 0; +pub const STB_GLOBAL = 1; +pub const STB_WEAK = 2; +pub const STB_NUM = 3; +pub const STB_LOOS = 10; +pub const STB_GNU_UNIQUE = 10; +pub const STB_HIOS = 12; +pub const STB_LOPROC = 13; +pub const STB_HIPROC = 15; + +pub const STB_MIPS_SPLIT_COMMON = 13; + +pub const STT_NOTYPE = 0; +pub const STT_OBJECT = 1; +pub const STT_FUNC = 2; +pub const STT_SECTION = 3; +pub const STT_FILE = 4; +pub const STT_COMMON = 5; +pub const STT_TLS = 6; +pub const STT_NUM = 7; +pub const STT_LOOS = 10; +pub const STT_GNU_IFUNC = 10; +pub const STT_HIOS = 12; +pub const STT_LOPROC = 13; +pub const STT_HIPROC = 15; + +pub const STT_SPARC_REGISTER = 13; + +pub const STT_PARISC_MILLICODE = 13; + +pub const STT_HP_OPAQUE = (STT_LOOS + 0x1); +pub const STT_HP_STUB = (STT_LOOS + 0x2); + +pub const STT_ARM_TFUNC = STT_LOPROC; +pub const STT_ARM_16BIT = STT_HIPROC; + +pub const VER_FLG_BASE = 0x1; +pub const VER_FLG_WEAK = 0x2; + +/// An unknown type. +pub const ET_NONE = 0; + +/// A relocatable file. +pub const ET_REL = 1; + +/// An executable file. +pub const ET_EXEC = 2; + +/// A shared object. +pub const ET_DYN = 3; + +/// A core file. +pub const ET_CORE = 4; + +pub const FileType = enum { + Relocatable, + Executable, + Shared, + Core, +}; + +pub const Arch = enum { + Sparc, + x86, + Mips, + PowerPc, + Arm, + SuperH, + IA_64, + x86_64, + AArch64, +}; + +pub const SectionHeader = struct { + name: u32, + sh_type: u32, + flags: u64, + addr: u64, + offset: u64, + size: u64, + link: u32, + info: u32, + addr_align: u64, + ent_size: u64, +}; + +pub const Elf = struct { + seekable_stream: *io.SeekableStream(anyerror, anyerror), + in_stream: *io.InStream(anyerror), + is_64: bool, + endian: builtin.Endian, + file_type: FileType, + arch: Arch, + entry_addr: u64, + program_header_offset: u64, + section_header_offset: u64, + string_section_index: usize, + string_section: *SectionHeader, + section_headers: []SectionHeader, + allocator: *mem.Allocator, + + /// Call close when done. + pub fn openPath(allocator: *mem.Allocator, path: []const u8) !Elf { + @compileError("TODO implement"); + } + + /// Call close when done. + pub fn openFile(allocator: *mem.Allocator, file: File) !Elf { + @compileError("TODO implement"); + } + + pub fn openStream( + allocator: *mem.Allocator, + seekable_stream: *io.SeekableStream(anyerror, anyerror), + in: *io.InStream(anyerror), + ) !Elf { + var elf: Elf = undefined; + elf.allocator = allocator; + elf.seekable_stream = seekable_stream; + elf.in_stream = in; + + var magic: [4]u8 = undefined; + try in.readNoEof(magic[0..]); + if (!mem.eql(u8, magic, "\x7fELF")) return error.InvalidFormat; + + elf.is_64 = switch (try in.readByte()) { + 1 => false, + 2 => true, + else => return error.InvalidFormat, + }; + + elf.endian = switch (try in.readByte()) { + 1 => builtin.Endian.Little, + 2 => builtin.Endian.Big, + else => return error.InvalidFormat, + }; + + const version_byte = try in.readByte(); + if (version_byte != 1) return error.InvalidFormat; + + // skip over padding + try seekable_stream.seekBy(9); + + elf.file_type = switch (try in.readInt(u16, elf.endian)) { + 1 => FileType.Relocatable, + 2 => FileType.Executable, + 3 => FileType.Shared, + 4 => FileType.Core, + else => return error.InvalidFormat, + }; + + elf.arch = switch (try in.readInt(u16, elf.endian)) { + 0x02 => Arch.Sparc, + 0x03 => Arch.x86, + 0x08 => Arch.Mips, + 0x14 => Arch.PowerPc, + 0x28 => Arch.Arm, + 0x2A => Arch.SuperH, + 0x32 => Arch.IA_64, + 0x3E => Arch.x86_64, + 0xb7 => Arch.AArch64, + else => return error.InvalidFormat, + }; + + const elf_version = try in.readInt(u32, elf.endian); + if (elf_version != 1) return error.InvalidFormat; + + if (elf.is_64) { + elf.entry_addr = try in.readInt(u64, elf.endian); + elf.program_header_offset = try in.readInt(u64, elf.endian); + elf.section_header_offset = try in.readInt(u64, elf.endian); + } else { + elf.entry_addr = u64(try in.readInt(u32, elf.endian)); + elf.program_header_offset = u64(try in.readInt(u32, elf.endian)); + elf.section_header_offset = u64(try in.readInt(u32, elf.endian)); + } + + // skip over flags + try seekable_stream.seekBy(4); + + const header_size = try in.readInt(u16, elf.endian); + if ((elf.is_64 and header_size != 64) or (!elf.is_64 and header_size != 52)) { + return error.InvalidFormat; + } + + const ph_entry_size = try in.readInt(u16, elf.endian); + const ph_entry_count = try in.readInt(u16, elf.endian); + const sh_entry_size = try in.readInt(u16, elf.endian); + const sh_entry_count = try in.readInt(u16, elf.endian); + elf.string_section_index = usize(try in.readInt(u16, elf.endian)); + + if (elf.string_section_index >= sh_entry_count) return error.InvalidFormat; + + const sh_byte_count = u64(sh_entry_size) * u64(sh_entry_count); + const end_sh = try math.add(u64, elf.section_header_offset, sh_byte_count); + const ph_byte_count = u64(ph_entry_size) * u64(ph_entry_count); + const end_ph = try math.add(u64, elf.program_header_offset, ph_byte_count); + + const stream_end = try seekable_stream.getEndPos(); + if (stream_end < end_sh or stream_end < end_ph) { + return error.InvalidFormat; + } + + try seekable_stream.seekTo(elf.section_header_offset); + + elf.section_headers = try elf.allocator.alloc(SectionHeader, sh_entry_count); + errdefer elf.allocator.free(elf.section_headers); + + if (elf.is_64) { + if (sh_entry_size != 64) return error.InvalidFormat; + + for (elf.section_headers) |*elf_section| { + elf_section.name = try in.readInt(u32, elf.endian); + elf_section.sh_type = try in.readInt(u32, elf.endian); + elf_section.flags = try in.readInt(u64, elf.endian); + elf_section.addr = try in.readInt(u64, elf.endian); + elf_section.offset = try in.readInt(u64, elf.endian); + elf_section.size = try in.readInt(u64, elf.endian); + elf_section.link = try in.readInt(u32, elf.endian); + elf_section.info = try in.readInt(u32, elf.endian); + elf_section.addr_align = try in.readInt(u64, elf.endian); + elf_section.ent_size = try in.readInt(u64, elf.endian); + } + } else { + if (sh_entry_size != 40) return error.InvalidFormat; + + for (elf.section_headers) |*elf_section| { + // TODO (multiple occurrences) allow implicit cast from %u32 -> %u64 ? + elf_section.name = try in.readInt(u32, elf.endian); + elf_section.sh_type = try in.readInt(u32, elf.endian); + elf_section.flags = u64(try in.readInt(u32, elf.endian)); + elf_section.addr = u64(try in.readInt(u32, elf.endian)); + elf_section.offset = u64(try in.readInt(u32, elf.endian)); + elf_section.size = u64(try in.readInt(u32, elf.endian)); + elf_section.link = try in.readInt(u32, elf.endian); + elf_section.info = try in.readInt(u32, elf.endian); + elf_section.addr_align = u64(try in.readInt(u32, elf.endian)); + elf_section.ent_size = u64(try in.readInt(u32, elf.endian)); + } + } + + for (elf.section_headers) |*elf_section| { + if (elf_section.sh_type != SHT_NOBITS) { + const file_end_offset = try math.add(u64, elf_section.offset, elf_section.size); + if (stream_end < file_end_offset) return error.InvalidFormat; + } + } + + elf.string_section = &elf.section_headers[elf.string_section_index]; + if (elf.string_section.sh_type != SHT_STRTAB) { + // not a string table + return error.InvalidFormat; + } + + return elf; + } + + pub fn close(elf: *Elf) void { + elf.allocator.free(elf.section_headers); + } + + pub fn findSection(elf: *Elf, name: []const u8) !?*SectionHeader { + section_loop: for (elf.section_headers) |*elf_section| { + if (elf_section.sh_type == SHT_NULL) continue; + + const name_offset = elf.string_section.offset + elf_section.name; + try elf.seekable_stream.seekTo(name_offset); + + for (name) |expected_c| { + const target_c = try elf.in_stream.readByte(); + if (target_c == 0 or expected_c != target_c) continue :section_loop; + } + + { + const null_byte = try elf.in_stream.readByte(); + if (null_byte == 0) return elf_section; + } + } + + return null; + } + + pub fn seekToSection(elf: *Elf, elf_section: *SectionHeader) !void { + try elf.seekable_stream.seekTo(elf_section.offset); + } +}; + +pub const EI_NIDENT = 16; +pub const Elf32_Half = u16; +pub const Elf64_Half = u16; +pub const Elf32_Word = u32; +pub const Elf32_Sword = i32; +pub const Elf64_Word = u32; +pub const Elf64_Sword = i32; +pub const Elf32_Xword = u64; +pub const Elf32_Sxword = i64; +pub const Elf64_Xword = u64; +pub const Elf64_Sxword = i64; +pub const Elf32_Addr = u32; +pub const Elf64_Addr = u64; +pub const Elf32_Off = u32; +pub const Elf64_Off = u64; +pub const Elf32_Section = u16; +pub const Elf64_Section = u16; +pub const Elf32_Versym = Elf32_Half; +pub const Elf64_Versym = Elf64_Half; +pub const Elf32_Ehdr = extern struct { + e_ident: [EI_NIDENT]u8, + e_type: Elf32_Half, + e_machine: Elf32_Half, + e_version: Elf32_Word, + e_entry: Elf32_Addr, + e_phoff: Elf32_Off, + e_shoff: Elf32_Off, + e_flags: Elf32_Word, + e_ehsize: Elf32_Half, + e_phentsize: Elf32_Half, + e_phnum: Elf32_Half, + e_shentsize: Elf32_Half, + e_shnum: Elf32_Half, + e_shstrndx: Elf32_Half, +}; +pub const Elf64_Ehdr = extern struct { + e_ident: [EI_NIDENT]u8, + e_type: Elf64_Half, + e_machine: Elf64_Half, + e_version: Elf64_Word, + e_entry: Elf64_Addr, + e_phoff: Elf64_Off, + e_shoff: Elf64_Off, + e_flags: Elf64_Word, + e_ehsize: Elf64_Half, + e_phentsize: Elf64_Half, + e_phnum: Elf64_Half, + e_shentsize: Elf64_Half, + e_shnum: Elf64_Half, + e_shstrndx: Elf64_Half, +}; +pub const Elf32_Shdr = extern struct { + sh_name: Elf32_Word, + sh_type: Elf32_Word, + sh_flags: Elf32_Word, + sh_addr: Elf32_Addr, + sh_offset: Elf32_Off, + sh_size: Elf32_Word, + sh_link: Elf32_Word, + sh_info: Elf32_Word, + sh_addralign: Elf32_Word, + sh_entsize: Elf32_Word, +}; +pub const Elf64_Shdr = extern struct { + sh_name: Elf64_Word, + sh_type: Elf64_Word, + sh_flags: Elf64_Xword, + sh_addr: Elf64_Addr, + sh_offset: Elf64_Off, + sh_size: Elf64_Xword, + sh_link: Elf64_Word, + sh_info: Elf64_Word, + sh_addralign: Elf64_Xword, + sh_entsize: Elf64_Xword, +}; +pub const Elf32_Chdr = extern struct { + ch_type: Elf32_Word, + ch_size: Elf32_Word, + ch_addralign: Elf32_Word, +}; +pub const Elf64_Chdr = extern struct { + ch_type: Elf64_Word, + ch_reserved: Elf64_Word, + ch_size: Elf64_Xword, + ch_addralign: Elf64_Xword, +}; +pub const Elf32_Sym = extern struct { + st_name: Elf32_Word, + st_value: Elf32_Addr, + st_size: Elf32_Word, + st_info: u8, + st_other: u8, + st_shndx: Elf32_Section, +}; +pub const Elf64_Sym = extern struct { + st_name: Elf64_Word, + st_info: u8, + st_other: u8, + st_shndx: Elf64_Section, + st_value: Elf64_Addr, + st_size: Elf64_Xword, +}; +pub const Elf32_Syminfo = extern struct { + si_boundto: Elf32_Half, + si_flags: Elf32_Half, +}; +pub const Elf64_Syminfo = extern struct { + si_boundto: Elf64_Half, + si_flags: Elf64_Half, +}; +pub const Elf32_Rel = extern struct { + r_offset: Elf32_Addr, + r_info: Elf32_Word, +}; +pub const Elf64_Rel = extern struct { + r_offset: Elf64_Addr, + r_info: Elf64_Xword, +}; +pub const Elf32_Rela = extern struct { + r_offset: Elf32_Addr, + r_info: Elf32_Word, + r_addend: Elf32_Sword, +}; +pub const Elf64_Rela = extern struct { + r_offset: Elf64_Addr, + r_info: Elf64_Xword, + r_addend: Elf64_Sxword, +}; +pub const Elf32_Phdr = extern struct { + p_type: Elf32_Word, + p_offset: Elf32_Off, + p_vaddr: Elf32_Addr, + p_paddr: Elf32_Addr, + p_filesz: Elf32_Word, + p_memsz: Elf32_Word, + p_flags: Elf32_Word, + p_align: Elf32_Word, +}; +pub const Elf64_Phdr = extern struct { + p_type: Elf64_Word, + p_flags: Elf64_Word, + p_offset: Elf64_Off, + p_vaddr: Elf64_Addr, + p_paddr: Elf64_Addr, + p_filesz: Elf64_Xword, + p_memsz: Elf64_Xword, + p_align: Elf64_Xword, +}; +pub const Elf32_Dyn = extern struct { + d_tag: Elf32_Sword, + d_un: extern union { + d_val: Elf32_Word, + d_ptr: Elf32_Addr, + }, +}; +pub const Elf64_Dyn = extern struct { + d_tag: Elf64_Sxword, + d_un: extern union { + d_val: Elf64_Xword, + d_ptr: Elf64_Addr, + }, +}; +pub const Elf32_Verdef = extern struct { + vd_version: Elf32_Half, + vd_flags: Elf32_Half, + vd_ndx: Elf32_Half, + vd_cnt: Elf32_Half, + vd_hash: Elf32_Word, + vd_aux: Elf32_Word, + vd_next: Elf32_Word, +}; +pub const Elf64_Verdef = extern struct { + vd_version: Elf64_Half, + vd_flags: Elf64_Half, + vd_ndx: Elf64_Half, + vd_cnt: Elf64_Half, + vd_hash: Elf64_Word, + vd_aux: Elf64_Word, + vd_next: Elf64_Word, +}; +pub const Elf32_Verdaux = extern struct { + vda_name: Elf32_Word, + vda_next: Elf32_Word, +}; +pub const Elf64_Verdaux = extern struct { + vda_name: Elf64_Word, + vda_next: Elf64_Word, +}; +pub const Elf32_Verneed = extern struct { + vn_version: Elf32_Half, + vn_cnt: Elf32_Half, + vn_file: Elf32_Word, + vn_aux: Elf32_Word, + vn_next: Elf32_Word, +}; +pub const Elf64_Verneed = extern struct { + vn_version: Elf64_Half, + vn_cnt: Elf64_Half, + vn_file: Elf64_Word, + vn_aux: Elf64_Word, + vn_next: Elf64_Word, +}; +pub const Elf32_Vernaux = extern struct { + vna_hash: Elf32_Word, + vna_flags: Elf32_Half, + vna_other: Elf32_Half, + vna_name: Elf32_Word, + vna_next: Elf32_Word, +}; +pub const Elf64_Vernaux = extern struct { + vna_hash: Elf64_Word, + vna_flags: Elf64_Half, + vna_other: Elf64_Half, + vna_name: Elf64_Word, + vna_next: Elf64_Word, +}; +pub const Elf32_auxv_t = extern struct { + a_type: u32, + a_un: extern union { + a_val: u32, + }, +}; +pub const Elf64_auxv_t = extern struct { + a_type: u64, + a_un: extern union { + a_val: u64, + }, +}; +pub const Elf32_Nhdr = extern struct { + n_namesz: Elf32_Word, + n_descsz: Elf32_Word, + n_type: Elf32_Word, +}; +pub const Elf64_Nhdr = extern struct { + n_namesz: Elf64_Word, + n_descsz: Elf64_Word, + n_type: Elf64_Word, +}; +pub const Elf32_Move = extern struct { + m_value: Elf32_Xword, + m_info: Elf32_Word, + m_poffset: Elf32_Word, + m_repeat: Elf32_Half, + m_stride: Elf32_Half, +}; +pub const Elf64_Move = extern struct { + m_value: Elf64_Xword, + m_info: Elf64_Xword, + m_poffset: Elf64_Xword, + m_repeat: Elf64_Half, + m_stride: Elf64_Half, +}; +pub const Elf32_gptab = extern union { + gt_header: extern struct { + gt_current_g_value: Elf32_Word, + gt_unused: Elf32_Word, + }, + gt_entry: extern struct { + gt_g_value: Elf32_Word, + gt_bytes: Elf32_Word, + }, +}; +pub const Elf32_RegInfo = extern struct { + ri_gprmask: Elf32_Word, + ri_cprmask: [4]Elf32_Word, + ri_gp_value: Elf32_Sword, +}; +pub const Elf_Options = extern struct { + kind: u8, + size: u8, + @"section": Elf32_Section, + info: Elf32_Word, +}; +pub const Elf_Options_Hw = extern struct { + hwp_flags1: Elf32_Word, + hwp_flags2: Elf32_Word, +}; +pub const Elf32_Lib = extern struct { + l_name: Elf32_Word, + l_time_stamp: Elf32_Word, + l_checksum: Elf32_Word, + l_version: Elf32_Word, + l_flags: Elf32_Word, +}; +pub const Elf64_Lib = extern struct { + l_name: Elf64_Word, + l_time_stamp: Elf64_Word, + l_checksum: Elf64_Word, + l_version: Elf64_Word, + l_flags: Elf64_Word, +}; +pub const Elf32_Conflict = Elf32_Addr; +pub const Elf_MIPS_ABIFlags_v0 = extern struct { + version: Elf32_Half, + isa_level: u8, + isa_rev: u8, + gpr_size: u8, + cpr1_size: u8, + cpr2_size: u8, + fp_abi: u8, + isa_ext: Elf32_Word, + ases: Elf32_Word, + flags1: Elf32_Word, + flags2: Elf32_Word, +}; + +pub const Auxv = switch (@sizeOf(usize)) { + 4 => Elf32_auxv_t, + 8 => Elf64_auxv_t, + else => @compileError("expected pointer size of 32 or 64"), +}; +pub const Ehdr = switch (@sizeOf(usize)) { + 4 => Elf32_Ehdr, + 8 => Elf64_Ehdr, + else => @compileError("expected pointer size of 32 or 64"), +}; +pub const Phdr = switch (@sizeOf(usize)) { + 4 => Elf32_Phdr, + 8 => Elf64_Phdr, + else => @compileError("expected pointer size of 32 or 64"), +}; +pub const Dyn = switch (@sizeOf(usize)) { + 4 => Elf32_Dyn, + 8 => Elf64_Dyn, + else => @compileError("expected pointer size of 32 or 64"), +}; +pub const Shdr = switch (@sizeOf(usize)) { + 4 => Elf32_Shdr, + 8 => Elf64_Shdr, + else => @compileError("expected pointer size of 32 or 64"), +}; +pub const Sym = switch (@sizeOf(usize)) { + 4 => Elf32_Sym, + 8 => Elf64_Sym, + else => @compileError("expected pointer size of 32 or 64"), +}; +pub const Verdef = switch (@sizeOf(usize)) { + 4 => Elf32_Verdef, + 8 => Elf64_Verdef, + else => @compileError("expected pointer size of 32 or 64"), +}; +pub const Verdaux = switch (@sizeOf(usize)) { + 4 => Elf32_Verdaux, + 8 => Elf64_Verdaux, + else => @compileError("expected pointer size of 32 or 64"), +}; diff --git a/lib/std/event.zig b/lib/std/event.zig new file mode 100644 index 0000000000..56c5223ba3 --- /dev/null +++ b/lib/std/event.zig @@ -0,0 +1,23 @@ +pub const Channel = @import("event/channel.zig").Channel; +pub const Future = @import("event/future.zig").Future; +pub const Group = @import("event/group.zig").Group; +pub const Lock = @import("event/lock.zig").Lock; +pub const Locked = @import("event/locked.zig").Locked; +pub const RwLock = @import("event/rwlock.zig").RwLock; +pub const RwLocked = @import("event/rwlocked.zig").RwLocked; +pub const Loop = @import("event/loop.zig").Loop; +pub const fs = @import("event/fs.zig"); +pub const net = @import("event/net.zig"); + +test "import event tests" { + _ = @import("event/channel.zig"); + _ = @import("event/fs.zig"); + _ = @import("event/future.zig"); + _ = @import("event/group.zig"); + _ = @import("event/lock.zig"); + _ = @import("event/locked.zig"); + _ = @import("event/rwlock.zig"); + _ = @import("event/rwlocked.zig"); + _ = @import("event/loop.zig"); + _ = @import("event/net.zig"); +} diff --git a/lib/std/event/channel.zig b/lib/std/event/channel.zig new file mode 100644 index 0000000000..2f211d21e2 --- /dev/null +++ b/lib/std/event/channel.zig @@ -0,0 +1,349 @@ +const std = @import("../std.zig"); +const builtin = @import("builtin"); +const assert = std.debug.assert; +const testing = std.testing; +const Loop = std.event.Loop; + +/// many producer, many consumer, thread-safe, runtime configurable buffer size +/// when buffer is empty, consumers suspend and are resumed by producers +/// when buffer is full, producers suspend and are resumed by consumers +pub fn Channel(comptime T: type) type { + return struct { + loop: *Loop, + + getters: std.atomic.Queue(GetNode), + or_null_queue: std.atomic.Queue(*std.atomic.Queue(GetNode).Node), + putters: std.atomic.Queue(PutNode), + get_count: usize, + put_count: usize, + dispatch_lock: u8, // TODO make this a bool + need_dispatch: u8, // TODO make this a bool + + // simple fixed size ring buffer + buffer_nodes: []T, + buffer_index: usize, + buffer_len: usize, + + const SelfChannel = @This(); + const GetNode = struct { + tick_node: *Loop.NextTickNode, + data: Data, + + const Data = union(enum) { + Normal: Normal, + OrNull: OrNull, + }; + + const Normal = struct { + ptr: *T, + }; + + const OrNull = struct { + ptr: *?T, + or_null: *std.atomic.Queue(*std.atomic.Queue(GetNode).Node).Node, + }; + }; + const PutNode = struct { + data: T, + tick_node: *Loop.NextTickNode, + }; + + /// call destroy when done + pub fn create(loop: *Loop, capacity: usize) !*SelfChannel { + const buffer_nodes = try loop.allocator.alloc(T, capacity); + errdefer loop.allocator.free(buffer_nodes); + + const self = try loop.allocator.create(SelfChannel); + self.* = SelfChannel{ + .loop = loop, + .buffer_len = 0, + .buffer_nodes = buffer_nodes, + .buffer_index = 0, + .dispatch_lock = 0, + .need_dispatch = 0, + .getters = std.atomic.Queue(GetNode).init(), + .putters = std.atomic.Queue(PutNode).init(), + .or_null_queue = std.atomic.Queue(*std.atomic.Queue(GetNode).Node).init(), + .get_count = 0, + .put_count = 0, + }; + errdefer loop.allocator.destroy(self); + + return self; + } + + /// must be called when all calls to put and get have suspended and no more calls occur + pub fn destroy(self: *SelfChannel) void { + while (self.getters.get()) |get_node| { + resume get_node.data.tick_node.data; + } + while (self.putters.get()) |put_node| { + resume put_node.data.tick_node.data; + } + self.loop.allocator.free(self.buffer_nodes); + self.loop.allocator.destroy(self); + } + + /// puts a data item in the channel. The function returns when the value has been added to the + /// buffer, or in the case of a zero size buffer, when the item has been retrieved by a getter. + /// Or when the channel is destroyed. + pub fn put(self: *SelfChannel, data: T) void { + var my_tick_node = Loop.NextTickNode.init(@frame()); + var queue_node = std.atomic.Queue(PutNode).Node.init(PutNode{ + .tick_node = &my_tick_node, + .data = data, + }); + + // TODO test canceling a put() + errdefer { + _ = @atomicRmw(usize, &self.put_count, .Sub, 1, .SeqCst); + const need_dispatch = !self.putters.remove(&queue_node); + self.loop.cancelOnNextTick(&my_tick_node); + if (need_dispatch) { + // oops we made the put_count incorrect for a period of time. fix by dispatching. + _ = @atomicRmw(usize, &self.put_count, .Add, 1, .SeqCst); + self.dispatch(); + } + } + suspend { + self.putters.put(&queue_node); + _ = @atomicRmw(usize, &self.put_count, .Add, 1, .SeqCst); + + self.dispatch(); + } + } + + /// await this function to get an item from the channel. If the buffer is empty, the frame will + /// complete when the next item is put in the channel. + pub async fn get(self: *SelfChannel) T { + // TODO https://github.com/ziglang/zig/issues/2765 + var result: T = undefined; + var my_tick_node = Loop.NextTickNode.init(@frame()); + var queue_node = std.atomic.Queue(GetNode).Node.init(GetNode{ + .tick_node = &my_tick_node, + .data = GetNode.Data{ + .Normal = GetNode.Normal{ .ptr = &result }, + }, + }); + + // TODO test canceling a get() + errdefer { + _ = @atomicRmw(usize, &self.get_count, .Sub, 1, .SeqCst); + const need_dispatch = !self.getters.remove(&queue_node); + self.loop.cancelOnNextTick(&my_tick_node); + if (need_dispatch) { + // oops we made the get_count incorrect for a period of time. fix by dispatching. + _ = @atomicRmw(usize, &self.get_count, .Add, 1, .SeqCst); + self.dispatch(); + } + } + + suspend { + self.getters.put(&queue_node); + _ = @atomicRmw(usize, &self.get_count, .Add, 1, .SeqCst); + + self.dispatch(); + } + return result; + } + + //pub async fn select(comptime EnumUnion: type, channels: ...) EnumUnion { + // assert(@memberCount(EnumUnion) == channels.len); // enum union and channels mismatch + // assert(channels.len != 0); // enum unions cannot have 0 fields + // if (channels.len == 1) { + // const result = await (async channels[0].get() catch unreachable); + // return @unionInit(EnumUnion, @memberName(EnumUnion, 0), result); + // } + //} + + /// Await this function to get an item from the channel. If the buffer is empty and there are no + /// puts waiting, this returns null. + /// Await is necessary for locking purposes. The function will be resumed after checking the channel + /// for data and will not wait for data to be available. + pub async fn getOrNull(self: *SelfChannel) ?T { + // TODO integrate this function with named return values + // so we can get rid of this extra result copy + var result: ?T = null; + var my_tick_node = Loop.NextTickNode.init(@frame()); + var or_null_node = std.atomic.Queue(*std.atomic.Queue(GetNode).Node).Node.init(undefined); + var queue_node = std.atomic.Queue(GetNode).Node.init(GetNode{ + .tick_node = &my_tick_node, + .data = GetNode.Data{ + .OrNull = GetNode.OrNull{ + .ptr = &result, + .or_null = &or_null_node, + }, + }, + }); + or_null_node.data = &queue_node; + + // TODO test canceling getOrNull + errdefer { + _ = self.or_null_queue.remove(&or_null_node); + _ = @atomicRmw(usize, &self.get_count, .Sub, 1, .SeqCst); + const need_dispatch = !self.getters.remove(&queue_node); + self.loop.cancelOnNextTick(&my_tick_node); + if (need_dispatch) { + // oops we made the get_count incorrect for a period of time. fix by dispatching. + _ = @atomicRmw(usize, &self.get_count, .Add, 1, .SeqCst); + self.dispatch(); + } + } + + suspend { + self.getters.put(&queue_node); + _ = @atomicRmw(usize, &self.get_count, .Add, 1, .SeqCst); + self.or_null_queue.put(&or_null_node); + + self.dispatch(); + } + return result; + } + + fn dispatch(self: *SelfChannel) void { + // set the "need dispatch" flag + _ = @atomicRmw(u8, &self.need_dispatch, .Xchg, 1, .SeqCst); + + lock: while (true) { + // set the lock flag + const prev_lock = @atomicRmw(u8, &self.dispatch_lock, .Xchg, 1, .SeqCst); + if (prev_lock != 0) return; + + // clear the need_dispatch flag since we're about to do it + _ = @atomicRmw(u8, &self.need_dispatch, .Xchg, 0, .SeqCst); + + while (true) { + one_dispatch: { + // later we correct these extra subtractions + var get_count = @atomicRmw(usize, &self.get_count, .Sub, 1, .SeqCst); + var put_count = @atomicRmw(usize, &self.put_count, .Sub, 1, .SeqCst); + + // transfer self.buffer to self.getters + while (self.buffer_len != 0) { + if (get_count == 0) break :one_dispatch; + + const get_node = &self.getters.get().?.data; + switch (get_node.data) { + GetNode.Data.Normal => |info| { + info.ptr.* = self.buffer_nodes[self.buffer_index -% self.buffer_len]; + }, + GetNode.Data.OrNull => |info| { + _ = self.or_null_queue.remove(info.or_null); + info.ptr.* = self.buffer_nodes[self.buffer_index -% self.buffer_len]; + }, + } + self.loop.onNextTick(get_node.tick_node); + self.buffer_len -= 1; + + get_count = @atomicRmw(usize, &self.get_count, .Sub, 1, .SeqCst); + } + + // direct transfer self.putters to self.getters + while (get_count != 0 and put_count != 0) { + const get_node = &self.getters.get().?.data; + const put_node = &self.putters.get().?.data; + + switch (get_node.data) { + GetNode.Data.Normal => |info| { + info.ptr.* = put_node.data; + }, + GetNode.Data.OrNull => |info| { + _ = self.or_null_queue.remove(info.or_null); + info.ptr.* = put_node.data; + }, + } + self.loop.onNextTick(get_node.tick_node); + self.loop.onNextTick(put_node.tick_node); + + get_count = @atomicRmw(usize, &self.get_count, .Sub, 1, .SeqCst); + put_count = @atomicRmw(usize, &self.put_count, .Sub, 1, .SeqCst); + } + + // transfer self.putters to self.buffer + while (self.buffer_len != self.buffer_nodes.len and put_count != 0) { + const put_node = &self.putters.get().?.data; + + self.buffer_nodes[self.buffer_index] = put_node.data; + self.loop.onNextTick(put_node.tick_node); + self.buffer_index +%= 1; + self.buffer_len += 1; + + put_count = @atomicRmw(usize, &self.put_count, .Sub, 1, .SeqCst); + } + } + + // undo the extra subtractions + _ = @atomicRmw(usize, &self.get_count, .Add, 1, .SeqCst); + _ = @atomicRmw(usize, &self.put_count, .Add, 1, .SeqCst); + + // All the "get or null" functions should resume now. + var remove_count: usize = 0; + while (self.or_null_queue.get()) |or_null_node| { + remove_count += @boolToInt(self.getters.remove(or_null_node.data)); + self.loop.onNextTick(or_null_node.data.data.tick_node); + } + if (remove_count != 0) { + _ = @atomicRmw(usize, &self.get_count, .Sub, remove_count, .SeqCst); + } + + // clear need-dispatch flag + const need_dispatch = @atomicRmw(u8, &self.need_dispatch, .Xchg, 0, .SeqCst); + if (need_dispatch != 0) continue; + + const my_lock = @atomicRmw(u8, &self.dispatch_lock, .Xchg, 0, .SeqCst); + assert(my_lock != 0); + + // we have to check again now that we unlocked + if (@atomicLoad(u8, &self.need_dispatch, .SeqCst) != 0) continue :lock; + + return; + } + } + } + }; +} + +test "std.event.Channel" { + // https://github.com/ziglang/zig/issues/1908 + if (builtin.single_threaded) return error.SkipZigTest; + // https://github.com/ziglang/zig/issues/3251 + if (std.os.freebsd.is_the_target) return error.SkipZigTest; + + var loop: Loop = undefined; + // TODO make a multi threaded test + try loop.initSingleThreaded(std.heap.direct_allocator); + defer loop.deinit(); + + const channel = try Channel(i32).create(&loop, 0); + defer channel.destroy(); + + const handle = async testChannelGetter(&loop, channel); + const putter = async testChannelPutter(channel); + + loop.run(); +} + +async fn testChannelGetter(loop: *Loop, channel: *Channel(i32)) void { + const value1 = channel.get(); + testing.expect(value1 == 1234); + + const value2 = channel.get(); + testing.expect(value2 == 4567); + + const value3 = channel.getOrNull(); + testing.expect(value3 == null); + + var last_put = async testPut(channel, 4444); + const value4 = channel.getOrNull(); + testing.expect(value4.? == 4444); + await last_put; +} + +async fn testChannelPutter(channel: *Channel(i32)) void { + channel.put(1234); + channel.put(4567); +} + +async fn testPut(channel: *Channel(i32), value: i32) void { + channel.put(value); +} diff --git a/lib/std/event/fs.zig b/lib/std/event/fs.zig new file mode 100644 index 0000000000..4490e1deae --- /dev/null +++ b/lib/std/event/fs.zig @@ -0,0 +1,1431 @@ +const builtin = @import("builtin"); +const std = @import("../std.zig"); +const event = std.event; +const assert = std.debug.assert; +const testing = std.testing; +const os = std.os; +const mem = std.mem; +const windows = os.windows; +const Loop = event.Loop; +const fd_t = os.fd_t; +const File = std.fs.File; + +pub const RequestNode = std.atomic.Queue(Request).Node; + +pub const Request = struct { + msg: Msg, + finish: Finish, + + pub const Finish = union(enum) { + TickNode: Loop.NextTickNode, + DeallocCloseOperation: *CloseOperation, + NoAction, + }; + + pub const Msg = union(enum) { + WriteV: WriteV, + PWriteV: PWriteV, + PReadV: PReadV, + Open: Open, + Close: Close, + WriteFile: WriteFile, + End, // special - means the fs thread should exit + + pub const WriteV = struct { + fd: fd_t, + iov: []const os.iovec_const, + result: Error!void, + + pub const Error = os.WriteError; + }; + + pub const PWriteV = struct { + fd: fd_t, + iov: []const os.iovec_const, + offset: usize, + result: Error!void, + + pub const Error = os.WriteError; + }; + + pub const PReadV = struct { + fd: fd_t, + iov: []const os.iovec, + offset: usize, + result: Error!usize, + + pub const Error = os.ReadError; + }; + + pub const Open = struct { + /// must be null terminated. TODO https://github.com/ziglang/zig/issues/265 + path: []const u8, + flags: u32, + mode: File.Mode, + result: Error!fd_t, + + pub const Error = File.OpenError; + }; + + pub const WriteFile = struct { + /// must be null terminated. TODO https://github.com/ziglang/zig/issues/265 + path: []const u8, + contents: []const u8, + mode: File.Mode, + result: Error!void, + + pub const Error = File.OpenError || File.WriteError; + }; + + pub const Close = struct { + fd: fd_t, + }; + }; +}; + +pub const PWriteVError = error{OutOfMemory} || File.WriteError; + +/// data - just the inner references - must live until pwritev frame completes. +pub fn pwritev(loop: *Loop, fd: fd_t, data: []const []const u8, offset: usize) PWriteVError!void { + switch (builtin.os) { + .macosx, + .linux, + .freebsd, + .netbsd, + => { + const iovecs = try loop.allocator.alloc(os.iovec_const, data.len); + defer loop.allocator.free(iovecs); + + for (data) |buf, i| { + iovecs[i] = os.iovec_const{ + .iov_base = buf.ptr, + .iov_len = buf.len, + }; + } + + return pwritevPosix(loop, fd, iovecs, offset); + }, + .windows => { + const data_copy = try std.mem.dupe(loop.allocator, []const u8, data); + defer loop.allocator.free(data_copy); + return pwritevWindows(loop, fd, data, offset); + }, + else => @compileError("Unsupported OS"), + } +} + +/// data must outlive the returned frame +pub fn pwritevWindows(loop: *Loop, fd: fd_t, data: []const []const u8, offset: usize) os.WindowsWriteError!void { + if (data.len == 0) return; + if (data.len == 1) return pwriteWindows(loop, fd, data[0], offset); + + // TODO do these in parallel + var off = offset; + for (data) |buf| { + try pwriteWindows(loop, fd, buf, off); + off += buf.len; + } +} + +pub fn pwriteWindows(loop: *Loop, fd: fd_t, data: []const u8, offset: u64) os.WindowsWriteError!void { + var resume_node = Loop.ResumeNode.Basic{ + .base = Loop.ResumeNode{ + .id = Loop.ResumeNode.Id.Basic, + .handle = @frame(), + .overlapped = windows.OVERLAPPED{ + .Internal = 0, + .InternalHigh = 0, + .Offset = @truncate(u32, offset), + .OffsetHigh = @truncate(u32, offset >> 32), + .hEvent = null, + }, + }, + }; + // TODO only call create io completion port once per fd + _ = windows.CreateIoCompletionPort(fd, loop.os_data.io_port, undefined, undefined); + loop.beginOneEvent(); + errdefer loop.finishOneEvent(); + + errdefer { + _ = windows.kernel32.CancelIoEx(fd, &resume_node.base.overlapped); + } + suspend { + _ = windows.kernel32.WriteFile(fd, data.ptr, @intCast(windows.DWORD, data.len), null, &resume_node.base.overlapped); + } + var bytes_transferred: windows.DWORD = undefined; + if (windows.kernel32.GetOverlappedResult(fd, &resume_node.base.overlapped, &bytes_transferred, windows.FALSE) == 0) { + switch (windows.kernel32.GetLastError()) { + windows.ERROR.IO_PENDING => unreachable, + windows.ERROR.INVALID_USER_BUFFER => return error.SystemResources, + windows.ERROR.NOT_ENOUGH_MEMORY => return error.SystemResources, + windows.ERROR.OPERATION_ABORTED => return error.OperationAborted, + windows.ERROR.NOT_ENOUGH_QUOTA => return error.SystemResources, + windows.ERROR.BROKEN_PIPE => return error.BrokenPipe, + else => |err| return windows.unexpectedError(err), + } + } +} + +/// iovecs must live until pwritev frame completes. +pub fn pwritevPosix( + loop: *Loop, + fd: fd_t, + iovecs: []const os.iovec_const, + offset: usize, +) os.WriteError!void { + var req_node = RequestNode{ + .prev = null, + .next = null, + .data = Request{ + .msg = Request.Msg{ + .PWriteV = Request.Msg.PWriteV{ + .fd = fd, + .iov = iovecs, + .offset = offset, + .result = undefined, + }, + }, + .finish = Request.Finish{ + .TickNode = Loop.NextTickNode{ + .prev = null, + .next = null, + .data = @frame(), + }, + }, + }, + }; + + errdefer loop.posixFsCancel(&req_node); + + suspend { + loop.posixFsRequest(&req_node); + } + + return req_node.data.msg.PWriteV.result; +} + +/// iovecs must live until pwritev frame completes. +pub fn writevPosix( + loop: *Loop, + fd: fd_t, + iovecs: []const os.iovec_const, +) os.WriteError!void { + var req_node = RequestNode{ + .prev = null, + .next = null, + .data = Request{ + .msg = Request.Msg{ + .WriteV = Request.Msg.WriteV{ + .fd = fd, + .iov = iovecs, + .result = undefined, + }, + }, + .finish = Request.Finish{ + .TickNode = Loop.NextTickNode{ + .prev = null, + .next = null, + .data = @frame(), + }, + }, + }, + }; + + suspend { + loop.posixFsRequest(&req_node); + } + + return req_node.data.msg.WriteV.result; +} + +pub const PReadVError = error{OutOfMemory} || File.ReadError; + +/// data - just the inner references - must live until preadv frame completes. +pub fn preadv(loop: *Loop, fd: fd_t, data: []const []u8, offset: usize) PReadVError!usize { + assert(data.len != 0); + switch (builtin.os) { + .macosx, + .linux, + .freebsd, + .netbsd, + => { + const iovecs = try loop.allocator.alloc(os.iovec, data.len); + defer loop.allocator.free(iovecs); + + for (data) |buf, i| { + iovecs[i] = os.iovec{ + .iov_base = buf.ptr, + .iov_len = buf.len, + }; + } + + return preadvPosix(loop, fd, iovecs, offset); + }, + .windows => { + const data_copy = try std.mem.dupe(loop.allocator, []u8, data); + defer loop.allocator.free(data_copy); + return preadvWindows(loop, fd, data_copy, offset); + }, + else => @compileError("Unsupported OS"), + } +} + +/// data must outlive the returned frame +pub fn preadvWindows(loop: *Loop, fd: fd_t, data: []const []u8, offset: u64) !usize { + assert(data.len != 0); + if (data.len == 1) return preadWindows(loop, fd, data[0], offset); + + // TODO do these in parallel? + var off: usize = 0; + var iov_i: usize = 0; + var inner_off: usize = 0; + while (true) { + const v = data[iov_i]; + const amt_read = try preadWindows(loop, fd, v[inner_off .. v.len - inner_off], offset + off); + off += amt_read; + inner_off += amt_read; + if (inner_off == v.len) { + iov_i += 1; + inner_off = 0; + if (iov_i == data.len) { + return off; + } + } + if (amt_read == 0) return off; // EOF + } +} + +pub fn preadWindows(loop: *Loop, fd: fd_t, data: []u8, offset: u64) !usize { + var resume_node = Loop.ResumeNode.Basic{ + .base = Loop.ResumeNode{ + .id = Loop.ResumeNode.Id.Basic, + .handle = @frame(), + .overlapped = windows.OVERLAPPED{ + .Internal = 0, + .InternalHigh = 0, + .Offset = @truncate(u32, offset), + .OffsetHigh = @truncate(u32, offset >> 32), + .hEvent = null, + }, + }, + }; + // TODO only call create io completion port once per fd + _ = windows.CreateIoCompletionPort(fd, loop.os_data.io_port, undefined, undefined) catch undefined; + loop.beginOneEvent(); + errdefer loop.finishOneEvent(); + + errdefer { + _ = windows.kernel32.CancelIoEx(fd, &resume_node.base.overlapped); + } + suspend { + _ = windows.kernel32.ReadFile(fd, data.ptr, @intCast(windows.DWORD, data.len), null, &resume_node.base.overlapped); + } + var bytes_transferred: windows.DWORD = undefined; + if (windows.kernel32.GetOverlappedResult(fd, &resume_node.base.overlapped, &bytes_transferred, windows.FALSE) == 0) { + switch (windows.kernel32.GetLastError()) { + windows.ERROR.IO_PENDING => unreachable, + windows.ERROR.OPERATION_ABORTED => return error.OperationAborted, + windows.ERROR.BROKEN_PIPE => return error.BrokenPipe, + windows.ERROR.HANDLE_EOF => return usize(bytes_transferred), + else => |err| return windows.unexpectedError(err), + } + } + return usize(bytes_transferred); +} + +/// iovecs must live until preadv frame completes +pub fn preadvPosix( + loop: *Loop, + fd: fd_t, + iovecs: []const os.iovec, + offset: usize, +) os.ReadError!usize { + var req_node = RequestNode{ + .prev = null, + .next = null, + .data = Request{ + .msg = Request.Msg{ + .PReadV = Request.Msg.PReadV{ + .fd = fd, + .iov = iovecs, + .offset = offset, + .result = undefined, + }, + }, + .finish = Request.Finish{ + .TickNode = Loop.NextTickNode{ + .prev = null, + .next = null, + .data = @frame(), + }, + }, + }, + }; + + errdefer loop.posixFsCancel(&req_node); + + suspend { + loop.posixFsRequest(&req_node); + } + + return req_node.data.msg.PReadV.result; +} + +pub fn openPosix( + loop: *Loop, + path: []const u8, + flags: u32, + mode: File.Mode, +) File.OpenError!fd_t { + const path_c = try std.os.toPosixPath(path); + + var req_node = RequestNode{ + .prev = null, + .next = null, + .data = Request{ + .msg = Request.Msg{ + .Open = Request.Msg.Open{ + .path = path_c[0..path.len], + .flags = flags, + .mode = mode, + .result = undefined, + }, + }, + .finish = Request.Finish{ + .TickNode = Loop.NextTickNode{ + .prev = null, + .next = null, + .data = @frame(), + }, + }, + }, + }; + + errdefer loop.posixFsCancel(&req_node); + + suspend { + loop.posixFsRequest(&req_node); + } + + return req_node.data.msg.Open.result; +} + +pub fn openRead(loop: *Loop, path: []const u8) File.OpenError!fd_t { + switch (builtin.os) { + .macosx, .linux, .freebsd, .netbsd => { + const flags = os.O_LARGEFILE | os.O_RDONLY | os.O_CLOEXEC; + return openPosix(loop, path, flags, File.default_mode); + }, + + .windows => return windows.CreateFile( + path, + windows.GENERIC_READ, + windows.FILE_SHARE_READ, + null, + windows.OPEN_EXISTING, + windows.FILE_ATTRIBUTE_NORMAL | windows.FILE_FLAG_OVERLAPPED, + null, + ), + + else => @compileError("Unsupported OS"), + } +} + +/// Creates if does not exist. Truncates the file if it exists. +/// Uses the default mode. +pub fn openWrite(loop: *Loop, path: []const u8) File.OpenError!fd_t { + return openWriteMode(loop, path, File.default_mode); +} + +/// Creates if does not exist. Truncates the file if it exists. +pub fn openWriteMode(loop: *Loop, path: []const u8, mode: File.Mode) File.OpenError!fd_t { + switch (builtin.os) { + .macosx, + .linux, + .freebsd, + .netbsd, + => { + const flags = os.O_LARGEFILE | os.O_WRONLY | os.O_CREAT | os.O_CLOEXEC | os.O_TRUNC; + return openPosix(loop, path, flags, File.default_mode); + }, + .windows => return windows.CreateFile( + path, + windows.GENERIC_WRITE, + windows.FILE_SHARE_WRITE | windows.FILE_SHARE_READ | windows.FILE_SHARE_DELETE, + null, + windows.CREATE_ALWAYS, + windows.FILE_ATTRIBUTE_NORMAL | windows.FILE_FLAG_OVERLAPPED, + null, + ), + else => @compileError("Unsupported OS"), + } +} + +/// Creates if does not exist. Does not truncate. +pub fn openReadWrite( + loop: *Loop, + path: []const u8, + mode: File.Mode, +) File.OpenError!fd_t { + switch (builtin.os) { + .macosx, .linux, .freebsd, .netbsd => { + const flags = os.O_LARGEFILE | os.O_RDWR | os.O_CREAT | os.O_CLOEXEC; + return openPosix(loop, path, flags, mode); + }, + + .windows => return windows.CreateFile( + path, + windows.GENERIC_WRITE | windows.GENERIC_READ, + windows.FILE_SHARE_WRITE | windows.FILE_SHARE_READ | windows.FILE_SHARE_DELETE, + null, + windows.OPEN_ALWAYS, + windows.FILE_ATTRIBUTE_NORMAL | windows.FILE_FLAG_OVERLAPPED, + null, + ), + + else => @compileError("Unsupported OS"), + } +} + +/// This abstraction helps to close file handles in defer expressions +/// without the possibility of failure and without the use of suspend points. +/// Start a `CloseOperation` before opening a file, so that you can defer +/// `CloseOperation.finish`. +/// If you call `setHandle` then finishing will close the fd; otherwise finishing +/// will deallocate the `CloseOperation`. +pub const CloseOperation = struct { + loop: *Loop, + os_data: OsData, + + const OsData = switch (builtin.os) { + .linux, .macosx, .freebsd, .netbsd => OsDataPosix, + + .windows => struct { + handle: ?fd_t, + }, + + else => @compileError("Unsupported OS"), + }; + + const OsDataPosix = struct { + have_fd: bool, + close_req_node: RequestNode, + }; + + pub fn start(loop: *Loop) (error{OutOfMemory}!*CloseOperation) { + const self = try loop.allocator.create(CloseOperation); + self.* = CloseOperation{ + .loop = loop, + .os_data = switch (builtin.os) { + .linux, .macosx, .freebsd, .netbsd => initOsDataPosix(self), + .windows => OsData{ .handle = null }, + else => @compileError("Unsupported OS"), + }, + }; + return self; + } + + fn initOsDataPosix(self: *CloseOperation) OsData { + return OsData{ + .have_fd = false, + .close_req_node = RequestNode{ + .prev = null, + .next = null, + .data = Request{ + .msg = Request.Msg{ + .Close = Request.Msg.Close{ .fd = undefined }, + }, + .finish = Request.Finish{ .DeallocCloseOperation = self }, + }, + }, + }; + } + + /// Defer this after creating. + pub fn finish(self: *CloseOperation) void { + switch (builtin.os) { + .linux, + .macosx, + .freebsd, + .netbsd, + => { + if (self.os_data.have_fd) { + self.loop.posixFsRequest(&self.os_data.close_req_node); + } else { + self.loop.allocator.destroy(self); + } + }, + .windows => { + if (self.os_data.handle) |handle| { + os.close(handle); + } + self.loop.allocator.destroy(self); + }, + else => @compileError("Unsupported OS"), + } + } + + pub fn setHandle(self: *CloseOperation, handle: fd_t) void { + switch (builtin.os) { + .linux, + .macosx, + .freebsd, + .netbsd, + => { + self.os_data.close_req_node.data.msg.Close.fd = handle; + self.os_data.have_fd = true; + }, + .windows => { + self.os_data.handle = handle; + }, + else => @compileError("Unsupported OS"), + } + } + + /// Undo a `setHandle`. + pub fn clearHandle(self: *CloseOperation) void { + switch (builtin.os) { + .linux, + .macosx, + .freebsd, + .netbsd, + => { + self.os_data.have_fd = false; + }, + .windows => { + self.os_data.handle = null; + }, + else => @compileError("Unsupported OS"), + } + } + + pub fn getHandle(self: *CloseOperation) fd_t { + switch (builtin.os) { + .linux, + .macosx, + .freebsd, + .netbsd, + => { + assert(self.os_data.have_fd); + return self.os_data.close_req_node.data.msg.Close.fd; + }, + .windows => { + return self.os_data.handle.?; + }, + else => @compileError("Unsupported OS"), + } + } +}; + +/// contents must remain alive until writeFile completes. +/// TODO make this atomic or provide writeFileAtomic and rename this one to writeFileTruncate +pub fn writeFile(loop: *Loop, path: []const u8, contents: []const u8) !void { + return writeFileMode(loop, path, contents, File.default_mode); +} + +/// contents must remain alive until writeFile completes. +pub fn writeFileMode(loop: *Loop, path: []const u8, contents: []const u8, mode: File.Mode) !void { + switch (builtin.os) { + .linux, + .macosx, + .freebsd, + .netbsd, + => return writeFileModeThread(loop, path, contents, mode), + .windows => return writeFileWindows(loop, path, contents), + else => @compileError("Unsupported OS"), + } +} + +fn writeFileWindows(loop: *Loop, path: []const u8, contents: []const u8) !void { + const handle = try windows.CreateFile( + path, + windows.GENERIC_WRITE, + windows.FILE_SHARE_WRITE | windows.FILE_SHARE_READ | windows.FILE_SHARE_DELETE, + null, + windows.CREATE_ALWAYS, + windows.FILE_ATTRIBUTE_NORMAL | windows.FILE_FLAG_OVERLAPPED, + null, + ); + defer os.close(handle); + + try pwriteWindows(loop, handle, contents, 0); +} + +fn writeFileModeThread(loop: *Loop, path: []const u8, contents: []const u8, mode: File.Mode) !void { + const path_with_null = try std.cstr.addNullByte(loop.allocator, path); + defer loop.allocator.free(path_with_null); + + var req_node = RequestNode{ + .prev = null, + .next = null, + .data = Request{ + .msg = Request.Msg{ + .WriteFile = Request.Msg.WriteFile{ + .path = path_with_null[0..path.len], + .contents = contents, + .mode = mode, + .result = undefined, + }, + }, + .finish = Request.Finish{ + .TickNode = Loop.NextTickNode{ + .prev = null, + .next = null, + .data = @frame(), + }, + }, + }, + }; + + errdefer loop.posixFsCancel(&req_node); + + suspend { + loop.posixFsRequest(&req_node); + } + + return req_node.data.msg.WriteFile.result; +} + +/// The frame resumes when the last data has been confirmed written, but before the file handle +/// is closed. +/// Caller owns returned memory. +pub fn readFile(loop: *Loop, file_path: []const u8, max_size: usize) ![]u8 { + var close_op = try CloseOperation.start(loop); + defer close_op.finish(); + + const fd = try openRead(loop, file_path); + close_op.setHandle(fd); + + var list = std.ArrayList(u8).init(loop.allocator); + defer list.deinit(); + + while (true) { + try list.ensureCapacity(list.len + mem.page_size); + const buf = list.items[list.len..]; + const buf_array = [_][]u8{buf}; + const amt = try preadv(loop, fd, buf_array, list.len); + list.len += amt; + if (list.len > max_size) { + return error.FileTooBig; + } + if (amt < buf.len) { + return list.toOwnedSlice(); + } + } +} + +pub const WatchEventId = enum { + CloseWrite, + Delete, +}; + +fn eqlString(a: []const u16, b: []const u16) bool { + if (a.len != b.len) return false; + if (a.ptr == b.ptr) return true; + return mem.compare(u16, a, b) == .Equal; +} + +fn hashString(s: []const u16) u32 { + return @truncate(u32, std.hash.Wyhash.hash(0, @sliceToBytes(s))); +} + +//pub const WatchEventError = error{ +// UserResourceLimitReached, +// SystemResources, +// AccessDenied, +// Unexpected, // TODO remove this possibility +//}; +// +//pub fn Watch(comptime V: type) type { +// return struct { +// channel: *event.Channel(Event.Error!Event), +// os_data: OsData, +// +// const OsData = switch (builtin.os) { +// .macosx, .freebsd, .netbsd => struct { +// file_table: FileTable, +// table_lock: event.Lock, +// +// const FileTable = std.StringHashmap(*Put); +// const Put = struct { +// putter: anyframe, +// value_ptr: *V, +// }; +// }, +// +// .linux => LinuxOsData, +// .windows => WindowsOsData, +// +// else => @compileError("Unsupported OS"), +// }; +// +// const WindowsOsData = struct { +// table_lock: event.Lock, +// dir_table: DirTable, +// all_putters: std.atomic.Queue(anyframe), +// ref_count: std.atomic.Int(usize), +// +// const DirTable = std.StringHashMap(*Dir); +// const FileTable = std.HashMap([]const u16, V, hashString, eqlString); +// +// const Dir = struct { +// putter: anyframe, +// file_table: FileTable, +// table_lock: event.Lock, +// }; +// }; +// +// const LinuxOsData = struct { +// putter: anyframe, +// inotify_fd: i32, +// wd_table: WdTable, +// table_lock: event.Lock, +// +// const WdTable = std.AutoHashMap(i32, Dir); +// const FileTable = std.StringHashMap(V); +// +// const Dir = struct { +// dirname: []const u8, +// file_table: FileTable, +// }; +// }; +// +// const FileToHandle = std.StringHashMap(anyframe); +// +// const Self = @This(); +// +// pub const Event = struct { +// id: Id, +// data: V, +// +// pub const Id = WatchEventId; +// pub const Error = WatchEventError; +// }; +// +// pub fn create(loop: *Loop, event_buf_count: usize) !*Self { +// const channel = try event.Channel(Self.Event.Error!Self.Event).create(loop, event_buf_count); +// errdefer channel.destroy(); +// +// switch (builtin.os) { +// .linux => { +// const inotify_fd = try os.inotify_init1(os.linux.IN_NONBLOCK | os.linux.IN_CLOEXEC); +// errdefer os.close(inotify_fd); +// +// var result: *Self = undefined; +// _ = try async linuxEventPutter(inotify_fd, channel, &result); +// return result; +// }, +// +// .windows => { +// const self = try loop.allocator.create(Self); +// errdefer loop.allocator.destroy(self); +// self.* = Self{ +// .channel = channel, +// .os_data = OsData{ +// .table_lock = event.Lock.init(loop), +// .dir_table = OsData.DirTable.init(loop.allocator), +// .ref_count = std.atomic.Int(usize).init(1), +// .all_putters = std.atomic.Queue(anyframe).init(), +// }, +// }; +// return self; +// }, +// +// .macosx, .freebsd, .netbsd => { +// const self = try loop.allocator.create(Self); +// errdefer loop.allocator.destroy(self); +// +// self.* = Self{ +// .channel = channel, +// .os_data = OsData{ +// .table_lock = event.Lock.init(loop), +// .file_table = OsData.FileTable.init(loop.allocator), +// }, +// }; +// return self; +// }, +// else => @compileError("Unsupported OS"), +// } +// } +// +// /// All addFile calls and removeFile calls must have completed. +// pub fn destroy(self: *Self) void { +// switch (builtin.os) { +// .macosx, .freebsd, .netbsd => { +// // TODO we need to cancel the frames before destroying the lock +// self.os_data.table_lock.deinit(); +// var it = self.os_data.file_table.iterator(); +// while (it.next()) |entry| { +// cancel entry.value.putter; +// self.channel.loop.allocator.free(entry.key); +// } +// self.channel.destroy(); +// }, +// .linux => cancel self.os_data.putter, +// .windows => { +// while (self.os_data.all_putters.get()) |putter_node| { +// cancel putter_node.data; +// } +// self.deref(); +// }, +// else => @compileError("Unsupported OS"), +// } +// } +// +// fn ref(self: *Self) void { +// _ = self.os_data.ref_count.incr(); +// } +// +// fn deref(self: *Self) void { +// if (self.os_data.ref_count.decr() == 1) { +// const allocator = self.channel.loop.allocator; +// self.os_data.table_lock.deinit(); +// var it = self.os_data.dir_table.iterator(); +// while (it.next()) |entry| { +// allocator.free(entry.key); +// allocator.destroy(entry.value); +// } +// self.os_data.dir_table.deinit(); +// self.channel.destroy(); +// allocator.destroy(self); +// } +// } +// +// pub async fn addFile(self: *Self, file_path: []const u8, value: V) !?V { +// switch (builtin.os) { +// .macosx, .freebsd, .netbsd => return await (async addFileKEvent(self, file_path, value) catch unreachable), +// .linux => return await (async addFileLinux(self, file_path, value) catch unreachable), +// .windows => return await (async addFileWindows(self, file_path, value) catch unreachable), +// else => @compileError("Unsupported OS"), +// } +// } +// +// async fn addFileKEvent(self: *Self, file_path: []const u8, value: V) !?V { +// const resolved_path = try std.fs.path.resolve(self.channel.loop.allocator, [_][]const u8{file_path}); +// var resolved_path_consumed = false; +// defer if (!resolved_path_consumed) self.channel.loop.allocator.free(resolved_path); +// +// var close_op = try CloseOperation.start(self.channel.loop); +// var close_op_consumed = false; +// defer if (!close_op_consumed) close_op.finish(); +// +// const flags = if (os.darwin.is_the_target) os.O_SYMLINK | os.O_EVTONLY else 0; +// const mode = 0; +// const fd = try await (async openPosix(self.channel.loop, resolved_path, flags, mode) catch unreachable); +// close_op.setHandle(fd); +// +// var put_data: *OsData.Put = undefined; +// const putter = try async self.kqPutEvents(close_op, value, &put_data); +// close_op_consumed = true; +// errdefer cancel putter; +// +// const result = blk: { +// const held = await (async self.os_data.table_lock.acquire() catch unreachable); +// defer held.release(); +// +// const gop = try self.os_data.file_table.getOrPut(resolved_path); +// if (gop.found_existing) { +// const prev_value = gop.kv.value.value_ptr.*; +// cancel gop.kv.value.putter; +// gop.kv.value = put_data; +// break :blk prev_value; +// } else { +// resolved_path_consumed = true; +// gop.kv.value = put_data; +// break :blk null; +// } +// }; +// +// return result; +// } +// +// async fn kqPutEvents(self: *Self, close_op: *CloseOperation, value: V, out_put: **OsData.Put) void { +// var value_copy = value; +// var put = OsData.Put{ +// .putter = @frame(), +// .value_ptr = &value_copy, +// }; +// out_put.* = &put; +// self.channel.loop.beginOneEvent(); +// +// defer { +// close_op.finish(); +// self.channel.loop.finishOneEvent(); +// } +// +// while (true) { +// if (await (async self.channel.loop.bsdWaitKev( +// @intCast(usize, close_op.getHandle()), +// os.EVFILT_VNODE, +// os.NOTE_WRITE | os.NOTE_DELETE, +// ) catch unreachable)) |kev| { +// // TODO handle EV_ERROR +// if (kev.fflags & os.NOTE_DELETE != 0) { +// await (async self.channel.put(Self.Event{ +// .id = Event.Id.Delete, +// .data = value_copy, +// }) catch unreachable); +// } else if (kev.fflags & os.NOTE_WRITE != 0) { +// await (async self.channel.put(Self.Event{ +// .id = Event.Id.CloseWrite, +// .data = value_copy, +// }) catch unreachable); +// } +// } else |err| switch (err) { +// error.EventNotFound => unreachable, +// error.ProcessNotFound => unreachable, +// error.Overflow => unreachable, +// error.AccessDenied, error.SystemResources => |casted_err| { +// await (async self.channel.put(casted_err) catch unreachable); +// }, +// } +// } +// } +// +// async fn addFileLinux(self: *Self, file_path: []const u8, value: V) !?V { +// const value_copy = value; +// +// const dirname = std.fs.path.dirname(file_path) orelse "."; +// const dirname_with_null = try std.cstr.addNullByte(self.channel.loop.allocator, dirname); +// var dirname_with_null_consumed = false; +// defer if (!dirname_with_null_consumed) self.channel.loop.allocator.free(dirname_with_null); +// +// const basename = std.fs.path.basename(file_path); +// const basename_with_null = try std.cstr.addNullByte(self.channel.loop.allocator, basename); +// var basename_with_null_consumed = false; +// defer if (!basename_with_null_consumed) self.channel.loop.allocator.free(basename_with_null); +// +// const wd = try os.inotify_add_watchC( +// self.os_data.inotify_fd, +// dirname_with_null.ptr, +// os.linux.IN_CLOSE_WRITE | os.linux.IN_ONLYDIR | os.linux.IN_EXCL_UNLINK, +// ); +// // wd is either a newly created watch or an existing one. +// +// const held = await (async self.os_data.table_lock.acquire() catch unreachable); +// defer held.release(); +// +// const gop = try self.os_data.wd_table.getOrPut(wd); +// if (!gop.found_existing) { +// gop.kv.value = OsData.Dir{ +// .dirname = dirname_with_null, +// .file_table = OsData.FileTable.init(self.channel.loop.allocator), +// }; +// dirname_with_null_consumed = true; +// } +// const dir = &gop.kv.value; +// +// const file_table_gop = try dir.file_table.getOrPut(basename_with_null); +// if (file_table_gop.found_existing) { +// const prev_value = file_table_gop.kv.value; +// file_table_gop.kv.value = value_copy; +// return prev_value; +// } else { +// file_table_gop.kv.value = value_copy; +// basename_with_null_consumed = true; +// return null; +// } +// } +// +// async fn addFileWindows(self: *Self, file_path: []const u8, value: V) !?V { +// const value_copy = value; +// // TODO we might need to convert dirname and basename to canonical file paths ("short"?) +// +// const dirname = try std.mem.dupe(self.channel.loop.allocator, u8, std.fs.path.dirname(file_path) orelse "."); +// var dirname_consumed = false; +// defer if (!dirname_consumed) self.channel.loop.allocator.free(dirname); +// +// const dirname_utf16le = try std.unicode.utf8ToUtf16LeWithNull(self.channel.loop.allocator, dirname); +// defer self.channel.loop.allocator.free(dirname_utf16le); +// +// // TODO https://github.com/ziglang/zig/issues/265 +// const basename = std.fs.path.basename(file_path); +// const basename_utf16le_null = try std.unicode.utf8ToUtf16LeWithNull(self.channel.loop.allocator, basename); +// var basename_utf16le_null_consumed = false; +// defer if (!basename_utf16le_null_consumed) self.channel.loop.allocator.free(basename_utf16le_null); +// const basename_utf16le_no_null = basename_utf16le_null[0 .. basename_utf16le_null.len - 1]; +// +// const dir_handle = try windows.CreateFileW( +// dirname_utf16le.ptr, +// windows.FILE_LIST_DIRECTORY, +// windows.FILE_SHARE_READ | windows.FILE_SHARE_DELETE | windows.FILE_SHARE_WRITE, +// null, +// windows.OPEN_EXISTING, +// windows.FILE_FLAG_BACKUP_SEMANTICS | windows.FILE_FLAG_OVERLAPPED, +// null, +// ); +// var dir_handle_consumed = false; +// defer if (!dir_handle_consumed) windows.CloseHandle(dir_handle); +// +// const held = await (async self.os_data.table_lock.acquire() catch unreachable); +// defer held.release(); +// +// const gop = try self.os_data.dir_table.getOrPut(dirname); +// if (gop.found_existing) { +// const dir = gop.kv.value; +// const held_dir_lock = await (async dir.table_lock.acquire() catch unreachable); +// defer held_dir_lock.release(); +// +// const file_gop = try dir.file_table.getOrPut(basename_utf16le_no_null); +// if (file_gop.found_existing) { +// const prev_value = file_gop.kv.value; +// file_gop.kv.value = value_copy; +// return prev_value; +// } else { +// file_gop.kv.value = value_copy; +// basename_utf16le_null_consumed = true; +// return null; +// } +// } else { +// errdefer _ = self.os_data.dir_table.remove(dirname); +// const dir = try self.channel.loop.allocator.create(OsData.Dir); +// errdefer self.channel.loop.allocator.destroy(dir); +// +// dir.* = OsData.Dir{ +// .file_table = OsData.FileTable.init(self.channel.loop.allocator), +// .table_lock = event.Lock.init(self.channel.loop), +// .putter = undefined, +// }; +// gop.kv.value = dir; +// assert((try dir.file_table.put(basename_utf16le_no_null, value_copy)) == null); +// basename_utf16le_null_consumed = true; +// +// dir.putter = try async self.windowsDirReader(dir_handle, dir); +// dir_handle_consumed = true; +// +// dirname_consumed = true; +// +// return null; +// } +// } +// +// async fn windowsDirReader(self: *Self, dir_handle: windows.HANDLE, dir: *OsData.Dir) void { +// self.ref(); +// defer self.deref(); +// +// defer os.close(dir_handle); +// +// var putter_node = std.atomic.Queue(anyframe).Node{ +// .data = @frame(), +// .prev = null, +// .next = null, +// }; +// self.os_data.all_putters.put(&putter_node); +// defer _ = self.os_data.all_putters.remove(&putter_node); +// +// var resume_node = Loop.ResumeNode.Basic{ +// .base = Loop.ResumeNode{ +// .id = Loop.ResumeNode.Id.Basic, +// .handle = @frame(), +// .overlapped = windows.OVERLAPPED{ +// .Internal = 0, +// .InternalHigh = 0, +// .Offset = 0, +// .OffsetHigh = 0, +// .hEvent = null, +// }, +// }, +// }; +// var event_buf: [4096]u8 align(@alignOf(windows.FILE_NOTIFY_INFORMATION)) = undefined; +// +// // TODO handle this error not in the channel but in the setup +// _ = windows.CreateIoCompletionPort( +// dir_handle, +// self.channel.loop.os_data.io_port, +// undefined, +// undefined, +// ) catch |err| { +// await (async self.channel.put(err) catch unreachable); +// return; +// }; +// +// while (true) { +// { +// // TODO only 1 beginOneEvent for the whole function +// self.channel.loop.beginOneEvent(); +// errdefer self.channel.loop.finishOneEvent(); +// errdefer { +// _ = windows.kernel32.CancelIoEx(dir_handle, &resume_node.base.overlapped); +// } +// suspend { +// _ = windows.kernel32.ReadDirectoryChangesW( +// dir_handle, +// &event_buf, +// @intCast(windows.DWORD, event_buf.len), +// windows.FALSE, // watch subtree +// windows.FILE_NOTIFY_CHANGE_FILE_NAME | windows.FILE_NOTIFY_CHANGE_DIR_NAME | +// windows.FILE_NOTIFY_CHANGE_ATTRIBUTES | windows.FILE_NOTIFY_CHANGE_SIZE | +// windows.FILE_NOTIFY_CHANGE_LAST_WRITE | windows.FILE_NOTIFY_CHANGE_LAST_ACCESS | +// windows.FILE_NOTIFY_CHANGE_CREATION | windows.FILE_NOTIFY_CHANGE_SECURITY, +// null, // number of bytes transferred (unused for async) +// &resume_node.base.overlapped, +// null, // completion routine - unused because we use IOCP +// ); +// } +// } +// var bytes_transferred: windows.DWORD = undefined; +// if (windows.kernel32.GetOverlappedResult(dir_handle, &resume_node.base.overlapped, &bytes_transferred, windows.FALSE) == 0) { +// const err = switch (windows.kernel32.GetLastError()) { +// else => |err| windows.unexpectedError(err), +// }; +// await (async self.channel.put(err) catch unreachable); +// } else { +// // can't use @bytesToSlice because of the special variable length name field +// var ptr = event_buf[0..].ptr; +// const end_ptr = ptr + bytes_transferred; +// var ev: *windows.FILE_NOTIFY_INFORMATION = undefined; +// while (@ptrToInt(ptr) < @ptrToInt(end_ptr)) : (ptr += ev.NextEntryOffset) { +// ev = @ptrCast(*windows.FILE_NOTIFY_INFORMATION, ptr); +// const emit = switch (ev.Action) { +// windows.FILE_ACTION_REMOVED => WatchEventId.Delete, +// windows.FILE_ACTION_MODIFIED => WatchEventId.CloseWrite, +// else => null, +// }; +// if (emit) |id| { +// const basename_utf16le = ([*]u16)(&ev.FileName)[0 .. ev.FileNameLength / 2]; +// const user_value = blk: { +// const held = await (async dir.table_lock.acquire() catch unreachable); +// defer held.release(); +// +// if (dir.file_table.get(basename_utf16le)) |entry| { +// break :blk entry.value; +// } else { +// break :blk null; +// } +// }; +// if (user_value) |v| { +// await (async self.channel.put(Event{ +// .id = id, +// .data = v, +// }) catch unreachable); +// } +// } +// if (ev.NextEntryOffset == 0) break; +// } +// } +// } +// } +// +// pub async fn removeFile(self: *Self, file_path: []const u8) ?V { +// @panic("TODO"); +// } +// +// async fn linuxEventPutter(inotify_fd: i32, channel: *event.Channel(Event.Error!Event), out_watch: **Self) void { +// const loop = channel.loop; +// +// var watch = Self{ +// .channel = channel, +// .os_data = OsData{ +// .putter = @frame(), +// .inotify_fd = inotify_fd, +// .wd_table = OsData.WdTable.init(loop.allocator), +// .table_lock = event.Lock.init(loop), +// }, +// }; +// out_watch.* = &watch; +// +// loop.beginOneEvent(); +// +// defer { +// watch.os_data.table_lock.deinit(); +// var wd_it = watch.os_data.wd_table.iterator(); +// while (wd_it.next()) |wd_entry| { +// var file_it = wd_entry.value.file_table.iterator(); +// while (file_it.next()) |file_entry| { +// loop.allocator.free(file_entry.key); +// } +// loop.allocator.free(wd_entry.value.dirname); +// } +// loop.finishOneEvent(); +// os.close(inotify_fd); +// channel.destroy(); +// } +// +// var event_buf: [4096]u8 align(@alignOf(os.linux.inotify_event)) = undefined; +// +// while (true) { +// const rc = os.linux.read(inotify_fd, &event_buf, event_buf.len); +// const errno = os.linux.getErrno(rc); +// switch (errno) { +// 0 => { +// // can't use @bytesToSlice because of the special variable length name field +// var ptr = event_buf[0..].ptr; +// const end_ptr = ptr + event_buf.len; +// var ev: *os.linux.inotify_event = undefined; +// while (@ptrToInt(ptr) < @ptrToInt(end_ptr)) : (ptr += @sizeOf(os.linux.inotify_event) + ev.len) { +// ev = @ptrCast(*os.linux.inotify_event, ptr); +// if (ev.mask & os.linux.IN_CLOSE_WRITE == os.linux.IN_CLOSE_WRITE) { +// const basename_ptr = ptr + @sizeOf(os.linux.inotify_event); +// const basename_with_null = basename_ptr[0 .. std.mem.len(u8, basename_ptr) + 1]; +// const user_value = blk: { +// const held = await (async watch.os_data.table_lock.acquire() catch unreachable); +// defer held.release(); +// +// const dir = &watch.os_data.wd_table.get(ev.wd).?.value; +// if (dir.file_table.get(basename_with_null)) |entry| { +// break :blk entry.value; +// } else { +// break :blk null; +// } +// }; +// if (user_value) |v| { +// await (async channel.put(Event{ +// .id = WatchEventId.CloseWrite, +// .data = v, +// }) catch unreachable); +// } +// } +// } +// }, +// os.linux.EINTR => continue, +// os.linux.EINVAL => unreachable, +// os.linux.EFAULT => unreachable, +// os.linux.EAGAIN => { +// (await (async loop.linuxWaitFd( +// inotify_fd, +// os.linux.EPOLLET | os.linux.EPOLLIN, +// ) catch unreachable)) catch |err| { +// const transformed_err = switch (err) { +// error.FileDescriptorAlreadyPresentInSet => unreachable, +// error.OperationCausesCircularLoop => unreachable, +// error.FileDescriptorNotRegistered => unreachable, +// error.FileDescriptorIncompatibleWithEpoll => unreachable, +// error.Unexpected => unreachable, +// else => |e| e, +// }; +// await (async channel.put(transformed_err) catch unreachable); +// }; +// }, +// else => unreachable, +// } +// } +// } +// }; +//} + +const test_tmp_dir = "std_event_fs_test"; + +// TODO this test is disabled until the async function rewrite is finished. +//test "write a file, watch it, write it again" { +// return error.SkipZigTest; +// const allocator = std.heap.direct_allocator; +// +// // TODO move this into event loop too +// try os.makePath(allocator, test_tmp_dir); +// defer os.deleteTree(allocator, test_tmp_dir) catch {}; +// +// var loop: Loop = undefined; +// try loop.initMultiThreaded(allocator); +// defer loop.deinit(); +// +// var result: anyerror!void = error.ResultNeverWritten; +// const handle = try async testFsWatchCantFail(&loop, &result); +// defer cancel handle; +// +// loop.run(); +// return result; +//} + +fn testFsWatchCantFail(loop: *Loop, result: *(anyerror!void)) void { + result.* = testFsWatch(loop); +} + +fn testFsWatch(loop: *Loop) !void { + const file_path = try std.fs.path.join(loop.allocator, [][]const u8{ test_tmp_dir, "file.txt" }); + defer loop.allocator.free(file_path); + + const contents = + \\line 1 + \\line 2 + ; + const line2_offset = 7; + + // first just write then read the file + try writeFile(loop, file_path, contents); + + const read_contents = try readFile(loop, file_path, 1024 * 1024); + testing.expectEqualSlices(u8, contents, read_contents); + + // now watch the file + var watch = try Watch(void).create(loop, 0); + defer watch.destroy(); + + testing.expect((try watch.addFile(file_path, {})) == null); + + const ev = async watch.channel.get(); + var ev_consumed = false; + defer if (!ev_consumed) await ev; + + // overwrite line 2 + const fd = try await openReadWrite(loop, file_path, File.default_mode); + { + defer os.close(fd); + + try pwritev(loop, fd, []const []const u8{"lorem ipsum"}, line2_offset); + } + + ev_consumed = true; + switch ((try await ev).id) { + WatchEventId.CloseWrite => {}, + WatchEventId.Delete => @panic("wrong event"), + } + const contents_updated = try readFile(loop, file_path, 1024 * 1024); + testing.expectEqualSlices(u8, + \\line 1 + \\lorem ipsum + , contents_updated); + + // TODO test deleting the file and then re-adding it. we should get events for both +} + +pub const OutStream = struct { + fd: fd_t, + stream: Stream, + loop: *Loop, + offset: usize, + + pub const Error = File.WriteError; + pub const Stream = event.io.OutStream(Error); + + pub fn init(loop: *Loop, fd: fd_t, offset: usize) OutStream { + return OutStream{ + .fd = fd, + .loop = loop, + .offset = offset, + .stream = Stream{ .writeFn = writeFn }, + }; + } + + fn writeFn(out_stream: *Stream, bytes: []const u8) Error!void { + const self = @fieldParentPtr(OutStream, "stream", out_stream); + const offset = self.offset; + self.offset += bytes.len; + return pwritev(self.loop, self.fd, [][]const u8{bytes}, offset); + } +}; + +pub const InStream = struct { + fd: fd_t, + stream: Stream, + loop: *Loop, + offset: usize, + + pub const Error = PReadVError; // TODO make this not have OutOfMemory + pub const Stream = event.io.InStream(Error); + + pub fn init(loop: *Loop, fd: fd_t, offset: usize) InStream { + return InStream{ + .fd = fd, + .loop = loop, + .offset = offset, + .stream = Stream{ .readFn = readFn }, + }; + } + + fn readFn(in_stream: *Stream, bytes: []u8) Error!usize { + const self = @fieldParentPtr(InStream, "stream", in_stream); + const amt = try preadv(self.loop, self.fd, [][]u8{bytes}, self.offset); + self.offset += amt; + return amt; + } +}; diff --git a/lib/std/event/future.zig b/lib/std/event/future.zig new file mode 100644 index 0000000000..1e3508de41 --- /dev/null +++ b/lib/std/event/future.zig @@ -0,0 +1,121 @@ +const std = @import("../std.zig"); +const assert = std.debug.assert; +const testing = std.testing; +const builtin = @import("builtin"); +const Lock = std.event.Lock; +const Loop = std.event.Loop; + +/// This is a value that starts out unavailable, until resolve() is called +/// While it is unavailable, functions suspend when they try to get() it, +/// and then are resumed when resolve() is called. +/// At this point the value remains forever available, and another resolve() is not allowed. +pub fn Future(comptime T: type) type { + return struct { + lock: Lock, + data: T, + + /// TODO make this an enum + /// 0 - not started + /// 1 - started + /// 2 - finished + available: u8, + + const Self = @This(); + const Queue = std.atomic.Queue(anyframe); + + pub fn init(loop: *Loop) Self { + return Self{ + .lock = Lock.initLocked(loop), + .available = 0, + .data = undefined, + }; + } + + /// Obtain the value. If it's not available, wait until it becomes + /// available. + /// Thread-safe. + pub async fn get(self: *Self) *T { + if (@atomicLoad(u8, &self.available, .SeqCst) == 2) { + return &self.data; + } + const held = self.lock.acquire(); + held.release(); + + return &self.data; + } + + /// Gets the data without waiting for it. If it's available, a pointer is + /// returned. Otherwise, null is returned. + pub fn getOrNull(self: *Self) ?*T { + if (@atomicLoad(u8, &self.available, .SeqCst) == 2) { + return &self.data; + } else { + return null; + } + } + + /// If someone else has started working on the data, wait for them to complete + /// and return a pointer to the data. Otherwise, return null, and the caller + /// should start working on the data. + /// It's not required to call start() before resolve() but it can be useful since + /// this method is thread-safe. + pub async fn start(self: *Self) ?*T { + const state = @cmpxchgStrong(u8, &self.available, 0, 1, .SeqCst, .SeqCst) orelse return null; + switch (state) { + 1 => { + const held = self.lock.acquire(); + held.release(); + return &self.data; + }, + 2 => return &self.data, + else => unreachable, + } + } + + /// Make the data become available. May be called only once. + /// Before calling this, modify the `data` property. + pub fn resolve(self: *Self) void { + const prev = @atomicRmw(u8, &self.available, .Xchg, 2, .SeqCst); + assert(prev == 0 or prev == 1); // resolve() called twice + Lock.Held.release(Lock.Held{ .lock = &self.lock }); + } + }; +} + +test "std.event.Future" { + // https://github.com/ziglang/zig/issues/1908 + if (builtin.single_threaded) return error.SkipZigTest; + // https://github.com/ziglang/zig/issues/3251 + if (std.os.freebsd.is_the_target) return error.SkipZigTest; + + const allocator = std.heap.direct_allocator; + + var loop: Loop = undefined; + try loop.initMultiThreaded(allocator); + defer loop.deinit(); + + const handle = async testFuture(&loop); + + loop.run(); +} + +fn testFuture(loop: *Loop) void { + var future = Future(i32).init(loop); + + var a = async waitOnFuture(&future); + var b = async waitOnFuture(&future); + resolveFuture(&future); + + const result = (await a) + (await b); + + testing.expect(result == 12); +} + +fn waitOnFuture(future: *Future(i32)) i32 { + return future.get().*; +} + +fn resolveFuture(future: *Future(i32)) void { + future.data = 6; + future.resolve(); +} diff --git a/lib/std/event/group.zig b/lib/std/event/group.zig new file mode 100644 index 0000000000..f96b938f80 --- /dev/null +++ b/lib/std/event/group.zig @@ -0,0 +1,131 @@ +const std = @import("../std.zig"); +const builtin = @import("builtin"); +const Lock = std.event.Lock; +const Loop = std.event.Loop; +const testing = std.testing; + +/// ReturnType must be `void` or `E!void` +pub fn Group(comptime ReturnType: type) type { + return struct { + frame_stack: Stack, + alloc_stack: Stack, + lock: Lock, + + const Self = @This(); + + const Error = switch (@typeInfo(ReturnType)) { + .ErrorUnion => |payload| payload.error_set, + else => void, + }; + const Stack = std.atomic.Stack(anyframe->ReturnType); + + pub fn init(loop: *Loop) Self { + return Self{ + .frame_stack = Stack.init(), + .alloc_stack = Stack.init(), + .lock = Lock.init(loop), + }; + } + + /// Add a frame to the group. Thread-safe. + pub fn add(self: *Self, handle: anyframe->ReturnType) (error{OutOfMemory}!void) { + const node = try self.lock.loop.allocator.create(Stack.Node); + node.* = Stack.Node{ + .next = undefined, + .data = handle, + }; + self.alloc_stack.push(node); + } + + /// Add a node to the group. Thread-safe. Cannot fail. + /// `node.data` should be the frame handle to add to the group. + /// The node's memory should be in the function frame of + /// the handle that is in the node, or somewhere guaranteed to live + /// at least as long. + pub fn addNode(self: *Self, node: *Stack.Node) void { + self.frame_stack.push(node); + } + + /// Wait for all the calls and promises of the group to complete. + /// Thread-safe. + /// Safe to call any number of times. + pub async fn wait(self: *Self) ReturnType { + const held = self.lock.acquire(); + defer held.release(); + + var result: ReturnType = {}; + + while (self.frame_stack.pop()) |node| { + if (Error == void) { + await node.data; + } else { + (await node.data) catch |err| { + result = err; + }; + } + } + while (self.alloc_stack.pop()) |node| { + const handle = node.data; + self.lock.loop.allocator.destroy(node); + if (Error == void) { + await handle; + } else { + (await handle) catch |err| { + result = err; + }; + } + } + return result; + } + }; +} + +test "std.event.Group" { + // https://github.com/ziglang/zig/issues/1908 + if (builtin.single_threaded) return error.SkipZigTest; + + const allocator = std.heap.direct_allocator; + + var loop: Loop = undefined; + try loop.initMultiThreaded(allocator); + defer loop.deinit(); + + const handle = async testGroup(&loop); + + loop.run(); +} + +async fn testGroup(loop: *Loop) void { + var count: usize = 0; + var group = Group(void).init(loop); + var sleep_a_little_frame = async sleepALittle(&count); + group.add(&sleep_a_little_frame) catch @panic("memory"); + var increase_by_ten_frame = async increaseByTen(&count); + group.add(&increase_by_ten_frame) catch @panic("memory"); + group.wait(); + testing.expect(count == 11); + + var another = Group(anyerror!void).init(loop); + var something_else_frame = async somethingElse(); + another.add(&something_else_frame) catch @panic("memory"); + var something_that_fails_frame = async doSomethingThatFails(); + another.add(&something_that_fails_frame) catch @panic("memory"); + testing.expectError(error.ItBroke, another.wait()); +} + +async fn sleepALittle(count: *usize) void { + std.time.sleep(1 * std.time.millisecond); + _ = @atomicRmw(usize, count, .Add, 1, .SeqCst); +} + +async fn increaseByTen(count: *usize) void { + var i: usize = 0; + while (i < 10) : (i += 1) { + _ = @atomicRmw(usize, count, .Add, 1, .SeqCst); + } +} + +async fn doSomethingThatFails() anyerror!void {} +async fn somethingElse() anyerror!void { + return error.ItBroke; +} diff --git a/lib/std/event/lock.zig b/lib/std/event/lock.zig new file mode 100644 index 0000000000..a0b1fd3e50 --- /dev/null +++ b/lib/std/event/lock.zig @@ -0,0 +1,186 @@ +const std = @import("../std.zig"); +const builtin = @import("builtin"); +const assert = std.debug.assert; +const testing = std.testing; +const mem = std.mem; +const Loop = std.event.Loop; + +/// Thread-safe async/await lock. +/// Functions which are waiting for the lock are suspended, and +/// are resumed when the lock is released, in order. +/// Allows only one actor to hold the lock. +pub const Lock = struct { + loop: *Loop, + shared_bit: u8, // TODO make this a bool + queue: Queue, + queue_empty_bit: u8, // TODO make this a bool + + const Queue = std.atomic.Queue(anyframe); + + pub const Held = struct { + lock: *Lock, + + pub fn release(self: Held) void { + // Resume the next item from the queue. + if (self.lock.queue.get()) |node| { + self.lock.loop.onNextTick(node); + return; + } + + // We need to release the lock. + _ = @atomicRmw(u8, &self.lock.queue_empty_bit, .Xchg, 1, .SeqCst); + _ = @atomicRmw(u8, &self.lock.shared_bit, .Xchg, 0, .SeqCst); + + // There might be a queue item. If we know the queue is empty, we can be done, + // because the other actor will try to obtain the lock. + // But if there's a queue item, we are the actor which must loop and attempt + // to grab the lock again. + if (@atomicLoad(u8, &self.lock.queue_empty_bit, .SeqCst) == 1) { + return; + } + + while (true) { + const old_bit = @atomicRmw(u8, &self.lock.shared_bit, .Xchg, 1, .SeqCst); + if (old_bit != 0) { + // We did not obtain the lock. Great, the queue is someone else's problem. + return; + } + + // Resume the next item from the queue. + if (self.lock.queue.get()) |node| { + self.lock.loop.onNextTick(node); + return; + } + + // Release the lock again. + _ = @atomicRmw(u8, &self.lock.queue_empty_bit, .Xchg, 1, .SeqCst); + _ = @atomicRmw(u8, &self.lock.shared_bit, .Xchg, 0, .SeqCst); + + // Find out if we can be done. + if (@atomicLoad(u8, &self.lock.queue_empty_bit, .SeqCst) == 1) { + return; + } + } + } + }; + + pub fn init(loop: *Loop) Lock { + return Lock{ + .loop = loop, + .shared_bit = 0, + .queue = Queue.init(), + .queue_empty_bit = 1, + }; + } + + pub fn initLocked(loop: *Loop) Lock { + return Lock{ + .loop = loop, + .shared_bit = 1, + .queue = Queue.init(), + .queue_empty_bit = 1, + }; + } + + /// Must be called when not locked. Not thread safe. + /// All calls to acquire() and release() must complete before calling deinit(). + pub fn deinit(self: *Lock) void { + assert(self.shared_bit == 0); + while (self.queue.get()) |node| resume node.data; + } + + pub async fn acquire(self: *Lock) Held { + var my_tick_node = Loop.NextTickNode.init(@frame()); + + errdefer _ = self.queue.remove(&my_tick_node); // TODO test canceling an acquire + suspend { + self.queue.put(&my_tick_node); + + // At this point, we are in the queue, so we might have already been resumed. + + // We set this bit so that later we can rely on the fact, that if queue_empty_bit is 1, some actor + // will attempt to grab the lock. + _ = @atomicRmw(u8, &self.queue_empty_bit, .Xchg, 0, .SeqCst); + + const old_bit = @atomicRmw(u8, &self.shared_bit, .Xchg, 1, .SeqCst); + if (old_bit == 0) { + if (self.queue.get()) |node| { + // Whether this node is us or someone else, we tail resume it. + resume node.data; + } + } + } + + return Held{ .lock = self }; + } +}; + +test "std.event.Lock" { + // TODO https://github.com/ziglang/zig/issues/1908 + if (builtin.single_threaded) return error.SkipZigTest; + // TODO https://github.com/ziglang/zig/issues/3251 + if (std.os.freebsd.is_the_target) return error.SkipZigTest; + + const allocator = std.heap.direct_allocator; + + var loop: Loop = undefined; + try loop.initMultiThreaded(allocator); + defer loop.deinit(); + + var lock = Lock.init(&loop); + defer lock.deinit(); + + _ = async testLock(&loop, &lock); + loop.run(); + + testing.expectEqualSlices(i32, [1]i32{3 * @intCast(i32, shared_test_data.len)} ** shared_test_data.len, shared_test_data); +} + +async fn testLock(loop: *Loop, lock: *Lock) void { + var handle1 = async lockRunner(lock); + var tick_node1 = Loop.NextTickNode{ + .prev = undefined, + .next = undefined, + .data = &handle1, + }; + loop.onNextTick(&tick_node1); + + var handle2 = async lockRunner(lock); + var tick_node2 = Loop.NextTickNode{ + .prev = undefined, + .next = undefined, + .data = &handle2, + }; + loop.onNextTick(&tick_node2); + + var handle3 = async lockRunner(lock); + var tick_node3 = Loop.NextTickNode{ + .prev = undefined, + .next = undefined, + .data = &handle3, + }; + loop.onNextTick(&tick_node3); + + await handle1; + await handle2; + await handle3; +} + +var shared_test_data = [1]i32{0} ** 10; +var shared_test_index: usize = 0; + +async fn lockRunner(lock: *Lock) void { + suspend; // resumed by onNextTick + + var i: usize = 0; + while (i < shared_test_data.len) : (i += 1) { + var lock_frame = async lock.acquire(); + const handle = await lock_frame; + defer handle.release(); + + shared_test_index = 0; + while (shared_test_index < shared_test_data.len) : (shared_test_index += 1) { + shared_test_data[shared_test_index] = shared_test_data[shared_test_index] + 1; + } + } +} diff --git a/lib/std/event/locked.zig b/lib/std/event/locked.zig new file mode 100644 index 0000000000..aeedf3558a --- /dev/null +++ b/lib/std/event/locked.zig @@ -0,0 +1,43 @@ +const std = @import("../std.zig"); +const Lock = std.event.Lock; +const Loop = std.event.Loop; + +/// Thread-safe async/await lock that protects one piece of data. +/// Functions which are waiting for the lock are suspended, and +/// are resumed when the lock is released, in order. +pub fn Locked(comptime T: type) type { + return struct { + lock: Lock, + private_data: T, + + const Self = @This(); + + pub const HeldLock = struct { + value: *T, + held: Lock.Held, + + pub fn release(self: HeldLock) void { + self.held.release(); + } + }; + + pub fn init(loop: *Loop, data: T) Self { + return Self{ + .lock = Lock.init(loop), + .private_data = data, + }; + } + + pub fn deinit(self: *Self) void { + self.lock.deinit(); + } + + pub async fn acquire(self: *Self) HeldLock { + return HeldLock{ + // TODO guaranteed allocation elision + .held = await (async self.lock.acquire() catch unreachable), + .value = &self.private_data, + }; + } + }; +} diff --git a/lib/std/event/loop.zig b/lib/std/event/loop.zig new file mode 100644 index 0000000000..d0d36abc0c --- /dev/null +++ b/lib/std/event/loop.zig @@ -0,0 +1,923 @@ +const std = @import("../std.zig"); +const builtin = @import("builtin"); +const root = @import("root"); +const assert = std.debug.assert; +const testing = std.testing; +const mem = std.mem; +const AtomicRmwOp = builtin.AtomicRmwOp; +const AtomicOrder = builtin.AtomicOrder; +const fs = std.event.fs; +const os = std.os; +const windows = os.windows; +const maxInt = std.math.maxInt; +const Thread = std.Thread; + +pub const Loop = struct { + allocator: *mem.Allocator, + next_tick_queue: std.atomic.Queue(anyframe), + os_data: OsData, + final_resume_node: ResumeNode, + pending_event_count: usize, + extra_threads: []*Thread, + + // pre-allocated eventfds. all permanently active. + // this is how we send promises to be resumed on other threads. + available_eventfd_resume_nodes: std.atomic.Stack(ResumeNode.EventFd), + eventfd_resume_nodes: []std.atomic.Stack(ResumeNode.EventFd).Node, + + pub const NextTickNode = std.atomic.Queue(anyframe).Node; + + pub const ResumeNode = struct { + id: Id, + handle: anyframe, + overlapped: Overlapped, + + pub const overlapped_init = switch (builtin.os) { + .windows => windows.OVERLAPPED{ + .Internal = 0, + .InternalHigh = 0, + .Offset = 0, + .OffsetHigh = 0, + .hEvent = null, + }, + else => {}, + }; + pub const Overlapped = @typeOf(overlapped_init); + + pub const Id = enum { + Basic, + Stop, + EventFd, + }; + + pub const EventFd = switch (builtin.os) { + .macosx, .freebsd, .netbsd => KEventFd, + .linux => struct { + base: ResumeNode, + epoll_op: u32, + eventfd: i32, + }, + .windows => struct { + base: ResumeNode, + completion_key: usize, + }, + else => @compileError("unsupported OS"), + }; + + const KEventFd = struct { + base: ResumeNode, + kevent: os.Kevent, + }; + + pub const Basic = switch (builtin.os) { + .macosx, .freebsd, .netbsd => KEventBasic, + .linux => struct { + base: ResumeNode, + }, + .windows => struct { + base: ResumeNode, + }, + else => @compileError("unsupported OS"), + }; + + const KEventBasic = struct { + base: ResumeNode, + kev: os.Kevent, + }; + }; + + var global_instance_state: Loop = undefined; + const default_instance: ?*Loop = switch (std.io.mode) { + .blocking => null, + .evented => &global_instance_state, + }; + pub const instance: ?*Loop = if (@hasDecl(root, "event_loop")) root.event_loop else default_instance; + + /// TODO copy elision / named return values so that the threads referencing *Loop + /// have the correct pointer value. + /// https://github.com/ziglang/zig/issues/2761 and https://github.com/ziglang/zig/issues/2765 + pub fn init(self: *Loop, allocator: *mem.Allocator) !void { + if (builtin.single_threaded) { + return self.initSingleThreaded(allocator); + } else { + return self.initMultiThreaded(allocator); + } + } + + /// After initialization, call run(). + /// TODO copy elision / named return values so that the threads referencing *Loop + /// have the correct pointer value. + /// https://github.com/ziglang/zig/issues/2761 and https://github.com/ziglang/zig/issues/2765 + pub fn initSingleThreaded(self: *Loop, allocator: *mem.Allocator) !void { + return self.initInternal(allocator, 1); + } + + /// The allocator must be thread-safe because we use it for multiplexing + /// async functions onto kernel threads. + /// After initialization, call run(). + /// TODO copy elision / named return values so that the threads referencing *Loop + /// have the correct pointer value. + /// https://github.com/ziglang/zig/issues/2761 and https://github.com/ziglang/zig/issues/2765 + pub fn initMultiThreaded(self: *Loop, allocator: *mem.Allocator) !void { + if (builtin.single_threaded) @compileError("initMultiThreaded unavailable when building in single-threaded mode"); + const core_count = try Thread.cpuCount(); + return self.initInternal(allocator, core_count); + } + + /// Thread count is the total thread count. The thread pool size will be + /// max(thread_count - 1, 0) + fn initInternal(self: *Loop, allocator: *mem.Allocator, thread_count: usize) !void { + self.* = Loop{ + .pending_event_count = 1, + .allocator = allocator, + .os_data = undefined, + .next_tick_queue = std.atomic.Queue(anyframe).init(), + .extra_threads = undefined, + .available_eventfd_resume_nodes = std.atomic.Stack(ResumeNode.EventFd).init(), + .eventfd_resume_nodes = undefined, + .final_resume_node = ResumeNode{ + .id = ResumeNode.Id.Stop, + .handle = undefined, + .overlapped = ResumeNode.overlapped_init, + }, + }; + // We need at least one of these in case the fs thread wants to use onNextTick + const extra_thread_count = thread_count - 1; + const resume_node_count = std.math.max(extra_thread_count, 1); + self.eventfd_resume_nodes = try self.allocator.alloc( + std.atomic.Stack(ResumeNode.EventFd).Node, + resume_node_count, + ); + errdefer self.allocator.free(self.eventfd_resume_nodes); + + self.extra_threads = try self.allocator.alloc(*Thread, extra_thread_count); + errdefer self.allocator.free(self.extra_threads); + + try self.initOsData(extra_thread_count); + errdefer self.deinitOsData(); + } + + pub fn deinit(self: *Loop) void { + self.deinitOsData(); + self.allocator.free(self.extra_threads); + } + + const InitOsDataError = os.EpollCreateError || mem.Allocator.Error || os.EventFdError || + Thread.SpawnError || os.EpollCtlError || os.KEventError || + windows.CreateIoCompletionPortError; + + const wakeup_bytes = [_]u8{0x1} ** 8; + + fn initOsData(self: *Loop, extra_thread_count: usize) InitOsDataError!void { + switch (builtin.os) { + .linux => { + self.os_data.fs_queue = std.atomic.Queue(fs.Request).init(); + self.os_data.fs_queue_item = 0; + // we need another thread for the file system because Linux does not have an async + // file system I/O API. + self.os_data.fs_end_request = fs.RequestNode{ + .prev = undefined, + .next = undefined, + .data = fs.Request{ + .msg = fs.Request.Msg.End, + .finish = fs.Request.Finish.NoAction, + }, + }; + + errdefer { + while (self.available_eventfd_resume_nodes.pop()) |node| os.close(node.data.eventfd); + } + for (self.eventfd_resume_nodes) |*eventfd_node| { + eventfd_node.* = std.atomic.Stack(ResumeNode.EventFd).Node{ + .data = ResumeNode.EventFd{ + .base = ResumeNode{ + .id = .EventFd, + .handle = undefined, + .overlapped = ResumeNode.overlapped_init, + }, + .eventfd = try os.eventfd(1, os.EFD_CLOEXEC | os.EFD_NONBLOCK), + .epoll_op = os.EPOLL_CTL_ADD, + }, + .next = undefined, + }; + self.available_eventfd_resume_nodes.push(eventfd_node); + } + + self.os_data.epollfd = try os.epoll_create1(os.EPOLL_CLOEXEC); + errdefer os.close(self.os_data.epollfd); + + self.os_data.final_eventfd = try os.eventfd(0, os.EFD_CLOEXEC | os.EFD_NONBLOCK); + errdefer os.close(self.os_data.final_eventfd); + + self.os_data.final_eventfd_event = os.epoll_event{ + .events = os.EPOLLIN, + .data = os.epoll_data{ .ptr = @ptrToInt(&self.final_resume_node) }, + }; + try os.epoll_ctl( + self.os_data.epollfd, + os.EPOLL_CTL_ADD, + self.os_data.final_eventfd, + &self.os_data.final_eventfd_event, + ); + + self.os_data.fs_thread = try Thread.spawn(self, posixFsRun); + errdefer { + self.posixFsRequest(&self.os_data.fs_end_request); + self.os_data.fs_thread.wait(); + } + + if (builtin.single_threaded) { + assert(extra_thread_count == 0); + return; + } + + var extra_thread_index: usize = 0; + errdefer { + // writing 8 bytes to an eventfd cannot fail + os.write(self.os_data.final_eventfd, wakeup_bytes) catch unreachable; + while (extra_thread_index != 0) { + extra_thread_index -= 1; + self.extra_threads[extra_thread_index].wait(); + } + } + while (extra_thread_index < extra_thread_count) : (extra_thread_index += 1) { + self.extra_threads[extra_thread_index] = try Thread.spawn(self, workerRun); + } + }, + .macosx, .freebsd, .netbsd => { + self.os_data.kqfd = try os.kqueue(); + errdefer os.close(self.os_data.kqfd); + + self.os_data.fs_kqfd = try os.kqueue(); + errdefer os.close(self.os_data.fs_kqfd); + + self.os_data.fs_queue = std.atomic.Queue(fs.Request).init(); + // we need another thread for the file system because Darwin does not have an async + // file system I/O API. + self.os_data.fs_end_request = fs.RequestNode{ + .prev = undefined, + .next = undefined, + .data = fs.Request{ + .msg = fs.Request.Msg.End, + .finish = fs.Request.Finish.NoAction, + }, + }; + + const empty_kevs = ([*]os.Kevent)(undefined)[0..0]; + + for (self.eventfd_resume_nodes) |*eventfd_node, i| { + eventfd_node.* = std.atomic.Stack(ResumeNode.EventFd).Node{ + .data = ResumeNode.EventFd{ + .base = ResumeNode{ + .id = ResumeNode.Id.EventFd, + .handle = undefined, + .overlapped = ResumeNode.overlapped_init, + }, + // this one is for sending events + .kevent = os.Kevent{ + .ident = i, + .filter = os.EVFILT_USER, + .flags = os.EV_CLEAR | os.EV_ADD | os.EV_DISABLE, + .fflags = 0, + .data = 0, + .udata = @ptrToInt(&eventfd_node.data.base), + }, + }, + .next = undefined, + }; + self.available_eventfd_resume_nodes.push(eventfd_node); + const kevent_array = (*const [1]os.Kevent)(&eventfd_node.data.kevent); + _ = try os.kevent(self.os_data.kqfd, kevent_array, empty_kevs, null); + eventfd_node.data.kevent.flags = os.EV_CLEAR | os.EV_ENABLE; + eventfd_node.data.kevent.fflags = os.NOTE_TRIGGER; + } + + // Pre-add so that we cannot get error.SystemResources + // later when we try to activate it. + self.os_data.final_kevent = os.Kevent{ + .ident = extra_thread_count, + .filter = os.EVFILT_USER, + .flags = os.EV_ADD | os.EV_DISABLE, + .fflags = 0, + .data = 0, + .udata = @ptrToInt(&self.final_resume_node), + }; + const final_kev_arr = (*const [1]os.Kevent)(&self.os_data.final_kevent); + _ = try os.kevent(self.os_data.kqfd, final_kev_arr, empty_kevs, null); + self.os_data.final_kevent.flags = os.EV_ENABLE; + self.os_data.final_kevent.fflags = os.NOTE_TRIGGER; + + self.os_data.fs_kevent_wake = os.Kevent{ + .ident = 0, + .filter = os.EVFILT_USER, + .flags = os.EV_ADD | os.EV_ENABLE, + .fflags = os.NOTE_TRIGGER, + .data = 0, + .udata = undefined, + }; + + self.os_data.fs_kevent_wait = os.Kevent{ + .ident = 0, + .filter = os.EVFILT_USER, + .flags = os.EV_ADD | os.EV_CLEAR, + .fflags = 0, + .data = 0, + .udata = undefined, + }; + + self.os_data.fs_thread = try Thread.spawn(self, posixFsRun); + errdefer { + self.posixFsRequest(&self.os_data.fs_end_request); + self.os_data.fs_thread.wait(); + } + + if (builtin.single_threaded) { + assert(extra_thread_count == 0); + return; + } + + var extra_thread_index: usize = 0; + errdefer { + _ = os.kevent(self.os_data.kqfd, final_kev_arr, empty_kevs, null) catch unreachable; + while (extra_thread_index != 0) { + extra_thread_index -= 1; + self.extra_threads[extra_thread_index].wait(); + } + } + while (extra_thread_index < extra_thread_count) : (extra_thread_index += 1) { + self.extra_threads[extra_thread_index] = try Thread.spawn(self, workerRun); + } + }, + .windows => { + self.os_data.io_port = try windows.CreateIoCompletionPort( + windows.INVALID_HANDLE_VALUE, + null, + undefined, + maxInt(windows.DWORD), + ); + errdefer windows.CloseHandle(self.os_data.io_port); + + for (self.eventfd_resume_nodes) |*eventfd_node, i| { + eventfd_node.* = std.atomic.Stack(ResumeNode.EventFd).Node{ + .data = ResumeNode.EventFd{ + .base = ResumeNode{ + .id = ResumeNode.Id.EventFd, + .handle = undefined, + .overlapped = ResumeNode.overlapped_init, + }, + // this one is for sending events + .completion_key = @ptrToInt(&eventfd_node.data.base), + }, + .next = undefined, + }; + self.available_eventfd_resume_nodes.push(eventfd_node); + } + + if (builtin.single_threaded) { + assert(extra_thread_count == 0); + return; + } + + var extra_thread_index: usize = 0; + errdefer { + var i: usize = 0; + while (i < extra_thread_index) : (i += 1) { + while (true) { + const overlapped = &self.final_resume_node.overlapped; + windows.PostQueuedCompletionStatus(self.os_data.io_port, undefined, undefined, overlapped) catch continue; + break; + } + } + while (extra_thread_index != 0) { + extra_thread_index -= 1; + self.extra_threads[extra_thread_index].wait(); + } + } + while (extra_thread_index < extra_thread_count) : (extra_thread_index += 1) { + self.extra_threads[extra_thread_index] = try Thread.spawn(self, workerRun); + } + }, + else => {}, + } + } + + fn deinitOsData(self: *Loop) void { + switch (builtin.os) { + .linux => { + os.close(self.os_data.final_eventfd); + while (self.available_eventfd_resume_nodes.pop()) |node| os.close(node.data.eventfd); + os.close(self.os_data.epollfd); + self.allocator.free(self.eventfd_resume_nodes); + }, + .macosx, .freebsd, .netbsd => { + os.close(self.os_data.kqfd); + os.close(self.os_data.fs_kqfd); + }, + .windows => { + windows.CloseHandle(self.os_data.io_port); + }, + else => {}, + } + } + + /// resume_node must live longer than the anyframe that it holds a reference to. + /// flags must contain EPOLLET + pub fn linuxAddFd(self: *Loop, fd: i32, resume_node: *ResumeNode, flags: u32) !void { + assert(flags & os.EPOLLET == os.EPOLLET); + self.beginOneEvent(); + errdefer self.finishOneEvent(); + try self.linuxModFd( + fd, + os.EPOLL_CTL_ADD, + flags, + resume_node, + ); + } + + pub fn linuxModFd(self: *Loop, fd: i32, op: u32, flags: u32, resume_node: *ResumeNode) !void { + assert(flags & os.EPOLLET == os.EPOLLET); + var ev = os.linux.epoll_event{ + .events = flags, + .data = os.linux.epoll_data{ .ptr = @ptrToInt(resume_node) }, + }; + try os.epoll_ctl(self.os_data.epollfd, op, fd, &ev); + } + + pub fn linuxRemoveFd(self: *Loop, fd: i32) void { + os.epoll_ctl(self.os_data.epollfd, os.linux.EPOLL_CTL_DEL, fd, null) catch {}; + self.finishOneEvent(); + } + + pub fn linuxWaitFd(self: *Loop, fd: i32, flags: u32) !void { + defer self.linuxRemoveFd(fd); + suspend { + var resume_node = ResumeNode.Basic{ + .base = ResumeNode{ + .id = .Basic, + .handle = @frame(), + .overlapped = ResumeNode.overlapped_init, + }, + }; + try self.linuxAddFd(fd, &resume_node.base, flags); + } + } + + pub fn waitUntilFdReadable(self: *Loop, fd: os.fd_t) !void { + return self.linuxWaitFd(fd, os.EPOLLET | os.EPOLLIN); + } + + pub async fn bsdWaitKev(self: *Loop, ident: usize, filter: i16, fflags: u32) !os.Kevent { + var resume_node = ResumeNode.Basic{ + .base = ResumeNode{ + .id = ResumeNode.Id.Basic, + .handle = @frame(), + .overlapped = ResumeNode.overlapped_init, + }, + .kev = undefined, + }; + defer self.bsdRemoveKev(ident, filter); + suspend { + try self.bsdAddKev(&resume_node, ident, filter, fflags); + } + return resume_node.kev; + } + + /// resume_node must live longer than the anyframe that it holds a reference to. + pub fn bsdAddKev(self: *Loop, resume_node: *ResumeNode.Basic, ident: usize, filter: i16, fflags: u32) !void { + self.beginOneEvent(); + errdefer self.finishOneEvent(); + var kev = os.Kevent{ + .ident = ident, + .filter = filter, + .flags = os.EV_ADD | os.EV_ENABLE | os.EV_CLEAR, + .fflags = fflags, + .data = 0, + .udata = @ptrToInt(&resume_node.base), + }; + const kevent_array = (*const [1]os.Kevent)(&kev); + const empty_kevs = ([*]os.Kevent)(undefined)[0..0]; + _ = try os.kevent(self.os_data.kqfd, kevent_array, empty_kevs, null); + } + + pub fn bsdRemoveKev(self: *Loop, ident: usize, filter: i16) void { + var kev = os.Kevent{ + .ident = ident, + .filter = filter, + .flags = os.EV_DELETE, + .fflags = 0, + .data = 0, + .udata = 0, + }; + const kevent_array = (*const [1]os.Kevent)(&kev); + const empty_kevs = ([*]os.Kevent)(undefined)[0..0]; + _ = os.kevent(self.os_data.kqfd, kevent_array, empty_kevs, null) catch undefined; + self.finishOneEvent(); + } + + fn dispatch(self: *Loop) void { + while (self.available_eventfd_resume_nodes.pop()) |resume_stack_node| { + const next_tick_node = self.next_tick_queue.get() orelse { + self.available_eventfd_resume_nodes.push(resume_stack_node); + return; + }; + const eventfd_node = &resume_stack_node.data; + eventfd_node.base.handle = next_tick_node.data; + switch (builtin.os) { + .macosx, .freebsd, .netbsd => { + const kevent_array = (*const [1]os.Kevent)(&eventfd_node.kevent); + const empty_kevs = ([*]os.Kevent)(undefined)[0..0]; + _ = os.kevent(self.os_data.kqfd, kevent_array, empty_kevs, null) catch { + self.next_tick_queue.unget(next_tick_node); + self.available_eventfd_resume_nodes.push(resume_stack_node); + return; + }; + }, + .linux => { + // the pending count is already accounted for + const epoll_events = os.EPOLLONESHOT | os.linux.EPOLLIN | os.linux.EPOLLOUT | + os.linux.EPOLLET; + self.linuxModFd( + eventfd_node.eventfd, + eventfd_node.epoll_op, + epoll_events, + &eventfd_node.base, + ) catch { + self.next_tick_queue.unget(next_tick_node); + self.available_eventfd_resume_nodes.push(resume_stack_node); + return; + }; + }, + .windows => { + windows.PostQueuedCompletionStatus( + self.os_data.io_port, + undefined, + undefined, + &eventfd_node.base.overlapped, + ) catch { + self.next_tick_queue.unget(next_tick_node); + self.available_eventfd_resume_nodes.push(resume_stack_node); + return; + }; + }, + else => @compileError("unsupported OS"), + } + } + } + + /// Bring your own linked list node. This means it can't fail. + pub fn onNextTick(self: *Loop, node: *NextTickNode) void { + self.beginOneEvent(); // finished in dispatch() + self.next_tick_queue.put(node); + self.dispatch(); + } + + pub fn cancelOnNextTick(self: *Loop, node: *NextTickNode) void { + if (self.next_tick_queue.remove(node)) { + self.finishOneEvent(); + } + } + + pub fn run(self: *Loop) void { + self.finishOneEvent(); // the reference we start with + + self.workerRun(); + + switch (builtin.os) { + .linux, + .macosx, + .freebsd, + .netbsd, + => self.os_data.fs_thread.wait(), + else => {}, + } + + for (self.extra_threads) |extra_thread| { + extra_thread.wait(); + } + } + + /// This is equivalent to function call, except it calls `startCpuBoundOperation` first. + pub fn call(comptime func: var, args: ...) @typeOf(func).ReturnType { + startCpuBoundOperation(); + return func(args); + } + + /// Yielding lets the event loop run, starting any unstarted async operations. + /// Note that async operations automatically start when a function yields for any other reason, + /// for example, when async I/O is performed. This function is intended to be used only when + /// CPU bound tasks would be waiting in the event loop but never get started because no async I/O + /// is performed. + pub fn yield(self: *Loop) void { + suspend { + var my_tick_node = NextTickNode{ + .prev = undefined, + .next = undefined, + .data = @frame(), + }; + self.onNextTick(&my_tick_node); + } + } + + /// If the build is multi-threaded and there is an event loop, then it calls `yield`. Otherwise, + /// does nothing. + pub fn startCpuBoundOperation() void { + if (builtin.single_threaded) { + return; + } else if (instance) |event_loop| { + event_loop.yield(); + } + } + + /// call finishOneEvent when done + pub fn beginOneEvent(self: *Loop) void { + _ = @atomicRmw(usize, &self.pending_event_count, AtomicRmwOp.Add, 1, AtomicOrder.SeqCst); + } + + pub fn finishOneEvent(self: *Loop) void { + const prev = @atomicRmw(usize, &self.pending_event_count, AtomicRmwOp.Sub, 1, AtomicOrder.SeqCst); + if (prev == 1) { + // cause all the threads to stop + switch (builtin.os) { + .linux => { + self.posixFsRequest(&self.os_data.fs_end_request); + // writing 8 bytes to an eventfd cannot fail + os.write(self.os_data.final_eventfd, wakeup_bytes) catch unreachable; + return; + }, + .macosx, .freebsd, .netbsd => { + self.posixFsRequest(&self.os_data.fs_end_request); + const final_kevent = (*const [1]os.Kevent)(&self.os_data.final_kevent); + const empty_kevs = ([*]os.Kevent)(undefined)[0..0]; + // cannot fail because we already added it and this just enables it + _ = os.kevent(self.os_data.kqfd, final_kevent, empty_kevs, null) catch unreachable; + return; + }, + .windows => { + var i: usize = 0; + while (i < self.extra_threads.len + 1) : (i += 1) { + while (true) { + const overlapped = &self.final_resume_node.overlapped; + windows.PostQueuedCompletionStatus(self.os_data.io_port, undefined, undefined, overlapped) catch continue; + break; + } + } + return; + }, + else => @compileError("unsupported OS"), + } + } + } + + fn workerRun(self: *Loop) void { + while (true) { + while (true) { + const next_tick_node = self.next_tick_queue.get() orelse break; + self.dispatch(); + resume next_tick_node.data; + self.finishOneEvent(); + } + + switch (builtin.os) { + .linux => { + // only process 1 event so we don't steal from other threads + var events: [1]os.linux.epoll_event = undefined; + const count = os.epoll_wait(self.os_data.epollfd, events[0..], -1); + for (events[0..count]) |ev| { + const resume_node = @intToPtr(*ResumeNode, ev.data.ptr); + const handle = resume_node.handle; + const resume_node_id = resume_node.id; + switch (resume_node_id) { + .Basic => {}, + .Stop => return, + .EventFd => { + const event_fd_node = @fieldParentPtr(ResumeNode.EventFd, "base", resume_node); + event_fd_node.epoll_op = os.EPOLL_CTL_MOD; + const stack_node = @fieldParentPtr(std.atomic.Stack(ResumeNode.EventFd).Node, "data", event_fd_node); + self.available_eventfd_resume_nodes.push(stack_node); + }, + } + resume handle; + if (resume_node_id == ResumeNode.Id.EventFd) { + self.finishOneEvent(); + } + } + }, + .macosx, .freebsd, .netbsd => { + var eventlist: [1]os.Kevent = undefined; + const empty_kevs = ([*]os.Kevent)(undefined)[0..0]; + const count = os.kevent(self.os_data.kqfd, empty_kevs, eventlist[0..], null) catch unreachable; + for (eventlist[0..count]) |ev| { + const resume_node = @intToPtr(*ResumeNode, ev.udata); + const handle = resume_node.handle; + const resume_node_id = resume_node.id; + switch (resume_node_id) { + .Basic => { + const basic_node = @fieldParentPtr(ResumeNode.Basic, "base", resume_node); + basic_node.kev = ev; + }, + .Stop => return, + .EventFd => { + const event_fd_node = @fieldParentPtr(ResumeNode.EventFd, "base", resume_node); + const stack_node = @fieldParentPtr(std.atomic.Stack(ResumeNode.EventFd).Node, "data", event_fd_node); + self.available_eventfd_resume_nodes.push(stack_node); + }, + } + resume handle; + if (resume_node_id == ResumeNode.Id.EventFd) { + self.finishOneEvent(); + } + } + }, + .windows => { + var completion_key: usize = undefined; + const overlapped = while (true) { + var nbytes: windows.DWORD = undefined; + var overlapped: ?*windows.OVERLAPPED = undefined; + switch (windows.GetQueuedCompletionStatus(self.os_data.io_port, &nbytes, &completion_key, &overlapped, windows.INFINITE)) { + .Aborted => return, + .Normal => {}, + .EOF => {}, + .Cancelled => continue, + } + if (overlapped) |o| break o; + } else unreachable; // TODO else unreachable should not be necessary + const resume_node = @fieldParentPtr(ResumeNode, "overlapped", overlapped); + const handle = resume_node.handle; + const resume_node_id = resume_node.id; + switch (resume_node_id) { + .Basic => {}, + .Stop => return, + .EventFd => { + const event_fd_node = @fieldParentPtr(ResumeNode.EventFd, "base", resume_node); + const stack_node = @fieldParentPtr(std.atomic.Stack(ResumeNode.EventFd).Node, "data", event_fd_node); + self.available_eventfd_resume_nodes.push(stack_node); + }, + } + resume handle; + self.finishOneEvent(); + }, + else => @compileError("unsupported OS"), + } + } + } + + fn posixFsRequest(self: *Loop, request_node: *fs.RequestNode) void { + self.beginOneEvent(); // finished in posixFsRun after processing the msg + self.os_data.fs_queue.put(request_node); + switch (builtin.os) { + .macosx, .freebsd, .netbsd => { + const fs_kevs = (*const [1]os.Kevent)(&self.os_data.fs_kevent_wake); + const empty_kevs = ([*]os.Kevent)(undefined)[0..0]; + _ = os.kevent(self.os_data.fs_kqfd, fs_kevs, empty_kevs, null) catch unreachable; + }, + .linux => { + _ = @atomicRmw(i32, &self.os_data.fs_queue_item, AtomicRmwOp.Xchg, 1, AtomicOrder.SeqCst); + const rc = os.linux.futex_wake(&self.os_data.fs_queue_item, os.linux.FUTEX_WAKE, 1); + switch (os.linux.getErrno(rc)) { + 0 => {}, + os.EINVAL => unreachable, + else => unreachable, + } + }, + else => @compileError("Unsupported OS"), + } + } + + fn posixFsCancel(self: *Loop, request_node: *fs.RequestNode) void { + if (self.os_data.fs_queue.remove(request_node)) { + self.finishOneEvent(); + } + } + + fn posixFsRun(self: *Loop) void { + while (true) { + if (builtin.os == .linux) { + _ = @atomicRmw(i32, &self.os_data.fs_queue_item, .Xchg, 0, .SeqCst); + } + while (self.os_data.fs_queue.get()) |node| { + switch (node.data.msg) { + .End => return, + .WriteV => |*msg| { + msg.result = os.writev(msg.fd, msg.iov); + }, + .PWriteV => |*msg| { + msg.result = os.pwritev(msg.fd, msg.iov, msg.offset); + }, + .PReadV => |*msg| { + msg.result = os.preadv(msg.fd, msg.iov, msg.offset); + }, + .Open => |*msg| { + msg.result = os.openC(msg.path.ptr, msg.flags, msg.mode); + }, + .Close => |*msg| os.close(msg.fd), + .WriteFile => |*msg| blk: { + const flags = os.O_LARGEFILE | os.O_WRONLY | os.O_CREAT | + os.O_CLOEXEC | os.O_TRUNC; + const fd = os.openC(msg.path.ptr, flags, msg.mode) catch |err| { + msg.result = err; + break :blk; + }; + defer os.close(fd); + msg.result = os.write(fd, msg.contents); + }, + } + switch (node.data.finish) { + .TickNode => |*tick_node| self.onNextTick(tick_node), + .DeallocCloseOperation => |close_op| { + self.allocator.destroy(close_op); + }, + .NoAction => {}, + } + self.finishOneEvent(); + } + switch (builtin.os) { + .linux => { + const rc = os.linux.futex_wait(&self.os_data.fs_queue_item, os.linux.FUTEX_WAIT, 0, null); + switch (os.linux.getErrno(rc)) { + 0, os.EINTR, os.EAGAIN => continue, + else => unreachable, + } + }, + .macosx, .freebsd, .netbsd => { + const fs_kevs = (*const [1]os.Kevent)(&self.os_data.fs_kevent_wait); + var out_kevs: [1]os.Kevent = undefined; + _ = os.kevent(self.os_data.fs_kqfd, fs_kevs, out_kevs[0..], null) catch unreachable; + }, + else => @compileError("Unsupported OS"), + } + } + } + + const OsData = switch (builtin.os) { + .linux => LinuxOsData, + .macosx, .freebsd, .netbsd => KEventData, + .windows => struct { + io_port: windows.HANDLE, + extra_thread_count: usize, + }, + else => struct {}, + }; + + const KEventData = struct { + kqfd: i32, + final_kevent: os.Kevent, + fs_kevent_wake: os.Kevent, + fs_kevent_wait: os.Kevent, + fs_thread: *Thread, + fs_kqfd: i32, + fs_queue: std.atomic.Queue(fs.Request), + fs_end_request: fs.RequestNode, + }; + + const LinuxOsData = struct { + epollfd: i32, + final_eventfd: i32, + final_eventfd_event: os.linux.epoll_event, + fs_thread: *Thread, + fs_queue_item: i32, + fs_queue: std.atomic.Queue(fs.Request), + fs_end_request: fs.RequestNode, + }; +}; + +test "std.event.Loop - basic" { + // https://github.com/ziglang/zig/issues/1908 + if (builtin.single_threaded) return error.SkipZigTest; + + const allocator = std.heap.direct_allocator; + + var loop: Loop = undefined; + try loop.initMultiThreaded(allocator); + defer loop.deinit(); + + loop.run(); +} + +test "std.event.Loop - call" { + // https://github.com/ziglang/zig/issues/1908 + if (builtin.single_threaded) return error.SkipZigTest; + + const allocator = std.heap.direct_allocator; + + var loop: Loop = undefined; + try loop.initMultiThreaded(allocator); + defer loop.deinit(); + + var did_it = false; + var handle = async Loop.call(testEventLoop); + var handle2 = async Loop.call(testEventLoop2, &handle, &did_it); + + loop.run(); + + testing.expect(did_it); +} + +async fn testEventLoop() i32 { + return 1234; +} + +async fn testEventLoop2(h: anyframe->i32, did_it: *bool) void { + const value = await h; + testing.expect(value == 1234); + did_it.* = true; +} diff --git a/lib/std/event/net.zig b/lib/std/event/net.zig new file mode 100644 index 0000000000..bed665dcdc --- /dev/null +++ b/lib/std/event/net.zig @@ -0,0 +1,358 @@ +const std = @import("../std.zig"); +const builtin = @import("builtin"); +const testing = std.testing; +const event = std.event; +const mem = std.mem; +const os = std.os; +const Loop = std.event.Loop; +const File = std.fs.File; +const fd_t = os.fd_t; + +pub const Server = struct { + handleRequestFn: async fn (*Server, *const std.net.Address, File) void, + + loop: *Loop, + sockfd: ?i32, + accept_frame: ?anyframe, + listen_address: std.net.Address, + + waiting_for_emfile_node: PromiseNode, + listen_resume_node: event.Loop.ResumeNode, + + const PromiseNode = std.TailQueue(anyframe).Node; + + pub fn init(loop: *Loop) Server { + // TODO can't initialize handler here because we need well defined copy elision + return Server{ + .loop = loop, + .sockfd = null, + .accept_frame = null, + .handleRequestFn = undefined, + .waiting_for_emfile_node = undefined, + .listen_address = undefined, + .listen_resume_node = event.Loop.ResumeNode{ + .id = event.Loop.ResumeNode.Id.Basic, + .handle = undefined, + .overlapped = event.Loop.ResumeNode.overlapped_init, + }, + }; + } + + pub fn listen( + self: *Server, + address: *const std.net.Address, + handleRequestFn: async fn (*Server, *const std.net.Address, File) void, + ) !void { + self.handleRequestFn = handleRequestFn; + + const sockfd = try os.socket(os.AF_INET, os.SOCK_STREAM | os.SOCK_CLOEXEC | os.SOCK_NONBLOCK, os.PROTO_tcp); + errdefer os.close(sockfd); + self.sockfd = sockfd; + + try os.bind(sockfd, &address.os_addr); + try os.listen(sockfd, os.SOMAXCONN); + self.listen_address = std.net.Address.initPosix(try os.getsockname(sockfd)); + + self.accept_frame = async Server.handler(self); + errdefer await self.accept_frame.?; + + self.listen_resume_node.handle = self.accept_frame.?; + try self.loop.linuxAddFd(sockfd, &self.listen_resume_node, os.EPOLLIN | os.EPOLLOUT | os.EPOLLET); + errdefer self.loop.removeFd(sockfd); + } + + /// Stop listening + pub fn close(self: *Server) void { + self.loop.linuxRemoveFd(self.sockfd.?); + if (self.sockfd) |fd| { + os.close(fd); + self.sockfd = null; + } + } + + pub fn deinit(self: *Server) void { + if (self.accept_frame) |accept_frame| await accept_frame; + if (self.sockfd) |sockfd| os.close(sockfd); + } + + pub async fn handler(self: *Server) void { + while (true) { + var accepted_addr: std.net.Address = undefined; + // TODO just inline the following function here and don't expose it as posixAsyncAccept + if (os.accept4_async(self.sockfd.?, &accepted_addr.os_addr, os.SOCK_NONBLOCK | os.SOCK_CLOEXEC)) |accepted_fd| { + if (accepted_fd == -1) { + // would block + suspend; // we will get resumed by epoll_wait in the event loop + continue; + } + var socket = File.openHandle(accepted_fd); + self.handleRequestFn(self, &accepted_addr, socket); + } else |err| switch (err) { + error.ProcessFdQuotaExceeded => @panic("TODO handle this error"), + error.ConnectionAborted => continue, + + error.FileDescriptorNotASocket => unreachable, + error.OperationNotSupported => unreachable, + + error.SystemFdQuotaExceeded, error.SystemResources, error.ProtocolFailure, error.BlockedByFirewall, error.Unexpected => { + @panic("TODO handle this error"); + }, + } + } + } +}; + +pub async fn connectUnixSocket(loop: *Loop, path: []const u8) !i32 { + const sockfd = try os.socket( + os.AF_UNIX, + os.SOCK_STREAM | os.SOCK_CLOEXEC | os.SOCK_NONBLOCK, + 0, + ); + errdefer os.close(sockfd); + + var sock_addr = os.sockaddr_un{ + .family = os.AF_UNIX, + .path = undefined, + }; + + if (path.len > @typeOf(sock_addr.path).len) return error.NameTooLong; + mem.copy(u8, sock_addr.path[0..], path); + const size = @intCast(u32, @sizeOf(os.sa_family_t) + path.len); + try os.connect_async(sockfd, &sock_addr, size); + try loop.linuxWaitFd(sockfd, os.EPOLLIN | os.EPOLLOUT | os.EPOLLET); + try os.getsockoptError(sockfd); + + return sockfd; +} + +pub const ReadError = error{ + SystemResources, + Unexpected, + UserResourceLimitReached, + InputOutput, + + FileDescriptorNotRegistered, // TODO remove this possibility + OperationCausesCircularLoop, // TODO remove this possibility + FileDescriptorAlreadyPresentInSet, // TODO remove this possibility + FileDescriptorIncompatibleWithEpoll, // TODO remove this possibility +}; + +/// returns number of bytes read. 0 means EOF. +pub async fn read(loop: *std.event.Loop, fd: fd_t, buffer: []u8) ReadError!usize { + const iov = os.iovec{ + .iov_base = buffer.ptr, + .iov_len = buffer.len, + }; + const iovs: *const [1]os.iovec = &iov; + return readvPosix(loop, fd, iovs, 1); +} + +pub const WriteError = error{}; + +pub async fn write(loop: *std.event.Loop, fd: fd_t, buffer: []const u8) WriteError!void { + const iov = os.iovec_const{ + .iov_base = buffer.ptr, + .iov_len = buffer.len, + }; + const iovs: *const [1]os.iovec_const = &iov; + return writevPosix(loop, fd, iovs, 1); +} + +pub async fn writevPosix(loop: *Loop, fd: i32, iov: [*]const os.iovec_const, count: usize) !void { + while (true) { + switch (builtin.os) { + .macosx, .linux => { + switch (os.errno(os.system.writev(fd, iov, count))) { + 0 => return, + os.EINTR => continue, + os.ESPIPE => unreachable, + os.EINVAL => unreachable, + os.EFAULT => unreachable, + os.EAGAIN => { + try loop.linuxWaitFd(fd, os.EPOLLET | os.EPOLLOUT); + continue; + }, + os.EBADF => unreachable, // always a race condition + os.EDESTADDRREQ => unreachable, // connect was never called + os.EDQUOT => unreachable, + os.EFBIG => unreachable, + os.EIO => return error.InputOutput, + os.ENOSPC => unreachable, + os.EPERM => return error.AccessDenied, + os.EPIPE => unreachable, + else => |err| return os.unexpectedErrno(err), + } + }, + else => @compileError("Unsupported OS"), + } + } +} + +/// returns number of bytes read. 0 means EOF. +pub async fn readvPosix(loop: *std.event.Loop, fd: i32, iov: [*]os.iovec, count: usize) !usize { + while (true) { + switch (builtin.os) { + builtin.Os.linux, builtin.Os.freebsd, builtin.Os.macosx => { + const rc = os.system.readv(fd, iov, count); + switch (os.errno(rc)) { + 0 => return rc, + os.EINTR => continue, + os.EINVAL => unreachable, + os.EFAULT => unreachable, + os.EAGAIN => { + try loop.linuxWaitFd(fd, os.EPOLLET | os.EPOLLIN); + continue; + }, + os.EBADF => unreachable, // always a race condition + os.EIO => return error.InputOutput, + os.EISDIR => unreachable, + os.ENOBUFS => return error.SystemResources, + os.ENOMEM => return error.SystemResources, + else => |err| return os.unexpectedErrno(err), + } + }, + else => @compileError("Unsupported OS"), + } + } +} + +pub async fn writev(loop: *Loop, fd: fd_t, data: []const []const u8) !void { + const iovecs = try loop.allocator.alloc(os.iovec_const, data.len); + defer loop.allocator.free(iovecs); + + for (data) |buf, i| { + iovecs[i] = os.iovec_const{ + .iov_base = buf.ptr, + .iov_len = buf.len, + }; + } + + return writevPosix(loop, fd, iovecs.ptr, data.len); +} + +pub async fn readv(loop: *Loop, fd: fd_t, data: []const []u8) !usize { + const iovecs = try loop.allocator.alloc(os.iovec, data.len); + defer loop.allocator.free(iovecs); + + for (data) |buf, i| { + iovecs[i] = os.iovec{ + .iov_base = buf.ptr, + .iov_len = buf.len, + }; + } + + return readvPosix(loop, fd, iovecs.ptr, data.len); +} + +pub async fn connect(loop: *Loop, _address: *const std.net.Address) !File { + var address = _address.*; // TODO https://github.com/ziglang/zig/issues/1592 + + const sockfd = try os.socket(os.AF_INET, os.SOCK_STREAM | os.SOCK_CLOEXEC | os.SOCK_NONBLOCK, os.PROTO_tcp); + errdefer os.close(sockfd); + + try os.connect_async(sockfd, &address.os_addr, @sizeOf(os.sockaddr_in)); + try loop.linuxWaitFd(sockfd, os.EPOLLIN | os.EPOLLOUT | os.EPOLLET); + try os.getsockoptError(sockfd); + + return File.openHandle(sockfd); +} + +test "listen on a port, send bytes, receive bytes" { + // https://github.com/ziglang/zig/issues/2377 + if (true) return error.SkipZigTest; + + if (builtin.os != builtin.Os.linux) { + // TODO build abstractions for other operating systems + return error.SkipZigTest; + } + + const MyServer = struct { + tcp_server: Server, + + const Self = @This(); + async fn handler(tcp_server: *Server, _addr: *const std.net.Address, _socket: File) void { + const self = @fieldParentPtr(Self, "tcp_server", tcp_server); + var socket = _socket; // TODO https://github.com/ziglang/zig/issues/1592 + defer socket.close(); + const next_handler = errorableHandler(self, _addr, socket) catch |err| { + std.debug.panic("unable to handle connection: {}\n", err); + }; + } + async fn errorableHandler(self: *Self, _addr: *const std.net.Address, _socket: File) !void { + const addr = _addr.*; // TODO https://github.com/ziglang/zig/issues/1592 + var socket = _socket; // TODO https://github.com/ziglang/zig/issues/1592 + + const stream = &socket.outStream().stream; + try stream.print("hello from server\n"); + } + }; + + const ip4addr = std.net.parseIp4("127.0.0.1") catch unreachable; + const addr = std.net.Address.initIp4(ip4addr, 0); + + var loop: Loop = undefined; + try loop.initSingleThreaded(std.debug.global_allocator); + var server = MyServer{ .tcp_server = Server.init(&loop) }; + defer server.tcp_server.deinit(); + try server.tcp_server.listen(&addr, MyServer.handler); + + _ = async doAsyncTest(&loop, &server.tcp_server.listen_address, &server.tcp_server); + loop.run(); +} + +async fn doAsyncTest(loop: *Loop, address: *const std.net.Address, server: *Server) void { + errdefer @panic("test failure"); + + var socket_file = try connect(loop, address); + defer socket_file.close(); + + var buf: [512]u8 = undefined; + const amt_read = try socket_file.read(buf[0..]); + const msg = buf[0..amt_read]; + testing.expect(mem.eql(u8, msg, "hello from server\n")); + server.close(); +} + +pub const OutStream = struct { + fd: fd_t, + stream: Stream, + loop: *Loop, + + pub const Error = WriteError; + pub const Stream = event.io.OutStream(Error); + + pub fn init(loop: *Loop, fd: fd_t) OutStream { + return OutStream{ + .fd = fd, + .loop = loop, + .stream = Stream{ .writeFn = writeFn }, + }; + } + + async fn writeFn(out_stream: *Stream, bytes: []const u8) Error!void { + const self = @fieldParentPtr(OutStream, "stream", out_stream); + return write(self.loop, self.fd, bytes); + } +}; + +pub const InStream = struct { + fd: fd_t, + stream: Stream, + loop: *Loop, + + pub const Error = ReadError; + pub const Stream = event.io.InStream(Error); + + pub fn init(loop: *Loop, fd: fd_t) InStream { + return InStream{ + .fd = fd, + .loop = loop, + .stream = Stream{ .readFn = readFn }, + }; + } + + async fn readFn(in_stream: *Stream, bytes: []u8) Error!usize { + const self = @fieldParentPtr(InStream, "stream", in_stream); + return read(self.loop, self.fd, bytes); + } +}; diff --git a/lib/std/event/rwlock.zig b/lib/std/event/rwlock.zig new file mode 100644 index 0000000000..bf7ea0fa9f --- /dev/null +++ b/lib/std/event/rwlock.zig @@ -0,0 +1,296 @@ +const std = @import("../std.zig"); +const builtin = @import("builtin"); +const assert = std.debug.assert; +const testing = std.testing; +const mem = std.mem; +const Loop = std.event.Loop; + +/// Thread-safe async/await lock. +/// Functions which are waiting for the lock are suspended, and +/// are resumed when the lock is released, in order. +/// Many readers can hold the lock at the same time; however locking for writing is exclusive. +/// When a read lock is held, it will not be released until the reader queue is empty. +/// When a write lock is held, it will not be released until the writer queue is empty. +pub const RwLock = struct { + loop: *Loop, + shared_state: u8, // TODO make this an enum + writer_queue: Queue, + reader_queue: Queue, + writer_queue_empty_bit: u8, // TODO make this a bool + reader_queue_empty_bit: u8, // TODO make this a bool + reader_lock_count: usize, + + const State = struct { + const Unlocked = 0; + const WriteLock = 1; + const ReadLock = 2; + }; + + const Queue = std.atomic.Queue(anyframe); + + pub const HeldRead = struct { + lock: *RwLock, + + pub fn release(self: HeldRead) void { + // If other readers still hold the lock, we're done. + if (@atomicRmw(usize, &self.lock.reader_lock_count, .Sub, 1, .SeqCst) != 1) { + return; + } + + _ = @atomicRmw(u8, &self.lock.reader_queue_empty_bit, .Xchg, 1, .SeqCst); + if (@cmpxchgStrong(u8, &self.lock.shared_state, State.ReadLock, State.Unlocked, .SeqCst, .SeqCst) != null) { + // Didn't unlock. Someone else's problem. + return; + } + + self.lock.commonPostUnlock(); + } + }; + + pub const HeldWrite = struct { + lock: *RwLock, + + pub fn release(self: HeldWrite) void { + // See if we can leave it locked for writing, and pass the lock to the next writer + // in the queue to grab the lock. + if (self.lock.writer_queue.get()) |node| { + self.lock.loop.onNextTick(node); + return; + } + + // We need to release the write lock. Check if any readers are waiting to grab the lock. + if (@atomicLoad(u8, &self.lock.reader_queue_empty_bit, .SeqCst) == 0) { + // Switch to a read lock. + _ = @atomicRmw(u8, &self.lock.shared_state, .Xchg, State.ReadLock, .SeqCst); + while (self.lock.reader_queue.get()) |node| { + self.lock.loop.onNextTick(node); + } + return; + } + + _ = @atomicRmw(u8, &self.lock.writer_queue_empty_bit, .Xchg, 1, .SeqCst); + _ = @atomicRmw(u8, &self.lock.shared_state, .Xchg, State.Unlocked, .SeqCst); + + self.lock.commonPostUnlock(); + } + }; + + pub fn init(loop: *Loop) RwLock { + return RwLock{ + .loop = loop, + .shared_state = State.Unlocked, + .writer_queue = Queue.init(), + .writer_queue_empty_bit = 1, + .reader_queue = Queue.init(), + .reader_queue_empty_bit = 1, + .reader_lock_count = 0, + }; + } + + /// Must be called when not locked. Not thread safe. + /// All calls to acquire() and release() must complete before calling deinit(). + pub fn deinit(self: *RwLock) void { + assert(self.shared_state == State.Unlocked); + while (self.writer_queue.get()) |node| resume node.data; + while (self.reader_queue.get()) |node| resume node.data; + } + + pub async fn acquireRead(self: *RwLock) HeldRead { + _ = @atomicRmw(usize, &self.reader_lock_count, .Add, 1, .SeqCst); + + suspend { + var my_tick_node = Loop.NextTickNode{ + .data = @frame(), + .prev = undefined, + .next = undefined, + }; + + self.reader_queue.put(&my_tick_node); + + // At this point, we are in the reader_queue, so we might have already been resumed. + + // We set this bit so that later we can rely on the fact, that if reader_queue_empty_bit is 1, + // some actor will attempt to grab the lock. + _ = @atomicRmw(u8, &self.reader_queue_empty_bit, .Xchg, 0, .SeqCst); + + // Here we don't care if we are the one to do the locking or if it was already locked for reading. + const have_read_lock = if (@cmpxchgStrong(u8, &self.shared_state, State.Unlocked, State.ReadLock, .SeqCst, .SeqCst)) |old_state| old_state == State.ReadLock else true; + if (have_read_lock) { + // Give out all the read locks. + if (self.reader_queue.get()) |first_node| { + while (self.reader_queue.get()) |node| { + self.loop.onNextTick(node); + } + resume first_node.data; + } + } + } + return HeldRead{ .lock = self }; + } + + pub async fn acquireWrite(self: *RwLock) HeldWrite { + suspend { + var my_tick_node = Loop.NextTickNode{ + .data = @frame(), + .prev = undefined, + .next = undefined, + }; + + self.writer_queue.put(&my_tick_node); + + // At this point, we are in the writer_queue, so we might have already been resumed. + + // We set this bit so that later we can rely on the fact, that if writer_queue_empty_bit is 1, + // some actor will attempt to grab the lock. + _ = @atomicRmw(u8, &self.writer_queue_empty_bit, .Xchg, 0, .SeqCst); + + // Here we must be the one to acquire the write lock. It cannot already be locked. + if (@cmpxchgStrong(u8, &self.shared_state, State.Unlocked, State.WriteLock, .SeqCst, .SeqCst) == null) { + // We now have a write lock. + if (self.writer_queue.get()) |node| { + // Whether this node is us or someone else, we tail resume it. + resume node.data; + } + } + } + return HeldWrite{ .lock = self }; + } + + fn commonPostUnlock(self: *RwLock) void { + while (true) { + // There might be a writer_queue item or a reader_queue item + // If we check and both are empty, we can be done, because the other actors will try to + // obtain the lock. + // But if there's a writer_queue item or a reader_queue item, + // we are the actor which must loop and attempt to grab the lock again. + if (@atomicLoad(u8, &self.writer_queue_empty_bit, .SeqCst) == 0) { + if (@cmpxchgStrong(u8, &self.shared_state, State.Unlocked, State.WriteLock, .SeqCst, .SeqCst) != null) { + // We did not obtain the lock. Great, the queues are someone else's problem. + return; + } + // If there's an item in the writer queue, give them the lock, and we're done. + if (self.writer_queue.get()) |node| { + self.loop.onNextTick(node); + return; + } + // Release the lock again. + _ = @atomicRmw(u8, &self.writer_queue_empty_bit, .Xchg, 1, .SeqCst); + _ = @atomicRmw(u8, &self.shared_state, .Xchg, State.Unlocked, .SeqCst); + continue; + } + + if (@atomicLoad(u8, &self.reader_queue_empty_bit, .SeqCst) == 0) { + if (@cmpxchgStrong(u8, &self.shared_state, State.Unlocked, State.ReadLock, .SeqCst, .SeqCst) != null) { + // We did not obtain the lock. Great, the queues are someone else's problem. + return; + } + // If there are any items in the reader queue, give out all the reader locks, and we're done. + if (self.reader_queue.get()) |first_node| { + self.loop.onNextTick(first_node); + while (self.reader_queue.get()) |node| { + self.loop.onNextTick(node); + } + return; + } + // Release the lock again. + _ = @atomicRmw(u8, &self.reader_queue_empty_bit, .Xchg, 1, .SeqCst); + if (@cmpxchgStrong(u8, &self.shared_state, State.ReadLock, State.Unlocked, .SeqCst, .SeqCst) != null) { + // Didn't unlock. Someone else's problem. + return; + } + continue; + } + return; + } + } +}; + +test "std.event.RwLock" { + // https://github.com/ziglang/zig/issues/2377 + if (true) return error.SkipZigTest; + + // https://github.com/ziglang/zig/issues/1908 + if (builtin.single_threaded) return error.SkipZigTest; + + const allocator = std.heap.direct_allocator; + + var loop: Loop = undefined; + try loop.initMultiThreaded(allocator); + defer loop.deinit(); + + var lock = RwLock.init(&loop); + defer lock.deinit(); + + const handle = testLock(&loop, &lock); + loop.run(); + + const expected_result = [1]i32{shared_it_count * @intCast(i32, shared_test_data.len)} ** shared_test_data.len; + testing.expectEqualSlices(i32, expected_result, shared_test_data); +} + +async fn testLock(loop: *Loop, lock: *RwLock) void { + var read_nodes: [100]Loop.NextTickNode = undefined; + for (read_nodes) |*read_node| { + const frame = loop.allocator.create(@Frame(readRunner)) catch @panic("memory"); + read_node.data = frame; + frame.* = async readRunner(lock); + loop.onNextTick(read_node); + } + + var write_nodes: [shared_it_count]Loop.NextTickNode = undefined; + for (write_nodes) |*write_node| { + const frame = loop.allocator.create(@Frame(writeRunner)) catch @panic("memory"); + write_node.data = frame; + frame.* = async writeRunner(lock); + loop.onNextTick(write_node); + } + + for (write_nodes) |*write_node| { + const casted = @ptrCast(*const @Frame(writeRunner), write_node.data); + await casted; + loop.allocator.destroy(casted); + } + for (read_nodes) |*read_node| { + const casted = @ptrCast(*const @Frame(readRunner), read_node.data); + await casted; + loop.allocator.destroy(casted); + } +} + +const shared_it_count = 10; +var shared_test_data = [1]i32{0} ** 10; +var shared_test_index: usize = 0; +var shared_count: usize = 0; + +async fn writeRunner(lock: *RwLock) void { + suspend; // resumed by onNextTick + + var i: usize = 0; + while (i < shared_test_data.len) : (i += 1) { + std.time.sleep(100 * std.time.microsecond); + const lock_promise = async lock.acquireWrite(); + const handle = await lock_promise; + defer handle.release(); + + shared_count += 1; + while (shared_test_index < shared_test_data.len) : (shared_test_index += 1) { + shared_test_data[shared_test_index] = shared_test_data[shared_test_index] + 1; + } + shared_test_index = 0; + } +} + +async fn readRunner(lock: *RwLock) void { + suspend; // resumed by onNextTick + std.time.sleep(1); + + var i: usize = 0; + while (i < shared_test_data.len) : (i += 1) { + const lock_promise = async lock.acquireRead(); + const handle = await lock_promise; + defer handle.release(); + + testing.expect(shared_test_index == 0); + testing.expect(shared_test_data[i] == @intCast(i32, shared_count)); + } +} diff --git a/lib/std/event/rwlocked.zig b/lib/std/event/rwlocked.zig new file mode 100644 index 0000000000..386aa08407 --- /dev/null +++ b/lib/std/event/rwlocked.zig @@ -0,0 +1,58 @@ +const std = @import("../std.zig"); +const RwLock = std.event.RwLock; +const Loop = std.event.Loop; + +/// Thread-safe async/await RW lock that protects one piece of data. +/// Functions which are waiting for the lock are suspended, and +/// are resumed when the lock is released, in order. +pub fn RwLocked(comptime T: type) type { + return struct { + lock: RwLock, + locked_data: T, + + const Self = @This(); + + pub const HeldReadLock = struct { + value: *const T, + held: RwLock.HeldRead, + + pub fn release(self: HeldReadLock) void { + self.held.release(); + } + }; + + pub const HeldWriteLock = struct { + value: *T, + held: RwLock.HeldWrite, + + pub fn release(self: HeldWriteLock) void { + self.held.release(); + } + }; + + pub fn init(loop: *Loop, data: T) Self { + return Self{ + .lock = RwLock.init(loop), + .locked_data = data, + }; + } + + pub fn deinit(self: *Self) void { + self.lock.deinit(); + } + + pub async fn acquireRead(self: *Self) HeldReadLock { + return HeldReadLock{ + .held = await (async self.lock.acquireRead() catch unreachable), + .value = &self.locked_data, + }; + } + + pub async fn acquireWrite(self: *Self) HeldWriteLock { + return HeldWriteLock{ + .held = await (async self.lock.acquireWrite() catch unreachable), + .value = &self.locked_data, + }; + } + }; +} diff --git a/lib/std/fmt.zig b/lib/std/fmt.zig new file mode 100644 index 0000000000..3f3e3fca73 --- /dev/null +++ b/lib/std/fmt.zig @@ -0,0 +1,1643 @@ +const std = @import("std.zig"); +const math = std.math; +const debug = std.debug; +const assert = debug.assert; +const testing = std.testing; +const mem = std.mem; +const builtin = @import("builtin"); +const errol = @import("fmt/errol.zig"); +const lossyCast = std.math.lossyCast; + +pub const default_max_depth = 3; + +pub const Alignment = enum { + Left, + Center, + Right, +}; + +pub const FormatOptions = struct { + precision: ?usize = null, + width: ?usize = null, + alignment: ?Alignment = null, + fill: u8 = ' ', +}; + +fn nextArg(comptime used_pos_args: *u32, comptime maybe_pos_arg: ?comptime_int, comptime next_arg: *comptime_int) comptime_int { + if (maybe_pos_arg) |pos_arg| { + used_pos_args.* |= 1 << pos_arg; + return pos_arg; + } else { + const arg = next_arg.*; + next_arg.* += 1; + return arg; + } +} + +fn peekIsAlign(comptime fmt: []const u8) bool { + // Should only be called during a state transition to the format segment. + std.debug.assert(fmt[0] == ':'); + + inline for (([_]u8{ 1, 2 })[0..]) |i| { + if (fmt.len > i and (fmt[i] == '<' or fmt[i] == '^' or fmt[i] == '>')) { + return true; + } + } + return false; +} + +/// Renders fmt string with args, calling output with slices of bytes. +/// If `output` returns an error, the error is returned from `format` and +/// `output` is not called again. +pub fn format( + context: var, + comptime Errors: type, + output: fn (@typeOf(context), []const u8) Errors!void, + comptime fmt: []const u8, + args: ..., +) Errors!void { + const ArgSetType = @IntType(false, 32); + if (args.len > ArgSetType.bit_count) { + @compileError("32 arguments max are supported per format call"); + } + + const State = enum { + Start, + Positional, + CloseBrace, + Specifier, + FormatFillAndAlign, + FormatWidth, + FormatPrecision, + }; + + comptime var start_index = 0; + comptime var state = State.Start; + comptime var next_arg = 0; + comptime var maybe_pos_arg: ?comptime_int = null; + comptime var used_pos_args: ArgSetType = 0; + comptime var specifier_start = 0; + comptime var specifier_end = 0; + comptime var options = FormatOptions{}; + + inline for (fmt) |c, i| { + switch (state) { + .Start => switch (c) { + '{' => { + if (start_index < i) { + try output(context, fmt[start_index..i]); + } + + start_index = i; + specifier_start = i + 1; + specifier_end = i + 1; + maybe_pos_arg = null; + state = .Positional; + options = FormatOptions{}; + }, + '}' => { + if (start_index < i) { + try output(context, fmt[start_index..i]); + } + state = .CloseBrace; + }, + else => {}, + }, + .Positional => switch (c) { + '{' => { + state = .Start; + start_index = i; + }, + ':' => { + state = if (comptime peekIsAlign(fmt[i..])) State.FormatFillAndAlign else State.FormatWidth; + specifier_end = i; + }, + '0'...'9' => { + if (maybe_pos_arg == null) { + maybe_pos_arg = 0; + } + + maybe_pos_arg.? *= 10; + maybe_pos_arg.? += c - '0'; + specifier_start = i + 1; + + if (maybe_pos_arg.? >= args.len) { + @compileError("Positional value refers to non-existent argument"); + } + }, + '}' => { + const arg_to_print = comptime nextArg(&used_pos_args, maybe_pos_arg, &next_arg); + + try formatType( + args[arg_to_print], + fmt[0..0], + options, + context, + Errors, + output, + default_max_depth, + ); + + state = .Start; + start_index = i + 1; + }, + else => { + state = .Specifier; + specifier_start = i; + }, + }, + .CloseBrace => switch (c) { + '}' => { + state = .Start; + start_index = i; + }, + else => @compileError("Single '}' encountered in format string"), + }, + .Specifier => switch (c) { + ':' => { + specifier_end = i; + state = if (comptime peekIsAlign(fmt[i..])) State.FormatFillAndAlign else State.FormatWidth; + }, + '}' => { + const arg_to_print = comptime nextArg(&used_pos_args, maybe_pos_arg, &next_arg); + + try formatType( + args[arg_to_print], + fmt[specifier_start..i], + options, + context, + Errors, + output, + default_max_depth, + ); + state = .Start; + start_index = i + 1; + }, + else => {}, + }, + // Only entered if the format string contains a fill/align segment. + .FormatFillAndAlign => switch (c) { + '<' => { + options.alignment = Alignment.Left; + state = .FormatWidth; + }, + '^' => { + options.alignment = Alignment.Center; + state = .FormatWidth; + }, + '>' => { + options.alignment = Alignment.Right; + state = .FormatWidth; + }, + else => { + options.fill = c; + }, + }, + .FormatWidth => switch (c) { + '0'...'9' => { + if (options.width == null) { + options.width = 0; + } + + options.width.? *= 10; + options.width.? += c - '0'; + }, + '.' => { + state = .FormatPrecision; + }, + '}' => { + const arg_to_print = comptime nextArg(&used_pos_args, maybe_pos_arg, &next_arg); + + try formatType( + args[arg_to_print], + fmt[specifier_start..specifier_end], + options, + context, + Errors, + output, + default_max_depth, + ); + state = .Start; + start_index = i + 1; + }, + else => { + @compileError("Unexpected character in width value: " ++ [_]u8{c}); + }, + }, + .FormatPrecision => switch (c) { + '0'...'9' => { + if (options.precision == null) { + options.precision = 0; + } + + options.precision.? *= 10; + options.precision.? += c - '0'; + }, + '}' => { + const arg_to_print = comptime nextArg(&used_pos_args, maybe_pos_arg, &next_arg); + + try formatType( + args[arg_to_print], + fmt[specifier_start..specifier_end], + options, + context, + Errors, + output, + default_max_depth, + ); + state = .Start; + start_index = i + 1; + }, + else => { + @compileError("Unexpected character in precision value: " ++ [_]u8{c}); + }, + }, + } + } + comptime { + // All arguments must have been printed but we allow mixing positional and fixed to achieve this. + var i: usize = 0; + inline while (i < next_arg) : (i += 1) { + used_pos_args |= 1 << i; + } + + if (@popCount(ArgSetType, used_pos_args) != args.len) { + @compileError("Unused arguments"); + } + if (state != State.Start) { + @compileError("Incomplete format string: " ++ fmt); + } + } + if (start_index < fmt.len) { + try output(context, fmt[start_index..]); + } +} + +pub fn formatType( + value: var, + comptime fmt: []const u8, + options: FormatOptions, + context: var, + comptime Errors: type, + output: fn (@typeOf(context), []const u8) Errors!void, + max_depth: usize, +) Errors!void { + if (comptime std.mem.eql(u8, fmt, "*")) { + try output(context, @typeName(@typeOf(value).Child)); + try output(context, "@"); + try formatInt(@ptrToInt(value), 16, false, FormatOptions{}, context, Errors, output); + return; + } + + const T = @typeOf(value); + switch (@typeInfo(T)) { + .ComptimeInt, .Int, .Float => { + return formatValue(value, fmt, options, context, Errors, output); + }, + .Void => { + return output(context, "void"); + }, + .Bool => { + return output(context, if (value) "true" else "false"); + }, + .Optional => { + if (value) |payload| { + return formatType(payload, fmt, options, context, Errors, output, max_depth); + } else { + return output(context, "null"); + } + }, + .ErrorUnion => { + if (value) |payload| { + return formatType(payload, fmt, options, context, Errors, output, max_depth); + } else |err| { + return formatType(err, fmt, options, context, Errors, output, max_depth); + } + }, + .ErrorSet => { + try output(context, "error."); + return output(context, @errorName(value)); + }, + .Enum => { + if (comptime std.meta.trait.hasFn("format")(T)) { + return value.format(fmt, options, context, Errors, output); + } + + try output(context, @typeName(T)); + try output(context, "."); + return formatType(@tagName(value), "", options, context, Errors, output, max_depth); + }, + .Union => { + if (comptime std.meta.trait.hasFn("format")(T)) { + return value.format(fmt, options, context, Errors, output); + } + + try output(context, @typeName(T)); + if (max_depth == 0) { + return output(context, "{ ... }"); + } + const info = @typeInfo(T).Union; + if (info.tag_type) |UnionTagType| { + try output(context, "{ ."); + try output(context, @tagName(UnionTagType(value))); + try output(context, " = "); + inline for (info.fields) |u_field| { + if (@enumToInt(UnionTagType(value)) == u_field.enum_field.?.value) { + try formatType(@field(value, u_field.name), "", options, context, Errors, output, max_depth - 1); + } + } + try output(context, " }"); + } else { + try format(context, Errors, output, "@{x}", @ptrToInt(&value)); + } + }, + .Struct => { + if (comptime std.meta.trait.hasFn("format")(T)) { + return value.format(fmt, options, context, Errors, output); + } + + try output(context, @typeName(T)); + if (max_depth == 0) { + return output(context, "{ ... }"); + } + comptime var field_i = 0; + try output(context, "{"); + inline while (field_i < @memberCount(T)) : (field_i += 1) { + if (field_i == 0) { + try output(context, " ."); + } else { + try output(context, ", ."); + } + try output(context, @memberName(T, field_i)); + try output(context, " = "); + try formatType(@field(value, @memberName(T, field_i)), "", options, context, Errors, output, max_depth - 1); + } + try output(context, " }"); + }, + .Pointer => |ptr_info| switch (ptr_info.size) { + .One => switch (@typeInfo(ptr_info.child)) { + builtin.TypeId.Array => |info| { + if (info.child == u8) { + return formatText(value, fmt, options, context, Errors, output); + } + return format(context, Errors, output, "{}@{x}", @typeName(T.Child), @ptrToInt(value)); + }, + builtin.TypeId.Enum, builtin.TypeId.Union, builtin.TypeId.Struct => { + return formatType(value.*, fmt, options, context, Errors, output, max_depth); + }, + else => return format(context, Errors, output, "{}@{x}", @typeName(T.Child), @ptrToInt(value)), + }, + .Many => { + if (ptr_info.child == u8) { + if (fmt.len > 0 and fmt[0] == 's') { + const len = mem.len(u8, value); + return formatText(value[0..len], fmt, options, context, Errors, output); + } + } + return format(context, Errors, output, "{}@{x}", @typeName(T.Child), @ptrToInt(value)); + }, + .Slice => { + if (fmt.len > 0 and ((fmt[0] == 'x') or (fmt[0] == 'X'))) { + return formatText(value, fmt, options, context, Errors, output); + } + if (ptr_info.child == u8) { + return formatText(value, fmt, options, context, Errors, output); + } + return format(context, Errors, output, "{}@{x}", @typeName(ptr_info.child), @ptrToInt(value.ptr)); + }, + .C => { + return format(context, Errors, output, "{}@{x}", @typeName(T.Child), @ptrToInt(value)); + }, + }, + .Array => |info| { + if (info.child == u8) { + return formatText(value, fmt, options, context, Errors, output); + } + if (value.len == 0) { + return format(context, Errors, output, "[0]{}", @typeName(T.Child)); + } + return format(context, Errors, output, "{}@{x}", @typeName(T.Child), @ptrToInt(&value)); + }, + .Fn => { + return format(context, Errors, output, "{}@{x}", @typeName(T), @ptrToInt(value)); + }, + else => @compileError("Unable to format type '" ++ @typeName(T) ++ "'"), + } +} + +fn formatValue( + value: var, + comptime fmt: []const u8, + options: FormatOptions, + context: var, + comptime Errors: type, + output: fn (@typeOf(context), []const u8) Errors!void, +) Errors!void { + if (comptime std.mem.eql(u8, fmt, "B")) { + return formatBytes(value, options, 1000, context, Errors, output); + } else if (comptime std.mem.eql(u8, fmt, "Bi")) { + return formatBytes(value, options, 1024, context, Errors, output); + } + + const T = @typeOf(value); + switch (@typeId(T)) { + .Float => return formatFloatValue(value, fmt, options, context, Errors, output), + .Int, .ComptimeInt => return formatIntValue(value, fmt, options, context, Errors, output), + else => comptime unreachable, + } +} + +pub fn formatIntValue( + value: var, + comptime fmt: []const u8, + options: FormatOptions, + context: var, + comptime Errors: type, + output: fn (@typeOf(context), []const u8) Errors!void, +) Errors!void { + comptime var radix = 10; + comptime var uppercase = false; + + const int_value = if (@typeOf(value) == comptime_int) blk: { + const Int = math.IntFittingRange(value, value); + break :blk Int(value); + } else + value; + + if (fmt.len == 0 or comptime std.mem.eql(u8, fmt, "d")) { + radix = 10; + uppercase = false; + } else if (comptime std.mem.eql(u8, fmt, "c")) { + if (@typeOf(int_value).bit_count <= 8) { + return formatAsciiChar(u8(int_value), options, context, Errors, output); + } else { + @compileError("Cannot print integer that is larger than 8 bits as a ascii"); + } + } else if (comptime std.mem.eql(u8, fmt, "b")) { + radix = 2; + uppercase = false; + } else if (comptime std.mem.eql(u8, fmt, "x")) { + radix = 16; + uppercase = false; + } else if (comptime std.mem.eql(u8, fmt, "X")) { + radix = 16; + uppercase = true; + } else { + @compileError("Unknown format string: '" ++ fmt ++ "'"); + } + + return formatInt(int_value, radix, uppercase, options, context, Errors, output); +} + +fn formatFloatValue( + value: var, + comptime fmt: []const u8, + options: FormatOptions, + context: var, + comptime Errors: type, + output: fn (@typeOf(context), []const u8) Errors!void, +) Errors!void { + if (fmt.len == 0 or comptime std.mem.eql(u8, fmt, "e")) { + return formatFloatScientific(value, options, context, Errors, output); + } else if (comptime std.mem.eql(u8, fmt, "d")) { + return formatFloatDecimal(value, options, context, Errors, output); + } else { + @compileError("Unknown format string: '" ++ fmt ++ "'"); + } +} + +pub fn formatText( + bytes: []const u8, + comptime fmt: []const u8, + options: FormatOptions, + context: var, + comptime Errors: type, + output: fn (@typeOf(context), []const u8) Errors!void, +) Errors!void { + if (fmt.len == 0) { + return output(context, bytes); + } else if (comptime std.mem.eql(u8, fmt, "s")) { + return formatBuf(bytes, options, context, Errors, output); + } else if (comptime (std.mem.eql(u8, fmt, "x") or std.mem.eql(u8, fmt, "X"))) { + for (bytes) |c| { + try formatInt(c, 16, fmt[0] == 'X', FormatOptions{ .width = 2, .fill = '0' }, context, Errors, output); + } + return; + } else { + @compileError("Unknown format string: '" ++ fmt ++ "'"); + } +} + +pub fn formatAsciiChar( + c: u8, + options: FormatOptions, + context: var, + comptime Errors: type, + output: fn (@typeOf(context), []const u8) Errors!void, +) Errors!void { + return output(context, (*const [1]u8)(&c)[0..]); +} + +pub fn formatBuf( + buf: []const u8, + options: FormatOptions, + context: var, + comptime Errors: type, + output: fn (@typeOf(context), []const u8) Errors!void, +) Errors!void { + try output(context, buf); + + const width = options.width orelse 0; + var leftover_padding = if (width > buf.len) (width - buf.len) else return; + const pad_byte: u8 = options.fill; + while (leftover_padding > 0) : (leftover_padding -= 1) { + try output(context, (*const [1]u8)(&pad_byte)[0..1]); + } +} + +// Print a float in scientific notation to the specified precision. Null uses full precision. +// It should be the case that every full precision, printed value can be re-parsed back to the +// same type unambiguously. +pub fn formatFloatScientific( + value: var, + options: FormatOptions, + context: var, + comptime Errors: type, + output: fn (@typeOf(context), []const u8) Errors!void, +) Errors!void { + var x = @floatCast(f64, value); + + // Errol doesn't handle these special cases. + if (math.signbit(x)) { + try output(context, "-"); + x = -x; + } + + if (math.isNan(x)) { + return output(context, "nan"); + } + if (math.isPositiveInf(x)) { + return output(context, "inf"); + } + if (x == 0.0) { + try output(context, "0"); + + if (options.precision) |precision| { + if (precision != 0) { + try output(context, "."); + var i: usize = 0; + while (i < precision) : (i += 1) { + try output(context, "0"); + } + } + } else { + try output(context, ".0"); + } + + try output(context, "e+00"); + return; + } + + var buffer: [32]u8 = undefined; + var float_decimal = errol.errol3(x, buffer[0..]); + + if (options.precision) |precision| { + errol.roundToPrecision(&float_decimal, precision, errol.RoundMode.Scientific); + + try output(context, float_decimal.digits[0..1]); + + // {e0} case prints no `.` + if (precision != 0) { + try output(context, "."); + + var printed: usize = 0; + if (float_decimal.digits.len > 1) { + const num_digits = math.min(float_decimal.digits.len, precision + 1); + try output(context, float_decimal.digits[1..num_digits]); + printed += num_digits - 1; + } + + while (printed < precision) : (printed += 1) { + try output(context, "0"); + } + } + } else { + try output(context, float_decimal.digits[0..1]); + try output(context, "."); + if (float_decimal.digits.len > 1) { + const num_digits = if (@typeOf(value) == f32) math.min(usize(9), float_decimal.digits.len) else float_decimal.digits.len; + + try output(context, float_decimal.digits[1..num_digits]); + } else { + try output(context, "0"); + } + } + + try output(context, "e"); + const exp = float_decimal.exp - 1; + + if (exp >= 0) { + try output(context, "+"); + if (exp > -10 and exp < 10) { + try output(context, "0"); + } + try formatInt(exp, 10, false, FormatOptions{ .width = 0 }, context, Errors, output); + } else { + try output(context, "-"); + if (exp > -10 and exp < 10) { + try output(context, "0"); + } + try formatInt(-exp, 10, false, FormatOptions{ .width = 0 }, context, Errors, output); + } +} + +// Print a float of the format x.yyyyy where the number of y is specified by the precision argument. +// By default floats are printed at full precision (no rounding). +pub fn formatFloatDecimal( + value: var, + options: FormatOptions, + context: var, + comptime Errors: type, + output: fn (@typeOf(context), []const u8) Errors!void, +) Errors!void { + var x = f64(value); + + // Errol doesn't handle these special cases. + if (math.signbit(x)) { + try output(context, "-"); + x = -x; + } + + if (math.isNan(x)) { + return output(context, "nan"); + } + if (math.isPositiveInf(x)) { + return output(context, "inf"); + } + if (x == 0.0) { + try output(context, "0"); + + if (options.precision) |precision| { + if (precision != 0) { + try output(context, "."); + var i: usize = 0; + while (i < precision) : (i += 1) { + try output(context, "0"); + } + } else { + try output(context, ".0"); + } + } else { + try output(context, "0"); + } + + return; + } + + // non-special case, use errol3 + var buffer: [32]u8 = undefined; + var float_decimal = errol.errol3(x, buffer[0..]); + + if (options.precision) |precision| { + errol.roundToPrecision(&float_decimal, precision, errol.RoundMode.Decimal); + + // exp < 0 means the leading is always 0 as errol result is normalized. + var num_digits_whole = if (float_decimal.exp > 0) @intCast(usize, float_decimal.exp) else 0; + + // the actual slice into the buffer, we may need to zero-pad between num_digits_whole and this. + var num_digits_whole_no_pad = math.min(num_digits_whole, float_decimal.digits.len); + + if (num_digits_whole > 0) { + // We may have to zero pad, for instance 1e4 requires zero padding. + try output(context, float_decimal.digits[0..num_digits_whole_no_pad]); + + var i = num_digits_whole_no_pad; + while (i < num_digits_whole) : (i += 1) { + try output(context, "0"); + } + } else { + try output(context, "0"); + } + + // {.0} special case doesn't want a trailing '.' + if (precision == 0) { + return; + } + + try output(context, "."); + + // Keep track of fractional count printed for case where we pre-pad then post-pad with 0's. + var printed: usize = 0; + + // Zero-fill until we reach significant digits or run out of precision. + if (float_decimal.exp <= 0) { + const zero_digit_count = @intCast(usize, -float_decimal.exp); + const zeros_to_print = math.min(zero_digit_count, precision); + + var i: usize = 0; + while (i < zeros_to_print) : (i += 1) { + try output(context, "0"); + printed += 1; + } + + if (printed >= precision) { + return; + } + } + + // Remaining fractional portion, zero-padding if insufficient. + assert(precision >= printed); + if (num_digits_whole_no_pad + precision - printed < float_decimal.digits.len) { + try output(context, float_decimal.digits[num_digits_whole_no_pad .. num_digits_whole_no_pad + precision - printed]); + return; + } else { + try output(context, float_decimal.digits[num_digits_whole_no_pad..]); + printed += float_decimal.digits.len - num_digits_whole_no_pad; + + while (printed < precision) : (printed += 1) { + try output(context, "0"); + } + } + } else { + // exp < 0 means the leading is always 0 as errol result is normalized. + var num_digits_whole = if (float_decimal.exp > 0) @intCast(usize, float_decimal.exp) else 0; + + // the actual slice into the buffer, we may need to zero-pad between num_digits_whole and this. + var num_digits_whole_no_pad = math.min(num_digits_whole, float_decimal.digits.len); + + if (num_digits_whole > 0) { + // We may have to zero pad, for instance 1e4 requires zero padding. + try output(context, float_decimal.digits[0..num_digits_whole_no_pad]); + + var i = num_digits_whole_no_pad; + while (i < num_digits_whole) : (i += 1) { + try output(context, "0"); + } + } else { + try output(context, "0"); + } + + // Omit `.` if no fractional portion + if (float_decimal.exp >= 0 and num_digits_whole_no_pad == float_decimal.digits.len) { + return; + } + + try output(context, "."); + + // Zero-fill until we reach significant digits or run out of precision. + if (float_decimal.exp < 0) { + const zero_digit_count = @intCast(usize, -float_decimal.exp); + + var i: usize = 0; + while (i < zero_digit_count) : (i += 1) { + try output(context, "0"); + } + } + + try output(context, float_decimal.digits[num_digits_whole_no_pad..]); + } +} + +pub fn formatBytes( + value: var, + options: FormatOptions, + comptime radix: usize, + context: var, + comptime Errors: type, + output: fn (@typeOf(context), []const u8) Errors!void, +) Errors!void { + if (value == 0) { + return output(context, "0B"); + } + + const mags_si = " kMGTPEZY"; + const mags_iec = " KMGTPEZY"; + const magnitude = switch (radix) { + 1000 => math.min(math.log2(value) / comptime math.log2(1000), mags_si.len - 1), + 1024 => math.min(math.log2(value) / 10, mags_iec.len - 1), + else => unreachable, + }; + const new_value = lossyCast(f64, value) / math.pow(f64, lossyCast(f64, radix), lossyCast(f64, magnitude)); + const suffix = switch (radix) { + 1000 => mags_si[magnitude], + 1024 => mags_iec[magnitude], + else => unreachable, + }; + + try formatFloatDecimal(new_value, options, context, Errors, output); + + if (suffix == ' ') { + return output(context, "B"); + } + + const buf = switch (radix) { + 1000 => [_]u8{ suffix, 'B' }, + 1024 => [_]u8{ suffix, 'i', 'B' }, + else => unreachable, + }; + return output(context, buf); +} + +pub fn formatInt( + value: var, + base: u8, + uppercase: bool, + options: FormatOptions, + context: var, + comptime Errors: type, + output: fn (@typeOf(context), []const u8) Errors!void, +) Errors!void { + const int_value = if (@typeOf(value) == comptime_int) blk: { + const Int = math.IntFittingRange(value, value); + break :blk Int(value); + } else + value; + + if (@typeOf(int_value).is_signed) { + return formatIntSigned(int_value, base, uppercase, options, context, Errors, output); + } else { + return formatIntUnsigned(int_value, base, uppercase, options, context, Errors, output); + } +} + +fn formatIntSigned( + value: var, + base: u8, + uppercase: bool, + options: FormatOptions, + context: var, + comptime Errors: type, + output: fn (@typeOf(context), []const u8) Errors!void, +) Errors!void { + const new_options = FormatOptions{ + .width = if (options.width) |w| (if (w == 0) 0 else w - 1) else null, + .precision = options.precision, + .fill = options.fill, + }; + + const uint = @IntType(false, @typeOf(value).bit_count); + if (value < 0) { + const minus_sign: u8 = '-'; + try output(context, (*const [1]u8)(&minus_sign)[0..]); + const new_value = @intCast(uint, -(value + 1)) + 1; + return formatIntUnsigned(new_value, base, uppercase, new_options, context, Errors, output); + } else if (options.width == null or options.width.? == 0) { + return formatIntUnsigned(@intCast(uint, value), base, uppercase, options, context, Errors, output); + } else { + const plus_sign: u8 = '+'; + try output(context, (*const [1]u8)(&plus_sign)[0..]); + const new_value = @intCast(uint, value); + return formatIntUnsigned(new_value, base, uppercase, new_options, context, Errors, output); + } +} + +fn formatIntUnsigned( + value: var, + base: u8, + uppercase: bool, + options: FormatOptions, + context: var, + comptime Errors: type, + output: fn (@typeOf(context), []const u8) Errors!void, +) Errors!void { + assert(base >= 2); + var buf: [math.max(@typeOf(value).bit_count, 1)]u8 = undefined; + const min_int_bits = comptime math.max(@typeOf(value).bit_count, @typeOf(base).bit_count); + const MinInt = @IntType(@typeOf(value).is_signed, min_int_bits); + var a: MinInt = value; + var index: usize = buf.len; + + while (true) { + const digit = a % base; + index -= 1; + buf[index] = digitToChar(@intCast(u8, digit), uppercase); + a /= base; + if (a == 0) break; + } + + const digits_buf = buf[index..]; + const width = options.width orelse 0; + const padding = if (width > digits_buf.len) (width - digits_buf.len) else 0; + + if (padding > index) { + const zero_byte: u8 = options.fill; + var leftover_padding = padding - index; + while (true) { + try output(context, (*const [1]u8)(&zero_byte)[0..]); + leftover_padding -= 1; + if (leftover_padding == 0) break; + } + mem.set(u8, buf[0..index], options.fill); + return output(context, buf); + } else { + const padded_buf = buf[index - padding ..]; + mem.set(u8, padded_buf[0..padding], options.fill); + return output(context, padded_buf); + } +} + +pub fn formatIntBuf(out_buf: []u8, value: var, base: u8, uppercase: bool, options: FormatOptions) usize { + var context = FormatIntBuf{ + .out_buf = out_buf, + .index = 0, + }; + formatInt(value, base, uppercase, options, &context, error{}, formatIntCallback) catch unreachable; + return context.index; +} +const FormatIntBuf = struct { + out_buf: []u8, + index: usize, +}; +fn formatIntCallback(context: *FormatIntBuf, bytes: []const u8) (error{}!void) { + mem.copy(u8, context.out_buf[context.index..], bytes); + context.index += bytes.len; +} + +pub fn parseInt(comptime T: type, buf: []const u8, radix: u8) !T { + if (!T.is_signed) return parseUnsigned(T, buf, radix); + if (buf.len == 0) return T(0); + if (buf[0] == '-') { + return math.negate(try parseUnsigned(T, buf[1..], radix)); + } else if (buf[0] == '+') { + return parseUnsigned(T, buf[1..], radix); + } else { + return parseUnsigned(T, buf, radix); + } +} + +test "parseInt" { + testing.expect((parseInt(i32, "-10", 10) catch unreachable) == -10); + testing.expect((parseInt(i32, "+10", 10) catch unreachable) == 10); + testing.expect(if (parseInt(i32, " 10", 10)) |_| false else |err| err == error.InvalidCharacter); + testing.expect(if (parseInt(i32, "10 ", 10)) |_| false else |err| err == error.InvalidCharacter); + testing.expect(if (parseInt(u32, "-10", 10)) |_| false else |err| err == error.InvalidCharacter); + testing.expect((parseInt(u8, "255", 10) catch unreachable) == 255); + testing.expect(if (parseInt(u8, "256", 10)) |_| false else |err| err == error.Overflow); +} + +const ParseUnsignedError = error{ + /// The result cannot fit in the type specified + Overflow, + + /// The input had a byte that was not a digit + InvalidCharacter, +}; + +pub fn parseUnsigned(comptime T: type, buf: []const u8, radix: u8) ParseUnsignedError!T { + var x: T = 0; + + for (buf) |c| { + const digit = try charToDigit(c, radix); + + if (x != 0) x = try math.mul(T, x, try math.cast(T, radix)); + x = try math.add(T, x, try math.cast(T, digit)); + } + + return x; +} + +test "parseUnsigned" { + testing.expect((try parseUnsigned(u16, "050124", 10)) == 50124); + testing.expect((try parseUnsigned(u16, "65535", 10)) == 65535); + testing.expectError(error.Overflow, parseUnsigned(u16, "65536", 10)); + + testing.expect((try parseUnsigned(u64, "0ffffffffffffffff", 16)) == 0xffffffffffffffff); + testing.expectError(error.Overflow, parseUnsigned(u64, "10000000000000000", 16)); + + testing.expect((try parseUnsigned(u32, "DeadBeef", 16)) == 0xDEADBEEF); + + testing.expect((try parseUnsigned(u7, "1", 10)) == 1); + testing.expect((try parseUnsigned(u7, "1000", 2)) == 8); + + testing.expectError(error.InvalidCharacter, parseUnsigned(u32, "f", 10)); + testing.expectError(error.InvalidCharacter, parseUnsigned(u8, "109", 8)); + + testing.expect((try parseUnsigned(u32, "NUMBER", 36)) == 1442151747); + + // these numbers should fit even though the radix itself doesn't fit in the destination type + testing.expect((try parseUnsigned(u1, "0", 10)) == 0); + testing.expect((try parseUnsigned(u1, "1", 10)) == 1); + testing.expectError(error.Overflow, parseUnsigned(u1, "2", 10)); + testing.expect((try parseUnsigned(u1, "001", 16)) == 1); + testing.expect((try parseUnsigned(u2, "3", 16)) == 3); + testing.expectError(error.Overflow, parseUnsigned(u2, "4", 16)); +} + +pub const parseFloat = @import("fmt/parse_float.zig").parseFloat; + +test "parseFloat" { + _ = @import("fmt/parse_float.zig"); +} + +pub fn charToDigit(c: u8, radix: u8) (error{InvalidCharacter}!u8) { + const value = switch (c) { + '0'...'9' => c - '0', + 'A'...'Z' => c - 'A' + 10, + 'a'...'z' => c - 'a' + 10, + else => return error.InvalidCharacter, + }; + + if (value >= radix) return error.InvalidCharacter; + + return value; +} + +fn digitToChar(digit: u8, uppercase: bool) u8 { + return switch (digit) { + 0...9 => digit + '0', + 10...35 => digit + ((if (uppercase) u8('A') else u8('a')) - 10), + else => unreachable, + }; +} + +const BufPrintContext = struct { + remaining: []u8, +}; + +fn bufPrintWrite(context: *BufPrintContext, bytes: []const u8) !void { + if (context.remaining.len < bytes.len) return error.BufferTooSmall; + mem.copy(u8, context.remaining, bytes); + context.remaining = context.remaining[bytes.len..]; +} + +pub fn bufPrint(buf: []u8, comptime fmt: []const u8, args: ...) ![]u8 { + var context = BufPrintContext{ .remaining = buf }; + try format(&context, error{BufferTooSmall}, bufPrintWrite, fmt, args); + return buf[0 .. buf.len - context.remaining.len]; +} + +pub const AllocPrintError = error{OutOfMemory}; + +pub fn allocPrint(allocator: *mem.Allocator, comptime fmt: []const u8, args: ...) AllocPrintError![]u8 { + var size: usize = 0; + format(&size, error{}, countSize, fmt, args) catch |err| switch (err) {}; + const buf = try allocator.alloc(u8, size); + return bufPrint(buf, fmt, args) catch |err| switch (err) { + error.BufferTooSmall => unreachable, // we just counted the size above + }; +} + +fn countSize(size: *usize, bytes: []const u8) (error{}!void) { + size.* += bytes.len; +} + +test "bufPrintInt" { + var buffer: [100]u8 = undefined; + const buf = buffer[0..]; + testing.expect(mem.eql(u8, bufPrintIntToSlice(buf, i32(-12345678), 2, false, FormatOptions{}), "-101111000110000101001110")); + testing.expect(mem.eql(u8, bufPrintIntToSlice(buf, i32(-12345678), 10, false, FormatOptions{}), "-12345678")); + testing.expect(mem.eql(u8, bufPrintIntToSlice(buf, i32(-12345678), 16, false, FormatOptions{}), "-bc614e")); + testing.expect(mem.eql(u8, bufPrintIntToSlice(buf, i32(-12345678), 16, true, FormatOptions{}), "-BC614E")); + + testing.expect(mem.eql(u8, bufPrintIntToSlice(buf, u32(12345678), 10, true, FormatOptions{}), "12345678")); + + testing.expect(mem.eql(u8, bufPrintIntToSlice(buf, u32(666), 10, false, FormatOptions{ .width = 6 }), " 666")); + testing.expect(mem.eql(u8, bufPrintIntToSlice(buf, u32(0x1234), 16, false, FormatOptions{ .width = 6 }), " 1234")); + testing.expect(mem.eql(u8, bufPrintIntToSlice(buf, u32(0x1234), 16, false, FormatOptions{ .width = 1 }), "1234")); + + testing.expect(mem.eql(u8, bufPrintIntToSlice(buf, i32(42), 10, false, FormatOptions{ .width = 3 }), "+42")); + testing.expect(mem.eql(u8, bufPrintIntToSlice(buf, i32(-42), 10, false, FormatOptions{ .width = 3 }), "-42")); +} + +fn bufPrintIntToSlice(buf: []u8, value: var, base: u8, uppercase: bool, options: FormatOptions) []u8 { + return buf[0..formatIntBuf(buf, value, base, uppercase, options)]; +} + +test "parse u64 digit too big" { + _ = parseUnsigned(u64, "123a", 10) catch |err| { + if (err == error.InvalidCharacter) return; + unreachable; + }; + unreachable; +} + +test "parse unsigned comptime" { + comptime { + testing.expect((try parseUnsigned(usize, "2", 10)) == 2); + } +} + +test "optional" { + { + const value: ?i32 = 1234; + try testFmt("optional: 1234\n", "optional: {}\n", value); + } + { + const value: ?i32 = null; + try testFmt("optional: null\n", "optional: {}\n", value); + } +} + +test "error" { + { + const value: anyerror!i32 = 1234; + try testFmt("error union: 1234\n", "error union: {}\n", value); + } + { + const value: anyerror!i32 = error.InvalidChar; + try testFmt("error union: error.InvalidChar\n", "error union: {}\n", value); + } +} + +test "int.small" { + { + const value: u3 = 0b101; + try testFmt("u3: 5\n", "u3: {}\n", value); + } +} + +test "int.specifier" { + { + const value: u8 = 'a'; + try testFmt("u8: a\n", "u8: {c}\n", value); + } + { + const value: u8 = 0b1100; + try testFmt("u8: 0b1100\n", "u8: 0b{b}\n", value); + } +} + +test "int.padded" { + try testFmt("u8: ' 1'", "u8: '{:4}'", u8(1)); + try testFmt("u8: 'xxx1'", "u8: '{:x<4}'", u8(1)); +} + +test "buffer" { + { + var buf1: [32]u8 = undefined; + var context = BufPrintContext{ .remaining = buf1[0..] }; + try formatType(1234, "", FormatOptions{}, &context, error{BufferTooSmall}, bufPrintWrite, default_max_depth); + var res = buf1[0 .. buf1.len - context.remaining.len]; + testing.expect(mem.eql(u8, res, "1234")); + + context = BufPrintContext{ .remaining = buf1[0..] }; + try formatType('a', "c", FormatOptions{}, &context, error{BufferTooSmall}, bufPrintWrite, default_max_depth); + res = buf1[0 .. buf1.len - context.remaining.len]; + testing.expect(mem.eql(u8, res, "a")); + + context = BufPrintContext{ .remaining = buf1[0..] }; + try formatType(0b1100, "b", FormatOptions{}, &context, error{BufferTooSmall}, bufPrintWrite, default_max_depth); + res = buf1[0 .. buf1.len - context.remaining.len]; + testing.expect(mem.eql(u8, res, "1100")); + } +} + +test "array" { + { + const value: [3]u8 = "abc"; + try testFmt("array: abc\n", "array: {}\n", value); + try testFmt("array: abc\n", "array: {}\n", &value); + + var buf: [100]u8 = undefined; + try testFmt( + try bufPrint(buf[0..], "array: [3]u8@{x}\n", @ptrToInt(&value)), + "array: {*}\n", + &value, + ); + } +} + +test "slice" { + { + const value: []const u8 = "abc"; + try testFmt("slice: abc\n", "slice: {}\n", value); + } + { + const value = @intToPtr([*]const []const u8, 0xdeadbeef)[0..0]; + try testFmt("slice: []const u8@deadbeef\n", "slice: {}\n", value); + } + + try testFmt("buf: Test \n", "buf: {s:5}\n", "Test"); + try testFmt("buf: Test\n Other text", "buf: {s}\n Other text", "Test"); +} + +test "pointer" { + { + const value = @intToPtr(*i32, 0xdeadbeef); + try testFmt("pointer: i32@deadbeef\n", "pointer: {}\n", value); + try testFmt("pointer: i32@deadbeef\n", "pointer: {*}\n", value); + } + { + const value = @intToPtr(fn () void, 0xdeadbeef); + try testFmt("pointer: fn() void@deadbeef\n", "pointer: {}\n", value); + } + { + const value = @intToPtr(fn () void, 0xdeadbeef); + try testFmt("pointer: fn() void@deadbeef\n", "pointer: {}\n", value); + } +} + +test "cstr" { + try testFmt("cstr: Test C\n", "cstr: {s}\n", c"Test C"); + try testFmt("cstr: Test C \n", "cstr: {s:10}\n", c"Test C"); +} + +test "filesize" { + if (builtin.os == .linux and builtin.arch == .arm and builtin.abi == .musleabihf) { + // TODO https://github.com/ziglang/zig/issues/3289 + return error.SkipZigTest; + } + try testFmt("file size: 63MiB\n", "file size: {Bi}\n", usize(63 * 1024 * 1024)); + try testFmt("file size: 66.06MB\n", "file size: {B:.2}\n", usize(63 * 1024 * 1024)); +} + +test "struct" { + { + const Struct = struct { + field: u8, + }; + const value = Struct{ .field = 42 }; + try testFmt("struct: Struct{ .field = 42 }\n", "struct: {}\n", value); + try testFmt("struct: Struct{ .field = 42 }\n", "struct: {}\n", &value); + } + { + const Struct = struct { + a: u0, + b: u1, + }; + const value = Struct{ .a = 0, .b = 1 }; + try testFmt("struct: Struct{ .a = 0, .b = 1 }\n", "struct: {}\n", value); + } +} + +test "enum" { + const Enum = enum { + One, + Two, + }; + const value = Enum.Two; + try testFmt("enum: Enum.Two\n", "enum: {}\n", value); + try testFmt("enum: Enum.Two\n", "enum: {}\n", &value); +} + +test "float.scientific" { + if (builtin.os == .linux and builtin.arch == .arm and builtin.abi == .musleabihf) { + // TODO https://github.com/ziglang/zig/issues/3289 + return error.SkipZigTest; + } + try testFmt("f32: 1.34000003e+00", "f32: {e}", f32(1.34)); + try testFmt("f32: 1.23400001e+01", "f32: {e}", f32(12.34)); + try testFmt("f64: -1.234e+11", "f64: {e}", f64(-12.34e10)); + try testFmt("f64: 9.99996e-40", "f64: {e}", f64(9.999960e-40)); +} + +test "float.scientific.precision" { + if (builtin.os == .linux and builtin.arch == .arm and builtin.abi == .musleabihf) { + // TODO https://github.com/ziglang/zig/issues/3289 + return error.SkipZigTest; + } + try testFmt("f64: 1.40971e-42", "f64: {e:.5}", f64(1.409706e-42)); + try testFmt("f64: 1.00000e-09", "f64: {e:.5}", f64(@bitCast(f32, u32(814313563)))); + try testFmt("f64: 7.81250e-03", "f64: {e:.5}", f64(@bitCast(f32, u32(1006632960)))); + // libc rounds 1.000005e+05 to 1.00000e+05 but zig does 1.00001e+05. + // In fact, libc doesn't round a lot of 5 cases up when one past the precision point. + try testFmt("f64: 1.00001e+05", "f64: {e:.5}", f64(@bitCast(f32, u32(1203982400)))); +} + +test "float.special" { + if (builtin.os == .linux and builtin.arch == .arm and builtin.abi == .musleabihf) { + // TODO https://github.com/ziglang/zig/issues/3289 + return error.SkipZigTest; + } + try testFmt("f64: nan", "f64: {}", math.nan_f64); + // negative nan is not defined by IEE 754, + // and ARM thus normalizes it to positive nan + if (builtin.arch != builtin.Arch.arm) { + try testFmt("f64: -nan", "f64: {}", -math.nan_f64); + } + try testFmt("f64: inf", "f64: {}", math.inf_f64); + try testFmt("f64: -inf", "f64: {}", -math.inf_f64); +} + +test "float.decimal" { + if (builtin.os == .linux and builtin.arch == .arm and builtin.abi == .musleabihf) { + // TODO https://github.com/ziglang/zig/issues/3289 + return error.SkipZigTest; + } + try testFmt("f64: 152314000000000000000000000000", "f64: {d}", f64(1.52314e+29)); + try testFmt("f32: 1.1", "f32: {d:.1}", f32(1.1234)); + try testFmt("f32: 1234.57", "f32: {d:.2}", f32(1234.567)); + // -11.1234 is converted to f64 -11.12339... internally (errol3() function takes f64). + // -11.12339... is rounded back up to -11.1234 + try testFmt("f32: -11.1234", "f32: {d:.4}", f32(-11.1234)); + try testFmt("f32: 91.12345", "f32: {d:.5}", f32(91.12345)); + try testFmt("f64: 91.1234567890", "f64: {d:.10}", f64(91.12345678901235)); + try testFmt("f64: 0.00000", "f64: {d:.5}", f64(0.0)); + try testFmt("f64: 6", "f64: {d:.0}", f64(5.700)); + try testFmt("f64: 10.0", "f64: {d:.1}", f64(9.999)); + try testFmt("f64: 1.000", "f64: {d:.3}", f64(1.0)); + try testFmt("f64: 0.00030000", "f64: {d:.8}", f64(0.0003)); + try testFmt("f64: 0.00000", "f64: {d:.5}", f64(1.40130e-45)); + try testFmt("f64: 0.00000", "f64: {d:.5}", f64(9.999960e-40)); +} + +test "float.libc.sanity" { + if (builtin.os == .linux and builtin.arch == .arm and builtin.abi == .musleabihf) { + // TODO https://github.com/ziglang/zig/issues/3289 + return error.SkipZigTest; + } + try testFmt("f64: 0.00001", "f64: {d:.5}", f64(@bitCast(f32, u32(916964781)))); + try testFmt("f64: 0.00001", "f64: {d:.5}", f64(@bitCast(f32, u32(925353389)))); + try testFmt("f64: 0.10000", "f64: {d:.5}", f64(@bitCast(f32, u32(1036831278)))); + try testFmt("f64: 1.00000", "f64: {d:.5}", f64(@bitCast(f32, u32(1065353133)))); + try testFmt("f64: 10.00000", "f64: {d:.5}", f64(@bitCast(f32, u32(1092616192)))); + + // libc differences + // + // This is 0.015625 exactly according to gdb. We thus round down, + // however glibc rounds up for some reason. This occurs for all + // floats of the form x.yyyy25 on a precision point. + try testFmt("f64: 0.01563", "f64: {d:.5}", f64(@bitCast(f32, u32(1015021568)))); + // errol3 rounds to ... 630 but libc rounds to ...632. Grisu3 + // also rounds to 630 so I'm inclined to believe libc is not + // optimal here. + try testFmt("f64: 18014400656965630.00000", "f64: {d:.5}", f64(@bitCast(f32, u32(1518338049)))); +} + +test "custom" { + const Vec2 = struct { + const SelfType = @This(); + x: f32, + y: f32, + + pub fn format( + self: SelfType, + comptime fmt: []const u8, + options: FormatOptions, + context: var, + comptime Errors: type, + output: fn (@typeOf(context), []const u8) Errors!void, + ) Errors!void { + if (fmt.len == 0 or comptime std.mem.eql(u8, fmt, "p")) { + return std.fmt.format(context, Errors, output, "({d:.3},{d:.3})", self.x, self.y); + } else if (comptime std.mem.eql(u8, fmt, "d")) { + return std.fmt.format(context, Errors, output, "{d:.3}x{d:.3}", self.x, self.y); + } else { + @compileError("Unknown format character: '" ++ fmt ++ "'"); + } + } + }; + + var buf1: [32]u8 = undefined; + var value = Vec2{ + .x = 10.2, + .y = 2.22, + }; + try testFmt("point: (10.200,2.220)\n", "point: {}\n", &value); + try testFmt("dim: 10.200x2.220\n", "dim: {d}\n", &value); + + // same thing but not passing a pointer + try testFmt("point: (10.200,2.220)\n", "point: {}\n", value); + try testFmt("dim: 10.200x2.220\n", "dim: {d}\n", value); +} + +test "struct" { + const S = struct { + a: u32, + b: anyerror, + }; + + const inst = S{ + .a = 456, + .b = error.Unused, + }; + + try testFmt("S{ .a = 456, .b = error.Unused }", "{}", inst); +} + +test "union" { + const TU = union(enum) { + float: f32, + int: u32, + }; + + const UU = union { + float: f32, + int: u32, + }; + + const EU = extern union { + float: f32, + int: u32, + }; + + const tu_inst = TU{ .int = 123 }; + const uu_inst = UU{ .int = 456 }; + const eu_inst = EU{ .float = 321.123 }; + + try testFmt("TU{ .int = 123 }", "{}", tu_inst); + + var buf: [100]u8 = undefined; + const uu_result = try bufPrint(buf[0..], "{}", uu_inst); + testing.expect(mem.eql(u8, uu_result[0..3], "UU@")); + + const eu_result = try bufPrint(buf[0..], "{}", eu_inst); + testing.expect(mem.eql(u8, uu_result[0..3], "EU@")); +} + +test "enum" { + const E = enum { + One, + Two, + Three, + }; + + const inst = E.Two; + + try testFmt("E.Two", "{}", inst); +} + +test "struct.self-referential" { + const S = struct { + const SelfType = @This(); + a: ?*SelfType, + }; + + var inst = S{ + .a = null, + }; + inst.a = &inst; + + try testFmt("S{ .a = S{ .a = S{ .a = S{ ... } } } }", "{}", inst); +} + +test "struct.zero-size" { + const A = struct { + fn foo() void {} + }; + const B = struct { + a: A, + c: i32, + }; + + const a = A{}; + const b = B{ .a = a, .c = 0 }; + + try testFmt("B{ .a = A{ }, .c = 0 }", "{}", b); +} + +test "bytes.hex" { + const some_bytes = "\xCA\xFE\xBA\xBE"; + try testFmt("lowercase: cafebabe\n", "lowercase: {x}\n", some_bytes); + try testFmt("uppercase: CAFEBABE\n", "uppercase: {X}\n", some_bytes); + //Test Slices + try testFmt("uppercase: CAFE\n", "uppercase: {X}\n", some_bytes[0..2]); + try testFmt("lowercase: babe\n", "lowercase: {x}\n", some_bytes[2..]); + const bytes_with_zeros = "\x00\x0E\xBA\xBE"; + try testFmt("lowercase: 000ebabe\n", "lowercase: {x}\n", bytes_with_zeros); +} + +fn testFmt(expected: []const u8, comptime template: []const u8, args: ...) !void { + var buf: [100]u8 = undefined; + const result = try bufPrint(buf[0..], template, args); + if (mem.eql(u8, result, expected)) return; + + std.debug.warn("\n====== expected this output: =========\n"); + std.debug.warn("{}", expected); + std.debug.warn("\n======== instead found this: =========\n"); + std.debug.warn("{}", result); + std.debug.warn("\n======================================\n"); + return error.TestFailed; +} + +pub fn trim(buf: []const u8) []const u8 { + var start: usize = 0; + while (start < buf.len and isWhiteSpace(buf[start])) : (start += 1) {} + + var end: usize = buf.len; + while (true) { + if (end > start) { + const new_end = end - 1; + if (isWhiteSpace(buf[new_end])) { + end = new_end; + continue; + } + } + break; + } + return buf[start..end]; +} + +test "trim" { + testing.expect(mem.eql(u8, "abc", trim("\n abc \t"))); + testing.expect(mem.eql(u8, "", trim(" "))); + testing.expect(mem.eql(u8, "", trim(""))); + testing.expect(mem.eql(u8, "abc", trim(" abc"))); + testing.expect(mem.eql(u8, "abc", trim("abc "))); +} + +pub fn isWhiteSpace(byte: u8) bool { + return switch (byte) { + ' ', '\t', '\n', '\r' => true, + else => false, + }; +} + +pub fn hexToBytes(out: []u8, input: []const u8) !void { + if (out.len * 2 < input.len) + return error.InvalidLength; + + var in_i: usize = 0; + while (in_i != input.len) : (in_i += 2) { + const hi = try charToDigit(input[in_i], 16); + const lo = try charToDigit(input[in_i + 1], 16); + out[in_i / 2] = (hi << 4) | lo; + } +} + +test "hexToBytes" { + const test_hex_str = "909A312BB12ED1F819B3521AC4C1E896F2160507FFC1C8381E3B07BB16BD1706"; + var pb: [32]u8 = undefined; + try hexToBytes(pb[0..], test_hex_str); + try testFmt(test_hex_str, "{X}", pb); +} + +test "formatIntValue with comptime_int" { + const value: comptime_int = 123456789123456789; + + var buf = try std.Buffer.init(std.debug.global_allocator, ""); + try formatIntValue(value, "", FormatOptions{}, &buf, @typeOf(std.Buffer.append).ReturnType.ErrorSet, std.Buffer.append); + assert(mem.eql(u8, buf.toSlice(), "123456789123456789")); +} + +test "formatType max_depth" { + const Vec2 = struct { + const SelfType = @This(); + x: f32, + y: f32, + + pub fn format( + self: SelfType, + comptime fmt: []const u8, + options: FormatOptions, + context: var, + comptime Errors: type, + output: fn (@typeOf(context), []const u8) Errors!void, + ) Errors!void { + if (fmt.len == 0) { + return std.fmt.format(context, Errors, output, "({d:.3},{d:.3})", self.x, self.y); + } else { + @compileError("Unknown format string: '" ++ fmt ++ "'"); + } + } + }; + const E = enum { + One, + Two, + Three, + }; + const TU = union(enum) { + const SelfType = @This(); + float: f32, + int: u32, + ptr: ?*SelfType, + }; + const S = struct { + const SelfType = @This(); + a: ?*SelfType, + tu: TU, + e: E, + vec: Vec2, + }; + + var inst = S{ + .a = null, + .tu = TU{ .ptr = null }, + .e = E.Two, + .vec = Vec2{ .x = 10.2, .y = 2.22 }, + }; + inst.a = &inst; + inst.tu.ptr = &inst.tu; + + var buf0 = try std.Buffer.init(std.debug.global_allocator, ""); + try formatType(inst, "", FormatOptions{}, &buf0, @typeOf(std.Buffer.append).ReturnType.ErrorSet, std.Buffer.append, 0); + assert(mem.eql(u8, buf0.toSlice(), "S{ ... }")); + + var buf1 = try std.Buffer.init(std.debug.global_allocator, ""); + try formatType(inst, "", FormatOptions{}, &buf1, @typeOf(std.Buffer.append).ReturnType.ErrorSet, std.Buffer.append, 1); + assert(mem.eql(u8, buf1.toSlice(), "S{ .a = S{ ... }, .tu = TU{ ... }, .e = E.Two, .vec = (10.200,2.220) }")); + + var buf2 = try std.Buffer.init(std.debug.global_allocator, ""); + try formatType(inst, "", FormatOptions{}, &buf2, @typeOf(std.Buffer.append).ReturnType.ErrorSet, std.Buffer.append, 2); + assert(mem.eql(u8, buf2.toSlice(), "S{ .a = S{ .a = S{ ... }, .tu = TU{ ... }, .e = E.Two, .vec = (10.200,2.220) }, .tu = TU{ .ptr = TU{ ... } }, .e = E.Two, .vec = (10.200,2.220) }")); + + var buf3 = try std.Buffer.init(std.debug.global_allocator, ""); + try formatType(inst, "", FormatOptions{}, &buf3, @typeOf(std.Buffer.append).ReturnType.ErrorSet, std.Buffer.append, 3); + assert(mem.eql(u8, buf3.toSlice(), "S{ .a = S{ .a = S{ .a = S{ ... }, .tu = TU{ ... }, .e = E.Two, .vec = (10.200,2.220) }, .tu = TU{ .ptr = TU{ ... } }, .e = E.Two, .vec = (10.200,2.220) }, .tu = TU{ .ptr = TU{ .ptr = TU{ ... } } }, .e = E.Two, .vec = (10.200,2.220) }")); +} + +test "positional" { + try testFmt("2 1 0", "{2} {1} {0}", usize(0), usize(1), usize(2)); + try testFmt("2 1 0", "{2} {1} {}", usize(0), usize(1), usize(2)); + try testFmt("0 0", "{0} {0}", usize(0)); + try testFmt("0 1", "{} {1}", usize(0), usize(1)); + try testFmt("1 0 0 1", "{1} {} {0} {}", usize(0), usize(1)); +} + +test "positional with specifier" { + try testFmt("10.0", "{0d:.1}", f64(9.999)); +} + +test "positional/alignment/width/precision" { + try testFmt("10.0", "{0d: >3.1}", f64(9.999)); +} diff --git a/lib/std/fmt/errol.zig b/lib/std/fmt/errol.zig new file mode 100644 index 0000000000..a835195fc7 --- /dev/null +++ b/lib/std/fmt/errol.zig @@ -0,0 +1,704 @@ +const std = @import("../std.zig"); +const enum3 = @import("errol/enum3.zig").enum3; +const enum3_data = @import("errol/enum3.zig").enum3_data; +const lookup_table = @import("errol/lookup.zig").lookup_table; +const HP = @import("errol/lookup.zig").HP; +const math = std.math; +const mem = std.mem; +const assert = std.debug.assert; + +pub const FloatDecimal = struct { + digits: []u8, + exp: i32, +}; + +pub const RoundMode = enum { + // Round only the fractional portion (e.g. 1234.23 has precision 2) + Decimal, + // Round the entire whole/fractional portion (e.g. 1.23423e3 has precision 5) + Scientific, +}; + +/// Round a FloatDecimal as returned by errol3 to the specified fractional precision. +/// All digits after the specified precision should be considered invalid. +pub fn roundToPrecision(float_decimal: *FloatDecimal, precision: usize, mode: RoundMode) void { + // The round digit refers to the index which we should look at to determine + // whether we need to round to match the specified precision. + var round_digit: usize = 0; + + switch (mode) { + RoundMode.Decimal => { + if (float_decimal.exp >= 0) { + round_digit = precision + @intCast(usize, float_decimal.exp); + } else { + // if a small negative exp, then adjust we need to offset by the number + // of leading zeros that will occur. + const min_exp_required = @intCast(usize, -float_decimal.exp); + if (precision > min_exp_required) { + round_digit = precision - min_exp_required; + } + } + }, + RoundMode.Scientific => { + round_digit = 1 + precision; + }, + } + + // It suffices to look at just this digit. We don't round and propagate say 0.04999 to 0.05 + // first, and then to 0.1 in the case of a {.1} single precision. + + // Find the digit which will signify the round point and start rounding backwards. + if (round_digit < float_decimal.digits.len and float_decimal.digits[round_digit] - '0' >= 5) { + assert(round_digit >= 0); + + var i = round_digit; + while (true) { + if (i == 0) { + // Rounded all the way past the start. This was of the form 9.999... + // Slot the new digit in place and increase the exponent. + float_decimal.exp += 1; + + // Re-size the buffer to use the reserved leading byte. + const one_before = @intToPtr([*]u8, @ptrToInt(&float_decimal.digits[0]) - 1); + float_decimal.digits = one_before[0 .. float_decimal.digits.len + 1]; + float_decimal.digits[0] = '1'; + return; + } + + i -= 1; + + const new_value = (float_decimal.digits[i] - '0' + 1) % 10; + float_decimal.digits[i] = new_value + '0'; + + // must continue rounding until non-9 + if (new_value != 0) { + return; + } + } + } +} + +/// Corrected Errol3 double to ASCII conversion. +pub fn errol3(value: f64, buffer: []u8) FloatDecimal { + const bits = @bitCast(u64, value); + const i = tableLowerBound(bits); + if (i < enum3.len and enum3[i] == bits) { + const data = enum3_data[i]; + const digits = buffer[1 .. data.str.len + 1]; + mem.copy(u8, digits, data.str); + return FloatDecimal{ + .digits = digits, + .exp = data.exp, + }; + } + + return errol3u(value, buffer); +} + +/// Uncorrected Errol3 double to ASCII conversion. +fn errol3u(val: f64, buffer: []u8) FloatDecimal { + // check if in integer or fixed range + if (val > 9.007199254740992e15 and val < 3.40282366920938e+38) { + return errolInt(val, buffer); + } else if (val >= 16.0 and val < 9.007199254740992e15) { + return errolFixed(val, buffer); + } + + // normalize the midpoint + + const e = math.frexp(val).exponent; + var exp = @floatToInt(i16, math.floor(307 + @intToFloat(f64, e) * 0.30103)); + if (exp < 20) { + exp = 20; + } else if (@intCast(usize, exp) >= lookup_table.len) { + exp = @intCast(i16, lookup_table.len - 1); + } + + var mid = lookup_table[@intCast(usize, exp)]; + mid = hpProd(mid, val); + const lten = lookup_table[@intCast(usize, exp)].val; + + exp -= 307; + + var ten: f64 = 1.0; + + while (mid.val > 10.0 or (mid.val == 10.0 and mid.off >= 0.0)) { + exp += 1; + hpDiv10(&mid); + ten /= 10.0; + } + + while (mid.val < 1.0 or (mid.val == 1.0 and mid.off < 0.0)) { + exp -= 1; + hpMul10(&mid); + ten *= 10.0; + } + + // compute boundaries + var high = HP{ + .val = mid.val, + .off = mid.off + (fpnext(val) - val) * lten * ten / 2.0, + }; + var low = HP{ + .val = mid.val, + .off = mid.off + (fpprev(val) - val) * lten * ten / 2.0, + }; + + hpNormalize(&high); + hpNormalize(&low); + + // normalized boundaries + + while (high.val > 10.0 or (high.val == 10.0 and high.off >= 0.0)) { + exp += 1; + hpDiv10(&high); + hpDiv10(&low); + } + + while (high.val < 1.0 or (high.val == 1.0 and high.off < 0.0)) { + exp -= 1; + hpMul10(&high); + hpMul10(&low); + } + + // digit generation + + // We generate digits starting at index 1. If rounding a buffer later then it may be + // required to generate a preceding digit in some cases (9.999) in which case we use + // the 0-index for this extra digit. + var buf_index: usize = 1; + while (true) { + var hdig = @floatToInt(u8, math.floor(high.val)); + if ((high.val == @intToFloat(f64, hdig)) and (high.off < 0)) hdig -= 1; + + var ldig = @floatToInt(u8, math.floor(low.val)); + if ((low.val == @intToFloat(f64, ldig)) and (low.off < 0)) ldig -= 1; + + if (ldig != hdig) break; + + buffer[buf_index] = hdig + '0'; + buf_index += 1; + high.val -= @intToFloat(f64, hdig); + low.val -= @intToFloat(f64, ldig); + hpMul10(&high); + hpMul10(&low); + } + + const tmp = (high.val + low.val) / 2.0; + var mdig = @floatToInt(u8, math.floor(tmp + 0.5)); + if ((@intToFloat(f64, mdig) - tmp) == 0.5 and (mdig & 0x1) != 0) mdig -= 1; + + buffer[buf_index] = mdig + '0'; + buf_index += 1; + + return FloatDecimal{ + .digits = buffer[1..buf_index], + .exp = exp, + }; +} + +fn tableLowerBound(k: u64) usize { + var i = enum3.len; + var j: usize = 0; + + while (j < enum3.len) { + if (enum3[j] < k) { + j = 2 * j + 2; + } else { + i = j; + j = 2 * j + 1; + } + } + + return i; +} + +/// Compute the product of an HP number and a double. +/// @in: The HP number. +/// @val: The double. +/// &returns: The HP number. +fn hpProd(in: HP, val: f64) HP { + var hi: f64 = undefined; + var lo: f64 = undefined; + split(in.val, &hi, &lo); + + var hi2: f64 = undefined; + var lo2: f64 = undefined; + split(val, &hi2, &lo2); + + const p = in.val * val; + const e = ((hi * hi2 - p) + lo * hi2 + hi * lo2) + lo * lo2; + + return HP{ + .val = p, + .off = in.off * val + e, + }; +} + +/// Split a double into two halves. +/// @val: The double. +/// @hi: The high bits. +/// @lo: The low bits. +fn split(val: f64, hi: *f64, lo: *f64) void { + hi.* = gethi(val); + lo.* = val - hi.*; +} + +fn gethi(in: f64) f64 { + const bits = @bitCast(u64, in); + const new_bits = bits & 0xFFFFFFFFF8000000; + return @bitCast(f64, new_bits); +} + +/// Normalize the number by factoring in the error. +/// @hp: The float pair. +fn hpNormalize(hp: *HP) void { + const val = hp.val; + hp.val += hp.off; + hp.off += val - hp.val; +} + +/// Divide the high-precision number by ten. +/// @hp: The high-precision number +fn hpDiv10(hp: *HP) void { + var val = hp.val; + + hp.val /= 10.0; + hp.off /= 10.0; + + val -= hp.val * 8.0; + val -= hp.val * 2.0; + + hp.off += val / 10.0; + + hpNormalize(hp); +} + +/// Multiply the high-precision number by ten. +/// @hp: The high-precision number +fn hpMul10(hp: *HP) void { + const val = hp.val; + + hp.val *= 10.0; + hp.off *= 10.0; + + var off = hp.val; + off -= val * 8.0; + off -= val * 2.0; + + hp.off -= off; + + hpNormalize(hp); +} + +/// Integer conversion algorithm, guaranteed correct, optimal, and best. +/// @val: The val. +/// @buf: The output buffer. +/// &return: The exponent. +fn errolInt(val: f64, buffer: []u8) FloatDecimal { + const pow19 = u128(1e19); + + assert((val > 9.007199254740992e15) and val < (3.40282366920938e38)); + + var mid = @floatToInt(u128, val); + var low: u128 = mid - fpeint((fpnext(val) - val) / 2.0); + var high: u128 = mid + fpeint((val - fpprev(val)) / 2.0); + + if (@bitCast(u64, val) & 0x1 != 0) { + high -= 1; + } else { + low -= 1; + } + + var l64 = @intCast(u64, low % pow19); + const lf = @intCast(u64, (low / pow19) % pow19); + + var h64 = @intCast(u64, high % pow19); + const hf = @intCast(u64, (high / pow19) % pow19); + + if (lf != hf) { + l64 = lf; + h64 = hf; + mid = mid / (pow19 / 10); + } + + var mi: i32 = mismatch10(l64, h64); + var x: u64 = 1; + { + var i: i32 = @boolToInt(lf == hf); + while (i < mi) : (i += 1) { + x *= 10; + } + } + const m64 = @truncate(u64, @divTrunc(mid, x)); + + if (lf != hf) mi += 19; + + var buf_index = u64toa(m64, buffer) - 1; + + if (mi != 0) { + buffer[buf_index - 1] += @boolToInt(buffer[buf_index] >= '5'); + } else { + buf_index += 1; + } + + return FloatDecimal{ + .digits = buffer[0..buf_index], + .exp = @intCast(i32, buf_index) + mi, + }; +} + +/// Fixed point conversion algorithm, guaranteed correct, optimal, and best. +/// @val: The val. +/// @buf: The output buffer. +/// &return: The exponent. +fn errolFixed(val: f64, buffer: []u8) FloatDecimal { + assert((val >= 16.0) and (val < 9.007199254740992e15)); + + const u = @floatToInt(u64, val); + const n = @intToFloat(f64, u); + + var mid = val - n; + var lo = ((fpprev(val) - n) + mid) / 2.0; + var hi = ((fpnext(val) - n) + mid) / 2.0; + + var buf_index = u64toa(u, buffer); + var exp = @intCast(i32, buf_index); + var j = buf_index; + buffer[j] = 0; + + if (mid != 0.0) { + while (mid != 0.0) { + lo *= 10.0; + const ldig = @floatToInt(i32, lo); + lo -= @intToFloat(f64, ldig); + + mid *= 10.0; + const mdig = @floatToInt(i32, mid); + mid -= @intToFloat(f64, mdig); + + hi *= 10.0; + const hdig = @floatToInt(i32, hi); + hi -= @intToFloat(f64, hdig); + + buffer[j] = @intCast(u8, mdig + '0'); + j += 1; + + if (hdig != ldig or j > 50) break; + } + + if (mid > 0.5) { + buffer[j - 1] += 1; + } else if ((mid == 0.5) and (buffer[j - 1] & 0x1) != 0) { + buffer[j - 1] += 1; + } + } else { + while (buffer[j - 1] == '0') { + buffer[j - 1] = 0; + j -= 1; + } + } + + buffer[j] = 0; + + return FloatDecimal{ + .digits = buffer[0..j], + .exp = exp, + }; +} + +fn fpnext(val: f64) f64 { + return @bitCast(f64, @bitCast(u64, val) +% 1); +} + +fn fpprev(val: f64) f64 { + return @bitCast(f64, @bitCast(u64, val) -% 1); +} + +pub const c_digits_lut = [_]u8{ + '0', '0', '0', '1', '0', '2', '0', '3', '0', '4', '0', '5', '0', '6', + '0', '7', '0', '8', '0', '9', '1', '0', '1', '1', '1', '2', '1', '3', + '1', '4', '1', '5', '1', '6', '1', '7', '1', '8', '1', '9', '2', '0', + '2', '1', '2', '2', '2', '3', '2', '4', '2', '5', '2', '6', '2', '7', + '2', '8', '2', '9', '3', '0', '3', '1', '3', '2', '3', '3', '3', '4', + '3', '5', '3', '6', '3', '7', '3', '8', '3', '9', '4', '0', '4', '1', + '4', '2', '4', '3', '4', '4', '4', '5', '4', '6', '4', '7', '4', '8', + '4', '9', '5', '0', '5', '1', '5', '2', '5', '3', '5', '4', '5', '5', + '5', '6', '5', '7', '5', '8', '5', '9', '6', '0', '6', '1', '6', '2', + '6', '3', '6', '4', '6', '5', '6', '6', '6', '7', '6', '8', '6', '9', + '7', '0', '7', '1', '7', '2', '7', '3', '7', '4', '7', '5', '7', '6', + '7', '7', '7', '8', '7', '9', '8', '0', '8', '1', '8', '2', '8', '3', + '8', '4', '8', '5', '8', '6', '8', '7', '8', '8', '8', '9', '9', '0', + '9', '1', '9', '2', '9', '3', '9', '4', '9', '5', '9', '6', '9', '7', + '9', '8', '9', '9', +}; + +fn u64toa(value_param: u64, buffer: []u8) usize { + var value = value_param; + const kTen8: u64 = 100000000; + const kTen9: u64 = kTen8 * 10; + const kTen10: u64 = kTen8 * 100; + const kTen11: u64 = kTen8 * 1000; + const kTen12: u64 = kTen8 * 10000; + const kTen13: u64 = kTen8 * 100000; + const kTen14: u64 = kTen8 * 1000000; + const kTen15: u64 = kTen8 * 10000000; + const kTen16: u64 = kTen8 * kTen8; + + var buf_index: usize = 0; + + if (value < kTen8) { + const v = @intCast(u32, value); + if (v < 10000) { + const d1: u32 = (v / 100) << 1; + const d2: u32 = (v % 100) << 1; + + if (v >= 1000) { + buffer[buf_index] = c_digits_lut[d1]; + buf_index += 1; + } + if (v >= 100) { + buffer[buf_index] = c_digits_lut[d1 + 1]; + buf_index += 1; + } + if (v >= 10) { + buffer[buf_index] = c_digits_lut[d2]; + buf_index += 1; + } + buffer[buf_index] = c_digits_lut[d2 + 1]; + buf_index += 1; + } else { + // value = bbbbcccc + const b: u32 = v / 10000; + const c: u32 = v % 10000; + + const d1: u32 = (b / 100) << 1; + const d2: u32 = (b % 100) << 1; + + const d3: u32 = (c / 100) << 1; + const d4: u32 = (c % 100) << 1; + + if (value >= 10000000) { + buffer[buf_index] = c_digits_lut[d1]; + buf_index += 1; + } + if (value >= 1000000) { + buffer[buf_index] = c_digits_lut[d1 + 1]; + buf_index += 1; + } + if (value >= 100000) { + buffer[buf_index] = c_digits_lut[d2]; + buf_index += 1; + } + buffer[buf_index] = c_digits_lut[d2 + 1]; + buf_index += 1; + + buffer[buf_index] = c_digits_lut[d3]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[d3 + 1]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[d4]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[d4 + 1]; + buf_index += 1; + } + } else if (value < kTen16) { + const v0: u32 = @intCast(u32, value / kTen8); + const v1: u32 = @intCast(u32, value % kTen8); + + const b0: u32 = v0 / 10000; + const c0: u32 = v0 % 10000; + + const d1: u32 = (b0 / 100) << 1; + const d2: u32 = (b0 % 100) << 1; + + const d3: u32 = (c0 / 100) << 1; + const d4: u32 = (c0 % 100) << 1; + + const b1: u32 = v1 / 10000; + const c1: u32 = v1 % 10000; + + const d5: u32 = (b1 / 100) << 1; + const d6: u32 = (b1 % 100) << 1; + + const d7: u32 = (c1 / 100) << 1; + const d8: u32 = (c1 % 100) << 1; + + if (value >= kTen15) { + buffer[buf_index] = c_digits_lut[d1]; + buf_index += 1; + } + if (value >= kTen14) { + buffer[buf_index] = c_digits_lut[d1 + 1]; + buf_index += 1; + } + if (value >= kTen13) { + buffer[buf_index] = c_digits_lut[d2]; + buf_index += 1; + } + if (value >= kTen12) { + buffer[buf_index] = c_digits_lut[d2 + 1]; + buf_index += 1; + } + if (value >= kTen11) { + buffer[buf_index] = c_digits_lut[d3]; + buf_index += 1; + } + if (value >= kTen10) { + buffer[buf_index] = c_digits_lut[d3 + 1]; + buf_index += 1; + } + if (value >= kTen9) { + buffer[buf_index] = c_digits_lut[d4]; + buf_index += 1; + } + if (value >= kTen8) { + buffer[buf_index] = c_digits_lut[d4 + 1]; + buf_index += 1; + } + + buffer[buf_index] = c_digits_lut[d5]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[d5 + 1]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[d6]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[d6 + 1]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[d7]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[d7 + 1]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[d8]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[d8 + 1]; + buf_index += 1; + } else { + const a = @intCast(u32, value / kTen16); // 1 to 1844 + value %= kTen16; + + if (a < 10) { + buffer[buf_index] = '0' + @intCast(u8, a); + buf_index += 1; + } else if (a < 100) { + const i: u32 = a << 1; + buffer[buf_index] = c_digits_lut[i]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[i + 1]; + buf_index += 1; + } else if (a < 1000) { + buffer[buf_index] = '0' + @intCast(u8, a / 100); + buf_index += 1; + + const i: u32 = (a % 100) << 1; + buffer[buf_index] = c_digits_lut[i]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[i + 1]; + buf_index += 1; + } else { + const i: u32 = (a / 100) << 1; + const j: u32 = (a % 100) << 1; + buffer[buf_index] = c_digits_lut[i]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[i + 1]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[j]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[j + 1]; + buf_index += 1; + } + + const v0 = @intCast(u32, value / kTen8); + const v1 = @intCast(u32, value % kTen8); + + const b0: u32 = v0 / 10000; + const c0: u32 = v0 % 10000; + + const d1: u32 = (b0 / 100) << 1; + const d2: u32 = (b0 % 100) << 1; + + const d3: u32 = (c0 / 100) << 1; + const d4: u32 = (c0 % 100) << 1; + + const b1: u32 = v1 / 10000; + const c1: u32 = v1 % 10000; + + const d5: u32 = (b1 / 100) << 1; + const d6: u32 = (b1 % 100) << 1; + + const d7: u32 = (c1 / 100) << 1; + const d8: u32 = (c1 % 100) << 1; + + buffer[buf_index] = c_digits_lut[d1]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[d1 + 1]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[d2]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[d2 + 1]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[d3]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[d3 + 1]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[d4]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[d4 + 1]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[d5]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[d5 + 1]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[d6]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[d6 + 1]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[d7]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[d7 + 1]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[d8]; + buf_index += 1; + buffer[buf_index] = c_digits_lut[d8 + 1]; + buf_index += 1; + } + + return buf_index; +} + +fn fpeint(from: f64) u128 { + const bits = @bitCast(u64, from); + assert((bits & ((1 << 52) - 1)) == 0); + + return u128(1) << @truncate(u7, (bits >> 52) -% 1023); +} + +/// Given two different integers with the same length in terms of the number +/// of decimal digits, index the digits from the right-most position starting +/// from zero, find the first index where the digits in the two integers +/// divergent starting from the highest index. +/// @a: Integer a. +/// @b: Integer b. +/// &returns: An index within [0, 19). +fn mismatch10(a: u64, b: u64) i32 { + const pow10 = 10000000000; + const af = a / pow10; + const bf = b / pow10; + + var i: i32 = 0; + var a_copy = a; + var b_copy = b; + + if (af != bf) { + i = 10; + a_copy = af; + b_copy = bf; + } + + while (true) : (i += 1) { + a_copy /= 10; + b_copy /= 10; + + if (a_copy == b_copy) return i; + } +} diff --git a/lib/std/fmt/errol/enum3.zig b/lib/std/fmt/errol/enum3.zig new file mode 100644 index 0000000000..c27753483d --- /dev/null +++ b/lib/std/fmt/errol/enum3.zig @@ -0,0 +1,881 @@ +pub const enum3 = [_]u64{ + 0x4e2e2785c3a2a20b, + 0x240a28877a09a4e1, + 0x728fca36c06cf106, + 0x1016b100e18e5c17, + 0x3159190e30e46c1d, + 0x64312a13daa46fe4, + 0x7c41926c7a7122ba, + 0x08667a3c8dc4bc9c, + 0x18dde996371c6060, + 0x297c2c31a31998ae, + 0x368b870de5d93270, + 0x57d561def4a9ee32, + 0x6d275d226331d03a, + 0x76703d7cb98edc59, + 0x7ec490abad057752, + 0x037be9d5a60850b5, + 0x0c63165633977bca, + 0x14a048cb468bc209, + 0x20dc29bc6879dfcd, + 0x2643dc6227de9148, + 0x2d64f14348a4c5db, + 0x341eef5e1f90ac35, + 0x4931159a8bd8a240, + 0x503ca9bade45b94a, + 0x5c1af5b5378aa2e5, + 0x6b4ef9beaa7aa584, + 0x6ef1c382c3819a0a, + 0x754fe46e378bf133, + 0x7ace779fddf21622, + 0x7df22815078cb97b, + 0x7f33c8eeb77b8d05, + 0x011b7aa3d73f6658, + 0x06ceb7f2c53db97f, + 0x0b8f3d82e9356287, + 0x0e304273b18918b0, + 0x139fb24e492936f6, + 0x176090684f5fe997, + 0x1e3035e7b5183922, + 0x220ce77c2b3328fc, + 0x246441ed79830182, + 0x279b5cd8bbdd8770, + 0x2cc7c3fba45c1272, + 0x3081eab25ad0fcf7, + 0x329f5a18504dfaac, + 0x347eef5e1f90ac35, + 0x3a978cfcab31064c, + 0x4baa32ac316fb3ab, + 0x4eb9a2c2a34ac2f9, + 0x522f6a5025e71a61, + 0x5935ede8cce30845, + 0x5f9aeac2d1ea2695, + 0x6820ee7811241ad3, + 0x6c06c9e14b7c22c3, + 0x6e5a2fbffdb7580c, + 0x71160cf8f38b0465, + 0x738a37935f3b71c9, + 0x756fe46e378bf133, + 0x7856d2aa2fc5f2b5, + 0x7bd3b063946e10ae, + 0x7d8220e1772428d7, + 0x7e222815078cb97b, + 0x7ef5bc471d5456c7, + 0x7fb82baa4ae611dc, + 0x00bb7aa3d73f6658, + 0x0190a0f3c55062c5, + 0x05898e3445512a6e, + 0x07bfe89cf1bd76ac, + 0x08dfa7ebe304ee3e, + 0x0c43165633977bca, + 0x0e104273b18918b0, + 0x0fd6ba8608faa6a9, + 0x10b4139a6b17b224, + 0x1466cc4fc92a0fa6, + 0x162ba6008389068a, + 0x1804116d591ef1fb, + 0x1c513770474911bd, + 0x1e7035e7b5183923, + 0x2114dab846e19e25, + 0x222ce77c2b3328fc, + 0x244441ed79830182, + 0x249b23b50fc204db, + 0x278aacfcb88c92d6, + 0x289d52af46e5fa6a, + 0x2bdec922478c0421, + 0x2d44f14348a4c5dc, + 0x2f0c1249e96b6d8d, + 0x30addc7e975c5045, + 0x322aedaa0fc32ac8, + 0x33deef5e1f90ac34, + 0x343eef5e1f90ac35, + 0x35ef1de1f7f14439, + 0x3854faba79ea92ec, + 0x47f52d02c7e14af7, + 0x4a6bb6979ae39c49, + 0x4c85564fb098c955, + 0x4e80fde34c996086, + 0x4ed9a2c2a34ac2f9, + 0x51a3274280201a89, + 0x574fe0403124a00e, + 0x581561def4a9ee31, + 0x5b55ed1f039cebff, + 0x5e2780695036a679, + 0x624be064a3fb2725, + 0x674dcfee6690ffc6, + 0x6a6cc08102f0da5b, + 0x6be6c9e14b7c22c4, + 0x6ce75d226331d03a, + 0x6d5b9445072f4374, + 0x6e927edd0dbb8c09, + 0x71060cf8f38b0465, + 0x71b1d7cb7eae05d9, + 0x72fba10d818fdafd, + 0x739a37935f3b71c9, + 0x755fe46e378bf133, + 0x76603d7cb98edc59, + 0x78447e17e7814ce7, + 0x799d696737fe68c7, + 0x7ade779fddf21622, + 0x7c1c283ffc61c87d, + 0x7d1a85c6f7fba05d, + 0x7da220e1772428d7, + 0x7e022815078cb97b, + 0x7e9a9b45a91f1700, + 0x7ee3c8eeb77b8d05, + 0x7f13c8eeb77b8d05, + 0x7f6594223f5654bf, + 0x7fd82baa4ae611dc, + 0x002d243f646eaf51, + 0x00f5d15b26b80e30, + 0x0180a0f3c55062c5, + 0x01f393b456eef178, + 0x05798e3445512a6e, + 0x06afdadafcacdf85, + 0x06e8b03fd6894b66, + 0x07cfe89cf1bd76ac, + 0x08ac25584881552a, + 0x097822507db6a8fd, + 0x0c27b35936d56e28, + 0x0c53165633977bca, + 0x0c8e9eddbbb259b4, + 0x0e204273b18918b0, + 0x0f1d16d6d4b89689, + 0x0fe6ba8608faa6a9, + 0x105f48347c60a1be, + 0x13627383c5456c5e, + 0x13f93bb1e72a2033, + 0x148048cb468bc208, + 0x1514c0b3a63c1444, + 0x175090684f5fe997, + 0x17e4116d591ef1fb, + 0x18cde996371c6060, + 0x19aa2cf604c30d3f, + 0x1d2b1ad9101b1bfd, + 0x1e5035e7b5183923, + 0x1fe5a79c4e71d028, + 0x20ec29bc6879dfcd, + 0x218ce77c2b3328fb, + 0x221ce77c2b3328fc, + 0x233f346f9ed36b89, + 0x243441ed79830182, + 0x245441ed79830182, + 0x247441ed79830182, + 0x2541e4ee41180c0a, + 0x277aacfcb88c92d6, + 0x279aacfcb88c92d6, + 0x27cbb4c6bd8601bd, + 0x28c04a616046e074, + 0x2a4eeff57768f88c, + 0x2c2379f099a86227, + 0x2d04f14348a4c5db, + 0x2d54f14348a4c5dc, + 0x2d6a8c931c19b77a, + 0x2fa387cf9cb4ad4e, + 0x308ddc7e975c5046, + 0x3149190e30e46c1d, + 0x318d2ec75df6ba2a, + 0x32548050091c3c24, + 0x33beef5e1f90ac34, + 0x33feef5e1f90ac35, + 0x342eef5e1f90ac35, + 0x345eef5e1f90ac35, + 0x35108621c4199208, + 0x366b870de5d93270, + 0x375b20c2f4f8d4a0, + 0x3864faba79ea92ec, + 0x3aa78cfcab31064c, + 0x4919d9577de925d5, + 0x49ccadd6dd730c96, + 0x4b9a32ac316fb3ab, + 0x4bba32ac316fb3ab, + 0x4cff20b1a0d7f626, + 0x4e3e2785c3a2a20b, + 0x4ea9a2c2a34ac2f9, + 0x4ec9a2c2a34ac2f9, + 0x4f28750ea732fdae, + 0x513843e10734fa57, + 0x51e71760b3c0bc13, + 0x55693ba3249a8511, + 0x57763ae2caed4528, + 0x57f561def4a9ee32, + 0x584561def4a9ee31, + 0x5b45ed1f039cebfe, + 0x5bfaf5b5378aa2e5, + 0x5c6cf45d333da323, + 0x5e64ec8fd70420c7, + 0x6009813653f62db7, + 0x64112a13daa46fe4, + 0x672dcfee6690ffc6, + 0x677a77581053543b, + 0x699873e3758bc6b3, + 0x6b3ef9beaa7aa584, + 0x6b7b86d8c3df7cd1, + 0x6bf6c9e14b7c22c3, + 0x6c16c9e14b7c22c3, + 0x6d075d226331d03a, + 0x6d5a3bdac4f00f33, + 0x6e4a2fbffdb7580c, + 0x6e927edd0dbb8c08, + 0x6ee1c382c3819a0a, + 0x70f60cf8f38b0465, + 0x7114390c68b888ce, + 0x714fb4840532a9e5, + 0x727fca36c06cf106, + 0x72eba10d818fdafd, + 0x737a37935f3b71c9, + 0x73972852443155ae, + 0x754fe46e378bf132, + 0x755fe46e378bf132, + 0x756fe46e378bf132, + 0x76603d7cb98edc58, + 0x76703d7cb98edc58, + 0x782f7c6a9ad432a1, + 0x78547e17e7814ce7, + 0x7964066d88c7cab8, + 0x7ace779fddf21621, + 0x7ade779fddf21621, + 0x7bc3b063946e10ae, + 0x7c0c283ffc61c87d, + 0x7c31926c7a7122ba, + 0x7d0a85c6f7fba05d, + 0x7d52a5daf9226f04, + 0x7d9220e1772428d7, + 0x7db220e1772428d7, + 0x7dfe5aceedf1c1f1, + 0x7e122815078cb97b, + 0x7e8a9b45a91f1700, + 0x7eb6202598194bee, + 0x7ec6202598194bee, + 0x7ef3c8eeb77b8d05, + 0x7f03c8eeb77b8d05, + 0x7f23c8eeb77b8d05, + 0x7f5594223f5654bf, + 0x7f9914e03c9260ee, + 0x7fc82baa4ae611dc, + 0x7fefffffffffffff, + 0x001d243f646eaf51, + 0x00ab7aa3d73f6658, + 0x00cb7aa3d73f6658, + 0x010b7aa3d73f6658, + 0x012b7aa3d73f6658, + 0x0180a0f3c55062c6, + 0x0190a0f3c55062c6, + 0x03719f08ccdccfe5, + 0x03dc25ba6a45de02, + 0x05798e3445512a6f, + 0x05898e3445512a6f, + 0x06bfdadafcacdf85, + 0x06cfdadafcacdf85, + 0x06f8b03fd6894b66, + 0x07c1707c02068785, + 0x08567a3c8dc4bc9c, + 0x089c25584881552a, + 0x08dfa7ebe304ee3d, + 0x096822507db6a8fd, + 0x09e41934d77659be, + 0x0c27b35936d56e27, + 0x0c43165633977bc9, + 0x0c53165633977bc9, + 0x0c63165633977bc9, + 0x0c7e9eddbbb259b4, + 0x0c9e9eddbbb259b4, + 0x0e104273b18918b1, + 0x0e204273b18918b1, + 0x0e304273b18918b1, + 0x0fd6ba8608faa6a8, + 0x0fe6ba8608faa6a8, + 0x1006b100e18e5c17, + 0x104f48347c60a1be, + 0x10a4139a6b17b224, + 0x12cb91d317c8ebe9, + 0x138fb24e492936f6, + 0x13afb24e492936f6, + 0x14093bb1e72a2033, + 0x1476cc4fc92a0fa6, + 0x149048cb468bc209, + 0x1504c0b3a63c1444, + 0x161ba6008389068a, + 0x168cfab1a09b49c4, + 0x175090684f5fe998, + 0x176090684f5fe998, + 0x17f4116d591ef1fb, + 0x18a710b7a2ef18b7, + 0x18d99fccca44882a, + 0x199a2cf604c30d3f, + 0x1b5ebddc6593c857, + 0x1d1b1ad9101b1bfd, + 0x1d3b1ad9101b1bfd, + 0x1e4035e7b5183923, + 0x1e6035e7b5183923, + 0x1fd5a79c4e71d028, + 0x20cc29bc6879dfcd, + 0x20e8823a57adbef8, + 0x2104dab846e19e25, + 0x2124dab846e19e25, + 0x220ce77c2b3328fb, + 0x221ce77c2b3328fb, + 0x222ce77c2b3328fb, + 0x229197b290631476, + 0x240a28877a09a4e0, + 0x243441ed79830181, + 0x244441ed79830181, + 0x245441ed79830181, + 0x246441ed79830181, + 0x247441ed79830181, + 0x248b23b50fc204db, + 0x24ab23b50fc204db, + 0x2633dc6227de9148, + 0x2653dc6227de9148, + 0x277aacfcb88c92d7, + 0x278aacfcb88c92d7, + 0x279aacfcb88c92d7, + 0x27bbb4c6bd8601bd, + 0x289d52af46e5fa69, + 0x28b04a616046e074, + 0x28d04a616046e074, + 0x2a3eeff57768f88c, + 0x2b8e3a0aeed7be19, + 0x2beec922478c0421, + 0x2cc7c3fba45c1271, + 0x2cf4f14348a4c5db, + 0x2d44f14348a4c5db, + 0x2d54f14348a4c5db, + 0x2d5a8c931c19b77a, + 0x2d64f14348a4c5dc, + 0x2efc1249e96b6d8d, + 0x2f0f6b23cfe98807, + 0x2fe91b9de4d5cf31, + 0x308ddc7e975c5045, + 0x309ddc7e975c5045, + 0x30bddc7e975c5045, + 0x3150ed9bd6bfd003, + 0x317d2ec75df6ba2a, + 0x321aedaa0fc32ac8, + 0x32448050091c3c24, + 0x328f5a18504dfaac, + 0x3336dca59d035820, + 0x33ceef5e1f90ac34, + 0x33eeef5e1f90ac35, + 0x340eef5e1f90ac35, + 0x34228f9edfbd3420, + 0x34328f9edfbd3420, + 0x344eef5e1f90ac35, + 0x346eef5e1f90ac35, + 0x35008621c4199208, + 0x35e0ac2e7f90b8a3, + 0x361dde4a4ab13e09, + 0x367b870de5d93270, + 0x375b20c2f4f8d49f, + 0x37f25d342b1e33e5, + 0x3854faba79ea92ed, + 0x3864faba79ea92ed, + 0x3a978cfcab31064d, + 0x3aa78cfcab31064d, + 0x490cd230a7ff47c3, + 0x4929d9577de925d5, + 0x4939d9577de925d5, + 0x49dcadd6dd730c96, + 0x4a7bb6979ae39c49, + 0x4b9a32ac316fb3ac, + 0x4baa32ac316fb3ac, + 0x4bba32ac316fb3ac, + 0x4cef20b1a0d7f626, + 0x4e2e2785c3a2a20a, + 0x4e3e2785c3a2a20a, + 0x4e6454b1aef62c8d, + 0x4e90fde34c996086, + 0x4ea9a2c2a34ac2fa, + 0x4eb9a2c2a34ac2fa, + 0x4ec9a2c2a34ac2fa, + 0x4ed9a2c2a34ac2fa, + 0x4f38750ea732fdae, + 0x504ca9bade45b94a, + 0x514843e10734fa57, + 0x51b3274280201a89, + 0x521f6a5025e71a61, + 0x52c6a47d4e7ec633, + 0x55793ba3249a8511, + 0x575fe0403124a00e, + 0x57863ae2caed4528, + 0x57e561def4a9ee32, + 0x580561def4a9ee31, + 0x582561def4a9ee31, + 0x585561def4a9ee31, + 0x59d0dd8f2788d699, + 0x5b55ed1f039cebfe, + 0x5beaf5b5378aa2e5, + 0x5c0af5b5378aa2e5, + 0x5c4ef3052ef0a361, + 0x5e1780695036a679, + 0x5e54ec8fd70420c7, + 0x5e6b5e2f86026f05, + 0x5faaeac2d1ea2695, + 0x611260322d04d50b, + 0x625be064a3fb2725, + 0x64212a13daa46fe4, + 0x671dcfee6690ffc6, + 0x673dcfee6690ffc6, + 0x675dcfee6690ffc6, + 0x678a77581053543b, + 0x682d3683fa3d1ee0, + 0x699cb490951e8515, + 0x6b3ef9beaa7aa583, + 0x6b4ef9beaa7aa583, + 0x6b7896beb0c66eb9, + 0x6bdf20938e7414bb, + 0x6bef20938e7414bb, + 0x6bf6c9e14b7c22c4, + 0x6c06c9e14b7c22c4, + 0x6c16c9e14b7c22c4, + 0x6cf75d226331d03a, + 0x6d175d226331d03a, + 0x6d4b9445072f4374, +}; + +const Slab = struct { + str: []const u8, + exp: i32, +}; + +fn slab(str: []const u8, exp: i32) Slab { + return Slab{ + .str = str, + .exp = exp, + }; +} + +pub const enum3_data = [_]Slab{ + slab("40648030339495312", 69), + slab("4498645355592131", -134), + slab("678321594594593", 244), + slab("36539702510912277", -230), + slab("56819570380646536", -70), + slab("42452693975546964", 175), + slab("34248868699178663", 291), + slab("34037810581283983", -267), + slab("67135881167178176", -188), + slab("74973710847373845", -108), + slab("60272377639347644", -45), + slab("1316415380484425", 116), + slab("64433314612521525", 218), + slab("31961502891542243", 263), + slab("4407140524515149", 303), + slab("69928982131052126", -291), + slab("5331838923808276", -248), + slab("24766435002945523", -208), + slab("21509066976048781", -149), + slab("2347200170470694", -123), + slab("51404180294474556", -89), + slab("12320586499023201", -56), + slab("38099461575161174", 45), + slab("3318949537676913", 79), + slab("48988560059074597", 136), + slab("7955843973866726", 209), + slab("2630089515909384", 227), + slab("11971601492124911", 258), + slab("35394816534699092", 284), + slab("47497368114750945", 299), + slab("54271187548763685", 305), + slab("2504414972009504", -302), + slab("69316187906522606", -275), + slab("53263359599109627", -252), + slab("24384437085962037", -239), + slab("3677854139813342", -213), + slab("44318030915155535", -195), + slab("28150140033551147", -162), + slab("1157373742186464", -143), + slab("2229658838863212", -132), + slab("67817280930489786", -117), + slab("56966478488538934", -92), + slab("49514357246452655", -74), + slab("74426102121433776", -64), + slab("78851753593748485", -55), + slab("19024128529074359", -25), + slab("32118580932839778", 57), + slab("17693166778887419", 72), + slab("78117757194253536", 88), + slab("56627018760181905", 122), + slab("35243988108650928", 153), + slab("38624526316654214", 194), + slab("2397422026462446", 213), + slab("37862966954556723", 224), + slab("56089100059334965", 237), + slab("3666156212014994", 249), + slab("47886405968499643", 258), + slab("48228872759189434", 272), + slab("29980574575739863", 289), + slab("37049827284413546", 297), + slab("37997894491800756", 300), + slab("37263572163337027", 304), + slab("16973149506391291", 308), + slab("391314839376485", -304), + slab("38797447671091856", -300), + slab("54994366114768736", -281), + slab("23593494977819109", -270), + slab("61359116592542813", -265), + slab("1332959730952069", -248), + slab("6096109271490509", -240), + slab("22874741188249992", -231), + slab("33104948806015703", -227), + slab("21670630627577332", -209), + slab("70547825868713855", -201), + slab("54981742371928845", -192), + slab("27843818440071113", -171), + slab("4504022405368184", -161), + slab("2548351460621656", -148), + slab("4629494968745856", -143), + slab("557414709715803", -133), + slab("23897004381644022", -131), + slab("33057350728075958", -117), + slab("47628822744182433", -112), + slab("22520091703825729", -96), + slab("1285104507361864", -89), + slab("46239793787746783", -81), + slab("330095714976351", -73), + slab("4994144928421182", -66), + slab("77003665618895", -58), + slab("49282345996092803", -56), + slab("66534156679273626", -48), + slab("24661175471861008", -36), + slab("45035996273704964", 39), + slab("32402369146794532", 51), + slab("42859354584576066", 61), + slab("1465909318208761", 71), + slab("70772667115549675", 72), + slab("18604316837693468", 86), + slab("38329392744333992", 113), + slab("21062646087750798", 117), + slab("972708181182949", 132), + slab("36683053719290777", 146), + slab("32106017483029628", 166), + slab("41508952543121158", 190), + slab("45072812455233127", 205), + slab("59935550661561155", 212), + slab("40270821632825953", 217), + slab("60846862848160256", 219), + slab("42788225889846894", 225), + slab("28044550029667482", 237), + slab("46475406389115295", 240), + slab("7546114860200514", 246), + slab("7332312424029988", 249), + slab("23943202984249821", 258), + slab("15980751445771122", 263), + slab("21652206566352648", 272), + slab("65171333649148234", 278), + slab("70789633069398184", 284), + slab("68600253110025576", 290), + slab("4234784709771466", 295), + slab("14819930913765419", 298), + slab("9499473622950189", 299), + slab("71272819274635585", 302), + slab("16959746108988652", 304), + slab("13567796887190921", 305), + slab("4735325513114182", 306), + slab("67892598025565165", 308), + slab("81052743999542975", -307), + slab("4971131903427841", -303), + slab("19398723835545928", -300), + slab("29232758945460627", -298), + slab("27497183057384368", -281), + slab("17970091719480621", -275), + slab("22283747288943228", -274), + slab("47186989955638217", -270), + slab("6819439187504402", -266), + slab("47902021250710456", -262), + slab("41378294570975613", -249), + slab("2665919461904138", -248), + slab("3421423777071132", -247), + slab("12192218542981019", -239), + slab("7147520638007367", -235), + slab("45749482376499984", -231), + slab("80596937390013985", -229), + slab("26761990828289327", -214), + slab("18738512510673039", -211), + slab("619160875073638", -209), + slab("403997300048931", -206), + slab("22159015457577768", -195), + slab("13745435592982211", -192), + slab("33567940583589088", -188), + slab("4812711195250522", -184), + slab("3591036630219558", -167), + slab("1126005601342046", -161), + slab("5047135806497922", -154), + slab("43018133952097563", -149), + slab("45209911804158747", -146), + slab("2314747484372928", -143), + slab("65509428048152994", -138), + slab("2787073548579015", -133), + slab("1114829419431606", -132), + slab("4459317677726424", -132), + slab("32269008655522087", -128), + slab("16528675364037979", -117), + slab("66114701456151916", -117), + slab("54934856534126976", -116), + slab("21168365664081082", -111), + slab("67445733463759384", -104), + slab("45590931008842566", -95), + slab("8031903171011649", -91), + slab("2570209014723728", -89), + slab("6516605505584466", -89), + slab("32943123175907307", -78), + slab("82523928744087755", -74), + slab("28409785190323268", -70), + slab("52853886779813977", -69), + slab("30417302377115577", -65), + slab("1925091640472375", -58), + slab("30801466247558002", -57), + slab("24641172998046401", -56), + slab("19712938398437121", -55), + slab("43129529027318865", -52), + slab("15068094409836911", -45), + slab("48658418478920193", -41), + slab("49322350943722016", -36), + slab("38048257058148717", -25), + slab("14411294198511291", 45), + slab("32745697577386472", 48), + slab("16059290466419889", 57), + slab("64237161865679556", 57), + slab("8003248329710242", 63), + slab("81296060678990625", 69), + slab("8846583389443709", 71), + slab("35386333557774838", 72), + slab("21606114462319112", 74), + slab("18413733104063271", 84), + slab("35887030159858487", 87), + slab("2825769263311679", 104), + slab("2138446062528161", 114), + slab("52656615219377", 116), + slab("16850116870200639", 118), + slab("48635409059147446", 132), + slab("12247140014768649", 136), + slab("16836228873919609", 138), + slab("5225574770881846", 147), + slab("42745323906998127", 155), + slab("10613173493886741", 175), + slab("10377238135780289", 190), + slab("29480080280199528", 191), + slab("4679330956996797", 201), + slab("3977921986933363", 209), + slab("56560320317673966", 210), + slab("1198711013231223", 213), + slab("4794844052924892", 213), + slab("16108328653130381", 218), + slab("57878622568856074", 219), + slab("18931483477278361", 224), + slab("4278822588984689", 225), + slab("1315044757954692", 227), + slab("14022275014833741", 237), + slab("5143975308105889", 237), + slab("64517311884236306", 238), + slab("3391607972972965", 244), + slab("3773057430100257", 246), + slab("1833078106007497", 249), + slab("64766168833734675", 249), + slab("1197160149212491", 258), + slab("2394320298424982", 258), + slab("4788640596849964", 258), + slab("1598075144577112", 263), + slab("3196150289154224", 263), + slab("83169412421960475", 271), + slab("43304413132705296", 272), + slab("5546524276967009", 277), + slab("3539481653469909", 284), + slab("7078963306939818", 284), + slab("14990287287869931", 289), + slab("34300126555012788", 290), + slab("17124434349589332", 291), + slab("2117392354885733", 295), + slab("47639264836707725", 296), + slab("7409965456882709", 297), + slab("29639861827530837", 298), + slab("79407577493590275", 299), + slab("18998947245900378", 300), + slab("35636409637317792", 302), + slab("23707742595255608", 303), + slab("47415485190511216", 303), + slab("33919492217977303", 304), + slab("6783898443595461", 304), + slab("27135593774381842", 305), + slab("2367662756557091", 306), + slab("44032152438472327", 307), + slab("33946299012782582", 308), + slab("17976931348623157", 309), + slab("40526371999771488", -307), + slab("1956574196882425", -304), + slab("78262967875297", -304), + slab("1252207486004752", -302), + slab("5008829944019008", -302), + slab("1939872383554593", -300), + slab("3879744767109186", -300), + slab("44144884605471774", -291), + slab("45129663866844427", -289), + slab("2749718305738437", -281), + slab("5499436611476874", -281), + slab("35940183438961242", -275), + slab("71880366877922484", -275), + slab("44567494577886457", -274), + slab("25789638850173173", -270), + slab("17018905290641991", -267), + slab("3409719593752201", -266), + slab("6135911659254281", -265), + slab("23951010625355228", -262), + slab("51061856989121905", -260), + slab("4137829457097561", -249), + slab("13329597309520689", -248), + slab("26659194619041378", -248), + slab("53318389238082755", -248), + slab("1710711888535566", -247), + slab("6842847554142264", -247), + slab("609610927149051", -240), + slab("1219221854298102", -239), + slab("2438443708596204", -239), + slab("2287474118824999", -231), + slab("4574948237649998", -231), + slab("18269851255456139", -230), + slab("40298468695006992", -229), + slab("16552474403007851", -227), + slab("39050270537318193", -217), + slab("1838927069906671", -213), + slab("7355708279626684", -213), + slab("37477025021346077", -211), + slab("43341261255154663", -209), + slab("12383217501472761", -208), + slab("2019986500244655", -206), + slab("35273912934356928", -201), + slab("47323883490786093", -199), + slab("2215901545757777", -195), + slab("4431803091515554", -195), + slab("27490871185964422", -192), + slab("64710073234908765", -189), + slab("57511323531737074", -188), + slab("2406355597625261", -184), + slab("75862936714499446", -176), + slab("1795518315109779", -167), + slab("7182073260439116", -167), + slab("563002800671023", -162), + slab("2252011202684092", -161), + slab("2523567903248961", -154), + slab("10754533488024391", -149), + slab("37436263604934127", -149), + slab("1274175730310828", -148), + slab("5096702921243312", -148), + slab("11573737421864639", -143), + slab("23147474843729279", -143), + slab("46294949687458557", -143), + slab("36067106647774144", -141), + slab("44986453555921307", -134), + slab("27870735485790148", -133), + slab("55741470971580295", -133), + slab("11148294194316059", -132), + slab("22296588388632118", -132), + slab("44593176777264236", -132), + slab("11948502190822011", -131), + slab("47794008763288043", -131), + slab("1173600085235347", -123), + slab("4694400340941388", -123), + slab("1652867536403798", -117), + slab("3305735072807596", -117), + slab("6611470145615192", -117), + slab("27467428267063488", -116), + slab("4762882274418243", -112), + slab("10584182832040541", -111), + slab("42336731328162165", -111), + slab("33722866731879692", -104), + slab("69097540994131414", -98), + slab("45040183407651457", -96), + slab("5696647848853893", -92), + slab("40159515855058247", -91), + slab("12851045073618639", -89), + slab("25702090147237278", -89), + slab("3258302752792233", -89), + slab("5140418029447456", -89), + slab("23119896893873391", -81), + slab("51753157237874753", -81), + slab("67761208324172855", -77), + slab("8252392874408775", -74), + slab("1650478574881755", -73), + slab("660191429952702", -73), + slab("3832399419240467", -70), + slab("26426943389906988", -69), + slab("2497072464210591", -66), + slab("15208651188557789", -65), + slab("37213051060716888", -64), + slab("55574205388093594", -61), + slab("385018328094475", -58), + slab("15400733123779001", -57), + slab("61602932495116004", -57), + slab("14784703798827841", -56), + slab("29569407597655683", -56), + slab("9856469199218561", -56), + slab("39425876796874242", -55), + slab("21564764513659432", -52), + slab("35649516398744314", -48), + slab("51091836539008967", -47), + slab("30136188819673822", -45), + slab("4865841847892019", -41), + slab("33729482964455627", -38), + slab("2466117547186101", -36), + slab("4932235094372202", -36), + slab("1902412852907436", -25), + slab("3804825705814872", -25), + slab("80341375308088225", 44), + slab("28822588397022582", 45), + slab("57645176794045164", 45), + slab("65491395154772944", 48), + slab("64804738293589064", 51), + slab("1605929046641989", 57), + slab("3211858093283978", 57), + slab("6423716186567956", 57), + slab("4001624164855121", 63), + slab("4064803033949531", 69), + slab("8129606067899062", 69), + slab("4384946084578497", 70), + slab("2931818636417522", 71), + slab("884658338944371", 71), + slab("1769316677888742", 72), + slab("3538633355777484", 72), + slab("7077266711554968", 72), + slab("43212228924638223", 74), + slab("6637899075353826", 79), + slab("36827466208126543", 84), + slab("37208633675386937", 86), + slab("39058878597126768", 88), + slab("57654578150150385", 91), + slab("5651538526623358", 104), + slab("76658785488667984", 113), + slab("4276892125056322", 114), + slab("263283076096885", 116), + slab("10531323043875399", 117), + slab("42125292175501597", 117), + slab("33700233740401277", 118), + slab("44596066840334405", 125), + slab("9727081811829489", 132), + slab("61235700073843246", 135), + slab("24494280029537298", 136), + slab("4499029632233837", 137), + slab("18341526859645389", 146), + slab("2612787385440923", 147), + slab("6834859331393543", 147), + slab("70487976217301855", 153), + slab("40366692112133834", 160), + slab("64212034966059256", 166), + slab("21226346987773482", 175), + slab("51886190678901447", 189), + slab("20754476271560579", 190), + slab("83017905086242315", 190), + slab("58960160560399056", 191), + slab("66641177824100826", 194), + slab("5493127645170153", 201), + slab("39779219869333628", 209), + slab("79558439738667255", 209), + slab("50523702331566894", 210), + slab("40933393326155808", 212), + slab("81866786652311615", 212), + slab("11987110132312231", 213), + slab("23974220264624462", 213), + slab("47948440529248924", 213), + slab("8054164326565191", 217), + slab("32216657306260762", 218), + slab("30423431424080128", 219), +}; diff --git a/lib/std/fmt/errol/lookup.zig b/lib/std/fmt/errol/lookup.zig new file mode 100644 index 0000000000..2fb6b167bb --- /dev/null +++ b/lib/std/fmt/errol/lookup.zig @@ -0,0 +1,606 @@ +pub const HP = struct { + val: f64, + off: f64, +}; +pub const lookup_table = [_]HP{ + HP{ .val = 1.000000e+308, .off = -1.097906362944045488e+291 }, + HP{ .val = 1.000000e+307, .off = 1.396894023974354241e+290 }, + HP{ .val = 1.000000e+306, .off = -1.721606459673645508e+289 }, + HP{ .val = 1.000000e+305, .off = 6.074644749446353973e+288 }, + HP{ .val = 1.000000e+304, .off = 6.074644749446353567e+287 }, + HP{ .val = 1.000000e+303, .off = -1.617650767864564452e+284 }, + HP{ .val = 1.000000e+302, .off = -7.629703079084895055e+285 }, + HP{ .val = 1.000000e+301, .off = -5.250476025520442286e+284 }, + HP{ .val = 1.000000e+300, .off = -5.250476025520441956e+283 }, + HP{ .val = 1.000000e+299, .off = -5.250476025520441750e+282 }, + HP{ .val = 1.000000e+298, .off = 4.043379652465702264e+281 }, + HP{ .val = 1.000000e+297, .off = -1.765280146275637946e+280 }, + HP{ .val = 1.000000e+296, .off = 1.865132227937699609e+279 }, + HP{ .val = 1.000000e+295, .off = 1.865132227937699609e+278 }, + HP{ .val = 1.000000e+294, .off = -6.643646774124810287e+277 }, + HP{ .val = 1.000000e+293, .off = 7.537651562646039934e+276 }, + HP{ .val = 1.000000e+292, .off = -1.325659897835741608e+275 }, + HP{ .val = 1.000000e+291, .off = 4.213909764965371606e+274 }, + HP{ .val = 1.000000e+290, .off = -6.172783352786715670e+273 }, + HP{ .val = 1.000000e+289, .off = -6.172783352786715670e+272 }, + HP{ .val = 1.000000e+288, .off = -7.630473539575035471e+270 }, + HP{ .val = 1.000000e+287, .off = -7.525217352494018700e+270 }, + HP{ .val = 1.000000e+286, .off = -3.298861103408696612e+269 }, + HP{ .val = 1.000000e+285, .off = 1.984084207947955778e+268 }, + HP{ .val = 1.000000e+284, .off = -7.921438250845767591e+267 }, + HP{ .val = 1.000000e+283, .off = 4.460464822646386735e+266 }, + HP{ .val = 1.000000e+282, .off = -3.278224598286209647e+265 }, + HP{ .val = 1.000000e+281, .off = -3.278224598286209737e+264 }, + HP{ .val = 1.000000e+280, .off = -3.278224598286209961e+263 }, + HP{ .val = 1.000000e+279, .off = -5.797329227496039232e+262 }, + HP{ .val = 1.000000e+278, .off = 3.649313132040821498e+261 }, + HP{ .val = 1.000000e+277, .off = -2.867878510995372374e+259 }, + HP{ .val = 1.000000e+276, .off = -5.206914080024985409e+259 }, + HP{ .val = 1.000000e+275, .off = 4.018322599210230404e+258 }, + HP{ .val = 1.000000e+274, .off = 7.862171215558236495e+257 }, + HP{ .val = 1.000000e+273, .off = 5.459765830340732821e+256 }, + HP{ .val = 1.000000e+272, .off = -6.552261095746788047e+255 }, + HP{ .val = 1.000000e+271, .off = 4.709014147460262298e+254 }, + HP{ .val = 1.000000e+270, .off = -4.675381888545612729e+253 }, + HP{ .val = 1.000000e+269, .off = -4.675381888545612892e+252 }, + HP{ .val = 1.000000e+268, .off = 2.656177514583977380e+251 }, + HP{ .val = 1.000000e+267, .off = 2.656177514583977190e+250 }, + HP{ .val = 1.000000e+266, .off = -3.071603269111014892e+249 }, + HP{ .val = 1.000000e+265, .off = -6.651466258920385440e+248 }, + HP{ .val = 1.000000e+264, .off = -4.414051890289528972e+247 }, + HP{ .val = 1.000000e+263, .off = -1.617283929500958387e+246 }, + HP{ .val = 1.000000e+262, .off = -1.617283929500958241e+245 }, + HP{ .val = 1.000000e+261, .off = 7.122615947963323868e+244 }, + HP{ .val = 1.000000e+260, .off = -6.533477610574617382e+243 }, + HP{ .val = 1.000000e+259, .off = 7.122615947963323982e+242 }, + HP{ .val = 1.000000e+258, .off = -5.679971763165996225e+241 }, + HP{ .val = 1.000000e+257, .off = -3.012765990014054219e+240 }, + HP{ .val = 1.000000e+256, .off = -3.012765990014054219e+239 }, + HP{ .val = 1.000000e+255, .off = 1.154743030535854616e+238 }, + HP{ .val = 1.000000e+254, .off = 6.364129306223240767e+237 }, + HP{ .val = 1.000000e+253, .off = 6.364129306223241129e+236 }, + HP{ .val = 1.000000e+252, .off = -9.915202805299840595e+235 }, + HP{ .val = 1.000000e+251, .off = -4.827911520448877980e+234 }, + HP{ .val = 1.000000e+250, .off = 7.890316691678530146e+233 }, + HP{ .val = 1.000000e+249, .off = 7.890316691678529484e+232 }, + HP{ .val = 1.000000e+248, .off = -4.529828046727141859e+231 }, + HP{ .val = 1.000000e+247, .off = 4.785280507077111924e+230 }, + HP{ .val = 1.000000e+246, .off = -6.858605185178205305e+229 }, + HP{ .val = 1.000000e+245, .off = -4.432795665958347728e+228 }, + HP{ .val = 1.000000e+244, .off = -7.465057564983169531e+227 }, + HP{ .val = 1.000000e+243, .off = -7.465057564983169741e+226 }, + HP{ .val = 1.000000e+242, .off = -5.096102956370027445e+225 }, + HP{ .val = 1.000000e+241, .off = -5.096102956370026952e+224 }, + HP{ .val = 1.000000e+240, .off = -1.394611380411992474e+223 }, + HP{ .val = 1.000000e+239, .off = 9.188208545617793960e+221 }, + HP{ .val = 1.000000e+238, .off = -4.864759732872650359e+221 }, + HP{ .val = 1.000000e+237, .off = 5.979453868566904629e+220 }, + HP{ .val = 1.000000e+236, .off = -5.316601966265964857e+219 }, + HP{ .val = 1.000000e+235, .off = -5.316601966265964701e+218 }, + HP{ .val = 1.000000e+234, .off = -1.786584517880693123e+217 }, + HP{ .val = 1.000000e+233, .off = 2.625937292600896716e+216 }, + HP{ .val = 1.000000e+232, .off = -5.647541102052084079e+215 }, + HP{ .val = 1.000000e+231, .off = -5.647541102052083888e+214 }, + HP{ .val = 1.000000e+230, .off = -9.956644432600511943e+213 }, + HP{ .val = 1.000000e+229, .off = 8.161138937705571862e+211 }, + HP{ .val = 1.000000e+228, .off = 7.549087847752475275e+211 }, + HP{ .val = 1.000000e+227, .off = -9.283347037202319948e+210 }, + HP{ .val = 1.000000e+226, .off = 3.866992716668613820e+209 }, + HP{ .val = 1.000000e+225, .off = 7.154577655136347262e+208 }, + HP{ .val = 1.000000e+224, .off = 3.045096482051680688e+207 }, + HP{ .val = 1.000000e+223, .off = -4.660180717482069567e+206 }, + HP{ .val = 1.000000e+222, .off = -4.660180717482070101e+205 }, + HP{ .val = 1.000000e+221, .off = -4.660180717482069544e+204 }, + HP{ .val = 1.000000e+220, .off = 3.562757926310489022e+202 }, + HP{ .val = 1.000000e+219, .off = 3.491561111451748149e+202 }, + HP{ .val = 1.000000e+218, .off = -8.265758834125874135e+201 }, + HP{ .val = 1.000000e+217, .off = 3.981449442517482365e+200 }, + HP{ .val = 1.000000e+216, .off = -2.142154695804195936e+199 }, + HP{ .val = 1.000000e+215, .off = 9.339603063548950188e+198 }, + HP{ .val = 1.000000e+214, .off = 4.555537330485139746e+197 }, + HP{ .val = 1.000000e+213, .off = 1.565496247320257804e+196 }, + HP{ .val = 1.000000e+212, .off = 9.040598955232462036e+195 }, + HP{ .val = 1.000000e+211, .off = 4.368659762787334780e+194 }, + HP{ .val = 1.000000e+210, .off = 7.288621758065539072e+193 }, + HP{ .val = 1.000000e+209, .off = -7.311188218325485628e+192 }, + HP{ .val = 1.000000e+208, .off = 1.813693016918905189e+191 }, + HP{ .val = 1.000000e+207, .off = -3.889357755108838992e+190 }, + HP{ .val = 1.000000e+206, .off = -3.889357755108838992e+189 }, + HP{ .val = 1.000000e+205, .off = -1.661603547285501360e+188 }, + HP{ .val = 1.000000e+204, .off = 1.123089212493670643e+187 }, + HP{ .val = 1.000000e+203, .off = 1.123089212493670643e+186 }, + HP{ .val = 1.000000e+202, .off = 9.825254086803583029e+185 }, + HP{ .val = 1.000000e+201, .off = -3.771878529305654999e+184 }, + HP{ .val = 1.000000e+200, .off = 3.026687778748963675e+183 }, + HP{ .val = 1.000000e+199, .off = -9.720624048853446693e+182 }, + HP{ .val = 1.000000e+198, .off = -1.753554156601940139e+181 }, + HP{ .val = 1.000000e+197, .off = 4.885670753607648963e+180 }, + HP{ .val = 1.000000e+196, .off = 4.885670753607648963e+179 }, + HP{ .val = 1.000000e+195, .off = 2.292223523057028076e+178 }, + HP{ .val = 1.000000e+194, .off = 5.534032561245303825e+177 }, + HP{ .val = 1.000000e+193, .off = -6.622751331960730683e+176 }, + HP{ .val = 1.000000e+192, .off = -4.090088020876139692e+175 }, + HP{ .val = 1.000000e+191, .off = -7.255917159731877552e+174 }, + HP{ .val = 1.000000e+190, .off = -7.255917159731877992e+173 }, + HP{ .val = 1.000000e+189, .off = -2.309309130269787104e+172 }, + HP{ .val = 1.000000e+188, .off = -2.309309130269787019e+171 }, + HP{ .val = 1.000000e+187, .off = 9.284303438781988230e+170 }, + HP{ .val = 1.000000e+186, .off = 2.038295583124628364e+169 }, + HP{ .val = 1.000000e+185, .off = 2.038295583124628532e+168 }, + HP{ .val = 1.000000e+184, .off = -1.735666841696912925e+167 }, + HP{ .val = 1.000000e+183, .off = 5.340512704843477241e+166 }, + HP{ .val = 1.000000e+182, .off = -6.453119872723839321e+165 }, + HP{ .val = 1.000000e+181, .off = 8.288920849235306587e+164 }, + HP{ .val = 1.000000e+180, .off = -9.248546019891598293e+162 }, + HP{ .val = 1.000000e+179, .off = 1.954450226518486016e+162 }, + HP{ .val = 1.000000e+178, .off = -5.243811844750628197e+161 }, + HP{ .val = 1.000000e+177, .off = -7.448980502074320639e+159 }, + HP{ .val = 1.000000e+176, .off = -7.448980502074319858e+158 }, + HP{ .val = 1.000000e+175, .off = 6.284654753766312753e+158 }, + HP{ .val = 1.000000e+174, .off = -6.895756753684458388e+157 }, + HP{ .val = 1.000000e+173, .off = -1.403918625579970616e+156 }, + HP{ .val = 1.000000e+172, .off = -8.268716285710580522e+155 }, + HP{ .val = 1.000000e+171, .off = 4.602779327034313170e+154 }, + HP{ .val = 1.000000e+170, .off = -3.441905430931244940e+153 }, + HP{ .val = 1.000000e+169, .off = 6.613950516525702884e+152 }, + HP{ .val = 1.000000e+168, .off = 6.613950516525702652e+151 }, + HP{ .val = 1.000000e+167, .off = -3.860899428741951187e+150 }, + HP{ .val = 1.000000e+166, .off = 5.959272394946474605e+149 }, + HP{ .val = 1.000000e+165, .off = 1.005101065481665103e+149 }, + HP{ .val = 1.000000e+164, .off = -1.783349948587918355e+146 }, + HP{ .val = 1.000000e+163, .off = 6.215006036188360099e+146 }, + HP{ .val = 1.000000e+162, .off = 6.215006036188360099e+145 }, + HP{ .val = 1.000000e+161, .off = -3.774589324822814903e+144 }, + HP{ .val = 1.000000e+160, .off = -6.528407745068226929e+142 }, + HP{ .val = 1.000000e+159, .off = 7.151530601283157561e+142 }, + HP{ .val = 1.000000e+158, .off = 4.712664546348788765e+141 }, + HP{ .val = 1.000000e+157, .off = 1.664081977680827856e+140 }, + HP{ .val = 1.000000e+156, .off = 1.664081977680827750e+139 }, + HP{ .val = 1.000000e+155, .off = -7.176231540910168265e+137 }, + HP{ .val = 1.000000e+154, .off = -3.694754568805822650e+137 }, + HP{ .val = 1.000000e+153, .off = 2.665969958768462622e+134 }, + HP{ .val = 1.000000e+152, .off = -4.625108135904199522e+135 }, + HP{ .val = 1.000000e+151, .off = -1.717753238721771919e+134 }, + HP{ .val = 1.000000e+150, .off = 1.916440382756262433e+133 }, + HP{ .val = 1.000000e+149, .off = -4.897672657515052040e+132 }, + HP{ .val = 1.000000e+148, .off = -4.897672657515052198e+131 }, + HP{ .val = 1.000000e+147, .off = 2.200361759434233991e+130 }, + HP{ .val = 1.000000e+146, .off = 6.636633270027537273e+129 }, + HP{ .val = 1.000000e+145, .off = 1.091293881785907977e+128 }, + HP{ .val = 1.000000e+144, .off = -2.374543235865110597e+127 }, + HP{ .val = 1.000000e+143, .off = -2.374543235865110537e+126 }, + HP{ .val = 1.000000e+142, .off = -5.082228484029969099e+125 }, + HP{ .val = 1.000000e+141, .off = -1.697621923823895943e+124 }, + HP{ .val = 1.000000e+140, .off = -5.928380124081487212e+123 }, + HP{ .val = 1.000000e+139, .off = -3.284156248920492522e+122 }, + HP{ .val = 1.000000e+138, .off = -3.284156248920492706e+121 }, + HP{ .val = 1.000000e+137, .off = -3.284156248920492476e+120 }, + HP{ .val = 1.000000e+136, .off = -5.866406127007401066e+119 }, + HP{ .val = 1.000000e+135, .off = 3.817030915818506056e+118 }, + HP{ .val = 1.000000e+134, .off = 7.851796350329300951e+117 }, + HP{ .val = 1.000000e+133, .off = -2.235117235947686077e+116 }, + HP{ .val = 1.000000e+132, .off = 9.170432597638723691e+114 }, + HP{ .val = 1.000000e+131, .off = 8.797444499042767883e+114 }, + HP{ .val = 1.000000e+130, .off = -5.978307824605161274e+113 }, + HP{ .val = 1.000000e+129, .off = 1.782556435814758516e+111 }, + HP{ .val = 1.000000e+128, .off = -7.517448691651820362e+111 }, + HP{ .val = 1.000000e+127, .off = 4.507089332150205498e+110 }, + HP{ .val = 1.000000e+126, .off = 7.513223838100711695e+109 }, + HP{ .val = 1.000000e+125, .off = 7.513223838100712113e+108 }, + HP{ .val = 1.000000e+124, .off = 5.164681255326878494e+107 }, + HP{ .val = 1.000000e+123, .off = 2.229003026859587122e+106 }, + HP{ .val = 1.000000e+122, .off = -1.440594758724527399e+105 }, + HP{ .val = 1.000000e+121, .off = -3.734093374714598783e+104 }, + HP{ .val = 1.000000e+120, .off = 1.999653165260579757e+103 }, + HP{ .val = 1.000000e+119, .off = 5.583244752745066693e+102 }, + HP{ .val = 1.000000e+118, .off = 3.343500010567262234e+101 }, + HP{ .val = 1.000000e+117, .off = -5.055542772599503556e+100 }, + HP{ .val = 1.000000e+116, .off = -1.555941612946684331e+99 }, + HP{ .val = 1.000000e+115, .off = -1.555941612946684331e+98 }, + HP{ .val = 1.000000e+114, .off = -1.555941612946684293e+97 }, + HP{ .val = 1.000000e+113, .off = -1.555941612946684246e+96 }, + HP{ .val = 1.000000e+112, .off = 6.988006530736955847e+95 }, + HP{ .val = 1.000000e+111, .off = 4.318022735835818244e+94 }, + HP{ .val = 1.000000e+110, .off = -2.356936751417025578e+93 }, + HP{ .val = 1.000000e+109, .off = 1.814912928116001926e+92 }, + HP{ .val = 1.000000e+108, .off = -3.399899171300282744e+91 }, + HP{ .val = 1.000000e+107, .off = 3.118615952970072913e+90 }, + HP{ .val = 1.000000e+106, .off = -9.103599905036843605e+89 }, + HP{ .val = 1.000000e+105, .off = 6.174169917471802325e+88 }, + HP{ .val = 1.000000e+104, .off = -1.915675085734668657e+86 }, + HP{ .val = 1.000000e+103, .off = -1.915675085734668864e+85 }, + HP{ .val = 1.000000e+102, .off = 2.295048673475466221e+85 }, + HP{ .val = 1.000000e+101, .off = 2.295048673475466135e+84 }, + HP{ .val = 1.000000e+100, .off = -1.590289110975991792e+83 }, + HP{ .val = 1.000000e+99, .off = 3.266383119588331155e+82 }, + HP{ .val = 1.000000e+98, .off = 2.309629754856292029e+80 }, + HP{ .val = 1.000000e+97, .off = -7.357587384771124533e+80 }, + HP{ .val = 1.000000e+96, .off = -4.986165397190889509e+79 }, + HP{ .val = 1.000000e+95, .off = -2.021887912715594741e+78 }, + HP{ .val = 1.000000e+94, .off = -2.021887912715594638e+77 }, + HP{ .val = 1.000000e+93, .off = -4.337729697461918675e+76 }, + HP{ .val = 1.000000e+92, .off = -4.337729697461918997e+75 }, + HP{ .val = 1.000000e+91, .off = -7.956232486128049702e+74 }, + HP{ .val = 1.000000e+90, .off = 3.351588728453609882e+73 }, + HP{ .val = 1.000000e+89, .off = 5.246334248081951113e+71 }, + HP{ .val = 1.000000e+88, .off = 4.058327554364963672e+71 }, + HP{ .val = 1.000000e+87, .off = 4.058327554364963918e+70 }, + HP{ .val = 1.000000e+86, .off = -1.463069523067487266e+69 }, + HP{ .val = 1.000000e+85, .off = -1.463069523067487314e+68 }, + HP{ .val = 1.000000e+84, .off = -5.776660989811589441e+67 }, + HP{ .val = 1.000000e+83, .off = -3.080666323096525761e+66 }, + HP{ .val = 1.000000e+82, .off = 3.659320343691134468e+65 }, + HP{ .val = 1.000000e+81, .off = 7.871812010433421235e+64 }, + HP{ .val = 1.000000e+80, .off = -2.660986470836727449e+61 }, + HP{ .val = 1.000000e+79, .off = 3.264399249934044627e+62 }, + HP{ .val = 1.000000e+78, .off = -8.493621433689703070e+60 }, + HP{ .val = 1.000000e+77, .off = 1.721738727445414063e+60 }, + HP{ .val = 1.000000e+76, .off = -4.706013449590547218e+59 }, + HP{ .val = 1.000000e+75, .off = 7.346021882351880518e+58 }, + HP{ .val = 1.000000e+74, .off = 4.835181188197207515e+57 }, + HP{ .val = 1.000000e+73, .off = 1.696630320503867482e+56 }, + HP{ .val = 1.000000e+72, .off = 5.619818905120542959e+55 }, + HP{ .val = 1.000000e+71, .off = -4.188152556421145598e+54 }, + HP{ .val = 1.000000e+70, .off = -7.253143638152923145e+53 }, + HP{ .val = 1.000000e+69, .off = -7.253143638152923145e+52 }, + HP{ .val = 1.000000e+68, .off = 4.719477774861832896e+51 }, + HP{ .val = 1.000000e+67, .off = 1.726322421608144052e+50 }, + HP{ .val = 1.000000e+66, .off = 5.467766613175255107e+49 }, + HP{ .val = 1.000000e+65, .off = 7.909613737163661911e+47 }, + HP{ .val = 1.000000e+64, .off = -2.132041900945439564e+47 }, + HP{ .val = 1.000000e+63, .off = -5.785795994272697265e+46 }, + HP{ .val = 1.000000e+62, .off = -3.502199685943161329e+45 }, + HP{ .val = 1.000000e+61, .off = 5.061286470292598274e+44 }, + HP{ .val = 1.000000e+60, .off = 5.061286470292598472e+43 }, + HP{ .val = 1.000000e+59, .off = 2.831211950439536034e+42 }, + HP{ .val = 1.000000e+58, .off = 5.618805100255863927e+41 }, + HP{ .val = 1.000000e+57, .off = -4.834669211555366251e+40 }, + HP{ .val = 1.000000e+56, .off = -9.190283508143378583e+39 }, + HP{ .val = 1.000000e+55, .off = -1.023506702040855158e+38 }, + HP{ .val = 1.000000e+54, .off = -7.829154040459624616e+37 }, + HP{ .val = 1.000000e+53, .off = 6.779051325638372659e+35 }, + HP{ .val = 1.000000e+52, .off = 6.779051325638372290e+34 }, + HP{ .val = 1.000000e+51, .off = 6.779051325638371598e+33 }, + HP{ .val = 1.000000e+50, .off = -7.629769841091887392e+33 }, + HP{ .val = 1.000000e+49, .off = 5.350972305245182400e+32 }, + HP{ .val = 1.000000e+48, .off = -4.384584304507619764e+31 }, + HP{ .val = 1.000000e+47, .off = -4.384584304507619876e+30 }, + HP{ .val = 1.000000e+46, .off = 6.860180964052978705e+28 }, + HP{ .val = 1.000000e+45, .off = 7.024271097546444878e+28 }, + HP{ .val = 1.000000e+44, .off = -8.821361405306422641e+27 }, + HP{ .val = 1.000000e+43, .off = -1.393721169594140991e+26 }, + HP{ .val = 1.000000e+42, .off = -4.488571267807591679e+25 }, + HP{ .val = 1.000000e+41, .off = -6.200086450407783195e+23 }, + HP{ .val = 1.000000e+40, .off = -3.037860284270036669e+23 }, + HP{ .val = 1.000000e+39, .off = 6.029083362839682141e+22 }, + HP{ .val = 1.000000e+38, .off = 2.251190176543965970e+21 }, + HP{ .val = 1.000000e+37, .off = 4.612373417978788577e+20 }, + HP{ .val = 1.000000e+36, .off = -4.242063737401796198e+19 }, + HP{ .val = 1.000000e+35, .off = 3.136633892082024448e+18 }, + HP{ .val = 1.000000e+34, .off = 5.442476901295718400e+17 }, + HP{ .val = 1.000000e+33, .off = 5.442476901295718400e+16 }, + HP{ .val = 1.000000e+32, .off = -5.366162204393472000e+15 }, + HP{ .val = 1.000000e+31, .off = 3.641037050347520000e+14 }, + HP{ .val = 1.000000e+30, .off = -1.988462483865600000e+13 }, + HP{ .val = 1.000000e+29, .off = 8.566849142784000000e+12 }, + HP{ .val = 1.000000e+28, .off = 4.168802631680000000e+11 }, + HP{ .val = 1.000000e+27, .off = -1.328755507200000000e+10 }, + HP{ .val = 1.000000e+26, .off = -4.764729344000000000e+09 }, + HP{ .val = 1.000000e+25, .off = -9.059696640000000000e+08 }, + HP{ .val = 1.000000e+24, .off = 1.677721600000000000e+07 }, + HP{ .val = 1.000000e+23, .off = 8.388608000000000000e+06 }, + HP{ .val = 1.000000e+22, .off = 0.000000000000000000e+00 }, + HP{ .val = 1.000000e+21, .off = 0.000000000000000000e+00 }, + HP{ .val = 1.000000e+20, .off = 0.000000000000000000e+00 }, + HP{ .val = 1.000000e+19, .off = 0.000000000000000000e+00 }, + HP{ .val = 1.000000e+18, .off = 0.000000000000000000e+00 }, + HP{ .val = 1.000000e+17, .off = 0.000000000000000000e+00 }, + HP{ .val = 1.000000e+16, .off = 0.000000000000000000e+00 }, + HP{ .val = 1.000000e+15, .off = 0.000000000000000000e+00 }, + HP{ .val = 1.000000e+14, .off = 0.000000000000000000e+00 }, + HP{ .val = 1.000000e+13, .off = 0.000000000000000000e+00 }, + HP{ .val = 1.000000e+12, .off = 0.000000000000000000e+00 }, + HP{ .val = 1.000000e+11, .off = 0.000000000000000000e+00 }, + HP{ .val = 1.000000e+10, .off = 0.000000000000000000e+00 }, + HP{ .val = 1.000000e+09, .off = 0.000000000000000000e+00 }, + HP{ .val = 1.000000e+08, .off = 0.000000000000000000e+00 }, + HP{ .val = 1.000000e+07, .off = 0.000000000000000000e+00 }, + HP{ .val = 1.000000e+06, .off = 0.000000000000000000e+00 }, + HP{ .val = 1.000000e+05, .off = 0.000000000000000000e+00 }, + HP{ .val = 1.000000e+04, .off = 0.000000000000000000e+00 }, + HP{ .val = 1.000000e+03, .off = 0.000000000000000000e+00 }, + HP{ .val = 1.000000e+02, .off = 0.000000000000000000e+00 }, + HP{ .val = 1.000000e+01, .off = 0.000000000000000000e+00 }, + HP{ .val = 1.000000e+00, .off = 0.000000000000000000e+00 }, + HP{ .val = 1.000000e-01, .off = -5.551115123125783010e-18 }, + HP{ .val = 1.000000e-02, .off = -2.081668171172168436e-19 }, + HP{ .val = 1.000000e-03, .off = -2.081668171172168557e-20 }, + HP{ .val = 1.000000e-04, .off = -4.792173602385929943e-21 }, + HP{ .val = 1.000000e-05, .off = -8.180305391403130547e-22 }, + HP{ .val = 1.000000e-06, .off = 4.525188817411374069e-23 }, + HP{ .val = 1.000000e-07, .off = 4.525188817411373922e-24 }, + HP{ .val = 1.000000e-08, .off = -2.092256083012847109e-25 }, + HP{ .val = 1.000000e-09, .off = -6.228159145777985254e-26 }, + HP{ .val = 1.000000e-10, .off = -3.643219731549774344e-27 }, + HP{ .val = 1.000000e-11, .off = 6.050303071806019080e-28 }, + HP{ .val = 1.000000e-12, .off = 2.011335237074438524e-29 }, + HP{ .val = 1.000000e-13, .off = -3.037374556340037101e-30 }, + HP{ .val = 1.000000e-14, .off = 1.180690645440101289e-32 }, + HP{ .val = 1.000000e-15, .off = -7.770539987666107583e-32 }, + HP{ .val = 1.000000e-16, .off = 2.090221327596539779e-33 }, + HP{ .val = 1.000000e-17, .off = -7.154242405462192144e-34 }, + HP{ .val = 1.000000e-18, .off = -7.154242405462192572e-35 }, + HP{ .val = 1.000000e-19, .off = 2.475407316473986894e-36 }, + HP{ .val = 1.000000e-20, .off = 5.484672854579042914e-37 }, + HP{ .val = 1.000000e-21, .off = 9.246254777210362522e-38 }, + HP{ .val = 1.000000e-22, .off = -4.859677432657087182e-39 }, + HP{ .val = 1.000000e-23, .off = 3.956530198510069291e-40 }, + HP{ .val = 1.000000e-24, .off = 7.629950044829717753e-41 }, + HP{ .val = 1.000000e-25, .off = -3.849486974919183692e-42 }, + HP{ .val = 1.000000e-26, .off = -3.849486974919184170e-43 }, + HP{ .val = 1.000000e-27, .off = -3.849486974919184070e-44 }, + HP{ .val = 1.000000e-28, .off = 2.876745653839937870e-45 }, + HP{ .val = 1.000000e-29, .off = 5.679342582489572168e-46 }, + HP{ .val = 1.000000e-30, .off = -8.333642060758598930e-47 }, + HP{ .val = 1.000000e-31, .off = -8.333642060758597958e-48 }, + HP{ .val = 1.000000e-32, .off = -5.596730997624190224e-49 }, + HP{ .val = 1.000000e-33, .off = -5.596730997624190604e-50 }, + HP{ .val = 1.000000e-34, .off = 7.232539610818348498e-51 }, + HP{ .val = 1.000000e-35, .off = -7.857545194582380514e-53 }, + HP{ .val = 1.000000e-36, .off = 5.896157255772251528e-53 }, + HP{ .val = 1.000000e-37, .off = -6.632427322784915796e-54 }, + HP{ .val = 1.000000e-38, .off = 3.808059826012723592e-55 }, + HP{ .val = 1.000000e-39, .off = 7.070712060011985131e-56 }, + HP{ .val = 1.000000e-40, .off = 7.070712060011985584e-57 }, + HP{ .val = 1.000000e-41, .off = -5.761291134237854167e-59 }, + HP{ .val = 1.000000e-42, .off = -3.762312935688689794e-59 }, + HP{ .val = 1.000000e-43, .off = -7.745042713519821150e-60 }, + HP{ .val = 1.000000e-44, .off = 4.700987842202462817e-61 }, + HP{ .val = 1.000000e-45, .off = 1.589480203271891964e-62 }, + HP{ .val = 1.000000e-46, .off = -2.299904345391321765e-63 }, + HP{ .val = 1.000000e-47, .off = 2.561826340437695261e-64 }, + HP{ .val = 1.000000e-48, .off = 2.561826340437695345e-65 }, + HP{ .val = 1.000000e-49, .off = 6.360053438741614633e-66 }, + HP{ .val = 1.000000e-50, .off = -7.616223705782342295e-68 }, + HP{ .val = 1.000000e-51, .off = -7.616223705782343324e-69 }, + HP{ .val = 1.000000e-52, .off = -7.616223705782342295e-70 }, + HP{ .val = 1.000000e-53, .off = -3.079876214757872338e-70 }, + HP{ .val = 1.000000e-54, .off = -3.079876214757872821e-71 }, + HP{ .val = 1.000000e-55, .off = 5.423954167728123147e-73 }, + HP{ .val = 1.000000e-56, .off = -3.985444122640543680e-73 }, + HP{ .val = 1.000000e-57, .off = 4.504255013759498850e-74 }, + HP{ .val = 1.000000e-58, .off = -2.570494266573869991e-75 }, + HP{ .val = 1.000000e-59, .off = -2.570494266573869930e-76 }, + HP{ .val = 1.000000e-60, .off = 2.956653608686574324e-77 }, + HP{ .val = 1.000000e-61, .off = -3.952281235388981376e-78 }, + HP{ .val = 1.000000e-62, .off = -3.952281235388981376e-79 }, + HP{ .val = 1.000000e-63, .off = -6.651083908855995172e-80 }, + HP{ .val = 1.000000e-64, .off = 3.469426116645307030e-81 }, + HP{ .val = 1.000000e-65, .off = 7.686305293937516319e-82 }, + HP{ .val = 1.000000e-66, .off = 2.415206322322254927e-83 }, + HP{ .val = 1.000000e-67, .off = 5.709643179581793251e-84 }, + HP{ .val = 1.000000e-68, .off = -6.644495035141475923e-85 }, + HP{ .val = 1.000000e-69, .off = 3.650620143794581913e-86 }, + HP{ .val = 1.000000e-70, .off = 4.333966503770636492e-88 }, + HP{ .val = 1.000000e-71, .off = 8.476455383920859113e-88 }, + HP{ .val = 1.000000e-72, .off = 3.449543675455986564e-89 }, + HP{ .val = 1.000000e-73, .off = 3.077238576654418974e-91 }, + HP{ .val = 1.000000e-74, .off = 4.234998629903623140e-91 }, + HP{ .val = 1.000000e-75, .off = 4.234998629903623412e-92 }, + HP{ .val = 1.000000e-76, .off = 7.303182045714702338e-93 }, + HP{ .val = 1.000000e-77, .off = 7.303182045714701699e-94 }, + HP{ .val = 1.000000e-78, .off = 1.121271649074855759e-96 }, + HP{ .val = 1.000000e-79, .off = 1.121271649074855863e-97 }, + HP{ .val = 1.000000e-80, .off = 3.857468248661243988e-97 }, + HP{ .val = 1.000000e-81, .off = 3.857468248661244248e-98 }, + HP{ .val = 1.000000e-82, .off = 3.857468248661244410e-99 }, + HP{ .val = 1.000000e-83, .off = -3.457651055545315679e-100 }, + HP{ .val = 1.000000e-84, .off = -3.457651055545315933e-101 }, + HP{ .val = 1.000000e-85, .off = 2.257285900866059216e-102 }, + HP{ .val = 1.000000e-86, .off = -8.458220892405268345e-103 }, + HP{ .val = 1.000000e-87, .off = -1.761029146610688867e-104 }, + HP{ .val = 1.000000e-88, .off = 6.610460535632536565e-105 }, + HP{ .val = 1.000000e-89, .off = -3.853901567171494935e-106 }, + HP{ .val = 1.000000e-90, .off = 5.062493089968513723e-108 }, + HP{ .val = 1.000000e-91, .off = -2.218844988608365240e-108 }, + HP{ .val = 1.000000e-92, .off = 1.187522883398155383e-109 }, + HP{ .val = 1.000000e-93, .off = 9.703442563414457296e-110 }, + HP{ .val = 1.000000e-94, .off = 4.380992763404268896e-111 }, + HP{ .val = 1.000000e-95, .off = 1.054461638397900823e-112 }, + HP{ .val = 1.000000e-96, .off = 9.370789450913819736e-113 }, + HP{ .val = 1.000000e-97, .off = -3.623472756142303998e-114 }, + HP{ .val = 1.000000e-98, .off = 6.122223899149788839e-115 }, + HP{ .val = 1.000000e-99, .off = -1.999189980260288281e-116 }, + HP{ .val = 1.000000e-100, .off = -1.999189980260288281e-117 }, + HP{ .val = 1.000000e-101, .off = -5.171617276904849634e-118 }, + HP{ .val = 1.000000e-102, .off = 6.724985085512256320e-119 }, + HP{ .val = 1.000000e-103, .off = 4.246526260008692213e-120 }, + HP{ .val = 1.000000e-104, .off = 7.344599791888147003e-121 }, + HP{ .val = 1.000000e-105, .off = 3.472007877038828407e-122 }, + HP{ .val = 1.000000e-106, .off = 5.892377823819652194e-123 }, + HP{ .val = 1.000000e-107, .off = -1.585470431324073925e-125 }, + HP{ .val = 1.000000e-108, .off = -3.940375084977444795e-125 }, + HP{ .val = 1.000000e-109, .off = 7.869099673288519908e-127 }, + HP{ .val = 1.000000e-110, .off = -5.122196348054018581e-127 }, + HP{ .val = 1.000000e-111, .off = -8.815387795168313713e-128 }, + HP{ .val = 1.000000e-112, .off = 5.034080131510290214e-129 }, + HP{ .val = 1.000000e-113, .off = 2.148774313452247863e-130 }, + HP{ .val = 1.000000e-114, .off = -5.064490231692858416e-131 }, + HP{ .val = 1.000000e-115, .off = -5.064490231692858166e-132 }, + HP{ .val = 1.000000e-116, .off = 5.708726942017560559e-134 }, + HP{ .val = 1.000000e-117, .off = -2.951229134482377772e-134 }, + HP{ .val = 1.000000e-118, .off = 1.451398151372789513e-135 }, + HP{ .val = 1.000000e-119, .off = -1.300243902286690040e-136 }, + HP{ .val = 1.000000e-120, .off = 2.139308664787659449e-137 }, + HP{ .val = 1.000000e-121, .off = 2.139308664787659329e-138 }, + HP{ .val = 1.000000e-122, .off = -5.922142664292847471e-139 }, + HP{ .val = 1.000000e-123, .off = -5.922142664292846912e-140 }, + HP{ .val = 1.000000e-124, .off = 6.673875037395443799e-141 }, + HP{ .val = 1.000000e-125, .off = -1.198636026159737932e-142 }, + HP{ .val = 1.000000e-126, .off = 5.361789860136246995e-143 }, + HP{ .val = 1.000000e-127, .off = -2.838742497733733936e-144 }, + HP{ .val = 1.000000e-128, .off = -5.401408859568103261e-145 }, + HP{ .val = 1.000000e-129, .off = 7.411922949603743011e-146 }, + HP{ .val = 1.000000e-130, .off = -8.604741811861064385e-147 }, + HP{ .val = 1.000000e-131, .off = 1.405673664054439890e-148 }, + HP{ .val = 1.000000e-132, .off = 1.405673664054439933e-149 }, + HP{ .val = 1.000000e-133, .off = -6.414963426504548053e-150 }, + HP{ .val = 1.000000e-134, .off = -3.971014335704864578e-151 }, + HP{ .val = 1.000000e-135, .off = -3.971014335704864748e-152 }, + HP{ .val = 1.000000e-136, .off = -1.523438813303585576e-154 }, + HP{ .val = 1.000000e-137, .off = 2.234325152653707766e-154 }, + HP{ .val = 1.000000e-138, .off = -6.715683724786540160e-155 }, + HP{ .val = 1.000000e-139, .off = -2.986513359186437306e-156 }, + HP{ .val = 1.000000e-140, .off = 1.674949597813692102e-157 }, + HP{ .val = 1.000000e-141, .off = -4.151879098436469092e-158 }, + HP{ .val = 1.000000e-142, .off = -4.151879098436469295e-159 }, + HP{ .val = 1.000000e-143, .off = 4.952540739454407825e-160 }, + HP{ .val = 1.000000e-144, .off = 4.952540739454407667e-161 }, + HP{ .val = 1.000000e-145, .off = 8.508954738630531443e-162 }, + HP{ .val = 1.000000e-146, .off = -2.604839008794855481e-163 }, + HP{ .val = 1.000000e-147, .off = 2.952057864917838382e-164 }, + HP{ .val = 1.000000e-148, .off = 6.425118410988271757e-165 }, + HP{ .val = 1.000000e-149, .off = 2.083792728400229858e-166 }, + HP{ .val = 1.000000e-150, .off = -6.295358232172964237e-168 }, + HP{ .val = 1.000000e-151, .off = 6.153785555826519421e-168 }, + HP{ .val = 1.000000e-152, .off = -6.564942029880634994e-169 }, + HP{ .val = 1.000000e-153, .off = -3.915207116191644540e-170 }, + HP{ .val = 1.000000e-154, .off = 2.709130168030831503e-171 }, + HP{ .val = 1.000000e-155, .off = -1.431080634608215966e-172 }, + HP{ .val = 1.000000e-156, .off = -4.018712386257620994e-173 }, + HP{ .val = 1.000000e-157, .off = 5.684906682427646782e-174 }, + HP{ .val = 1.000000e-158, .off = -6.444617153428937489e-175 }, + HP{ .val = 1.000000e-159, .off = 1.136335243981427681e-176 }, + HP{ .val = 1.000000e-160, .off = 1.136335243981427725e-177 }, + HP{ .val = 1.000000e-161, .off = -2.812077463003137395e-178 }, + HP{ .val = 1.000000e-162, .off = 4.591196362592922204e-179 }, + HP{ .val = 1.000000e-163, .off = 7.675893789924613703e-180 }, + HP{ .val = 1.000000e-164, .off = 3.820022005759999543e-181 }, + HP{ .val = 1.000000e-165, .off = -9.998177244457686588e-183 }, + HP{ .val = 1.000000e-166, .off = -4.012217555824373639e-183 }, + HP{ .val = 1.000000e-167, .off = -2.467177666011174334e-185 }, + HP{ .val = 1.000000e-168, .off = -4.953592503130188139e-185 }, + HP{ .val = 1.000000e-169, .off = -2.011795792799518887e-186 }, + HP{ .val = 1.000000e-170, .off = 1.665450095113817423e-187 }, + HP{ .val = 1.000000e-171, .off = 1.665450095113817487e-188 }, + HP{ .val = 1.000000e-172, .off = -4.080246604750770577e-189 }, + HP{ .val = 1.000000e-173, .off = -4.080246604750770677e-190 }, + HP{ .val = 1.000000e-174, .off = 4.085789420184387951e-192 }, + HP{ .val = 1.000000e-175, .off = 4.085789420184388146e-193 }, + HP{ .val = 1.000000e-176, .off = 4.085789420184388146e-194 }, + HP{ .val = 1.000000e-177, .off = 4.792197640035244894e-194 }, + HP{ .val = 1.000000e-178, .off = 4.792197640035244742e-195 }, + HP{ .val = 1.000000e-179, .off = -2.057206575616014662e-196 }, + HP{ .val = 1.000000e-180, .off = -2.057206575616014662e-197 }, + HP{ .val = 1.000000e-181, .off = -4.732755097354788053e-198 }, + HP{ .val = 1.000000e-182, .off = -4.732755097354787867e-199 }, + HP{ .val = 1.000000e-183, .off = -5.522105321379546765e-201 }, + HP{ .val = 1.000000e-184, .off = -5.777891238658996019e-201 }, + HP{ .val = 1.000000e-185, .off = 7.542096444923057046e-203 }, + HP{ .val = 1.000000e-186, .off = 8.919335748431433483e-203 }, + HP{ .val = 1.000000e-187, .off = -1.287071881492476028e-204 }, + HP{ .val = 1.000000e-188, .off = 5.091932887209967018e-205 }, + HP{ .val = 1.000000e-189, .off = -6.868701054107114024e-206 }, + HP{ .val = 1.000000e-190, .off = -1.885103578558330118e-207 }, + HP{ .val = 1.000000e-191, .off = -1.885103578558330205e-208 }, + HP{ .val = 1.000000e-192, .off = -9.671974634103305058e-209 }, + HP{ .val = 1.000000e-193, .off = -4.805180224387695640e-210 }, + HP{ .val = 1.000000e-194, .off = -1.763433718315439838e-211 }, + HP{ .val = 1.000000e-195, .off = -9.367799983496079132e-212 }, + HP{ .val = 1.000000e-196, .off = -4.615071067758179837e-213 }, + HP{ .val = 1.000000e-197, .off = 1.325840076914194777e-214 }, + HP{ .val = 1.000000e-198, .off = 8.751979007754662425e-215 }, + HP{ .val = 1.000000e-199, .off = 1.789973760091724198e-216 }, + HP{ .val = 1.000000e-200, .off = 1.789973760091724077e-217 }, + HP{ .val = 1.000000e-201, .off = 5.416018159916171171e-218 }, + HP{ .val = 1.000000e-202, .off = -3.649092839644947067e-219 }, + HP{ .val = 1.000000e-203, .off = -3.649092839644947067e-220 }, + HP{ .val = 1.000000e-204, .off = -1.080338554413850956e-222 }, + HP{ .val = 1.000000e-205, .off = -1.080338554413850841e-223 }, + HP{ .val = 1.000000e-206, .off = -2.874486186850417807e-223 }, + HP{ .val = 1.000000e-207, .off = 7.499710055933455072e-224 }, + HP{ .val = 1.000000e-208, .off = -9.790617015372999087e-225 }, + HP{ .val = 1.000000e-209, .off = -4.387389805589732612e-226 }, + HP{ .val = 1.000000e-210, .off = -4.387389805589732612e-227 }, + HP{ .val = 1.000000e-211, .off = -8.608661063232909897e-228 }, + HP{ .val = 1.000000e-212, .off = 4.582811616902018972e-229 }, + HP{ .val = 1.000000e-213, .off = 4.582811616902019155e-230 }, + HP{ .val = 1.000000e-214, .off = 8.705146829444184930e-231 }, + HP{ .val = 1.000000e-215, .off = -4.177150709750081830e-232 }, + HP{ .val = 1.000000e-216, .off = -4.177150709750082366e-233 }, + HP{ .val = 1.000000e-217, .off = -8.202868690748290237e-234 }, + HP{ .val = 1.000000e-218, .off = -3.170721214500530119e-235 }, + HP{ .val = 1.000000e-219, .off = -3.170721214500529857e-236 }, + HP{ .val = 1.000000e-220, .off = 7.606440013180328441e-238 }, + HP{ .val = 1.000000e-221, .off = -1.696459258568569049e-238 }, + HP{ .val = 1.000000e-222, .off = -4.767838333426821244e-239 }, + HP{ .val = 1.000000e-223, .off = 2.910609353718809138e-240 }, + HP{ .val = 1.000000e-224, .off = -1.888420450747209784e-241 }, + HP{ .val = 1.000000e-225, .off = 4.110366804835314035e-242 }, + HP{ .val = 1.000000e-226, .off = 7.859608839574391006e-243 }, + HP{ .val = 1.000000e-227, .off = 5.516332567862468419e-244 }, + HP{ .val = 1.000000e-228, .off = -3.270953451057244613e-245 }, + HP{ .val = 1.000000e-229, .off = -6.932322625607124670e-246 }, + HP{ .val = 1.000000e-230, .off = -4.643966891513449762e-247 }, + HP{ .val = 1.000000e-231, .off = 1.076922443720738305e-248 }, + HP{ .val = 1.000000e-232, .off = -2.498633390800628939e-249 }, + HP{ .val = 1.000000e-233, .off = 4.205533798926934891e-250 }, + HP{ .val = 1.000000e-234, .off = 4.205533798926934891e-251 }, + HP{ .val = 1.000000e-235, .off = 4.205533798926934697e-252 }, + HP{ .val = 1.000000e-236, .off = -4.523850562697497656e-253 }, + HP{ .val = 1.000000e-237, .off = 9.320146633177728298e-255 }, + HP{ .val = 1.000000e-238, .off = 9.320146633177728062e-256 }, + HP{ .val = 1.000000e-239, .off = -7.592774752331086440e-256 }, + HP{ .val = 1.000000e-240, .off = 3.063212017229987840e-257 }, + HP{ .val = 1.000000e-241, .off = 3.063212017229987562e-258 }, + HP{ .val = 1.000000e-242, .off = 3.063212017229987562e-259 }, + HP{ .val = 1.000000e-243, .off = 4.616527473176159842e-261 }, + HP{ .val = 1.000000e-244, .off = 6.965550922098544975e-261 }, + HP{ .val = 1.000000e-245, .off = 6.965550922098544749e-262 }, + HP{ .val = 1.000000e-246, .off = 4.424965697574744679e-263 }, + HP{ .val = 1.000000e-247, .off = -1.926497363734756420e-264 }, + HP{ .val = 1.000000e-248, .off = 2.043167049583681740e-265 }, + HP{ .val = 1.000000e-249, .off = -5.399953725388390154e-266 }, + HP{ .val = 1.000000e-250, .off = -5.399953725388389982e-267 }, + HP{ .val = 1.000000e-251, .off = -1.523328321757102663e-268 }, + HP{ .val = 1.000000e-252, .off = 5.745344310051561161e-269 }, + HP{ .val = 1.000000e-253, .off = -6.369110076296211879e-270 }, + HP{ .val = 1.000000e-254, .off = 8.773957906638504842e-271 }, + HP{ .val = 1.000000e-255, .off = -6.904595826956931908e-273 }, + HP{ .val = 1.000000e-256, .off = 2.267170882721243669e-273 }, + HP{ .val = 1.000000e-257, .off = 2.267170882721243669e-274 }, + HP{ .val = 1.000000e-258, .off = 4.577819683828225398e-275 }, + HP{ .val = 1.000000e-259, .off = -6.975424321706684210e-276 }, + HP{ .val = 1.000000e-260, .off = 3.855741933482293648e-277 }, + HP{ .val = 1.000000e-261, .off = 1.599248963651256552e-278 }, + HP{ .val = 1.000000e-262, .off = -1.221367248637539543e-279 }, + HP{ .val = 1.000000e-263, .off = -1.221367248637539494e-280 }, + HP{ .val = 1.000000e-264, .off = -1.221367248637539647e-281 }, + HP{ .val = 1.000000e-265, .off = 1.533140771175737943e-282 }, + HP{ .val = 1.000000e-266, .off = 1.533140771175737895e-283 }, + HP{ .val = 1.000000e-267, .off = 1.533140771175738074e-284 }, + HP{ .val = 1.000000e-268, .off = 4.223090009274641634e-285 }, + HP{ .val = 1.000000e-269, .off = 4.223090009274641634e-286 }, + HP{ .val = 1.000000e-270, .off = -4.183001359784432924e-287 }, + HP{ .val = 1.000000e-271, .off = 3.697709298708449474e-288 }, + HP{ .val = 1.000000e-272, .off = 6.981338739747150474e-289 }, + HP{ .val = 1.000000e-273, .off = -9.436808465446354751e-290 }, + HP{ .val = 1.000000e-274, .off = 3.389869038611071740e-291 }, + HP{ .val = 1.000000e-275, .off = 6.596538414625427829e-292 }, + HP{ .val = 1.000000e-276, .off = -9.436808465446354618e-293 }, + HP{ .val = 1.000000e-277, .off = 3.089243784609725523e-294 }, + HP{ .val = 1.000000e-278, .off = 6.220756847123745836e-295 }, + HP{ .val = 1.000000e-279, .off = -5.522417137303829470e-296 }, + HP{ .val = 1.000000e-280, .off = 4.263561183052483059e-297 }, + HP{ .val = 1.000000e-281, .off = -1.852675267170212272e-298 }, + HP{ .val = 1.000000e-282, .off = -1.852675267170212378e-299 }, + HP{ .val = 1.000000e-283, .off = 5.314789322934508480e-300 }, + HP{ .val = 1.000000e-284, .off = -3.644541414696392675e-301 }, + HP{ .val = 1.000000e-285, .off = -7.377595888709267777e-302 }, + HP{ .val = 1.000000e-286, .off = -5.044436842451220838e-303 }, + HP{ .val = 1.000000e-287, .off = -2.127988034628661760e-304 }, + HP{ .val = 1.000000e-288, .off = -5.773549044406860911e-305 }, + HP{ .val = 1.000000e-289, .off = -1.216597782184112068e-306 }, + HP{ .val = 1.000000e-290, .off = -6.912786859962547924e-307 }, + HP{ .val = 1.000000e-291, .off = 3.767567660872018813e-308 }, +}; diff --git a/lib/std/fmt/parse_float.zig b/lib/std/fmt/parse_float.zig new file mode 100644 index 0000000000..9a35e27c21 --- /dev/null +++ b/lib/std/fmt/parse_float.zig @@ -0,0 +1,433 @@ +// Adapted from https://github.com/grzegorz-kraszewski/stringtofloat. + +// MIT License +// +// Copyright (c) 2016 Grzegorz Kraszewski +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. +// + +// Be aware that this implementation has the following limitations: +// +// - Is not round-trip accurate for all values +// - Only supports round-to-zero +// - Does not handle denormals + +const std = @import("../std.zig"); + +const max_digits = 25; + +const f64_plus_zero: u64 = 0x0000000000000000; +const f64_minus_zero: u64 = 0x8000000000000000; +const f64_plus_infinity: u64 = 0x7FF0000000000000; +const f64_minus_infinity: u64 = 0xFFF0000000000000; + +const Z96 = struct { + d0: u32, + d1: u32, + d2: u32, + + // d = s >> 1 + inline fn shiftRight1(d: *Z96, s: Z96) void { + d.d0 = (s.d0 >> 1) | ((s.d1 & 1) << 31); + d.d1 = (s.d1 >> 1) | ((s.d2 & 1) << 31); + d.d2 = s.d2 >> 1; + } + + // d = s << 1 + inline fn shiftLeft1(d: *Z96, s: Z96) void { + d.d2 = (s.d2 << 1) | ((s.d1 & (1 << 31)) >> 31); + d.d1 = (s.d1 << 1) | ((s.d0 & (1 << 31)) >> 31); + d.d0 = s.d0 << 1; + } + + // d += s + inline fn add(d: *Z96, s: Z96) void { + var w = u64(d.d0) + u64(s.d0); + d.d0 = @truncate(u32, w); + + w >>= 32; + w += u64(d.d1) + u64(s.d1); + d.d1 = @truncate(u32, w); + + w >>= 32; + w += u64(d.d2) + u64(s.d2); + d.d2 = @truncate(u32, w); + } + + // d -= s + inline fn sub(d: *Z96, s: Z96) void { + var w = u64(d.d0) -% u64(s.d0); + d.d0 = @truncate(u32, w); + + w >>= 32; + w += u64(d.d1) -% u64(s.d1); + d.d1 = @truncate(u32, w); + + w >>= 32; + w += u64(d.d2) -% u64(s.d2); + d.d2 = @truncate(u32, w); + } +}; + +const FloatRepr = struct { + negative: bool, + exponent: i32, + mantissa: u64, +}; + +fn convertRepr(comptime T: type, n: FloatRepr) T { + const mask28: u32 = 0xf << 28; + + var s: Z96 = undefined; + var q: Z96 = undefined; + var r: Z96 = undefined; + + s.d0 = @truncate(u32, n.mantissa); + s.d1 = @truncate(u32, n.mantissa >> 32); + s.d2 = 0; + + var binary_exponent: i32 = 92; + var exp = n.exponent; + + while (exp > 0) : (exp -= 1) { + q.shiftLeft1(s); // q = p << 1 + r.shiftLeft1(q); // r = p << 2 + s.shiftLeft1(r); // p = p << 3 + s.add(q); // p = (p << 3) + (p << 1) + + while (s.d2 & mask28 != 0) { + q.shiftRight1(s); + binary_exponent += 1; + s = q; + } + } + + while (exp < 0) { + while (s.d2 & (1 << 31) == 0) { + q.shiftLeft1(s); + binary_exponent -= 1; + s = q; + } + + q.d2 = s.d2 / 10; + r.d1 = s.d2 % 10; + r.d2 = (s.d1 >> 8) | (r.d1 << 24); + q.d1 = r.d2 / 10; + r.d1 = r.d2 % 10; + r.d2 = ((s.d1 & 0xff) << 16) | (s.d0 >> 16) | (r.d1 << 24); + r.d0 = r.d2 / 10; + r.d1 = r.d2 % 10; + q.d1 = (q.d1 << 8) | ((r.d0 & 0x00ff0000) >> 16); + q.d0 = r.d0 << 16; + r.d2 = (s.d0 *% 0xffff) | (r.d1 << 16); + q.d0 |= r.d2 / 10; + s = q; + + exp += 1; + } + + if (s.d0 != 0 or s.d1 != 0 or s.d2 != 0) { + while (s.d2 & mask28 == 0) { + q.shiftLeft1(s); + binary_exponent -= 1; + s = q; + } + } + + binary_exponent += 1023; + + const repr: u64 = blk: { + if (binary_exponent > 2046) { + break :blk if (n.negative) f64_minus_infinity else f64_plus_infinity; + } else if (binary_exponent < 1) { + break :blk if (n.negative) f64_minus_zero else f64_plus_zero; + } else if (s.d2 != 0) { + const binexs2 = @intCast(u64, binary_exponent) << 52; + const rr = (u64(s.d2 & ~mask28) << 24) | ((u64(s.d1) + 128) >> 8) | binexs2; + break :blk if (n.negative) rr | (1 << 63) else rr; + } else { + break :blk 0; + } + }; + + const f = @bitCast(f64, repr); + return @floatCast(T, f); +} + +const State = enum { + MaybeSign, + LeadingMantissaZeros, + LeadingFractionalZeros, + MantissaIntegral, + MantissaFractional, + ExponentSign, + LeadingExponentZeros, + Exponent, +}; + +const ParseResult = enum { + Ok, + PlusZero, + MinusZero, + PlusInf, + MinusInf, +}; + +inline fn isDigit(c: u8) bool { + return c >= '0' and c <= '9'; +} + +inline fn isSpace(c: u8) bool { + return (c >= 0x09 and c <= 0x13) or c == 0x20; +} + +fn parseRepr(s: []const u8, n: *FloatRepr) !ParseResult { + var digit_index: usize = 0; + var negative = false; + var negative_exp = false; + var exponent: i32 = 0; + + var state = State.MaybeSign; + + var i: usize = 0; + loop: while (i < s.len) { + const c = s[i]; + + switch (state) { + State.MaybeSign => { + state = State.LeadingMantissaZeros; + + if (c == '+') { + i += 1; + } else if (c == '-') { + n.negative = true; + i += 1; + } else if (isDigit(c) or c == '.') { + // continue + } else { + return error.InvalidCharacter; + } + }, + + State.LeadingMantissaZeros => { + if (c == '0') { + i += 1; + } else if (c == '.') { + i += 1; + state = State.LeadingFractionalZeros; + } else { + state = State.MantissaIntegral; + } + }, + + State.LeadingFractionalZeros => { + if (c == '0') { + i += 1; + if (n.exponent > std.math.minInt(i32)) { + n.exponent -= 1; + } + } else { + state = State.MantissaFractional; + } + }, + + State.MantissaIntegral => { + if (isDigit(c)) { + if (digit_index < max_digits) { + n.mantissa *%= 10; + n.mantissa += s[i] - '0'; + digit_index += 1; + } else if (n.exponent < std.math.maxInt(i32)) { + n.exponent += 1; + } + + i += 1; + } else if (c == '.') { + i += 1; + state = State.MantissaFractional; + } else { + state = State.MantissaFractional; + } + }, + + State.MantissaFractional => { + if (isDigit(c)) { + if (digit_index < max_digits) { + n.mantissa *%= 10; + n.mantissa += c - '0'; + n.exponent -%= 1; + digit_index += 1; + } + + i += 1; + } else if (c == 'e' or c == 'E') { + i += 1; + state = State.ExponentSign; + } else { + state = State.ExponentSign; + } + }, + + State.ExponentSign => { + if (c == '+') { + i += 1; + } else if (c == '-') { + negative_exp = true; + i += 1; + } + + state = State.LeadingExponentZeros; + }, + + State.LeadingExponentZeros => { + if (c == '0') { + i += 1; + } else { + state = State.Exponent; + } + }, + + State.Exponent => { + if (isDigit(c)) { + if (exponent < std.math.maxInt(i32)) { + exponent *= 10; + exponent += @intCast(i32, c - '0'); + } + + i += 1; + } else { + return error.InvalidCharacter; + } + }, + } + } + + if (negative_exp) exponent = -exponent; + n.exponent += exponent; + + if (n.mantissa == 0) { + return if (n.negative) ParseResult.MinusZero else ParseResult.PlusZero; + } else if (n.exponent > 309) { + return if (n.negative) ParseResult.MinusInf else ParseResult.PlusInf; + } else if (n.exponent < -328) { + return if (n.negative) ParseResult.MinusZero else ParseResult.PlusZero; + } + + return ParseResult.Ok; +} + +inline fn isLower(c: u8) bool { + return c -% 'a' < 26; +} + +inline fn toUpper(c: u8) u8 { + return if (isLower(c)) (c & 0x5f) else c; +} + +fn caseInEql(a: []const u8, b: []const u8) bool { + if (a.len != b.len) return false; + + for (a) |_, i| { + if (toUpper(a[i]) != toUpper(b[i])) { + return false; + } + } + + return true; +} + +pub fn parseFloat(comptime T: type, s: []const u8) !T { + if (s.len == 0) { + return error.InvalidCharacter; + } + + if (caseInEql(s, "nan")) { + return std.math.nan(T); + } else if (caseInEql(s, "inf") or caseInEql(s, "+inf")) { + return std.math.inf(T); + } else if (caseInEql(s, "-inf")) { + return -std.math.inf(T); + } + + var r = FloatRepr{ + .negative = false, + .exponent = 0, + .mantissa = 0, + }; + + return switch (try parseRepr(s, &r)) { + ParseResult.Ok => convertRepr(T, r), + ParseResult.PlusZero => 0.0, + ParseResult.MinusZero => -T(0.0), + ParseResult.PlusInf => std.math.inf(T), + ParseResult.MinusInf => -std.math.inf(T), + }; +} + +test "fmt.parseFloat" { + if (@import("builtin").arch == .arm) { + // TODO https://github.com/ziglang/zig/issues/3289 + return error.SkipZigTest; + } + const testing = std.testing; + const expect = testing.expect; + const expectEqual = testing.expectEqual; + const approxEq = std.math.approxEq; + const epsilon = 1e-7; + + inline for ([_]type{ f16, f32, f64, f128 }) |T| { + const Z = @IntType(false, T.bit_count); + + testing.expectError(error.InvalidCharacter, parseFloat(T, "")); + testing.expectError(error.InvalidCharacter, parseFloat(T, " 1")); + testing.expectError(error.InvalidCharacter, parseFloat(T, "1abc")); + + expectEqual(try parseFloat(T, "0"), 0.0); + expectEqual((try parseFloat(T, "0")), 0.0); + expectEqual((try parseFloat(T, "+0")), 0.0); + expectEqual((try parseFloat(T, "-0")), 0.0); + + expectEqual((try parseFloat(T, "0e0")), 0); + expectEqual((try parseFloat(T, "2e3")), 2000.0); + expectEqual((try parseFloat(T, "1e0")), 1.0); + expectEqual((try parseFloat(T, "-2e3")), -2000.0); + expectEqual((try parseFloat(T, "-1e0")), -1.0); + expectEqual((try parseFloat(T, "1.234e3")), 1234); + + expect(approxEq(T, try parseFloat(T, "3.141"), 3.141, epsilon)); + expect(approxEq(T, try parseFloat(T, "-3.141"), -3.141, epsilon)); + + expectEqual((try parseFloat(T, "1e-700")), 0); + expectEqual((try parseFloat(T, "1e+700")), std.math.inf(T)); + + expectEqual(@bitCast(Z, try parseFloat(T, "nAn")), @bitCast(Z, std.math.nan(T))); + expectEqual((try parseFloat(T, "inF")), std.math.inf(T)); + expectEqual((try parseFloat(T, "-INF")), -std.math.inf(T)); + + if (T != f16) { + expect(approxEq(T, try parseFloat(T, "1e-2"), 0.01, epsilon)); + expect(approxEq(T, try parseFloat(T, "1234e-2"), 12.34, epsilon)); + + expect(approxEq(T, try parseFloat(T, "123142.1"), 123142.1, epsilon)); + expect(approxEq(T, try parseFloat(T, "-123142.1124"), T(-123142.1124), epsilon)); + expect(approxEq(T, try parseFloat(T, "0.7062146892655368"), T(0.7062146892655368), epsilon)); + } + } +} diff --git a/lib/std/fs.zig b/lib/std/fs.zig new file mode 100644 index 0000000000..6301c8a26c --- /dev/null +++ b/lib/std/fs.zig @@ -0,0 +1,988 @@ +const builtin = @import("builtin"); +const std = @import("std.zig"); +const os = std.os; +const mem = std.mem; +const base64 = std.base64; +const crypto = std.crypto; +const Allocator = std.mem.Allocator; +const assert = std.debug.assert; + +pub const path = @import("fs/path.zig"); +pub const File = @import("fs/file.zig").File; + +pub const symLink = os.symlink; +pub const symLinkC = os.symlinkC; +pub const deleteFile = os.unlink; +pub const deleteFileC = os.unlinkC; +pub const rename = os.rename; +pub const renameC = os.renameC; +pub const renameW = os.renameW; +pub const realpath = os.realpath; +pub const realpathC = os.realpathC; +pub const realpathW = os.realpathW; + +pub const getAppDataDir = @import("fs/get_app_data_dir.zig").getAppDataDir; +pub const GetAppDataDirError = @import("fs/get_app_data_dir.zig").GetAppDataDirError; + +/// This represents the maximum size of a UTF-8 encoded file path. +/// All file system operations which return a path are guaranteed to +/// fit into a UTF-8 encoded array of this length. +/// path being too long if it is this 0long +pub const MAX_PATH_BYTES = switch (builtin.os) { + .linux, .macosx, .ios, .freebsd, .netbsd => os.PATH_MAX, + // Each UTF-16LE character may be expanded to 3 UTF-8 bytes. + // If it would require 4 UTF-8 bytes, then there would be a surrogate + // pair in the UTF-16LE, and we (over)account 3 bytes for it that way. + // +1 for the null byte at the end, which can be encoded in 1 byte. + .windows => os.windows.PATH_MAX_WIDE * 3 + 1, + else => @compileError("Unsupported OS"), +}; + +// here we replace the standard +/ with -_ so that it can be used in a file name +const b64_fs_encoder = base64.Base64Encoder.init("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_", base64.standard_pad_char); + +/// TODO remove the allocator requirement from this API +pub fn atomicSymLink(allocator: *Allocator, existing_path: []const u8, new_path: []const u8) !void { + if (symLink(existing_path, new_path)) { + return; + } else |err| switch (err) { + error.PathAlreadyExists => {}, + else => return err, // TODO zig should know this set does not include PathAlreadyExists + } + + const dirname = path.dirname(new_path) orelse "."; + + var rand_buf: [12]u8 = undefined; + const tmp_path = try allocator.alloc(u8, dirname.len + 1 + base64.Base64Encoder.calcSize(rand_buf.len)); + defer allocator.free(tmp_path); + mem.copy(u8, tmp_path[0..], dirname); + tmp_path[dirname.len] = path.sep; + while (true) { + try crypto.randomBytes(rand_buf[0..]); + b64_fs_encoder.encode(tmp_path[dirname.len + 1 ..], rand_buf); + + if (symLink(existing_path, tmp_path)) { + return rename(tmp_path, new_path); + } else |err| switch (err) { + error.PathAlreadyExists => continue, + else => return err, // TODO zig should know this set does not include PathAlreadyExists + } + } +} + +// TODO fix enum literal not casting to error union +const PrevStatus = enum { + stale, + fresh, +}; + +pub fn updateFile(source_path: []const u8, dest_path: []const u8) !PrevStatus { + return updateFileMode(source_path, dest_path, null); +} + +/// Check the file size, mtime, and mode of `source_path` and `dest_path`. If they are equal, does nothing. +/// Otherwise, atomically copies `source_path` to `dest_path`. The destination file gains the mtime, +/// atime, and mode of the source file so that the next call to `updateFile` will not need a copy. +/// Returns the previous status of the file before updating. +/// If any of the directories do not exist for dest_path, they are created. +/// TODO https://github.com/ziglang/zig/issues/2885 +pub fn updateFileMode(source_path: []const u8, dest_path: []const u8, mode: ?File.Mode) !PrevStatus { + var src_file = try File.openRead(source_path); + defer src_file.close(); + + const src_stat = try src_file.stat(); + check_dest_stat: { + const dest_stat = blk: { + var dest_file = File.openRead(dest_path) catch |err| switch (err) { + error.FileNotFound => break :check_dest_stat, + else => |e| return e, + }; + defer dest_file.close(); + + break :blk try dest_file.stat(); + }; + + if (src_stat.size == dest_stat.size and + src_stat.mtime == dest_stat.mtime and + src_stat.mode == dest_stat.mode) + { + return PrevStatus.fresh; + } + } + const actual_mode = mode orelse src_stat.mode; + + // TODO this logic could be made more efficient by calling makePath, once + // that API does not require an allocator + var atomic_file = make_atomic_file: while (true) { + const af = AtomicFile.init(dest_path, actual_mode) catch |err| switch (err) { + error.FileNotFound => { + var p = dest_path; + while (path.dirname(p)) |dirname| { + makeDir(dirname) catch |e| switch (e) { + error.FileNotFound => { + p = dirname; + continue; + }, + else => return e, + }; + continue :make_atomic_file; + } else { + return err; + } + }, + else => |e| return e, + }; + break af; + } else unreachable; + defer atomic_file.deinit(); + + const in_stream = &src_file.inStream().stream; + + var buf: [mem.page_size * 6]u8 = undefined; + while (true) { + const amt = try in_stream.readFull(buf[0..]); + try atomic_file.file.write(buf[0..amt]); + if (amt != buf.len) { + try atomic_file.file.updateTimes(src_stat.atime, src_stat.mtime); + try atomic_file.finish(); + return PrevStatus.stale; + } + } +} + +/// Guaranteed to be atomic. However until https://patchwork.kernel.org/patch/9636735/ is +/// merged and readily available, +/// there is a possibility of power loss or application termination leaving temporary files present +/// in the same directory as dest_path. +/// Destination file will have the same mode as the source file. +pub fn copyFile(source_path: []const u8, dest_path: []const u8) !void { + var in_file = try File.openRead(source_path); + defer in_file.close(); + + const mode = try in_file.mode(); + const in_stream = &in_file.inStream().stream; + + var atomic_file = try AtomicFile.init(dest_path, mode); + defer atomic_file.deinit(); + + var buf: [mem.page_size]u8 = undefined; + while (true) { + const amt = try in_stream.readFull(buf[0..]); + try atomic_file.file.write(buf[0..amt]); + if (amt != buf.len) { + return atomic_file.finish(); + } + } +} + +/// Guaranteed to be atomic. However until https://patchwork.kernel.org/patch/9636735/ is +/// merged and readily available, +/// there is a possibility of power loss or application termination leaving temporary files present +pub fn copyFileMode(source_path: []const u8, dest_path: []const u8, mode: File.Mode) !void { + var in_file = try File.openRead(source_path); + defer in_file.close(); + + var atomic_file = try AtomicFile.init(dest_path, mode); + defer atomic_file.deinit(); + + var buf: [mem.page_size * 6]u8 = undefined; + while (true) { + const amt = try in_file.read(buf[0..]); + try atomic_file.file.write(buf[0..amt]); + if (amt != buf.len) { + return atomic_file.finish(); + } + } +} + +pub const AtomicFile = struct { + file: File, + tmp_path_buf: [MAX_PATH_BYTES]u8, + dest_path: []const u8, + finished: bool, + + const InitError = File.OpenError; + + /// dest_path must remain valid for the lifetime of AtomicFile + /// call finish to atomically replace dest_path with contents + /// TODO once we have null terminated pointers, use the + /// openWriteNoClobberN function + pub fn init(dest_path: []const u8, mode: File.Mode) InitError!AtomicFile { + const dirname = path.dirname(dest_path); + var rand_buf: [12]u8 = undefined; + const dirname_component_len = if (dirname) |d| d.len + 1 else 0; + const encoded_rand_len = comptime base64.Base64Encoder.calcSize(rand_buf.len); + const tmp_path_len = dirname_component_len + encoded_rand_len; + var tmp_path_buf: [MAX_PATH_BYTES]u8 = undefined; + if (tmp_path_len >= tmp_path_buf.len) return error.NameTooLong; + + if (dirname) |dir| { + mem.copy(u8, tmp_path_buf[0..], dir); + tmp_path_buf[dir.len] = path.sep; + } + + tmp_path_buf[tmp_path_len] = 0; + + while (true) { + try crypto.randomBytes(rand_buf[0..]); + b64_fs_encoder.encode(tmp_path_buf[dirname_component_len..tmp_path_len], rand_buf); + + const file = File.openWriteNoClobberC(&tmp_path_buf, mode) catch |err| switch (err) { + error.PathAlreadyExists => continue, + // TODO zig should figure out that this error set does not include PathAlreadyExists since + // it is handled in the above switch + else => return err, + }; + + return AtomicFile{ + .file = file, + .tmp_path_buf = tmp_path_buf, + .dest_path = dest_path, + .finished = false, + }; + } + } + + /// always call deinit, even after successful finish() + pub fn deinit(self: *AtomicFile) void { + if (!self.finished) { + self.file.close(); + deleteFileC(&self.tmp_path_buf) catch {}; + self.finished = true; + } + } + + pub fn finish(self: *AtomicFile) !void { + assert(!self.finished); + self.file.close(); + self.finished = true; + if (os.windows.is_the_target) { + const dest_path_w = try os.windows.sliceToPrefixedFileW(self.dest_path); + const tmp_path_w = try os.windows.cStrToPrefixedFileW(&self.tmp_path_buf); + return os.renameW(&tmp_path_w, &dest_path_w); + } + const dest_path_c = try os.toPosixPath(self.dest_path); + return os.renameC(&self.tmp_path_buf, &dest_path_c); + } +}; + +const default_new_dir_mode = 0o755; + +/// Create a new directory. +pub fn makeDir(dir_path: []const u8) !void { + return os.mkdir(dir_path, default_new_dir_mode); +} + +/// Same as `makeDir` except the parameter is a null-terminated UTF8-encoded string. +pub fn makeDirC(dir_path: [*]const u8) !void { + return os.mkdirC(dir_path, default_new_dir_mode); +} + +/// Same as `makeDir` except the parameter is a null-terminated UTF16LE-encoded string. +pub fn makeDirW(dir_path: [*]const u16) !void { + return os.mkdirW(dir_path, default_new_dir_mode); +} + +/// Calls makeDir recursively to make an entire path. Returns success if the path +/// already exists and is a directory. +/// This function is not atomic, and if it returns an error, the file system may +/// have been modified regardless. +/// TODO determine if we can remove the allocator requirement from this function +pub fn makePath(allocator: *Allocator, full_path: []const u8) !void { + const resolved_path = try path.resolve(allocator, [_][]const u8{full_path}); + defer allocator.free(resolved_path); + + var end_index: usize = resolved_path.len; + while (true) { + makeDir(resolved_path[0..end_index]) catch |err| switch (err) { + error.PathAlreadyExists => { + // TODO stat the file and return an error if it's not a directory + // this is important because otherwise a dangling symlink + // could cause an infinite loop + if (end_index == resolved_path.len) return; + }, + error.FileNotFound => { + // march end_index backward until next path component + while (true) { + end_index -= 1; + if (path.isSep(resolved_path[end_index])) break; + } + continue; + }, + else => return err, + }; + if (end_index == resolved_path.len) return; + // march end_index forward until next path component + while (true) { + end_index += 1; + if (end_index == resolved_path.len or path.isSep(resolved_path[end_index])) break; + } + } +} + +/// Returns `error.DirNotEmpty` if the directory is not empty. +/// To delete a directory recursively, see `deleteTree`. +pub fn deleteDir(dir_path: []const u8) !void { + return os.rmdir(dir_path); +} + +/// Same as `deleteDir` except the parameter is a null-terminated UTF8-encoded string. +pub fn deleteDirC(dir_path: [*]const u8) !void { + return os.rmdirC(dir_path); +} + +/// Same as `deleteDir` except the parameter is a null-terminated UTF16LE-encoded string. +pub fn deleteDirW(dir_path: [*]const u16) !void { + return os.rmdirW(dir_path); +} + +const DeleteTreeError = error{ + OutOfMemory, + AccessDenied, + FileTooBig, + IsDir, + SymLinkLoop, + ProcessFdQuotaExceeded, + NameTooLong, + SystemFdQuotaExceeded, + NoDevice, + SystemResources, + NoSpaceLeft, + PathAlreadyExists, + ReadOnlyFileSystem, + NotDir, + FileNotFound, + FileSystem, + FileBusy, + DirNotEmpty, + DeviceBusy, + + /// On Windows, file paths must be valid Unicode. + InvalidUtf8, + + /// On Windows, file paths cannot contain these characters: + /// '/', '*', '?', '"', '<', '>', '|' + BadPathName, + + Unexpected, +}; + +/// Whether `full_path` describes a symlink, file, or directory, this function +/// removes it. If it cannot be removed because it is a non-empty directory, +/// this function recursively removes its entries and then tries again. +/// TODO determine if we can remove the allocator requirement +/// https://github.com/ziglang/zig/issues/2886 +pub fn deleteTree(allocator: *Allocator, full_path: []const u8) DeleteTreeError!void { + start_over: while (true) { + var got_access_denied = false; + // First, try deleting the item as a file. This way we don't follow sym links. + if (deleteFile(full_path)) { + return; + } else |err| switch (err) { + error.FileNotFound => return, + error.IsDir => {}, + error.AccessDenied => got_access_denied = true, + + error.InvalidUtf8, + error.SymLinkLoop, + error.NameTooLong, + error.SystemResources, + error.ReadOnlyFileSystem, + error.NotDir, + error.FileSystem, + error.FileBusy, + error.BadPathName, + error.Unexpected, + => return err, + } + { + var dir = Dir.open(allocator, full_path) catch |err| switch (err) { + error.NotDir => { + if (got_access_denied) { + return error.AccessDenied; + } + continue :start_over; + }, + + error.OutOfMemory, + error.AccessDenied, + error.FileTooBig, + error.IsDir, + error.SymLinkLoop, + error.ProcessFdQuotaExceeded, + error.NameTooLong, + error.SystemFdQuotaExceeded, + error.NoDevice, + error.FileNotFound, + error.SystemResources, + error.NoSpaceLeft, + error.PathAlreadyExists, + error.Unexpected, + error.InvalidUtf8, + error.BadPathName, + error.DeviceBusy, + => return err, + }; + defer dir.close(); + + var full_entry_buf = std.ArrayList(u8).init(allocator); + defer full_entry_buf.deinit(); + + while (try dir.next()) |entry| { + try full_entry_buf.resize(full_path.len + entry.name.len + 1); + const full_entry_path = full_entry_buf.toSlice(); + mem.copy(u8, full_entry_path, full_path); + full_entry_path[full_path.len] = path.sep; + mem.copy(u8, full_entry_path[full_path.len + 1 ..], entry.name); + + try deleteTree(allocator, full_entry_path); + } + } + return deleteDir(full_path); + } +} + +/// TODO: separate this API into the one that opens directory handles to then subsequently open +/// files, and into the one that reads files from an open directory handle. +pub const Dir = struct { + handle: Handle, + allocator: *Allocator, + + pub const Handle = switch (builtin.os) { + .macosx, .ios, .freebsd, .netbsd => struct { + fd: i32, + seek: i64, + buf: []u8, + index: usize, + end_index: usize, + }, + .linux => struct { + fd: i32, + buf: []u8, + index: usize, + end_index: usize, + }, + .windows => struct { + handle: os.windows.HANDLE, + find_file_data: os.windows.WIN32_FIND_DATAW, + first: bool, + name_data: [256]u8, + }, + else => @compileError("unimplemented"), + }; + + pub const Entry = struct { + name: []const u8, + kind: Kind, + + pub const Kind = enum { + BlockDevice, + CharacterDevice, + Directory, + NamedPipe, + SymLink, + File, + UnixDomainSocket, + Whiteout, + Unknown, + }; + }; + + pub const OpenError = error{ + FileNotFound, + NotDir, + AccessDenied, + FileTooBig, + IsDir, + SymLinkLoop, + ProcessFdQuotaExceeded, + NameTooLong, + SystemFdQuotaExceeded, + NoDevice, + SystemResources, + NoSpaceLeft, + PathAlreadyExists, + OutOfMemory, + InvalidUtf8, + BadPathName, + DeviceBusy, + + Unexpected, + }; + + /// Call close when done. + /// TODO remove the allocator requirement from this API + /// https://github.com/ziglang/zig/issues/2885 + pub fn open(allocator: *Allocator, dir_path: []const u8) OpenError!Dir { + return Dir{ + .allocator = allocator, + .handle = switch (builtin.os) { + .windows => blk: { + var find_file_data: os.windows.WIN32_FIND_DATAW = undefined; + const handle = try os.windows.FindFirstFile(dir_path, &find_file_data); + break :blk Handle{ + .handle = handle, + .find_file_data = find_file_data, // TODO guaranteed copy elision + .first = true, + .name_data = undefined, + }; + }, + .macosx, .ios, .freebsd, .netbsd => Handle{ + .fd = try os.open(dir_path, os.O_RDONLY | os.O_NONBLOCK | os.O_DIRECTORY | os.O_CLOEXEC, 0), + .seek = 0, + .index = 0, + .end_index = 0, + .buf = [_]u8{}, + }, + .linux => Handle{ + .fd = try os.open(dir_path, os.O_RDONLY | os.O_DIRECTORY | os.O_CLOEXEC, 0), + .index = 0, + .end_index = 0, + .buf = [_]u8{}, + }, + else => @compileError("unimplemented"), + }, + }; + } + + pub fn close(self: *Dir) void { + if (os.windows.is_the_target) { + return os.windows.FindClose(self.handle.handle); + } + self.allocator.free(self.handle.buf); + os.close(self.handle.fd); + } + + /// Memory such as file names referenced in this returned entry becomes invalid + /// with subsequent calls to next, as well as when this `Dir` is deinitialized. + pub fn next(self: *Dir) !?Entry { + switch (builtin.os) { + .linux => return self.nextLinux(), + .macosx, .ios => return self.nextDarwin(), + .windows => return self.nextWindows(), + .freebsd => return self.nextBsd(), + .netbsd => return self.nextBsd(), + else => @compileError("unimplemented"), + } + } + + pub fn openRead(self: Dir, file_path: []const u8) os.OpenError!File { + const path_c = try os.toPosixPath(file_path); + return self.openReadC(&path_c); + } + + pub fn openReadC(self: Dir, file_path: [*]const u8) OpenError!File { + const flags = os.O_LARGEFILE | os.O_RDONLY; + const fd = try os.openatC(self.handle.fd, file_path, flags, 0); + return File.openHandle(fd); + } + + fn nextDarwin(self: *Dir) !?Entry { + start_over: while (true) { + if (self.handle.index >= self.handle.end_index) { + if (self.handle.buf.len == 0) { + self.handle.buf = try self.allocator.alloc(u8, mem.page_size); + } + + while (true) { + const rc = os.system.__getdirentries64( + self.handle.fd, + self.handle.buf.ptr, + self.handle.buf.len, + &self.handle.seek, + ); + if (rc == 0) return null; + if (rc < 0) { + switch (os.errno(rc)) { + os.EBADF => unreachable, + os.EFAULT => unreachable, + os.ENOTDIR => unreachable, + os.EINVAL => { + self.handle.buf = try self.allocator.realloc(self.handle.buf, self.handle.buf.len * 2); + continue; + }, + else => |err| return os.unexpectedErrno(err), + } + } + self.handle.index = 0; + self.handle.end_index = @intCast(usize, rc); + break; + } + } + const darwin_entry = @ptrCast(*align(1) os.dirent, &self.handle.buf[self.handle.index]); + const next_index = self.handle.index + darwin_entry.d_reclen; + self.handle.index = next_index; + + const name = @ptrCast([*]u8, &darwin_entry.d_name)[0..darwin_entry.d_namlen]; + + if (mem.eql(u8, name, ".") or mem.eql(u8, name, "..")) { + continue :start_over; + } + + const entry_kind = switch (darwin_entry.d_type) { + os.DT_BLK => Entry.Kind.BlockDevice, + os.DT_CHR => Entry.Kind.CharacterDevice, + os.DT_DIR => Entry.Kind.Directory, + os.DT_FIFO => Entry.Kind.NamedPipe, + os.DT_LNK => Entry.Kind.SymLink, + os.DT_REG => Entry.Kind.File, + os.DT_SOCK => Entry.Kind.UnixDomainSocket, + os.DT_WHT => Entry.Kind.Whiteout, + else => Entry.Kind.Unknown, + }; + return Entry{ + .name = name, + .kind = entry_kind, + }; + } + } + + fn nextWindows(self: *Dir) !?Entry { + while (true) { + if (self.handle.first) { + self.handle.first = false; + } else { + if (!try os.windows.FindNextFile(self.handle.handle, &self.handle.find_file_data)) + return null; + } + const name_utf16le = mem.toSlice(u16, self.handle.find_file_data.cFileName[0..].ptr); + if (mem.eql(u16, name_utf16le, [_]u16{'.'}) or mem.eql(u16, name_utf16le, [_]u16{ '.', '.' })) + continue; + // Trust that Windows gives us valid UTF-16LE + const name_utf8_len = std.unicode.utf16leToUtf8(self.handle.name_data[0..], name_utf16le) catch unreachable; + const name_utf8 = self.handle.name_data[0..name_utf8_len]; + const kind = blk: { + const attrs = self.handle.find_file_data.dwFileAttributes; + if (attrs & os.windows.FILE_ATTRIBUTE_DIRECTORY != 0) break :blk Entry.Kind.Directory; + if (attrs & os.windows.FILE_ATTRIBUTE_REPARSE_POINT != 0) break :blk Entry.Kind.SymLink; + break :blk Entry.Kind.File; + }; + return Entry{ + .name = name_utf8, + .kind = kind, + }; + } + } + + fn nextLinux(self: *Dir) !?Entry { + start_over: while (true) { + if (self.handle.index >= self.handle.end_index) { + if (self.handle.buf.len == 0) { + self.handle.buf = try self.allocator.alloc(u8, mem.page_size); + } + + while (true) { + const rc = os.linux.getdents64(self.handle.fd, self.handle.buf.ptr, self.handle.buf.len); + switch (os.linux.getErrno(rc)) { + 0 => {}, + os.EBADF => unreachable, + os.EFAULT => unreachable, + os.ENOTDIR => unreachable, + os.EINVAL => { + self.handle.buf = try self.allocator.realloc(self.handle.buf, self.handle.buf.len * 2); + continue; + }, + else => |err| return os.unexpectedErrno(err), + } + if (rc == 0) return null; + self.handle.index = 0; + self.handle.end_index = rc; + break; + } + } + const linux_entry = @ptrCast(*align(1) os.dirent64, &self.handle.buf[self.handle.index]); + const next_index = self.handle.index + linux_entry.d_reclen; + self.handle.index = next_index; + + const name = mem.toSlice(u8, @ptrCast([*]u8, &linux_entry.d_name)); + + // skip . and .. entries + if (mem.eql(u8, name, ".") or mem.eql(u8, name, "..")) { + continue :start_over; + } + + const entry_kind = switch (linux_entry.d_type) { + os.DT_BLK => Entry.Kind.BlockDevice, + os.DT_CHR => Entry.Kind.CharacterDevice, + os.DT_DIR => Entry.Kind.Directory, + os.DT_FIFO => Entry.Kind.NamedPipe, + os.DT_LNK => Entry.Kind.SymLink, + os.DT_REG => Entry.Kind.File, + os.DT_SOCK => Entry.Kind.UnixDomainSocket, + else => Entry.Kind.Unknown, + }; + return Entry{ + .name = name, + .kind = entry_kind, + }; + } + } + + fn nextBsd(self: *Dir) !?Entry { + start_over: while (true) { + if (self.handle.index >= self.handle.end_index) { + if (self.handle.buf.len == 0) { + self.handle.buf = try self.allocator.alloc(u8, mem.page_size); + } + + while (true) { + const rc = os.system.getdirentries( + self.handle.fd, + self.handle.buf.ptr, + self.handle.buf.len, + &self.handle.seek, + ); + switch (os.errno(rc)) { + 0 => {}, + os.EBADF => unreachable, + os.EFAULT => unreachable, + os.ENOTDIR => unreachable, + os.EINVAL => { + self.handle.buf = try self.allocator.realloc(self.handle.buf, self.handle.buf.len * 2); + continue; + }, + else => |err| return os.unexpectedErrno(err), + } + if (rc == 0) return null; + self.handle.index = 0; + self.handle.end_index = @intCast(usize, rc); + break; + } + } + const freebsd_entry = @ptrCast(*align(1) os.dirent, &self.handle.buf[self.handle.index]); + const next_index = self.handle.index + freebsd_entry.d_reclen; + self.handle.index = next_index; + + const name = @ptrCast([*]u8, &freebsd_entry.d_name)[0..freebsd_entry.d_namlen]; + + if (mem.eql(u8, name, ".") or mem.eql(u8, name, "..")) { + continue :start_over; + } + + const entry_kind = switch (freebsd_entry.d_type) { + os.DT_BLK => Entry.Kind.BlockDevice, + os.DT_CHR => Entry.Kind.CharacterDevice, + os.DT_DIR => Entry.Kind.Directory, + os.DT_FIFO => Entry.Kind.NamedPipe, + os.DT_LNK => Entry.Kind.SymLink, + os.DT_REG => Entry.Kind.File, + os.DT_SOCK => Entry.Kind.UnixDomainSocket, + os.DT_WHT => Entry.Kind.Whiteout, + else => Entry.Kind.Unknown, + }; + return Entry{ + .name = name, + .kind = entry_kind, + }; + } + } +}; + +pub const Walker = struct { + stack: std.ArrayList(StackItem), + name_buffer: std.Buffer, + + pub const Entry = struct { + path: []const u8, + basename: []const u8, + kind: Dir.Entry.Kind, + }; + + const StackItem = struct { + dir_it: Dir, + dirname_len: usize, + }; + + /// After each call to this function, and on deinit(), the memory returned + /// from this function becomes invalid. A copy must be made in order to keep + /// a reference to the path. + pub fn next(self: *Walker) !?Entry { + while (true) { + if (self.stack.len == 0) return null; + // `top` becomes invalid after appending to `self.stack`. + const top = &self.stack.toSlice()[self.stack.len - 1]; + const dirname_len = top.dirname_len; + if (try top.dir_it.next()) |base| { + self.name_buffer.shrink(dirname_len); + try self.name_buffer.appendByte(path.sep); + try self.name_buffer.append(base.name); + if (base.kind == .Directory) { + // TODO https://github.com/ziglang/zig/issues/2888 + var new_dir = try Dir.open(self.stack.allocator, self.name_buffer.toSliceConst()); + { + errdefer new_dir.close(); + try self.stack.append(StackItem{ + .dir_it = new_dir, + .dirname_len = self.name_buffer.len(), + }); + } + } + return Entry{ + .basename = self.name_buffer.toSliceConst()[dirname_len + 1 ..], + .path = self.name_buffer.toSliceConst(), + .kind = base.kind, + }; + } else { + self.stack.pop().dir_it.close(); + } + } + } + + pub fn deinit(self: *Walker) void { + while (self.stack.popOrNull()) |*item| item.dir_it.close(); + self.stack.deinit(); + self.name_buffer.deinit(); + } +}; + +/// Recursively iterates over a directory. +/// Must call `Walker.deinit` when done. +/// `dir_path` must not end in a path separator. +/// TODO: https://github.com/ziglang/zig/issues/2888 +pub fn walkPath(allocator: *Allocator, dir_path: []const u8) !Walker { + assert(!mem.endsWith(u8, dir_path, path.sep_str)); + + var dir_it = try Dir.open(allocator, dir_path); + errdefer dir_it.close(); + + var name_buffer = try std.Buffer.init(allocator, dir_path); + errdefer name_buffer.deinit(); + + var walker = Walker{ + .stack = std.ArrayList(Walker.StackItem).init(allocator), + .name_buffer = name_buffer, + }; + + try walker.stack.append(Walker.StackItem{ + .dir_it = dir_it, + .dirname_len = dir_path.len, + }); + + return walker; +} + +/// Read value of a symbolic link. +/// The return value is a slice of buffer, from index `0`. +/// TODO https://github.com/ziglang/zig/issues/2888 +pub fn readLink(pathname: []const u8, buffer: *[os.PATH_MAX]u8) ![]u8 { + return os.readlink(pathname, buffer); +} + +/// Same as `readLink`, except the `pathname` parameter is null-terminated. +/// TODO https://github.com/ziglang/zig/issues/2888 +pub fn readLinkC(pathname: [*]const u8, buffer: *[os.PATH_MAX]u8) ![]u8 { + return os.readlinkC(pathname, buffer); +} + +pub const OpenSelfExeError = os.OpenError || os.windows.CreateFileError || SelfExePathError; + +pub fn openSelfExe() OpenSelfExeError!File { + if (os.linux.is_the_target) { + return File.openReadC(c"/proc/self/exe"); + } + if (os.windows.is_the_target) { + var buf: [os.windows.PATH_MAX_WIDE]u16 = undefined; + const wide_slice = try selfExePathW(&buf); + return File.openReadW(wide_slice.ptr); + } + var buf: [MAX_PATH_BYTES]u8 = undefined; + const self_exe_path = try selfExePath(&buf); + buf[self_exe_path.len] = 0; + return File.openReadC(self_exe_path.ptr); +} + +test "openSelfExe" { + switch (builtin.os) { + .linux, .macosx, .ios, .windows, .freebsd => (try openSelfExe()).close(), + else => return error.SkipZigTest, // Unsupported OS. + } +} + +pub const SelfExePathError = os.ReadLinkError || os.SysCtlError; + +/// Get the path to the current executable. +/// If you only need the directory, use selfExeDirPath. +/// If you only want an open file handle, use openSelfExe. +/// This function may return an error if the current executable +/// was deleted after spawning. +/// Returned value is a slice of out_buffer. +/// +/// On Linux, depends on procfs being mounted. If the currently executing binary has +/// been deleted, the file path looks something like `/a/b/c/exe (deleted)`. +/// TODO make the return type of this a null terminated pointer +pub fn selfExePath(out_buffer: *[MAX_PATH_BYTES]u8) SelfExePathError![]u8 { + if (os.darwin.is_the_target) { + var u32_len: u32 = out_buffer.len; + const rc = std.c._NSGetExecutablePath(out_buffer, &u32_len); + if (rc != 0) return error.NameTooLong; + return mem.toSlice(u8, out_buffer); + } + switch (builtin.os) { + .linux => return os.readlinkC(c"/proc/self/exe", out_buffer), + .freebsd => { + var mib = [4]c_int{ os.CTL_KERN, os.KERN_PROC, os.KERN_PROC_PATHNAME, -1 }; + var out_len: usize = out_buffer.len; + try os.sysctl(&mib, out_buffer, &out_len, null, 0); + // TODO could this slice from 0 to out_len instead? + return mem.toSlice(u8, out_buffer); + }, + .netbsd => { + var mib = [4]c_int{ os.CTL_KERN, os.KERN_PROC_ARGS, -1, os.KERN_PROC_PATHNAME }; + var out_len: usize = out_buffer.len; + try os.sysctl(&mib, out_buffer, &out_len, null, 0); + // TODO could this slice from 0 to out_len instead? + return mem.toSlice(u8, out_buffer); + }, + .windows => { + var utf16le_buf: [os.windows.PATH_MAX_WIDE]u16 = undefined; + const utf16le_slice = try selfExePathW(&utf16le_buf); + // Trust that Windows gives us valid UTF-16LE. + const end_index = std.unicode.utf16leToUtf8(out_buffer, utf16le_slice) catch unreachable; + return out_buffer[0..end_index]; + }, + else => @compileError("std.fs.selfExePath not supported for this target"), + } +} + +/// Same as `selfExePath` except the result is UTF16LE-encoded. +pub fn selfExePathW(out_buffer: *[os.windows.PATH_MAX_WIDE]u16) SelfExePathError![]u16 { + return os.windows.GetModuleFileNameW(null, out_buffer, out_buffer.len); +} + +/// `selfExeDirPath` except allocates the result on the heap. +/// Caller owns returned memory. +pub fn selfExeDirPathAlloc(allocator: *Allocator) ![]u8 { + var buf: [MAX_PATH_BYTES]u8 = undefined; + return mem.dupe(allocator, u8, try selfExeDirPath(&buf)); +} + +/// Get the directory path that contains the current executable. +/// Returned value is a slice of out_buffer. +pub fn selfExeDirPath(out_buffer: *[MAX_PATH_BYTES]u8) SelfExePathError![]const u8 { + if (os.linux.is_the_target) { + // If the currently executing binary has been deleted, + // the file path looks something like `/a/b/c/exe (deleted)` + // This path cannot be opened, but it's valid for determining the directory + // the executable was in when it was run. + const full_exe_path = try os.readlinkC(c"/proc/self/exe", out_buffer); + // Assume that /proc/self/exe has an absolute path, and therefore dirname + // will not return null. + return path.dirname(full_exe_path).?; + } + const self_exe_path = try selfExePath(out_buffer); + // Assume that the OS APIs return absolute paths, and therefore dirname + // will not return null. + return path.dirname(self_exe_path).?; +} + +/// `realpath`, except caller must free the returned memory. +pub fn realpathAlloc(allocator: *Allocator, pathname: []const u8) ![]u8 { + var buf: [MAX_PATH_BYTES]u8 = undefined; + return mem.dupe(allocator, u8, try os.realpath(pathname, &buf)); +} + +test "" { + _ = @import("fs/path.zig"); + _ = @import("fs/file.zig"); + _ = @import("fs/get_app_data_dir.zig"); +} diff --git a/lib/std/fs/file.zig b/lib/std/fs/file.zig new file mode 100644 index 0000000000..5ecad01026 --- /dev/null +++ b/lib/std/fs/file.zig @@ -0,0 +1,394 @@ +const std = @import("../std.zig"); +const builtin = @import("builtin"); +const os = std.os; +const io = std.io; +const mem = std.mem; +const math = std.math; +const assert = std.debug.assert; +const windows = os.windows; +const Os = builtin.Os; +const maxInt = std.math.maxInt; + +pub const File = struct { + /// The OS-specific file descriptor or file handle. + handle: os.fd_t, + + pub const Mode = switch (builtin.os) { + Os.windows => void, + else => u32, + }; + + pub const default_mode = switch (builtin.os) { + Os.windows => {}, + else => 0o666, + }; + + pub const OpenError = windows.CreateFileError || os.OpenError; + + /// Call close to clean up. + pub fn openRead(path: []const u8) OpenError!File { + if (windows.is_the_target) { + const path_w = try windows.sliceToPrefixedFileW(path); + return openReadW(&path_w); + } + const path_c = try os.toPosixPath(path); + return openReadC(&path_c); + } + + /// `openRead` except with a null terminated path + pub fn openReadC(path: [*]const u8) OpenError!File { + if (windows.is_the_target) { + const path_w = try windows.cStrToPrefixedFileW(path); + return openReadW(&path_w); + } + const flags = os.O_LARGEFILE | os.O_RDONLY; + const fd = try os.openC(path, flags, 0); + return openHandle(fd); + } + + /// `openRead` except with a null terminated UTF16LE encoded path + pub fn openReadW(path_w: [*]const u16) OpenError!File { + const handle = try windows.CreateFileW( + path_w, + windows.GENERIC_READ, + windows.FILE_SHARE_READ, + null, + windows.OPEN_EXISTING, + windows.FILE_ATTRIBUTE_NORMAL, + null, + ); + return openHandle(handle); + } + + /// Calls `openWriteMode` with `default_mode` for the mode. + pub fn openWrite(path: []const u8) OpenError!File { + return openWriteMode(path, default_mode); + } + + /// If the path does not exist it will be created. + /// If a file already exists in the destination it will be truncated. + /// Call close to clean up. + pub fn openWriteMode(path: []const u8, file_mode: Mode) OpenError!File { + if (windows.is_the_target) { + const path_w = try windows.sliceToPrefixedFileW(path); + return openWriteModeW(&path_w, file_mode); + } + const path_c = try os.toPosixPath(path); + return openWriteModeC(&path_c, file_mode); + } + + /// Same as `openWriteMode` except `path` is null-terminated. + pub fn openWriteModeC(path: [*]const u8, file_mode: Mode) OpenError!File { + if (windows.is_the_target) { + const path_w = try windows.cStrToPrefixedFileW(path); + return openWriteModeW(&path_w, file_mode); + } + const flags = os.O_LARGEFILE | os.O_WRONLY | os.O_CREAT | os.O_CLOEXEC | os.O_TRUNC; + const fd = try os.openC(path, flags, file_mode); + return openHandle(fd); + } + + /// Same as `openWriteMode` except `path` is null-terminated and UTF16LE encoded + pub fn openWriteModeW(path_w: [*]const u16, file_mode: Mode) OpenError!File { + const handle = try windows.CreateFileW( + path_w, + windows.GENERIC_WRITE, + windows.FILE_SHARE_WRITE | windows.FILE_SHARE_READ | windows.FILE_SHARE_DELETE, + null, + windows.CREATE_ALWAYS, + windows.FILE_ATTRIBUTE_NORMAL, + null, + ); + return openHandle(handle); + } + + /// If the path does not exist it will be created. + /// If a file already exists in the destination this returns OpenError.PathAlreadyExists + /// Call close to clean up. + pub fn openWriteNoClobber(path: []const u8, file_mode: Mode) OpenError!File { + if (windows.is_the_target) { + const path_w = try windows.sliceToPrefixedFileW(path); + return openWriteNoClobberW(&path_w, file_mode); + } + const path_c = try os.toPosixPath(path); + return openWriteNoClobberC(&path_c, file_mode); + } + + pub fn openWriteNoClobberC(path: [*]const u8, file_mode: Mode) OpenError!File { + if (windows.is_the_target) { + const path_w = try windows.cStrToPrefixedFileW(path); + return openWriteNoClobberW(&path_w, file_mode); + } + const flags = os.O_LARGEFILE | os.O_WRONLY | os.O_CREAT | os.O_CLOEXEC | os.O_EXCL; + const fd = try os.openC(path, flags, file_mode); + return openHandle(fd); + } + + pub fn openWriteNoClobberW(path_w: [*]const u16, file_mode: Mode) OpenError!File { + const handle = try windows.CreateFileW( + path_w, + windows.GENERIC_WRITE, + windows.FILE_SHARE_WRITE | windows.FILE_SHARE_READ | windows.FILE_SHARE_DELETE, + null, + windows.CREATE_NEW, + windows.FILE_ATTRIBUTE_NORMAL, + null, + ); + return openHandle(handle); + } + + pub fn openHandle(handle: os.fd_t) File { + return File{ .handle = handle }; + } + + /// Test for the existence of `path`. + /// `path` is UTF8-encoded. + /// In general it is recommended to avoid this function. For example, + /// instead of testing if a file exists and then opening it, just + /// open it and handle the error for file not found. + pub fn access(path: []const u8) !void { + return os.access(path, os.F_OK); + } + + /// Same as `access` except the parameter is null-terminated. + pub fn accessC(path: [*]const u8) !void { + return os.accessC(path, os.F_OK); + } + + /// Same as `access` except the parameter is null-terminated UTF16LE-encoded. + pub fn accessW(path: [*]const u16) !void { + return os.accessW(path, os.F_OK); + } + + /// Upon success, the stream is in an uninitialized state. To continue using it, + /// you must use the open() function. + pub fn close(self: File) void { + return os.close(self.handle); + } + + /// Test whether the file refers to a terminal. + /// See also `supportsAnsiEscapeCodes`. + pub fn isTty(self: File) bool { + return os.isatty(self.handle); + } + + /// Test whether ANSI escape codes will be treated as such. + pub fn supportsAnsiEscapeCodes(self: File) bool { + if (windows.is_the_target) { + return os.isCygwinPty(self.handle); + } + return self.isTty(); + } + + pub const SeekError = os.SeekError; + + /// Repositions read/write file offset relative to the current offset. + pub fn seekBy(self: File, offset: i64) SeekError!void { + return os.lseek_CUR(self.handle, offset); + } + + /// Repositions read/write file offset relative to the end. + pub fn seekFromEnd(self: File, offset: i64) SeekError!void { + return os.lseek_END(self.handle, offset); + } + + /// Repositions read/write file offset relative to the beginning. + pub fn seekTo(self: File, offset: u64) SeekError!void { + return os.lseek_SET(self.handle, offset); + } + + pub const GetPosError = os.SeekError || os.FStatError; + + pub fn getPos(self: File) GetPosError!u64 { + return os.lseek_CUR_get(self.handle); + } + + pub fn getEndPos(self: File) GetPosError!u64 { + if (windows.is_the_target) { + return windows.GetFileSizeEx(self.handle); + } + return (try self.stat()).size; + } + + pub const ModeError = os.FStatError; + + pub fn mode(self: File) ModeError!Mode { + if (windows.is_the_target) { + return {}; + } + return (try self.stat()).mode; + } + + pub const Stat = struct { + size: u64, + mode: Mode, + + /// access time in nanoseconds + atime: i64, + + /// last modification time in nanoseconds + mtime: i64, + + /// creation time in nanoseconds + ctime: i64, + }; + + pub const StatError = os.FStatError; + + pub fn stat(self: File) StatError!Stat { + if (windows.is_the_target) { + var io_status_block: windows.IO_STATUS_BLOCK = undefined; + var info: windows.FILE_ALL_INFORMATION = undefined; + const rc = windows.ntdll.NtQueryInformationFile(self.handle, &io_status_block, &info, @sizeOf(windows.FILE_ALL_INFORMATION), .FileAllInformation); + switch (rc) { + windows.STATUS.SUCCESS => {}, + windows.STATUS.BUFFER_OVERFLOW => {}, + else => return windows.unexpectedStatus(rc), + } + return Stat{ + .size = @bitCast(u64, info.StandardInformation.EndOfFile), + .mode = {}, + .atime = windows.fromSysTime(info.BasicInformation.LastAccessTime), + .mtime = windows.fromSysTime(info.BasicInformation.LastWriteTime), + .ctime = windows.fromSysTime(info.BasicInformation.CreationTime), + }; + } + + const st = try os.fstat(self.handle); + const atime = st.atime(); + const mtime = st.mtime(); + const ctime = st.ctime(); + return Stat{ + .size = @bitCast(u64, st.size), + .mode = st.mode, + .atime = i64(atime.tv_sec) * std.time.ns_per_s + atime.tv_nsec, + .mtime = i64(mtime.tv_sec) * std.time.ns_per_s + mtime.tv_nsec, + .ctime = i64(ctime.tv_sec) * std.time.ns_per_s + ctime.tv_nsec, + }; + } + + pub const UpdateTimesError = os.FutimensError || windows.SetFileTimeError; + + /// `atime`: access timestamp in nanoseconds + /// `mtime`: last modification timestamp in nanoseconds + pub fn updateTimes(self: File, atime: i64, mtime: i64) UpdateTimesError!void { + if (windows.is_the_target) { + const atime_ft = windows.nanoSecondsToFileTime(atime); + const mtime_ft = windows.nanoSecondsToFileTime(mtime); + return windows.SetFileTime(self.handle, null, &atime_ft, &mtime_ft); + } + const times = [2]os.timespec{ + os.timespec{ + .tv_sec = @divFloor(atime, std.time.ns_per_s), + .tv_nsec = @mod(atime, std.time.ns_per_s), + }, + os.timespec{ + .tv_sec = @divFloor(mtime, std.time.ns_per_s), + .tv_nsec = @mod(mtime, std.time.ns_per_s), + }, + }; + try os.futimens(self.handle, ×); + } + + pub const ReadError = os.ReadError; + + pub fn read(self: File, buffer: []u8) ReadError!usize { + return os.read(self.handle, buffer); + } + + pub const WriteError = os.WriteError; + + pub fn write(self: File, bytes: []const u8) WriteError!void { + return os.write(self.handle, bytes); + } + + pub fn writev_iovec(self: File, iovecs: []const os.iovec_const) WriteError!void { + if (std.event.Loop.instance) |loop| { + return std.event.fs.writevPosix(loop, self.handle, iovecs); + } else { + return os.writev(self.handle, iovecs); + } + } + + pub fn inStream(file: File) InStream { + return InStream{ + .file = file, + .stream = InStream.Stream{ .readFn = InStream.readFn }, + }; + } + + pub fn outStream(file: File) OutStream { + return OutStream{ + .file = file, + .stream = OutStream.Stream{ .writeFn = OutStream.writeFn }, + }; + } + + pub fn seekableStream(file: File) SeekableStream { + return SeekableStream{ + .file = file, + .stream = SeekableStream.Stream{ + .seekToFn = SeekableStream.seekToFn, + .seekByFn = SeekableStream.seekByFn, + .getPosFn = SeekableStream.getPosFn, + .getEndPosFn = SeekableStream.getEndPosFn, + }, + }; + } + + /// Implementation of io.InStream trait for File + pub const InStream = struct { + file: File, + stream: Stream, + + pub const Error = ReadError; + pub const Stream = io.InStream(Error); + + fn readFn(in_stream: *Stream, buffer: []u8) Error!usize { + const self = @fieldParentPtr(InStream, "stream", in_stream); + return self.file.read(buffer); + } + }; + + /// Implementation of io.OutStream trait for File + pub const OutStream = struct { + file: File, + stream: Stream, + + pub const Error = WriteError; + pub const Stream = io.OutStream(Error); + + fn writeFn(out_stream: *Stream, bytes: []const u8) Error!void { + const self = @fieldParentPtr(OutStream, "stream", out_stream); + return self.file.write(bytes); + } + }; + + /// Implementation of io.SeekableStream trait for File + pub const SeekableStream = struct { + file: File, + stream: Stream, + + pub const Stream = io.SeekableStream(SeekError, GetPosError); + + pub fn seekToFn(seekable_stream: *Stream, pos: u64) SeekError!void { + const self = @fieldParentPtr(SeekableStream, "stream", seekable_stream); + return self.file.seekTo(pos); + } + + pub fn seekByFn(seekable_stream: *Stream, amt: i64) SeekError!void { + const self = @fieldParentPtr(SeekableStream, "stream", seekable_stream); + return self.file.seekBy(amt); + } + + pub fn getEndPosFn(seekable_stream: *Stream) GetPosError!u64 { + const self = @fieldParentPtr(SeekableStream, "stream", seekable_stream); + return self.file.getEndPos(); + } + + pub fn getPosFn(seekable_stream: *Stream) GetPosError!u64 { + const self = @fieldParentPtr(SeekableStream, "stream", seekable_stream); + return self.file.getPos(); + } + }; +}; diff --git a/lib/std/fs/get_app_data_dir.zig b/lib/std/fs/get_app_data_dir.zig new file mode 100644 index 0000000000..cdab7703f8 --- /dev/null +++ b/lib/std/fs/get_app_data_dir.zig @@ -0,0 +1,70 @@ +const std = @import("../std.zig"); +const builtin = @import("builtin"); +const unicode = std.unicode; +const mem = std.mem; +const fs = std.fs; +const os = std.os; + +pub const GetAppDataDirError = error{ + OutOfMemory, + AppDataDirUnavailable, +}; + +/// Caller owns returned memory. +/// TODO determine if we can remove the allocator requirement +pub fn getAppDataDir(allocator: *mem.Allocator, appname: []const u8) GetAppDataDirError![]u8 { + switch (builtin.os) { + .windows => { + var dir_path_ptr: [*]u16 = undefined; + switch (os.windows.shell32.SHGetKnownFolderPath( + &os.windows.FOLDERID_LocalAppData, + os.windows.KF_FLAG_CREATE, + null, + &dir_path_ptr, + )) { + os.windows.S_OK => { + defer os.windows.ole32.CoTaskMemFree(@ptrCast(*c_void, dir_path_ptr)); + const global_dir = unicode.utf16leToUtf8Alloc(allocator, utf16lePtrSlice(dir_path_ptr)) catch |err| switch (err) { + error.UnexpectedSecondSurrogateHalf => return error.AppDataDirUnavailable, + error.ExpectedSecondSurrogateHalf => return error.AppDataDirUnavailable, + error.DanglingSurrogateHalf => return error.AppDataDirUnavailable, + error.OutOfMemory => return error.OutOfMemory, + }; + defer allocator.free(global_dir); + return fs.path.join(allocator, [_][]const u8{ global_dir, appname }); + }, + os.windows.E_OUTOFMEMORY => return error.OutOfMemory, + else => return error.AppDataDirUnavailable, + } + }, + .macosx => { + const home_dir = os.getenv("HOME") orelse { + // TODO look in /etc/passwd + return error.AppDataDirUnavailable; + }; + return fs.path.join(allocator, [_][]const u8{ home_dir, "Library", "Application Support", appname }); + }, + .linux, .freebsd, .netbsd => { + const home_dir = os.getenv("HOME") orelse { + // TODO look in /etc/passwd + return error.AppDataDirUnavailable; + }; + return fs.path.join(allocator, [_][]const u8{ home_dir, ".local", "share", appname }); + }, + else => @compileError("Unsupported OS"), + } +} + +fn utf16lePtrSlice(ptr: [*]const u16) []const u16 { + var index: usize = 0; + while (ptr[index] != 0) : (index += 1) {} + return ptr[0..index]; +} + +test "getAppDataDir" { + var buf: [512]u8 = undefined; + const allocator = &std.heap.FixedBufferAllocator.init(buf[0..]).allocator; + + // We can't actually validate the result + _ = getAppDataDir(allocator, "zig") catch return; +} diff --git a/lib/std/fs/path.zig b/lib/std/fs/path.zig new file mode 100644 index 0000000000..2bb23f04ce --- /dev/null +++ b/lib/std/fs/path.zig @@ -0,0 +1,1144 @@ +const builtin = @import("builtin"); +const std = @import("../std.zig"); +const debug = std.debug; +const assert = debug.assert; +const testing = std.testing; +const mem = std.mem; +const fmt = std.fmt; +const Allocator = mem.Allocator; +const math = std.math; +const windows = std.os.windows; +const fs = std.fs; +const process = std.process; + +pub const sep_windows = '\\'; +pub const sep_posix = '/'; +pub const sep = if (windows.is_the_target) sep_windows else sep_posix; + +pub const sep_str = [1]u8{sep}; + +pub const delimiter_windows = ';'; +pub const delimiter_posix = ':'; +pub const delimiter = if (windows.is_the_target) delimiter_windows else delimiter_posix; + +pub fn isSep(byte: u8) bool { + if (windows.is_the_target) { + return byte == '/' or byte == '\\'; + } else { + return byte == '/'; + } +} + +/// This is different from mem.join in that the separator will not be repeated if +/// it is found at the end or beginning of a pair of consecutive paths. +fn joinSep(allocator: *Allocator, separator: u8, paths: []const []const u8) ![]u8 { + if (paths.len == 0) return (([*]u8)(undefined))[0..0]; + + const total_len = blk: { + var sum: usize = paths[0].len; + var i: usize = 1; + while (i < paths.len) : (i += 1) { + const prev_path = paths[i - 1]; + const this_path = paths[i]; + const prev_sep = (prev_path.len != 0 and prev_path[prev_path.len - 1] == separator); + const this_sep = (this_path.len != 0 and this_path[0] == separator); + sum += @boolToInt(!prev_sep and !this_sep); + sum += if (prev_sep and this_sep) this_path.len - 1 else this_path.len; + } + break :blk sum; + }; + + const buf = try allocator.alloc(u8, total_len); + errdefer allocator.free(buf); + + mem.copy(u8, buf, paths[0]); + var buf_index: usize = paths[0].len; + var i: usize = 1; + while (i < paths.len) : (i += 1) { + const prev_path = paths[i - 1]; + const this_path = paths[i]; + const prev_sep = (prev_path.len != 0 and prev_path[prev_path.len - 1] == separator); + const this_sep = (this_path.len != 0 and this_path[0] == separator); + if (!prev_sep and !this_sep) { + buf[buf_index] = separator; + buf_index += 1; + } + const adjusted_path = if (prev_sep and this_sep) this_path[1..] else this_path; + mem.copy(u8, buf[buf_index..], adjusted_path); + buf_index += adjusted_path.len; + } + + // No need for shrink since buf is exactly the correct size. + return buf; +} + +pub const join = if (windows.is_the_target) joinWindows else joinPosix; + +/// Naively combines a series of paths with the native path seperator. +/// Allocates memory for the result, which must be freed by the caller. +pub fn joinWindows(allocator: *Allocator, paths: []const []const u8) ![]u8 { + return joinSep(allocator, sep_windows, paths); +} + +/// Naively combines a series of paths with the native path seperator. +/// Allocates memory for the result, which must be freed by the caller. +pub fn joinPosix(allocator: *Allocator, paths: []const []const u8) ![]u8 { + return joinSep(allocator, sep_posix, paths); +} + +fn testJoinWindows(paths: []const []const u8, expected: []const u8) void { + var buf: [1024]u8 = undefined; + const a = &std.heap.FixedBufferAllocator.init(&buf).allocator; + const actual = joinWindows(a, paths) catch @panic("fail"); + testing.expectEqualSlices(u8, expected, actual); +} + +fn testJoinPosix(paths: []const []const u8, expected: []const u8) void { + var buf: [1024]u8 = undefined; + const a = &std.heap.FixedBufferAllocator.init(&buf).allocator; + const actual = joinPosix(a, paths) catch @panic("fail"); + testing.expectEqualSlices(u8, expected, actual); +} + +test "join" { + testJoinWindows([_][]const u8{ "c:\\a\\b", "c" }, "c:\\a\\b\\c"); + testJoinWindows([_][]const u8{ "c:\\a\\b", "c" }, "c:\\a\\b\\c"); + testJoinWindows([_][]const u8{ "c:\\a\\b\\", "c" }, "c:\\a\\b\\c"); + + testJoinWindows([_][]const u8{ "c:\\", "a", "b\\", "c" }, "c:\\a\\b\\c"); + testJoinWindows([_][]const u8{ "c:\\a\\", "b\\", "c" }, "c:\\a\\b\\c"); + + testJoinWindows( + [_][]const u8{ "c:\\home\\andy\\dev\\zig\\build\\lib\\zig\\std", "io.zig" }, + "c:\\home\\andy\\dev\\zig\\build\\lib\\zig\\std\\io.zig", + ); + + testJoinPosix([_][]const u8{ "/a/b", "c" }, "/a/b/c"); + testJoinPosix([_][]const u8{ "/a/b/", "c" }, "/a/b/c"); + + testJoinPosix([_][]const u8{ "/", "a", "b/", "c" }, "/a/b/c"); + testJoinPosix([_][]const u8{ "/a/", "b/", "c" }, "/a/b/c"); + + testJoinPosix( + [_][]const u8{ "/home/andy/dev/zig/build/lib/zig/std", "io.zig" }, + "/home/andy/dev/zig/build/lib/zig/std/io.zig", + ); + + testJoinPosix([_][]const u8{ "a", "/c" }, "a/c"); + testJoinPosix([_][]const u8{ "a/", "/c" }, "a/c"); +} + +pub fn isAbsolute(path: []const u8) bool { + if (windows.is_the_target) { + return isAbsoluteWindows(path); + } else { + return isAbsolutePosix(path); + } +} + +pub fn isAbsoluteWindows(path: []const u8) bool { + if (path[0] == '/') + return true; + + if (path[0] == '\\') { + return true; + } + if (path.len < 3) { + return false; + } + if (path[1] == ':') { + if (path[2] == '/') + return true; + if (path[2] == '\\') + return true; + } + return false; +} + +pub fn isAbsolutePosix(path: []const u8) bool { + return path[0] == sep_posix; +} + +test "isAbsoluteWindows" { + testIsAbsoluteWindows("/", true); + testIsAbsoluteWindows("//", true); + testIsAbsoluteWindows("//server", true); + testIsAbsoluteWindows("//server/file", true); + testIsAbsoluteWindows("\\\\server\\file", true); + testIsAbsoluteWindows("\\\\server", true); + testIsAbsoluteWindows("\\\\", true); + testIsAbsoluteWindows("c", false); + testIsAbsoluteWindows("c:", false); + testIsAbsoluteWindows("c:\\", true); + testIsAbsoluteWindows("c:/", true); + testIsAbsoluteWindows("c://", true); + testIsAbsoluteWindows("C:/Users/", true); + testIsAbsoluteWindows("C:\\Users\\", true); + testIsAbsoluteWindows("C:cwd/another", false); + testIsAbsoluteWindows("C:cwd\\another", false); + testIsAbsoluteWindows("directory/directory", false); + testIsAbsoluteWindows("directory\\directory", false); + testIsAbsoluteWindows("/usr/local", true); +} + +test "isAbsolutePosix" { + testIsAbsolutePosix("/home/foo", true); + testIsAbsolutePosix("/home/foo/..", true); + testIsAbsolutePosix("bar/", false); + testIsAbsolutePosix("./baz", false); +} + +fn testIsAbsoluteWindows(path: []const u8, expected_result: bool) void { + testing.expectEqual(expected_result, isAbsoluteWindows(path)); +} + +fn testIsAbsolutePosix(path: []const u8, expected_result: bool) void { + testing.expectEqual(expected_result, isAbsolutePosix(path)); +} + +pub const WindowsPath = struct { + is_abs: bool, + kind: Kind, + disk_designator: []const u8, + + pub const Kind = enum { + None, + Drive, + NetworkShare, + }; +}; + +pub fn windowsParsePath(path: []const u8) WindowsPath { + if (path.len >= 2 and path[1] == ':') { + return WindowsPath{ + .is_abs = isAbsoluteWindows(path), + .kind = WindowsPath.Kind.Drive, + .disk_designator = path[0..2], + }; + } + if (path.len >= 1 and (path[0] == '/' or path[0] == '\\') and + (path.len == 1 or (path[1] != '/' and path[1] != '\\'))) + { + return WindowsPath{ + .is_abs = true, + .kind = WindowsPath.Kind.None, + .disk_designator = path[0..0], + }; + } + const relative_path = WindowsPath{ + .kind = WindowsPath.Kind.None, + .disk_designator = [_]u8{}, + .is_abs = false, + }; + if (path.len < "//a/b".len) { + return relative_path; + } + + // TODO when I combined these together with `inline for` the compiler crashed + { + const this_sep = '/'; + const two_sep = [_]u8{ this_sep, this_sep }; + if (mem.startsWith(u8, path, two_sep)) { + if (path[2] == this_sep) { + return relative_path; + } + + var it = mem.tokenize(path, [_]u8{this_sep}); + _ = (it.next() orelse return relative_path); + _ = (it.next() orelse return relative_path); + return WindowsPath{ + .is_abs = isAbsoluteWindows(path), + .kind = WindowsPath.Kind.NetworkShare, + .disk_designator = path[0..it.index], + }; + } + } + { + const this_sep = '\\'; + const two_sep = [_]u8{ this_sep, this_sep }; + if (mem.startsWith(u8, path, two_sep)) { + if (path[2] == this_sep) { + return relative_path; + } + + var it = mem.tokenize(path, [_]u8{this_sep}); + _ = (it.next() orelse return relative_path); + _ = (it.next() orelse return relative_path); + return WindowsPath{ + .is_abs = isAbsoluteWindows(path), + .kind = WindowsPath.Kind.NetworkShare, + .disk_designator = path[0..it.index], + }; + } + } + return relative_path; +} + +test "windowsParsePath" { + { + const parsed = windowsParsePath("//a/b"); + testing.expect(parsed.is_abs); + testing.expect(parsed.kind == WindowsPath.Kind.NetworkShare); + testing.expect(mem.eql(u8, parsed.disk_designator, "//a/b")); + } + { + const parsed = windowsParsePath("\\\\a\\b"); + testing.expect(parsed.is_abs); + testing.expect(parsed.kind == WindowsPath.Kind.NetworkShare); + testing.expect(mem.eql(u8, parsed.disk_designator, "\\\\a\\b")); + } + { + const parsed = windowsParsePath("\\\\a\\"); + testing.expect(!parsed.is_abs); + testing.expect(parsed.kind == WindowsPath.Kind.None); + testing.expect(mem.eql(u8, parsed.disk_designator, "")); + } + { + const parsed = windowsParsePath("/usr/local"); + testing.expect(parsed.is_abs); + testing.expect(parsed.kind == WindowsPath.Kind.None); + testing.expect(mem.eql(u8, parsed.disk_designator, "")); + } + { + const parsed = windowsParsePath("c:../"); + testing.expect(!parsed.is_abs); + testing.expect(parsed.kind == WindowsPath.Kind.Drive); + testing.expect(mem.eql(u8, parsed.disk_designator, "c:")); + } +} + +pub fn diskDesignator(path: []const u8) []const u8 { + if (windows.is_the_target) { + return diskDesignatorWindows(path); + } else { + return ""; + } +} + +pub fn diskDesignatorWindows(path: []const u8) []const u8 { + return windowsParsePath(path).disk_designator; +} + +fn networkShareServersEql(ns1: []const u8, ns2: []const u8) bool { + const sep1 = ns1[0]; + const sep2 = ns2[0]; + + var it1 = mem.tokenize(ns1, [_]u8{sep1}); + var it2 = mem.tokenize(ns2, [_]u8{sep2}); + + // TODO ASCII is wrong, we actually need full unicode support to compare paths. + return asciiEqlIgnoreCase(it1.next().?, it2.next().?); +} + +fn compareDiskDesignators(kind: WindowsPath.Kind, p1: []const u8, p2: []const u8) bool { + switch (kind) { + WindowsPath.Kind.None => { + assert(p1.len == 0); + assert(p2.len == 0); + return true; + }, + WindowsPath.Kind.Drive => { + return asciiUpper(p1[0]) == asciiUpper(p2[0]); + }, + WindowsPath.Kind.NetworkShare => { + const sep1 = p1[0]; + const sep2 = p2[0]; + + var it1 = mem.tokenize(p1, [_]u8{sep1}); + var it2 = mem.tokenize(p2, [_]u8{sep2}); + + // TODO ASCII is wrong, we actually need full unicode support to compare paths. + return asciiEqlIgnoreCase(it1.next().?, it2.next().?) and asciiEqlIgnoreCase(it1.next().?, it2.next().?); + }, + } +} + +fn asciiUpper(byte: u8) u8 { + return switch (byte) { + 'a'...'z' => 'A' + (byte - 'a'), + else => byte, + }; +} + +fn asciiEqlIgnoreCase(s1: []const u8, s2: []const u8) bool { + if (s1.len != s2.len) + return false; + var i: usize = 0; + while (i < s1.len) : (i += 1) { + if (asciiUpper(s1[i]) != asciiUpper(s2[i])) + return false; + } + return true; +} + +/// On Windows, this calls `resolveWindows` and on POSIX it calls `resolvePosix`. +pub fn resolve(allocator: *Allocator, paths: []const []const u8) ![]u8 { + if (windows.is_the_target) { + return resolveWindows(allocator, paths); + } else { + return resolvePosix(allocator, paths); + } +} + +/// This function is like a series of `cd` statements executed one after another. +/// It resolves "." and "..". +/// The result does not have a trailing path separator. +/// If all paths are relative it uses the current working directory as a starting point. +/// Each drive has its own current working directory. +/// Path separators are canonicalized to '\\' and drives are canonicalized to capital letters. +/// Note: all usage of this function should be audited due to the existence of symlinks. +/// Without performing actual syscalls, resolving `..` could be incorrect. +pub fn resolveWindows(allocator: *Allocator, paths: []const []const u8) ![]u8 { + if (paths.len == 0) { + assert(windows.is_the_target); // resolveWindows called on non windows can't use getCwd + return process.getCwdAlloc(allocator); + } + + // determine which disk designator we will result with, if any + var result_drive_buf = "_:"; + var result_disk_designator: []const u8 = ""; + var have_drive_kind = WindowsPath.Kind.None; + var have_abs_path = false; + var first_index: usize = 0; + var max_size: usize = 0; + for (paths) |p, i| { + const parsed = windowsParsePath(p); + if (parsed.is_abs) { + have_abs_path = true; + first_index = i; + max_size = result_disk_designator.len; + } + switch (parsed.kind) { + WindowsPath.Kind.Drive => { + result_drive_buf[0] = asciiUpper(parsed.disk_designator[0]); + result_disk_designator = result_drive_buf[0..]; + have_drive_kind = WindowsPath.Kind.Drive; + }, + WindowsPath.Kind.NetworkShare => { + result_disk_designator = parsed.disk_designator; + have_drive_kind = WindowsPath.Kind.NetworkShare; + }, + WindowsPath.Kind.None => {}, + } + max_size += p.len + 1; + } + + // if we will result with a disk designator, loop again to determine + // which is the last time the disk designator is absolutely specified, if any + // and count up the max bytes for paths related to this disk designator + if (have_drive_kind != WindowsPath.Kind.None) { + have_abs_path = false; + first_index = 0; + max_size = result_disk_designator.len; + var correct_disk_designator = false; + + for (paths) |p, i| { + const parsed = windowsParsePath(p); + if (parsed.kind != WindowsPath.Kind.None) { + if (parsed.kind == have_drive_kind) { + correct_disk_designator = compareDiskDesignators(have_drive_kind, result_disk_designator, parsed.disk_designator); + } else { + continue; + } + } + if (!correct_disk_designator) { + continue; + } + if (parsed.is_abs) { + first_index = i; + max_size = result_disk_designator.len; + have_abs_path = true; + } + max_size += p.len + 1; + } + } + + // Allocate result and fill in the disk designator, calling getCwd if we have to. + var result: []u8 = undefined; + var result_index: usize = 0; + + if (have_abs_path) { + switch (have_drive_kind) { + WindowsPath.Kind.Drive => { + result = try allocator.alloc(u8, max_size); + + mem.copy(u8, result, result_disk_designator); + result_index += result_disk_designator.len; + }, + WindowsPath.Kind.NetworkShare => { + result = try allocator.alloc(u8, max_size); + var it = mem.tokenize(paths[first_index], "/\\"); + const server_name = it.next().?; + const other_name = it.next().?; + + result[result_index] = '\\'; + result_index += 1; + result[result_index] = '\\'; + result_index += 1; + mem.copy(u8, result[result_index..], server_name); + result_index += server_name.len; + result[result_index] = '\\'; + result_index += 1; + mem.copy(u8, result[result_index..], other_name); + result_index += other_name.len; + + result_disk_designator = result[0..result_index]; + }, + WindowsPath.Kind.None => { + assert(windows.is_the_target); // resolveWindows called on non windows can't use getCwd + const cwd = try process.getCwdAlloc(allocator); + defer allocator.free(cwd); + const parsed_cwd = windowsParsePath(cwd); + result = try allocator.alloc(u8, max_size + parsed_cwd.disk_designator.len + 1); + mem.copy(u8, result, parsed_cwd.disk_designator); + result_index += parsed_cwd.disk_designator.len; + result_disk_designator = result[0..parsed_cwd.disk_designator.len]; + if (parsed_cwd.kind == WindowsPath.Kind.Drive) { + result[0] = asciiUpper(result[0]); + } + have_drive_kind = parsed_cwd.kind; + }, + } + } else { + assert(windows.is_the_target); // resolveWindows called on non windows can't use getCwd + // TODO call get cwd for the result_disk_designator instead of the global one + const cwd = try process.getCwdAlloc(allocator); + defer allocator.free(cwd); + + result = try allocator.alloc(u8, max_size + cwd.len + 1); + + mem.copy(u8, result, cwd); + result_index += cwd.len; + const parsed_cwd = windowsParsePath(result[0..result_index]); + result_disk_designator = parsed_cwd.disk_designator; + if (parsed_cwd.kind == WindowsPath.Kind.Drive) { + result[0] = asciiUpper(result[0]); + } + have_drive_kind = parsed_cwd.kind; + } + errdefer allocator.free(result); + + // Now we know the disk designator to use, if any, and what kind it is. And our result + // is big enough to append all the paths to. + var correct_disk_designator = true; + for (paths[first_index..]) |p, i| { + const parsed = windowsParsePath(p); + + if (parsed.kind != WindowsPath.Kind.None) { + if (parsed.kind == have_drive_kind) { + correct_disk_designator = compareDiskDesignators(have_drive_kind, result_disk_designator, parsed.disk_designator); + } else { + continue; + } + } + if (!correct_disk_designator) { + continue; + } + var it = mem.tokenize(p[parsed.disk_designator.len..], "/\\"); + while (it.next()) |component| { + if (mem.eql(u8, component, ".")) { + continue; + } else if (mem.eql(u8, component, "..")) { + while (true) { + if (result_index == 0 or result_index == result_disk_designator.len) + break; + result_index -= 1; + if (result[result_index] == '\\' or result[result_index] == '/') + break; + } + } else { + result[result_index] = sep_windows; + result_index += 1; + mem.copy(u8, result[result_index..], component); + result_index += component.len; + } + } + } + + if (result_index == result_disk_designator.len) { + result[result_index] = '\\'; + result_index += 1; + } + + return allocator.shrink(result, result_index); +} + +/// This function is like a series of `cd` statements executed one after another. +/// It resolves "." and "..". +/// The result does not have a trailing path separator. +/// If all paths are relative it uses the current working directory as a starting point. +/// Note: all usage of this function should be audited due to the existence of symlinks. +/// Without performing actual syscalls, resolving `..` could be incorrect. +pub fn resolvePosix(allocator: *Allocator, paths: []const []const u8) ![]u8 { + if (paths.len == 0) { + assert(!windows.is_the_target); // resolvePosix called on windows can't use getCwd + return process.getCwdAlloc(allocator); + } + + var first_index: usize = 0; + var have_abs = false; + var max_size: usize = 0; + for (paths) |p, i| { + if (isAbsolutePosix(p)) { + first_index = i; + have_abs = true; + max_size = 0; + } + max_size += p.len + 1; + } + + var result: []u8 = undefined; + var result_index: usize = 0; + + if (have_abs) { + result = try allocator.alloc(u8, max_size); + } else { + assert(!windows.is_the_target); // resolvePosix called on windows can't use getCwd + const cwd = try process.getCwdAlloc(allocator); + defer allocator.free(cwd); + result = try allocator.alloc(u8, max_size + cwd.len + 1); + mem.copy(u8, result, cwd); + result_index += cwd.len; + } + errdefer allocator.free(result); + + for (paths[first_index..]) |p, i| { + var it = mem.tokenize(p, "/"); + while (it.next()) |component| { + if (mem.eql(u8, component, ".")) { + continue; + } else if (mem.eql(u8, component, "..")) { + while (true) { + if (result_index == 0) + break; + result_index -= 1; + if (result[result_index] == '/') + break; + } + } else { + result[result_index] = '/'; + result_index += 1; + mem.copy(u8, result[result_index..], component); + result_index += component.len; + } + } + } + + if (result_index == 0) { + result[0] = '/'; + result_index += 1; + } + + return allocator.shrink(result, result_index); +} + +test "resolve" { + const cwd = try process.getCwdAlloc(debug.global_allocator); + if (windows.is_the_target) { + if (windowsParsePath(cwd).kind == WindowsPath.Kind.Drive) { + cwd[0] = asciiUpper(cwd[0]); + } + testing.expect(mem.eql(u8, testResolveWindows([_][]const u8{"."}), cwd)); + } else { + testing.expect(mem.eql(u8, testResolvePosix([_][]const u8{ "a/b/c/", "../../.." }), cwd)); + testing.expect(mem.eql(u8, testResolvePosix([_][]const u8{"."}), cwd)); + } +} + +test "resolveWindows" { + if (@import("builtin").arch == .aarch64) { + // TODO https://github.com/ziglang/zig/issues/3288 + return error.SkipZigTest; + } + if (windows.is_the_target) { + const cwd = try process.getCwdAlloc(debug.global_allocator); + const parsed_cwd = windowsParsePath(cwd); + { + const result = testResolveWindows([_][]const u8{ "/usr/local", "lib\\zig\\std\\array_list.zig" }); + const expected = try join(debug.global_allocator, [_][]const u8{ + parsed_cwd.disk_designator, + "usr\\local\\lib\\zig\\std\\array_list.zig", + }); + if (parsed_cwd.kind == WindowsPath.Kind.Drive) { + expected[0] = asciiUpper(parsed_cwd.disk_designator[0]); + } + testing.expect(mem.eql(u8, result, expected)); + } + { + const result = testResolveWindows([_][]const u8{ "usr/local", "lib\\zig" }); + const expected = try join(debug.global_allocator, [_][]const u8{ + cwd, + "usr\\local\\lib\\zig", + }); + if (parsed_cwd.kind == WindowsPath.Kind.Drive) { + expected[0] = asciiUpper(parsed_cwd.disk_designator[0]); + } + testing.expect(mem.eql(u8, result, expected)); + } + } + + testing.expect(mem.eql(u8, testResolveWindows([_][]const u8{ "c:\\a\\b\\c", "/hi", "ok" }), "C:\\hi\\ok")); + testing.expect(mem.eql(u8, testResolveWindows([_][]const u8{ "c:/blah\\blah", "d:/games", "c:../a" }), "C:\\blah\\a")); + testing.expect(mem.eql(u8, testResolveWindows([_][]const u8{ "c:/blah\\blah", "d:/games", "C:../a" }), "C:\\blah\\a")); + testing.expect(mem.eql(u8, testResolveWindows([_][]const u8{ "c:/ignore", "d:\\a/b\\c/d", "\\e.exe" }), "D:\\e.exe")); + testing.expect(mem.eql(u8, testResolveWindows([_][]const u8{ "c:/ignore", "c:/some/file" }), "C:\\some\\file")); + testing.expect(mem.eql(u8, testResolveWindows([_][]const u8{ "d:/ignore", "d:some/dir//" }), "D:\\ignore\\some\\dir")); + testing.expect(mem.eql(u8, testResolveWindows([_][]const u8{ "//server/share", "..", "relative\\" }), "\\\\server\\share\\relative")); + testing.expect(mem.eql(u8, testResolveWindows([_][]const u8{ "c:/", "//" }), "C:\\")); + testing.expect(mem.eql(u8, testResolveWindows([_][]const u8{ "c:/", "//dir" }), "C:\\dir")); + testing.expect(mem.eql(u8, testResolveWindows([_][]const u8{ "c:/", "//server/share" }), "\\\\server\\share\\")); + testing.expect(mem.eql(u8, testResolveWindows([_][]const u8{ "c:/", "//server//share" }), "\\\\server\\share\\")); + testing.expect(mem.eql(u8, testResolveWindows([_][]const u8{ "c:/", "///some//dir" }), "C:\\some\\dir")); + testing.expect(mem.eql(u8, testResolveWindows([_][]const u8{ "C:\\foo\\tmp.3\\", "..\\tmp.3\\cycles\\root.js" }), "C:\\foo\\tmp.3\\cycles\\root.js")); +} + +test "resolvePosix" { + testing.expect(mem.eql(u8, testResolvePosix([_][]const u8{ "/a/b", "c" }), "/a/b/c")); + testing.expect(mem.eql(u8, testResolvePosix([_][]const u8{ "/a/b", "c", "//d", "e///" }), "/d/e")); + testing.expect(mem.eql(u8, testResolvePosix([_][]const u8{ "/a/b/c", "..", "../" }), "/a")); + testing.expect(mem.eql(u8, testResolvePosix([_][]const u8{ "/", "..", ".." }), "/")); + testing.expect(mem.eql(u8, testResolvePosix([_][]const u8{"/a/b/c/"}), "/a/b/c")); + + testing.expect(mem.eql(u8, testResolvePosix([_][]const u8{ "/var/lib", "../", "file/" }), "/var/file")); + testing.expect(mem.eql(u8, testResolvePosix([_][]const u8{ "/var/lib", "/../", "file/" }), "/file")); + testing.expect(mem.eql(u8, testResolvePosix([_][]const u8{ "/some/dir", ".", "/absolute/" }), "/absolute")); + testing.expect(mem.eql(u8, testResolvePosix([_][]const u8{ "/foo/tmp.3/", "../tmp.3/cycles/root.js" }), "/foo/tmp.3/cycles/root.js")); +} + +fn testResolveWindows(paths: []const []const u8) []u8 { + return resolveWindows(debug.global_allocator, paths) catch unreachable; +} + +fn testResolvePosix(paths: []const []const u8) []u8 { + return resolvePosix(debug.global_allocator, paths) catch unreachable; +} + +/// If the path is a file in the current directory (no directory component) +/// then returns null +pub fn dirname(path: []const u8) ?[]const u8 { + if (windows.is_the_target) { + return dirnameWindows(path); + } else { + return dirnamePosix(path); + } +} + +pub fn dirnameWindows(path: []const u8) ?[]const u8 { + if (path.len == 0) + return null; + + const root_slice = diskDesignatorWindows(path); + if (path.len == root_slice.len) + return path; + + const have_root_slash = path.len > root_slice.len and (path[root_slice.len] == '/' or path[root_slice.len] == '\\'); + + var end_index: usize = path.len - 1; + + while ((path[end_index] == '/' or path[end_index] == '\\') and end_index > root_slice.len) { + if (end_index == 0) + return null; + end_index -= 1; + } + + while (path[end_index] != '/' and path[end_index] != '\\' and end_index > root_slice.len) { + if (end_index == 0) + return null; + end_index -= 1; + } + + if (have_root_slash and end_index == root_slice.len) { + end_index += 1; + } + + if (end_index == 0) + return null; + + return path[0..end_index]; +} + +pub fn dirnamePosix(path: []const u8) ?[]const u8 { + if (path.len == 0) + return null; + + var end_index: usize = path.len - 1; + while (path[end_index] == '/') { + if (end_index == 0) + return path[0..1]; + end_index -= 1; + } + + while (path[end_index] != '/') { + if (end_index == 0) + return null; + end_index -= 1; + } + + if (end_index == 0 and path[end_index] == '/') + return path[0..1]; + + if (end_index == 0) + return null; + + return path[0..end_index]; +} + +test "dirnamePosix" { + testDirnamePosix("/a/b/c", "/a/b"); + testDirnamePosix("/a/b/c///", "/a/b"); + testDirnamePosix("/a", "/"); + testDirnamePosix("/", "/"); + testDirnamePosix("////", "/"); + testDirnamePosix("", null); + testDirnamePosix("a", null); + testDirnamePosix("a/", null); + testDirnamePosix("a//", null); +} + +test "dirnameWindows" { + testDirnameWindows("c:\\", "c:\\"); + testDirnameWindows("c:\\foo", "c:\\"); + testDirnameWindows("c:\\foo\\", "c:\\"); + testDirnameWindows("c:\\foo\\bar", "c:\\foo"); + testDirnameWindows("c:\\foo\\bar\\", "c:\\foo"); + testDirnameWindows("c:\\foo\\bar\\baz", "c:\\foo\\bar"); + testDirnameWindows("\\", "\\"); + testDirnameWindows("\\foo", "\\"); + testDirnameWindows("\\foo\\", "\\"); + testDirnameWindows("\\foo\\bar", "\\foo"); + testDirnameWindows("\\foo\\bar\\", "\\foo"); + testDirnameWindows("\\foo\\bar\\baz", "\\foo\\bar"); + testDirnameWindows("c:", "c:"); + testDirnameWindows("c:foo", "c:"); + testDirnameWindows("c:foo\\", "c:"); + testDirnameWindows("c:foo\\bar", "c:foo"); + testDirnameWindows("c:foo\\bar\\", "c:foo"); + testDirnameWindows("c:foo\\bar\\baz", "c:foo\\bar"); + testDirnameWindows("file:stream", null); + testDirnameWindows("dir\\file:stream", "dir"); + testDirnameWindows("\\\\unc\\share", "\\\\unc\\share"); + testDirnameWindows("\\\\unc\\share\\foo", "\\\\unc\\share\\"); + testDirnameWindows("\\\\unc\\share\\foo\\", "\\\\unc\\share\\"); + testDirnameWindows("\\\\unc\\share\\foo\\bar", "\\\\unc\\share\\foo"); + testDirnameWindows("\\\\unc\\share\\foo\\bar\\", "\\\\unc\\share\\foo"); + testDirnameWindows("\\\\unc\\share\\foo\\bar\\baz", "\\\\unc\\share\\foo\\bar"); + testDirnameWindows("/a/b/", "/a"); + testDirnameWindows("/a/b", "/a"); + testDirnameWindows("/a", "/"); + testDirnameWindows("", null); + testDirnameWindows("/", "/"); + testDirnameWindows("////", "/"); + testDirnameWindows("foo", null); +} + +fn testDirnamePosix(input: []const u8, expected_output: ?[]const u8) void { + if (dirnamePosix(input)) |output| { + testing.expect(mem.eql(u8, output, expected_output.?)); + } else { + testing.expect(expected_output == null); + } +} + +fn testDirnameWindows(input: []const u8, expected_output: ?[]const u8) void { + if (dirnameWindows(input)) |output| { + testing.expect(mem.eql(u8, output, expected_output.?)); + } else { + testing.expect(expected_output == null); + } +} + +pub fn basename(path: []const u8) []const u8 { + if (windows.is_the_target) { + return basenameWindows(path); + } else { + return basenamePosix(path); + } +} + +pub fn basenamePosix(path: []const u8) []const u8 { + if (path.len == 0) + return [_]u8{}; + + var end_index: usize = path.len - 1; + while (path[end_index] == '/') { + if (end_index == 0) + return [_]u8{}; + end_index -= 1; + } + var start_index: usize = end_index; + end_index += 1; + while (path[start_index] != '/') { + if (start_index == 0) + return path[0..end_index]; + start_index -= 1; + } + + return path[start_index + 1 .. end_index]; +} + +pub fn basenameWindows(path: []const u8) []const u8 { + if (path.len == 0) + return [_]u8{}; + + var end_index: usize = path.len - 1; + while (true) { + const byte = path[end_index]; + if (byte == '/' or byte == '\\') { + if (end_index == 0) + return [_]u8{}; + end_index -= 1; + continue; + } + if (byte == ':' and end_index == 1) { + return [_]u8{}; + } + break; + } + + var start_index: usize = end_index; + end_index += 1; + while (path[start_index] != '/' and path[start_index] != '\\' and + !(path[start_index] == ':' and start_index == 1)) + { + if (start_index == 0) + return path[0..end_index]; + start_index -= 1; + } + + return path[start_index + 1 .. end_index]; +} + +test "basename" { + testBasename("", ""); + testBasename("/", ""); + testBasename("/dir/basename.ext", "basename.ext"); + testBasename("/basename.ext", "basename.ext"); + testBasename("basename.ext", "basename.ext"); + testBasename("basename.ext/", "basename.ext"); + testBasename("basename.ext//", "basename.ext"); + testBasename("/aaa/bbb", "bbb"); + testBasename("/aaa/", "aaa"); + testBasename("/aaa/b", "b"); + testBasename("/a/b", "b"); + testBasename("//a", "a"); + + testBasenamePosix("\\dir\\basename.ext", "\\dir\\basename.ext"); + testBasenamePosix("\\basename.ext", "\\basename.ext"); + testBasenamePosix("basename.ext", "basename.ext"); + testBasenamePosix("basename.ext\\", "basename.ext\\"); + testBasenamePosix("basename.ext\\\\", "basename.ext\\\\"); + testBasenamePosix("foo", "foo"); + + testBasenameWindows("\\dir\\basename.ext", "basename.ext"); + testBasenameWindows("\\basename.ext", "basename.ext"); + testBasenameWindows("basename.ext", "basename.ext"); + testBasenameWindows("basename.ext\\", "basename.ext"); + testBasenameWindows("basename.ext\\\\", "basename.ext"); + testBasenameWindows("foo", "foo"); + testBasenameWindows("C:", ""); + testBasenameWindows("C:.", "."); + testBasenameWindows("C:\\", ""); + testBasenameWindows("C:\\dir\\base.ext", "base.ext"); + testBasenameWindows("C:\\basename.ext", "basename.ext"); + testBasenameWindows("C:basename.ext", "basename.ext"); + testBasenameWindows("C:basename.ext\\", "basename.ext"); + testBasenameWindows("C:basename.ext\\\\", "basename.ext"); + testBasenameWindows("C:foo", "foo"); + testBasenameWindows("file:stream", "file:stream"); +} + +fn testBasename(input: []const u8, expected_output: []const u8) void { + testing.expectEqualSlices(u8, expected_output, basename(input)); +} + +fn testBasenamePosix(input: []const u8, expected_output: []const u8) void { + testing.expectEqualSlices(u8, expected_output, basenamePosix(input)); +} + +fn testBasenameWindows(input: []const u8, expected_output: []const u8) void { + testing.expectEqualSlices(u8, expected_output, basenameWindows(input)); +} + +/// Returns the relative path from `from` to `to`. If `from` and `to` each +/// resolve to the same path (after calling `resolve` on each), a zero-length +/// string is returned. +/// On Windows this canonicalizes the drive to a capital letter and paths to `\\`. +pub fn relative(allocator: *Allocator, from: []const u8, to: []const u8) ![]u8 { + if (windows.is_the_target) { + return relativeWindows(allocator, from, to); + } else { + return relativePosix(allocator, from, to); + } +} + +pub fn relativeWindows(allocator: *Allocator, from: []const u8, to: []const u8) ![]u8 { + const resolved_from = try resolveWindows(allocator, [_][]const u8{from}); + defer allocator.free(resolved_from); + + var clean_up_resolved_to = true; + const resolved_to = try resolveWindows(allocator, [_][]const u8{to}); + defer if (clean_up_resolved_to) allocator.free(resolved_to); + + const parsed_from = windowsParsePath(resolved_from); + const parsed_to = windowsParsePath(resolved_to); + const result_is_to = x: { + if (parsed_from.kind != parsed_to.kind) { + break :x true; + } else switch (parsed_from.kind) { + WindowsPath.Kind.NetworkShare => { + break :x !networkShareServersEql(parsed_to.disk_designator, parsed_from.disk_designator); + }, + WindowsPath.Kind.Drive => { + break :x asciiUpper(parsed_from.disk_designator[0]) != asciiUpper(parsed_to.disk_designator[0]); + }, + else => unreachable, + } + }; + + if (result_is_to) { + clean_up_resolved_to = false; + return resolved_to; + } + + var from_it = mem.tokenize(resolved_from, "/\\"); + var to_it = mem.tokenize(resolved_to, "/\\"); + while (true) { + const from_component = from_it.next() orelse return mem.dupe(allocator, u8, to_it.rest()); + const to_rest = to_it.rest(); + if (to_it.next()) |to_component| { + // TODO ASCII is wrong, we actually need full unicode support to compare paths. + if (asciiEqlIgnoreCase(from_component, to_component)) + continue; + } + var up_count: usize = 1; + while (from_it.next()) |_| { + up_count += 1; + } + const up_index_end = up_count * "..\\".len; + const result = try allocator.alloc(u8, up_index_end + to_rest.len); + errdefer allocator.free(result); + + var result_index: usize = 0; + while (result_index < up_index_end) { + result[result_index] = '.'; + result_index += 1; + result[result_index] = '.'; + result_index += 1; + result[result_index] = '\\'; + result_index += 1; + } + // shave off the trailing slash + result_index -= 1; + + var rest_it = mem.tokenize(to_rest, "/\\"); + while (rest_it.next()) |to_component| { + result[result_index] = '\\'; + result_index += 1; + mem.copy(u8, result[result_index..], to_component); + result_index += to_component.len; + } + + return result[0..result_index]; + } + + return [_]u8{}; +} + +pub fn relativePosix(allocator: *Allocator, from: []const u8, to: []const u8) ![]u8 { + const resolved_from = try resolvePosix(allocator, [_][]const u8{from}); + defer allocator.free(resolved_from); + + const resolved_to = try resolvePosix(allocator, [_][]const u8{to}); + defer allocator.free(resolved_to); + + var from_it = mem.tokenize(resolved_from, "/"); + var to_it = mem.tokenize(resolved_to, "/"); + while (true) { + const from_component = from_it.next() orelse return mem.dupe(allocator, u8, to_it.rest()); + const to_rest = to_it.rest(); + if (to_it.next()) |to_component| { + if (mem.eql(u8, from_component, to_component)) + continue; + } + var up_count: usize = 1; + while (from_it.next()) |_| { + up_count += 1; + } + const up_index_end = up_count * "../".len; + const result = try allocator.alloc(u8, up_index_end + to_rest.len); + errdefer allocator.free(result); + + var result_index: usize = 0; + while (result_index < up_index_end) { + result[result_index] = '.'; + result_index += 1; + result[result_index] = '.'; + result_index += 1; + result[result_index] = '/'; + result_index += 1; + } + if (to_rest.len == 0) { + // shave off the trailing slash + return result[0 .. result_index - 1]; + } + + mem.copy(u8, result[result_index..], to_rest); + return result; + } + + return [_]u8{}; +} + +test "relative" { + if (@import("builtin").arch == .aarch64) { + // TODO https://github.com/ziglang/zig/issues/3288 + return error.SkipZigTest; + } + testRelativeWindows("c:/blah\\blah", "d:/games", "D:\\games"); + testRelativeWindows("c:/aaaa/bbbb", "c:/aaaa", ".."); + testRelativeWindows("c:/aaaa/bbbb", "c:/cccc", "..\\..\\cccc"); + testRelativeWindows("c:/aaaa/bbbb", "c:/aaaa/bbbb", ""); + testRelativeWindows("c:/aaaa/bbbb", "c:/aaaa/cccc", "..\\cccc"); + testRelativeWindows("c:/aaaa/", "c:/aaaa/cccc", "cccc"); + testRelativeWindows("c:/", "c:\\aaaa\\bbbb", "aaaa\\bbbb"); + testRelativeWindows("c:/aaaa/bbbb", "d:\\", "D:\\"); + testRelativeWindows("c:/AaAa/bbbb", "c:/aaaa/bbbb", ""); + testRelativeWindows("c:/aaaaa/", "c:/aaaa/cccc", "..\\aaaa\\cccc"); + testRelativeWindows("C:\\foo\\bar\\baz\\quux", "C:\\", "..\\..\\..\\.."); + testRelativeWindows("C:\\foo\\test", "C:\\foo\\test\\bar\\package.json", "bar\\package.json"); + testRelativeWindows("C:\\foo\\bar\\baz-quux", "C:\\foo\\bar\\baz", "..\\baz"); + testRelativeWindows("C:\\foo\\bar\\baz", "C:\\foo\\bar\\baz-quux", "..\\baz-quux"); + testRelativeWindows("\\\\foo\\bar", "\\\\foo\\bar\\baz", "baz"); + testRelativeWindows("\\\\foo\\bar\\baz", "\\\\foo\\bar", ".."); + testRelativeWindows("\\\\foo\\bar\\baz-quux", "\\\\foo\\bar\\baz", "..\\baz"); + testRelativeWindows("\\\\foo\\bar\\baz", "\\\\foo\\bar\\baz-quux", "..\\baz-quux"); + testRelativeWindows("C:\\baz-quux", "C:\\baz", "..\\baz"); + testRelativeWindows("C:\\baz", "C:\\baz-quux", "..\\baz-quux"); + testRelativeWindows("\\\\foo\\baz-quux", "\\\\foo\\baz", "..\\baz"); + testRelativeWindows("\\\\foo\\baz", "\\\\foo\\baz-quux", "..\\baz-quux"); + testRelativeWindows("C:\\baz", "\\\\foo\\bar\\baz", "\\\\foo\\bar\\baz"); + testRelativeWindows("\\\\foo\\bar\\baz", "C:\\baz", "C:\\baz"); + + testRelativePosix("/var/lib", "/var", ".."); + testRelativePosix("/var/lib", "/bin", "../../bin"); + testRelativePosix("/var/lib", "/var/lib", ""); + testRelativePosix("/var/lib", "/var/apache", "../apache"); + testRelativePosix("/var/", "/var/lib", "lib"); + testRelativePosix("/", "/var/lib", "var/lib"); + testRelativePosix("/foo/test", "/foo/test/bar/package.json", "bar/package.json"); + testRelativePosix("/Users/a/web/b/test/mails", "/Users/a/web/b", "../.."); + testRelativePosix("/foo/bar/baz-quux", "/foo/bar/baz", "../baz"); + testRelativePosix("/foo/bar/baz", "/foo/bar/baz-quux", "../baz-quux"); + testRelativePosix("/baz-quux", "/baz", "../baz"); + testRelativePosix("/baz", "/baz-quux", "../baz-quux"); +} + +fn testRelativePosix(from: []const u8, to: []const u8, expected_output: []const u8) void { + const result = relativePosix(debug.global_allocator, from, to) catch unreachable; + testing.expectEqualSlices(u8, expected_output, result); +} + +fn testRelativeWindows(from: []const u8, to: []const u8, expected_output: []const u8) void { + const result = relativeWindows(debug.global_allocator, from, to) catch unreachable; + testing.expectEqualSlices(u8, expected_output, result); +} diff --git a/lib/std/hash.zig b/lib/std/hash.zig new file mode 100644 index 0000000000..ab3a0ea8f3 --- /dev/null +++ b/lib/std/hash.zig @@ -0,0 +1,42 @@ +const adler = @import("hash/adler.zig"); +pub const Adler32 = adler.Adler32; + +const auto_hash = @import("hash/auto_hash.zig"); +pub const autoHash = auto_hash.autoHash; + +// pub for polynomials + generic crc32 construction +pub const crc = @import("hash/crc.zig"); +pub const Crc32 = crc.Crc32; + +const fnv = @import("hash/fnv.zig"); +pub const Fnv1a_32 = fnv.Fnv1a_32; +pub const Fnv1a_64 = fnv.Fnv1a_64; +pub const Fnv1a_128 = fnv.Fnv1a_128; + +const siphash = @import("hash/siphash.zig"); +pub const SipHash64 = siphash.SipHash64; +pub const SipHash128 = siphash.SipHash128; + +pub const murmur = @import("hash/murmur.zig"); +pub const Murmur2_32 = murmur.Murmur2_32; + +pub const Murmur2_64 = murmur.Murmur2_64; +pub const Murmur3_32 = murmur.Murmur3_32; + +pub const cityhash = @import("hash/cityhash.zig"); +pub const CityHash32 = cityhash.CityHash32; +pub const CityHash64 = cityhash.CityHash64; + +const wyhash = @import("hash/wyhash.zig"); +pub const Wyhash = wyhash.Wyhash; + +test "hash" { + _ = @import("hash/adler.zig"); + _ = @import("hash/auto_hash.zig"); + _ = @import("hash/crc.zig"); + _ = @import("hash/fnv.zig"); + _ = @import("hash/siphash.zig"); + _ = @import("hash/murmur.zig"); + _ = @import("hash/cityhash.zig"); + _ = @import("hash/wyhash.zig"); +} diff --git a/lib/std/hash/adler.zig b/lib/std/hash/adler.zig new file mode 100644 index 0000000000..3cc3171e49 --- /dev/null +++ b/lib/std/hash/adler.zig @@ -0,0 +1,107 @@ +// Adler32 checksum. +// +// https://tools.ietf.org/html/rfc1950#section-9 +// https://github.com/madler/zlib/blob/master/adler32.c + +const std = @import("../std.zig"); +const testing = std.testing; + +pub const Adler32 = struct { + const base = 65521; + const nmax = 5552; + + adler: u32, + + pub fn init() Adler32 { + return Adler32{ .adler = 1 }; + } + + // This fast variant is taken from zlib. It reduces the required modulos and unrolls longer + // buffer inputs and should be much quicker. + pub fn update(self: *Adler32, input: []const u8) void { + var s1 = self.adler & 0xffff; + var s2 = (self.adler >> 16) & 0xffff; + + if (input.len == 1) { + s1 +%= input[0]; + if (s1 >= base) { + s1 -= base; + } + s2 +%= s1; + if (s2 >= base) { + s2 -= base; + } + } else if (input.len < 16) { + for (input) |b| { + s1 +%= b; + s2 +%= s1; + } + if (s1 >= base) { + s1 -= base; + } + + s2 %= base; + } else { + var i: usize = 0; + while (i + nmax <= input.len) : (i += nmax) { + const n = nmax / 16; // note: 16 | nmax + + var rounds: usize = 0; + while (rounds < n) : (rounds += 1) { + comptime var j: usize = 0; + inline while (j < 16) : (j += 1) { + s1 +%= input[i + n * j]; + s2 +%= s1; + } + } + } + + if (i < input.len) { + while (i + 16 <= input.len) : (i += 16) { + comptime var j: usize = 0; + inline while (j < 16) : (j += 1) { + s1 +%= input[i + j]; + s2 +%= s1; + } + } + while (i < input.len) : (i += 1) { + s1 +%= input[i]; + s2 +%= s1; + } + + s1 %= base; + s2 %= base; + } + } + + self.adler = s1 | (s2 << 16); + } + + pub fn final(self: *Adler32) u32 { + return self.adler; + } + + pub fn hash(input: []const u8) u32 { + var c = Adler32.init(); + c.update(input); + return c.final(); + } +}; + +test "adler32 sanity" { + testing.expect(Adler32.hash("a") == 0x620062); + testing.expect(Adler32.hash("example") == 0xbc002ed); +} + +test "adler32 long" { + const long1 = [_]u8{1} ** 1024; + testing.expect(Adler32.hash(long1[0..]) == 0x06780401); + + const long2 = [_]u8{1} ** 1025; + testing.expect(Adler32.hash(long2[0..]) == 0x0a7a0402); +} + +test "adler32 very long" { + const long = [_]u8{1} ** 5553; + testing.expect(Adler32.hash(long[0..]) == 0x707f15b2); +} diff --git a/lib/std/hash/auto_hash.zig b/lib/std/hash/auto_hash.zig new file mode 100644 index 0000000000..8a22788e5c --- /dev/null +++ b/lib/std/hash/auto_hash.zig @@ -0,0 +1,381 @@ +const std = @import("std"); +const builtin = @import("builtin"); +const assert = std.debug.assert; +const mem = std.mem; +const meta = std.meta; + +/// Describes how pointer types should be hashed. +pub const HashStrategy = enum { + /// Do not follow pointers, only hash their value. + Shallow, + + /// Follow pointers, hash the pointee content. + /// Only dereferences one level, ie. it is changed into .Shallow when a + /// pointer type is encountered. + Deep, + + /// Follow pointers, hash the pointee content. + /// Dereferences all pointers encountered. + /// Assumes no cycle. + DeepRecursive, +}; + +/// Helper function to hash a pointer and mutate the strategy if needed. +pub fn hashPointer(hasher: var, key: var, comptime strat: HashStrategy) void { + const info = @typeInfo(@typeOf(key)); + + switch (info.Pointer.size) { + builtin.TypeInfo.Pointer.Size.One => switch (strat) { + .Shallow => hash(hasher, @ptrToInt(key), .Shallow), + .Deep => hash(hasher, key.*, .Shallow), + .DeepRecursive => hash(hasher, key.*, .DeepRecursive), + }, + + builtin.TypeInfo.Pointer.Size.Slice => switch (strat) { + .Shallow => { + hashPointer(hasher, key.ptr, .Shallow); + hash(hasher, key.len, .Shallow); + }, + .Deep => hashArray(hasher, key, .Shallow), + .DeepRecursive => hashArray(hasher, key, .DeepRecursive), + }, + + builtin.TypeInfo.Pointer.Size.Many, + builtin.TypeInfo.Pointer.Size.C, + => switch (strat) { + .Shallow => hash(hasher, @ptrToInt(key), .Shallow), + else => @compileError( + \\ unknown-length pointers and C pointers cannot be hashed deeply. + \\ Consider providing your own hash function. + ), + }, + } +} + +/// Helper function to hash a set of contiguous objects, from an array or slice. +pub fn hashArray(hasher: var, key: var, comptime strat: HashStrategy) void { + switch (strat) { + .Shallow => { + // TODO detect via a trait when Key has no padding bits to + // hash it as an array of bytes. + // Otherwise, hash every element. + for (key) |element| { + hash(hasher, element, .Shallow); + } + }, + else => { + for (key) |element| { + hash(hasher, element, strat); + } + }, + } +} + +/// Provides generic hashing for any eligible type. +/// Strategy is provided to determine if pointers should be followed or not. +pub fn hash(hasher: var, key: var, comptime strat: HashStrategy) void { + const Key = @typeOf(key); + switch (@typeInfo(Key)) { + .NoReturn, + .Opaque, + .Undefined, + .ArgTuple, + .Void, + .Null, + .BoundFn, + .ComptimeFloat, + .ComptimeInt, + .Type, + .EnumLiteral, + .Frame, + => @compileError("cannot hash this type"), + + // Help the optimizer see that hashing an int is easy by inlining! + // TODO Check if the situation is better after #561 is resolved. + .Int => @inlineCall(hasher.update, std.mem.asBytes(&key)), + + .Float => |info| hash(hasher, @bitCast(@IntType(false, info.bits), key), strat), + + .Bool => hash(hasher, @boolToInt(key), strat), + .Enum => hash(hasher, @enumToInt(key), strat), + .ErrorSet => hash(hasher, @errorToInt(key), strat), + .AnyFrame, .Fn => hash(hasher, @ptrToInt(key), strat), + + .Pointer => @inlineCall(hashPointer, hasher, key, strat), + + .Optional => if (key) |k| hash(hasher, k, strat), + + .Array => hashArray(hasher, key, strat), + + .Vector => |info| { + if (info.child.bit_count % 8 == 0) { + // If there's no unused bits in the child type, we can just hash + // this as an array of bytes. + hasher.update(mem.asBytes(&key)); + } else { + // Otherwise, hash every element. + // TODO remove the copy to an array once field access is done. + const array: [info.len]info.child = key; + comptime var i = 0; + inline while (i < info.len) : (i += 1) { + hash(hasher, array[i], strat); + } + } + }, + + .Struct => |info| { + // TODO detect via a trait when Key has no padding bits to + // hash it as an array of bytes. + // Otherwise, hash every field. + inline for (info.fields) |field| { + // We reuse the hash of the previous field as the seed for the + // next one so that they're dependant. + hash(hasher, @field(key, field.name), strat); + } + }, + + .Union => |info| blk: { + if (info.tag_type) |tag_type| { + const tag = meta.activeTag(key); + const s = hash(hasher, tag, strat); + inline for (info.fields) |field| { + const enum_field = field.enum_field.?; + if (enum_field.value == @enumToInt(tag)) { + hash(hasher, @field(key, enum_field.name), strat); + // TODO use a labelled break when it does not crash the compiler. cf #2908 + // break :blk; + return; + } + } + unreachable; + } else @compileError("cannot hash untagged union type: " ++ @typeName(Key) ++ ", provide your own hash function"); + }, + + .ErrorUnion => blk: { + const payload = key catch |err| { + hash(hasher, err, strat); + break :blk; + }; + hash(hasher, payload, strat); + }, + } +} + +/// Provides generic hashing for any eligible type. +/// Only hashes `key` itself, pointers are not followed. +/// Slices are rejected to avoid ambiguity on the user's intention. +pub fn autoHash(hasher: var, key: var) void { + const Key = @typeOf(key); + if (comptime meta.trait.isSlice(Key)) { + comptime assert(@hasDecl(std, "StringHashMap")); // detect when the following message needs updated + const extra_help = if (Key == []const u8) + " Consider std.StringHashMap for hashing the contents of []const u8." + else + ""; + + @compileError("std.auto_hash.autoHash does not allow slices (here " ++ @typeName(Key) ++ + ") because the intent is unclear. Consider using std.auto_hash.hash or providing your own hash function instead." ++ + extra_help); + } + + hash(hasher, key, .Shallow); +} + +const testing = std.testing; +const Wyhash = std.hash.Wyhash; + +fn testHash(key: var) u64 { + // Any hash could be used here, for testing autoHash. + var hasher = Wyhash.init(0); + hash(&hasher, key, .Shallow); + return hasher.final(); +} + +fn testHashShallow(key: var) u64 { + // Any hash could be used here, for testing autoHash. + var hasher = Wyhash.init(0); + hash(&hasher, key, .Shallow); + return hasher.final(); +} + +fn testHashDeep(key: var) u64 { + // Any hash could be used here, for testing autoHash. + var hasher = Wyhash.init(0); + hash(&hasher, key, .Deep); + return hasher.final(); +} + +fn testHashDeepRecursive(key: var) u64 { + // Any hash could be used here, for testing autoHash. + var hasher = Wyhash.init(0); + hash(&hasher, key, .DeepRecursive); + return hasher.final(); +} + +test "hash pointer" { + const array = [_]u32{ 123, 123, 123 }; + const a = &array[0]; + const b = &array[1]; + const c = &array[2]; + const d = a; + + testing.expect(testHashShallow(a) == testHashShallow(d)); + testing.expect(testHashShallow(a) != testHashShallow(c)); + testing.expect(testHashShallow(a) != testHashShallow(b)); + + testing.expect(testHashDeep(a) == testHashDeep(a)); + testing.expect(testHashDeep(a) == testHashDeep(c)); + testing.expect(testHashDeep(a) == testHashDeep(b)); + + testing.expect(testHashDeepRecursive(a) == testHashDeepRecursive(a)); + testing.expect(testHashDeepRecursive(a) == testHashDeepRecursive(c)); + testing.expect(testHashDeepRecursive(a) == testHashDeepRecursive(b)); +} + +test "hash slice shallow" { + // Allocate one array dynamically so that we're assured it is not merged + // with the other by the optimization passes. + const array1 = try std.heap.direct_allocator.create([6]u32); + defer std.heap.direct_allocator.destroy(array1); + array1.* = [_]u32{ 1, 2, 3, 4, 5, 6 }; + const array2 = [_]u32{ 1, 2, 3, 4, 5, 6 }; + const a = array1[0..]; + const b = array2[0..]; + const c = array1[0..3]; + testing.expect(testHashShallow(a) == testHashShallow(a)); + testing.expect(testHashShallow(a) != testHashShallow(array1)); + testing.expect(testHashShallow(a) != testHashShallow(b)); + testing.expect(testHashShallow(a) != testHashShallow(c)); +} + +test "hash slice deep" { + // Allocate one array dynamically so that we're assured it is not merged + // with the other by the optimization passes. + const array1 = try std.heap.direct_allocator.create([6]u32); + defer std.heap.direct_allocator.destroy(array1); + array1.* = [_]u32{ 1, 2, 3, 4, 5, 6 }; + const array2 = [_]u32{ 1, 2, 3, 4, 5, 6 }; + const a = array1[0..]; + const b = array2[0..]; + const c = array1[0..3]; + testing.expect(testHashDeep(a) == testHashDeep(a)); + testing.expect(testHashDeep(a) == testHashDeep(array1)); + testing.expect(testHashDeep(a) == testHashDeep(b)); + testing.expect(testHashDeep(a) != testHashDeep(c)); +} + +test "hash struct deep" { + const Foo = struct { + a: u32, + b: f64, + c: *bool, + + const Self = @This(); + + pub fn init(allocator: *mem.Allocator, a_: u32, b_: f64, c_: bool) !Self { + const ptr = try allocator.create(bool); + ptr.* = c_; + return Self{ .a = a_, .b = b_, .c = ptr }; + } + }; + + const allocator = std.heap.direct_allocator; + const foo = try Foo.init(allocator, 123, 1.0, true); + const bar = try Foo.init(allocator, 123, 1.0, true); + const baz = try Foo.init(allocator, 123, 1.0, false); + defer allocator.destroy(foo.c); + defer allocator.destroy(bar.c); + defer allocator.destroy(baz.c); + + testing.expect(testHashDeep(foo) == testHashDeep(bar)); + testing.expect(testHashDeep(foo) != testHashDeep(baz)); + testing.expect(testHashDeep(bar) != testHashDeep(baz)); + + var hasher = Wyhash.init(0); + const h = testHashDeep(foo); + autoHash(&hasher, foo.a); + autoHash(&hasher, foo.b); + autoHash(&hasher, foo.c.*); + testing.expectEqual(h, hasher.final()); + + const h2 = testHashDeepRecursive(&foo); + testing.expect(h2 != testHashDeep(&foo)); + testing.expect(h2 == testHashDeep(foo)); +} + +test "testHash optional" { + const a: ?u32 = 123; + const b: ?u32 = null; + testing.expectEqual(testHash(a), testHash(u32(123))); + testing.expect(testHash(a) != testHash(b)); + testing.expectEqual(testHash(b), 0); +} + +test "testHash array" { + const a = [_]u32{ 1, 2, 3 }; + const h = testHash(a); + var hasher = Wyhash.init(0); + autoHash(&hasher, u32(1)); + autoHash(&hasher, u32(2)); + autoHash(&hasher, u32(3)); + testing.expectEqual(h, hasher.final()); +} + +test "testHash struct" { + const Foo = struct { + a: u32 = 1, + b: u32 = 2, + c: u32 = 3, + }; + const f = Foo{}; + const h = testHash(f); + var hasher = Wyhash.init(0); + autoHash(&hasher, u32(1)); + autoHash(&hasher, u32(2)); + autoHash(&hasher, u32(3)); + testing.expectEqual(h, hasher.final()); +} + +test "testHash union" { + const Foo = union(enum) { + A: u32, + B: f32, + C: u32, + }; + + const a = Foo{ .A = 18 }; + var b = Foo{ .B = 12.34 }; + const c = Foo{ .C = 18 }; + testing.expect(testHash(a) == testHash(a)); + testing.expect(testHash(a) != testHash(b)); + testing.expect(testHash(a) != testHash(c)); + + b = Foo{ .A = 18 }; + testing.expect(testHash(a) == testHash(b)); +} + +test "testHash vector" { + const a: @Vector(4, u32) = [_]u32{ 1, 2, 3, 4 }; + const b: @Vector(4, u32) = [_]u32{ 1, 2, 3, 5 }; + testing.expect(testHash(a) == testHash(a)); + testing.expect(testHash(a) != testHash(b)); + + const c: @Vector(4, u31) = [_]u31{ 1, 2, 3, 4 }; + const d: @Vector(4, u31) = [_]u31{ 1, 2, 3, 5 }; + testing.expect(testHash(c) == testHash(c)); + testing.expect(testHash(c) != testHash(d)); +} + +test "testHash error union" { + const Errors = error{Test}; + const Foo = struct { + a: u32 = 1, + b: u32 = 2, + c: u32 = 3, + }; + const f = Foo{}; + const g: Errors!Foo = Errors.Test; + testing.expect(testHash(f) != testHash(g)); + testing.expect(testHash(f) == testHash(Foo{})); + testing.expect(testHash(g) == testHash(Errors.Test)); +} diff --git a/lib/std/hash/benchmark.zig b/lib/std/hash/benchmark.zig new file mode 100644 index 0000000000..d110684a8e --- /dev/null +++ b/lib/std/hash/benchmark.zig @@ -0,0 +1,273 @@ +// zig run benchmark.zig --release-fast --override-std-dir .. + +const builtin = @import("builtin"); +const std = @import("std"); +const time = std.time; +const Timer = time.Timer; +const hash = std.hash; + +const KiB = 1024; +const MiB = 1024 * KiB; +const GiB = 1024 * MiB; + +var prng = std.rand.DefaultPrng.init(0); + +const Hash = struct { + ty: type, + name: []const u8, + has_iterative_api: bool = true, + init_u8s: ?[]const u8 = null, + init_u64: ?u64 = null, +}; + +const siphash_key = "0123456789abcdef"; + +const hashes = [_]Hash{ + Hash{ + .ty = hash.Wyhash, + .name = "wyhash", + .init_u64 = 0, + }, + Hash{ + .ty = hash.SipHash64(1, 3), + .name = "siphash(1,3)", + .init_u8s = siphash_key, + }, + Hash{ + .ty = hash.SipHash64(2, 4), + .name = "siphash(2,4)", + .init_u8s = siphash_key, + }, + Hash{ + .ty = hash.Fnv1a_64, + .name = "fnv1a", + }, + Hash{ + .ty = hash.Adler32, + .name = "adler32", + }, + Hash{ + .ty = hash.crc.Crc32WithPoly(hash.crc.Polynomial.IEEE), + .name = "crc32-slicing-by-8", + }, + Hash{ + .ty = hash.crc.Crc32SmallWithPoly(hash.crc.Polynomial.IEEE), + .name = "crc32-half-byte-lookup", + }, + Hash{ + .ty = hash.CityHash32, + .name = "cityhash-32", + .has_iterative_api = false, + }, + Hash{ + .ty = hash.CityHash64, + .name = "cityhash-64", + .has_iterative_api = false, + }, + Hash{ + .ty = hash.Murmur2_32, + .name = "murmur2-32", + .has_iterative_api = false, + }, + Hash{ + .ty = hash.Murmur2_64, + .name = "murmur2-64", + .has_iterative_api = false, + }, + Hash{ + .ty = hash.Murmur3_32, + .name = "murmur3-32", + .has_iterative_api = false, + }, +}; + +const Result = struct { + hash: u64, + throughput: u64, +}; + +const block_size: usize = 8 * 8192; + +pub fn benchmarkHash(comptime H: var, bytes: usize) !Result { + var h = blk: { + if (H.init_u8s) |init| { + break :blk H.ty.init(init); + } + if (H.init_u64) |init| { + break :blk H.ty.init(init); + } + break :blk H.ty.init(); + }; + + var block: [block_size]u8 = undefined; + prng.random.bytes(block[0..]); + + var offset: usize = 0; + var timer = try Timer.start(); + const start = timer.lap(); + while (offset < bytes) : (offset += block.len) { + h.update(block[0..]); + } + const end = timer.read(); + + const elapsed_s = @intToFloat(f64, end - start) / time.ns_per_s; + const throughput = @floatToInt(u64, @intToFloat(f64, bytes) / elapsed_s); + + return Result{ + .hash = h.final(), + .throughput = throughput, + }; +} + +pub fn benchmarkHashSmallKeys(comptime H: var, key_size: usize, bytes: usize) !Result { + const key_count = bytes / key_size; + var block: [block_size]u8 = undefined; + prng.random.bytes(block[0..]); + + var i: usize = 0; + var timer = try Timer.start(); + const start = timer.lap(); + + var sum: u64 = 0; + while (i < key_count) : (i += 1) { + const small_key = block[0..key_size]; + sum +%= blk: { + if (H.init_u8s) |init| { + break :blk H.ty.hash(init, small_key); + } + if (H.init_u64) |init| { + break :blk H.ty.hash(init, small_key); + } + break :blk H.ty.hash(small_key); + }; + } + const end = timer.read(); + + const elapsed_s = @intToFloat(f64, end - start) / time.ns_per_s; + const throughput = @floatToInt(u64, @intToFloat(f64, bytes) / elapsed_s); + + return Result{ + .hash = sum, + .throughput = throughput, + }; +} + +fn usage() void { + std.debug.warn( + \\throughput_test [options] + \\ + \\Options: + \\ --filter [test-name] + \\ --seed [int] + \\ --count [int] + \\ --key-size [int] + \\ --iterative-only + \\ --help + \\ + ); +} + +fn mode(comptime x: comptime_int) comptime_int { + return if (builtin.mode == builtin.Mode.Debug) x / 64 else x; +} + +// TODO(#1358): Replace with builtin formatted padding when available. +fn printPad(stdout: var, s: []const u8) !void { + var i: usize = 0; + while (i < 12 - s.len) : (i += 1) { + try stdout.print(" "); + } + try stdout.print("{}", s); +} + +pub fn main() !void { + var stdout_file = try std.io.getStdOut(); + var stdout_out_stream = stdout_file.outStream(); + const stdout = &stdout_out_stream.stream; + + var buffer: [1024]u8 = undefined; + var fixed = std.heap.FixedBufferAllocator.init(buffer[0..]); + const args = try std.process.argsAlloc(&fixed.allocator); + + var filter: ?[]u8 = ""; + var count: usize = mode(128 * MiB); + var key_size: usize = 32; + var seed: u32 = 0; + var test_iterative_only = false; + + var i: usize = 1; + while (i < args.len) : (i += 1) { + if (std.mem.eql(u8, args[i], "--mode")) { + try stdout.print("{}\n", builtin.mode); + return; + } else if (std.mem.eql(u8, args[i], "--seed")) { + i += 1; + if (i == args.len) { + usage(); + std.os.exit(1); + } + + seed = try std.fmt.parseUnsigned(u32, args[i], 10); + // we seed later + } else if (std.mem.eql(u8, args[i], "--filter")) { + i += 1; + if (i == args.len) { + usage(); + std.os.exit(1); + } + + filter = args[i]; + } else if (std.mem.eql(u8, args[i], "--count")) { + i += 1; + if (i == args.len) { + usage(); + std.os.exit(1); + } + + const c = try std.fmt.parseUnsigned(usize, args[i], 10); + count = c * MiB; + } else if (std.mem.eql(u8, args[i], "--key-size")) { + i += 1; + if (i == args.len) { + usage(); + std.os.exit(1); + } + + key_size = try std.fmt.parseUnsigned(usize, args[i], 10); + if (key_size > block_size) { + try stdout.print("key_size cannot exceed block size of {}\n", block_size); + std.os.exit(1); + } + } else if (std.mem.eql(u8, args[i], "--iterative-only")) { + test_iterative_only = true; + } else if (std.mem.eql(u8, args[i], "--help")) { + usage(); + return; + } else { + usage(); + std.os.exit(1); + } + } + + inline for (hashes) |H| { + if (filter == null or std.mem.indexOf(u8, H.name, filter.?) != null) { + if (!test_iterative_only or H.has_iterative_api) { + try stdout.print("{}\n", H.name); + + // Always reseed prior to every call so we are hashing the same buffer contents. + // This allows easier comparison between different implementations. + if (H.has_iterative_api) { + prng.seed(seed); + const result = try benchmarkHash(H, count); + try stdout.print(" iterative: {:4} MiB/s [{x:0<16}]\n", result.throughput / (1 * MiB), result.hash); + } + + if (!test_iterative_only) { + prng.seed(seed); + const result_small = try benchmarkHashSmallKeys(H, key_size, count); + try stdout.print(" small keys: {:4} MiB/s [{x:0<16}]\n", result_small.throughput / (1 * MiB), result_small.hash); + } + } + } + } +} diff --git a/lib/std/hash/cityhash.zig b/lib/std/hash/cityhash.zig new file mode 100644 index 0000000000..43e5b7a385 --- /dev/null +++ b/lib/std/hash/cityhash.zig @@ -0,0 +1,387 @@ +const std = @import("std"); +const builtin = @import("builtin"); + +pub const CityHash32 = struct { + const Self = @This(); + + // Magic numbers for 32-bit hashing. Copied from Murmur3. + const c1: u32 = 0xcc9e2d51; + const c2: u32 = 0x1b873593; + + fn fetch32(ptr: [*]const u8) u32 { + var v: u32 = undefined; + @memcpy(@ptrCast([*]u8, &v), ptr, 4); + if (builtin.endian == builtin.Endian.Big) + return @byteSwap(u32, v); + return v; + } + + // A 32-bit to 32-bit integer hash copied from Murmur3. + fn fmix(h: u32) u32 { + var h1: u32 = h; + h1 ^= h1 >> 16; + h1 *%= 0x85ebca6b; + h1 ^= h1 >> 13; + h1 *%= 0xc2b2ae35; + h1 ^= h1 >> 16; + return h1; + } + + // Rotate right helper + fn rotr32(x: u32, comptime r: u32) u32 { + return (x >> r) | (x << (32 - r)); + } + + // Helper from Murmur3 for combining two 32-bit values. + fn mur(a: u32, h: u32) u32 { + var a1: u32 = a; + var h1: u32 = h; + a1 *%= c1; + a1 = rotr32(a1, 17); + a1 *%= c2; + h1 ^= a1; + h1 = rotr32(h1, 19); + return h1 *% 5 +% 0xe6546b64; + } + + fn hash32Len0To4(str: []const u8) u32 { + const len: u32 = @truncate(u32, str.len); + var b: u32 = 0; + var c: u32 = 9; + for (str) |v| { + b = b *% c1 +% @bitCast(u32, @intCast(i32, @bitCast(i8, v))); + c ^= b; + } + return fmix(mur(b, mur(len, c))); + } + + fn hash32Len5To12(str: []const u8) u32 { + var a: u32 = @truncate(u32, str.len); + var b: u32 = a *% 5; + var c: u32 = 9; + const d: u32 = b; + + a +%= fetch32(str.ptr); + b +%= fetch32(str.ptr + str.len - 4); + c +%= fetch32(str.ptr + ((str.len >> 1) & 4)); + + return fmix(mur(c, mur(b, mur(a, d)))); + } + + fn hash32Len13To24(str: []const u8) u32 { + const len: u32 = @truncate(u32, str.len); + const a: u32 = fetch32(str.ptr + (str.len >> 1) - 4); + const b: u32 = fetch32(str.ptr + 4); + const c: u32 = fetch32(str.ptr + str.len - 8); + const d: u32 = fetch32(str.ptr + (str.len >> 1)); + const e: u32 = fetch32(str.ptr); + const f: u32 = fetch32(str.ptr + str.len - 4); + + return fmix(mur(f, mur(e, mur(d, mur(c, mur(b, mur(a, len))))))); + } + + pub fn hash(str: []const u8) u32 { + if (str.len <= 24) { + if (str.len <= 4) { + return hash32Len0To4(str); + } else { + if (str.len <= 12) + return hash32Len5To12(str); + return hash32Len13To24(str); + } + } + + const len: u32 = @truncate(u32, str.len); + var h: u32 = len; + var g: u32 = c1 *% len; + var f: u32 = g; + + const a0: u32 = rotr32(fetch32(str.ptr + str.len - 4) *% c1, 17) *% c2; + const a1: u32 = rotr32(fetch32(str.ptr + str.len - 8) *% c1, 17) *% c2; + const a2: u32 = rotr32(fetch32(str.ptr + str.len - 16) *% c1, 17) *% c2; + const a3: u32 = rotr32(fetch32(str.ptr + str.len - 12) *% c1, 17) *% c2; + const a4: u32 = rotr32(fetch32(str.ptr + str.len - 20) *% c1, 17) *% c2; + + h ^= a0; + h = rotr32(h, 19); + h = h *% 5 +% 0xe6546b64; + h ^= a2; + h = rotr32(h, 19); + h = h *% 5 +% 0xe6546b64; + g ^= a1; + g = rotr32(g, 19); + g = g *% 5 +% 0xe6546b64; + g ^= a3; + g = rotr32(g, 19); + g = g *% 5 +% 0xe6546b64; + f +%= a4; + f = rotr32(f, 19); + f = f *% 5 +% 0xe6546b64; + var iters = (str.len - 1) / 20; + var ptr = str.ptr; + while (iters != 0) : (iters -= 1) { + const b0: u32 = rotr32(fetch32(ptr) *% c1, 17) *% c2; + const b1: u32 = fetch32(ptr + 4); + const b2: u32 = rotr32(fetch32(ptr + 8) *% c1, 17) *% c2; + const b3: u32 = rotr32(fetch32(ptr + 12) *% c1, 17) *% c2; + const b4: u32 = fetch32(ptr + 16); + + h ^= b0; + h = rotr32(h, 18); + h = h *% 5 +% 0xe6546b64; + f +%= b1; + f = rotr32(f, 19); + f = f *% c1; + g +%= b2; + g = rotr32(g, 18); + g = g *% 5 +% 0xe6546b64; + h ^= b3 +% b1; + h = rotr32(h, 19); + h = h *% 5 +% 0xe6546b64; + g ^= b4; + g = @byteSwap(u32, g) *% 5; + h +%= b4 *% 5; + h = @byteSwap(u32, h); + f +%= b0; + const t: u32 = h; + h = f; + f = g; + g = t; + ptr += 20; + } + g = rotr32(g, 11) *% c1; + g = rotr32(g, 17) *% c1; + f = rotr32(f, 11) *% c1; + f = rotr32(f, 17) *% c1; + h = rotr32(h +% g, 19); + h = h *% 5 +% 0xe6546b64; + h = rotr32(h, 17) *% c1; + h = rotr32(h +% f, 19); + h = h *% 5 +% 0xe6546b64; + h = rotr32(h, 17) *% c1; + return h; + } +}; + +pub const CityHash64 = struct { + const Self = @This(); + + // Some primes between 2^63 and 2^64 for various uses. + const k0: u64 = 0xc3a5c85c97cb3127; + const k1: u64 = 0xb492b66fbe98f273; + const k2: u64 = 0x9ae16a3b2f90404f; + + fn fetch32(ptr: [*]const u8) u32 { + var v: u32 = undefined; + @memcpy(@ptrCast([*]u8, &v), ptr, 4); + if (builtin.endian == builtin.Endian.Big) + return @byteSwap(u32, v); + return v; + } + + fn fetch64(ptr: [*]const u8) u64 { + var v: u64 = undefined; + @memcpy(@ptrCast([*]u8, &v), ptr, 8); + if (builtin.endian == builtin.Endian.Big) + return @byteSwap(u64, v); + return v; + } + + // Rotate right helper + fn rotr64(x: u64, comptime r: u64) u64 { + return (x >> r) | (x << (64 - r)); + } + + fn shiftmix(v: u64) u64 { + return v ^ (v >> 47); + } + + fn hashLen16(u: u64, v: u64) u64 { + return @inlineCall(hash128To64, u, v); + } + + fn hashLen16Mul(low: u64, high: u64, mul: u64) u64 { + var a: u64 = (low ^ high) *% mul; + a ^= (a >> 47); + var b: u64 = (high ^ a) *% mul; + b ^= (b >> 47); + b *%= mul; + return b; + } + + fn hash128To64(low: u64, high: u64) u64 { + return @inlineCall(hashLen16Mul, low, high, 0x9ddfea08eb382d69); + } + + fn hashLen0To16(str: []const u8) u64 { + const len: u64 = u64(str.len); + if (len >= 8) { + const mul: u64 = k2 +% len *% 2; + const a: u64 = fetch64(str.ptr) +% k2; + const b: u64 = fetch64(str.ptr + str.len - 8); + const c: u64 = rotr64(b, 37) *% mul +% a; + const d: u64 = (rotr64(a, 25) +% b) *% mul; + return hashLen16Mul(c, d, mul); + } + if (len >= 4) { + const mul: u64 = k2 +% len *% 2; + const a: u64 = fetch32(str.ptr); + return hashLen16Mul(len +% (a << 3), fetch32(str.ptr + str.len - 4), mul); + } + if (len > 0) { + const a: u8 = str[0]; + const b: u8 = str[str.len >> 1]; + const c: u8 = str[str.len - 1]; + const y: u32 = @intCast(u32, a) +% (@intCast(u32, b) << 8); + const z: u32 = @truncate(u32, str.len) +% (@intCast(u32, c) << 2); + return shiftmix(@intCast(u64, y) *% k2 ^ @intCast(u64, z) *% k0) *% k2; + } + return k2; + } + + fn hashLen17To32(str: []const u8) u64 { + const len: u64 = u64(str.len); + const mul: u64 = k2 +% len *% 2; + const a: u64 = fetch64(str.ptr) *% k1; + const b: u64 = fetch64(str.ptr + 8); + const c: u64 = fetch64(str.ptr + str.len - 8) *% mul; + const d: u64 = fetch64(str.ptr + str.len - 16) *% k2; + + return hashLen16Mul(rotr64(a +% b, 43) +% rotr64(c, 30) +% d, a +% rotr64(b +% k2, 18) +% c, mul); + } + + fn hashLen33To64(str: []const u8) u64 { + const len: u64 = u64(str.len); + const mul: u64 = k2 +% len *% 2; + const a: u64 = fetch64(str.ptr) *% k2; + const b: u64 = fetch64(str.ptr + 8); + const c: u64 = fetch64(str.ptr + str.len - 24); + const d: u64 = fetch64(str.ptr + str.len - 32); + const e: u64 = fetch64(str.ptr + 16) *% k2; + const f: u64 = fetch64(str.ptr + 24) *% 9; + const g: u64 = fetch64(str.ptr + str.len - 8); + const h: u64 = fetch64(str.ptr + str.len - 16) *% mul; + + const u: u64 = rotr64(a +% g, 43) +% (rotr64(b, 30) +% c) *% 9; + const v: u64 = ((a +% g) ^ d) +% f +% 1; + const w: u64 = @byteSwap(u64, (u +% v) *% mul) +% h; + const x: u64 = rotr64(e +% f, 42) +% c; + const y: u64 = (@byteSwap(u64, (v +% w) *% mul) +% g) *% mul; + const z: u64 = e +% f +% c; + const a1: u64 = @byteSwap(u64, (x +% z) *% mul +% y) +% b; + const b1: u64 = shiftmix((z +% a1) *% mul +% d +% h) *% mul; + return b1 +% x; + } + + const WeakPair = struct { + first: u64, + second: u64, + }; + + fn weakHashLen32WithSeedsHelper(w: u64, x: u64, y: u64, z: u64, a: u64, b: u64) WeakPair { + var a1: u64 = a; + var b1: u64 = b; + a1 +%= w; + b1 = rotr64(b1 +% a1 +% z, 21); + var c: u64 = a1; + a1 +%= x; + a1 +%= y; + b1 +%= rotr64(a1, 44); + return WeakPair{ .first = a1 +% z, .second = b1 +% c }; + } + + fn weakHashLen32WithSeeds(ptr: [*]const u8, a: u64, b: u64) WeakPair { + return @inlineCall(weakHashLen32WithSeedsHelper, fetch64(ptr), fetch64(ptr + 8), fetch64(ptr + 16), fetch64(ptr + 24), a, b); + } + + pub fn hash(str: []const u8) u64 { + if (str.len <= 32) { + if (str.len <= 16) { + return hashLen0To16(str); + } else { + return hashLen17To32(str); + } + } else if (str.len <= 64) { + return hashLen33To64(str); + } + + var len: u64 = u64(str.len); + + var x: u64 = fetch64(str.ptr + str.len - 40); + var y: u64 = fetch64(str.ptr + str.len - 16) +% fetch64(str.ptr + str.len - 56); + var z: u64 = hashLen16(fetch64(str.ptr + str.len - 48) +% len, fetch64(str.ptr + str.len - 24)); + var v: WeakPair = weakHashLen32WithSeeds(str.ptr + str.len - 64, len, z); + var w: WeakPair = weakHashLen32WithSeeds(str.ptr + str.len - 32, y +% k1, x); + + x = x *% k1 +% fetch64(str.ptr); + len = (len - 1) & ~@intCast(u64, 63); + + var ptr: [*]const u8 = str.ptr; + while (true) { + x = rotr64(x +% y +% v.first +% fetch64(ptr + 8), 37) *% k1; + y = rotr64(y +% v.second +% fetch64(ptr + 48), 42) *% k1; + x ^= w.second; + y +%= v.first +% fetch64(ptr + 40); + z = rotr64(z +% w.first, 33) *% k1; + v = weakHashLen32WithSeeds(ptr, v.second *% k1, x +% w.first); + w = weakHashLen32WithSeeds(ptr + 32, z +% w.second, y +% fetch64(ptr + 16)); + const t: u64 = z; + z = x; + x = t; + + ptr += 64; + len -= 64; + if (len == 0) + break; + } + + return hashLen16(hashLen16(v.first, w.first) +% shiftmix(y) *% k1 +% z, hashLen16(v.second, w.second) +% x); + } + + pub fn hashWithSeed(str: []const u8, seed: u64) u64 { + return @inlineCall(Self.hashWithSeeds, str, k2, seed); + } + + pub fn hashWithSeeds(str: []const u8, seed0: u64, seed1: u64) u64 { + return hashLen16(hash(str) -% seed0, seed1); + } +}; + +fn SMHasherTest(comptime hash_fn: var, comptime hashbits: u32) u32 { + const hashbytes = hashbits / 8; + var key: [256]u8 = undefined; + var hashes: [hashbytes * 256]u8 = undefined; + var final: [hashbytes]u8 = undefined; + + @memset(@ptrCast([*]u8, &key[0]), 0, @sizeOf(@typeOf(key))); + @memset(@ptrCast([*]u8, &hashes[0]), 0, @sizeOf(@typeOf(hashes))); + @memset(@ptrCast([*]u8, &final[0]), 0, @sizeOf(@typeOf(final))); + + var i: u32 = 0; + while (i < 256) : (i += 1) { + key[i] = @intCast(u8, i); + + var h = hash_fn(key[0..i], 256 - i); + if (builtin.endian == builtin.Endian.Big) + h = @byteSwap(@typeOf(h), h); + @memcpy(@ptrCast([*]u8, &hashes[i * hashbytes]), @ptrCast([*]u8, &h), hashbytes); + } + + return @truncate(u32, hash_fn(hashes, 0)); +} + +fn CityHash32hashIgnoreSeed(str: []const u8, seed: u32) u32 { + return CityHash32.hash(str); +} + +test "cityhash32" { + // Note: SMHasher doesn't provide a 32bit version of the algorithm. + // Note: The implementation was verified against the Google Abseil version. + std.testing.expectEqual(SMHasherTest(CityHash32hashIgnoreSeed, 32), 0x68254F81); +} + +test "cityhash64" { + // Note: This is not compliant with the SMHasher implementation of CityHash64! + // Note: The implementation was verified against the Google Abseil version. + std.testing.expectEqual(SMHasherTest(CityHash64.hashWithSeed, 64), 0x5FABC5C5); +} diff --git a/lib/std/hash/crc.zig b/lib/std/hash/crc.zig new file mode 100644 index 0000000000..cdcaf55610 --- /dev/null +++ b/lib/std/hash/crc.zig @@ -0,0 +1,180 @@ +// There are two implementations of CRC32 implemented with the following key characteristics: +// +// - Crc32WithPoly uses 8Kb of tables but is ~10x faster than the small method. +// +// - Crc32SmallWithPoly uses only 64 bytes of memory but is slower. Be aware that this is +// still moderately fast just slow relative to the slicing approach. + +const std = @import("../std.zig"); +const debug = std.debug; +const testing = std.testing; + +pub const Polynomial = struct { + pub const IEEE = 0xedb88320; + pub const Castagnoli = 0x82f63b78; + pub const Koopman = 0xeb31d82e; +}; + +// IEEE is by far the most common CRC and so is aliased by default. +pub const Crc32 = Crc32WithPoly(Polynomial.IEEE); + +// slicing-by-8 crc32 implementation. +pub fn Crc32WithPoly(comptime poly: u32) type { + return struct { + const Self = @This(); + const lookup_tables = comptime block: { + @setEvalBranchQuota(20000); + var tables: [8][256]u32 = undefined; + + for (tables[0]) |*e, i| { + var crc = @intCast(u32, i); + var j: usize = 0; + while (j < 8) : (j += 1) { + if (crc & 1 == 1) { + crc = (crc >> 1) ^ poly; + } else { + crc = (crc >> 1); + } + } + e.* = crc; + } + + var i: usize = 0; + while (i < 256) : (i += 1) { + var crc = tables[0][i]; + var j: usize = 1; + while (j < 8) : (j += 1) { + const index = @truncate(u8, crc); + crc = tables[0][index] ^ (crc >> 8); + tables[j][i] = crc; + } + } + + break :block tables; + }; + + crc: u32, + + pub fn init() Self { + return Self{ .crc = 0xffffffff }; + } + + pub fn update(self: *Self, input: []const u8) void { + var i: usize = 0; + while (i + 8 <= input.len) : (i += 8) { + const p = input[i .. i + 8]; + + // Unrolling this way gives ~50Mb/s increase + self.crc ^= (u32(p[0]) << 0); + self.crc ^= (u32(p[1]) << 8); + self.crc ^= (u32(p[2]) << 16); + self.crc ^= (u32(p[3]) << 24); + + self.crc = + lookup_tables[0][p[7]] ^ + lookup_tables[1][p[6]] ^ + lookup_tables[2][p[5]] ^ + lookup_tables[3][p[4]] ^ + lookup_tables[4][@truncate(u8, self.crc >> 24)] ^ + lookup_tables[5][@truncate(u8, self.crc >> 16)] ^ + lookup_tables[6][@truncate(u8, self.crc >> 8)] ^ + lookup_tables[7][@truncate(u8, self.crc >> 0)]; + } + + while (i < input.len) : (i += 1) { + const index = @truncate(u8, self.crc) ^ input[i]; + self.crc = (self.crc >> 8) ^ lookup_tables[0][index]; + } + } + + pub fn final(self: *Self) u32 { + return ~self.crc; + } + + pub fn hash(input: []const u8) u32 { + var c = Self.init(); + c.update(input); + return c.final(); + } + }; +} + +test "crc32 ieee" { + const Crc32Ieee = Crc32WithPoly(Polynomial.IEEE); + + testing.expect(Crc32Ieee.hash("") == 0x00000000); + testing.expect(Crc32Ieee.hash("a") == 0xe8b7be43); + testing.expect(Crc32Ieee.hash("abc") == 0x352441c2); +} + +test "crc32 castagnoli" { + const Crc32Castagnoli = Crc32WithPoly(Polynomial.Castagnoli); + + testing.expect(Crc32Castagnoli.hash("") == 0x00000000); + testing.expect(Crc32Castagnoli.hash("a") == 0xc1d04330); + testing.expect(Crc32Castagnoli.hash("abc") == 0x364b3fb7); +} + +// half-byte lookup table implementation. +pub fn Crc32SmallWithPoly(comptime poly: u32) type { + return struct { + const Self = @This(); + const lookup_table = comptime block: { + var table: [16]u32 = undefined; + + for (table) |*e, i| { + var crc = @intCast(u32, i * 16); + var j: usize = 0; + while (j < 8) : (j += 1) { + if (crc & 1 == 1) { + crc = (crc >> 1) ^ poly; + } else { + crc = (crc >> 1); + } + } + e.* = crc; + } + + break :block table; + }; + + crc: u32, + + pub fn init() Self { + return Self{ .crc = 0xffffffff }; + } + + pub fn update(self: *Self, input: []const u8) void { + for (input) |b| { + self.crc = lookup_table[@truncate(u4, self.crc ^ (b >> 0))] ^ (self.crc >> 4); + self.crc = lookup_table[@truncate(u4, self.crc ^ (b >> 4))] ^ (self.crc >> 4); + } + } + + pub fn final(self: *Self) u32 { + return ~self.crc; + } + + pub fn hash(input: []const u8) u32 { + var c = Self.init(); + c.update(input); + return c.final(); + } + }; +} + +test "small crc32 ieee" { + const Crc32Ieee = Crc32SmallWithPoly(Polynomial.IEEE); + + testing.expect(Crc32Ieee.hash("") == 0x00000000); + testing.expect(Crc32Ieee.hash("a") == 0xe8b7be43); + testing.expect(Crc32Ieee.hash("abc") == 0x352441c2); +} + +test "small crc32 castagnoli" { + const Crc32Castagnoli = Crc32SmallWithPoly(Polynomial.Castagnoli); + + testing.expect(Crc32Castagnoli.hash("") == 0x00000000); + testing.expect(Crc32Castagnoli.hash("a") == 0xc1d04330); + testing.expect(Crc32Castagnoli.hash("abc") == 0x364b3fb7); +} diff --git a/lib/std/hash/fnv.zig b/lib/std/hash/fnv.zig new file mode 100644 index 0000000000..8094134e19 --- /dev/null +++ b/lib/std/hash/fnv.zig @@ -0,0 +1,58 @@ +// FNV1a - Fowler-Noll-Vo hash function +// +// FNV1a is a fast, non-cryptographic hash function with fairly good distribution properties. +// +// https://tools.ietf.org/html/draft-eastlake-fnv-14 + +const std = @import("../std.zig"); +const testing = std.testing; + +pub const Fnv1a_32 = Fnv1a(u32, 0x01000193, 0x811c9dc5); +pub const Fnv1a_64 = Fnv1a(u64, 0x100000001b3, 0xcbf29ce484222325); +pub const Fnv1a_128 = Fnv1a(u128, 0x1000000000000000000013b, 0x6c62272e07bb014262b821756295c58d); + +fn Fnv1a(comptime T: type, comptime prime: T, comptime offset: T) type { + return struct { + const Self = @This(); + + value: T, + + pub fn init() Self { + return Self{ .value = offset }; + } + + pub fn update(self: *Self, input: []const u8) void { + for (input) |b| { + self.value ^= b; + self.value *%= prime; + } + } + + pub fn final(self: *Self) T { + return self.value; + } + + pub fn hash(input: []const u8) T { + var c = Self.init(); + c.update(input); + return c.final(); + } + }; +} + +test "fnv1a-32" { + testing.expect(Fnv1a_32.hash("") == 0x811c9dc5); + testing.expect(Fnv1a_32.hash("a") == 0xe40c292c); + testing.expect(Fnv1a_32.hash("foobar") == 0xbf9cf968); +} + +test "fnv1a-64" { + testing.expect(Fnv1a_64.hash("") == 0xcbf29ce484222325); + testing.expect(Fnv1a_64.hash("a") == 0xaf63dc4c8601ec8c); + testing.expect(Fnv1a_64.hash("foobar") == 0x85944171f73967e8); +} + +test "fnv1a-128" { + testing.expect(Fnv1a_128.hash("") == 0x6c62272e07bb014262b821756295c58d); + testing.expect(Fnv1a_128.hash("a") == 0xd228cb696f1a8caf78912b704e4a8964); +} diff --git a/lib/std/hash/murmur.zig b/lib/std/hash/murmur.zig new file mode 100644 index 0000000000..a0c8f91338 --- /dev/null +++ b/lib/std/hash/murmur.zig @@ -0,0 +1,345 @@ +const std = @import("std"); +const builtin = @import("builtin"); +const testing = std.testing; + +const default_seed: u32 = 0xc70f6907; + +pub const Murmur2_32 = struct { + const Self = @This(); + + pub fn hash(str: []const u8) u32 { + return @inlineCall(Self.hashWithSeed, str, default_seed); + } + + pub fn hashWithSeed(str: []const u8, seed: u32) u32 { + const m: u32 = 0x5bd1e995; + const len = @truncate(u32, str.len); + var h1: u32 = seed ^ len; + for (@ptrCast([*]allowzero align(1) const u32, str.ptr)[0..(len >> 2)]) |v| { + var k1: u32 = v; + if (builtin.endian == builtin.Endian.Big) + k1 = @byteSwap(u32, k1); + k1 *%= m; + k1 ^= k1 >> 24; + k1 *%= m; + h1 *%= m; + h1 ^= k1; + } + const offset = len & 0xfffffffc; + const rest = len & 3; + if (rest >= 3) { + h1 ^= @intCast(u32, str[offset + 2]) << 16; + } + if (rest >= 2) { + h1 ^= @intCast(u32, str[offset + 1]) << 8; + } + if (rest >= 1) { + h1 ^= @intCast(u32, str[offset + 0]); + h1 *%= m; + } + h1 ^= h1 >> 13; + h1 *%= m; + h1 ^= h1 >> 15; + return h1; + } + + pub fn hashUint32(v: u32) u32 { + return @inlineCall(Self.hashUint32WithSeed, v, default_seed); + } + + pub fn hashUint32WithSeed(v: u32, seed: u32) u32 { + const m: u32 = 0x5bd1e995; + const len: u32 = 4; + var h1: u32 = seed ^ len; + var k1: u32 = undefined; + k1 = v *% m; + k1 ^= k1 >> 24; + k1 *%= m; + h1 *%= m; + h1 ^= k1; + h1 ^= h1 >> 13; + h1 *%= m; + h1 ^= h1 >> 15; + return h1; + } + + pub fn hashUint64(v: u64) u32 { + return @inlineCall(Self.hashUint64WithSeed, v, default_seed); + } + + pub fn hashUint64WithSeed(v: u64, seed: u32) u32 { + const m: u32 = 0x5bd1e995; + const len: u32 = 8; + var h1: u32 = seed ^ len; + var k1: u32 = undefined; + k1 = @truncate(u32, v) *% m; + k1 ^= k1 >> 24; + k1 *%= m; + h1 *%= m; + h1 ^= k1; + k1 = @truncate(u32, v >> 32) *% m; + k1 ^= k1 >> 24; + k1 *%= m; + h1 *%= m; + h1 ^= k1; + h1 ^= h1 >> 13; + h1 *%= m; + h1 ^= h1 >> 15; + return h1; + } +}; + +pub const Murmur2_64 = struct { + const Self = @This(); + + pub fn hash(str: []const u8) u64 { + return @inlineCall(Self.hashWithSeed, str, default_seed); + } + + pub fn hashWithSeed(str: []const u8, seed: u64) u64 { + const m: u64 = 0xc6a4a7935bd1e995; + const len = u64(str.len); + var h1: u64 = seed ^ (len *% m); + for (@ptrCast([*]allowzero align(1) const u64, str.ptr)[0..@intCast(usize, len >> 3)]) |v| { + var k1: u64 = v; + if (builtin.endian == builtin.Endian.Big) + k1 = @byteSwap(u64, k1); + k1 *%= m; + k1 ^= k1 >> 47; + k1 *%= m; + h1 ^= k1; + h1 *%= m; + } + const rest = len & 7; + const offset = len - rest; + if (rest > 0) { + var k1: u64 = 0; + @memcpy(@ptrCast([*]u8, &k1), @ptrCast([*]const u8, &str[@intCast(usize, offset)]), @intCast(usize, rest)); + if (builtin.endian == builtin.Endian.Big) + k1 = @byteSwap(u64, k1); + h1 ^= k1; + h1 *%= m; + } + h1 ^= h1 >> 47; + h1 *%= m; + h1 ^= h1 >> 47; + return h1; + } + + pub fn hashUint32(v: u32) u64 { + return @inlineCall(Self.hashUint32WithSeed, v, default_seed); + } + + pub fn hashUint32WithSeed(v: u32, seed: u32) u64 { + const m: u64 = 0xc6a4a7935bd1e995; + const len: u64 = 4; + var h1: u64 = seed ^ (len *% m); + var k1: u64 = v; + h1 ^= k1; + h1 *%= m; + h1 ^= h1 >> 47; + h1 *%= m; + h1 ^= h1 >> 47; + return h1; + } + + pub fn hashUint64(v: u64) u64 { + return @inlineCall(Self.hashUint64WithSeed, v, default_seed); + } + + pub fn hashUint64WithSeed(v: u64, seed: u32) u64 { + const m: u64 = 0xc6a4a7935bd1e995; + const len: u64 = 8; + var h1: u64 = seed ^ (len *% m); + var k1: u64 = undefined; + k1 = v *% m; + k1 ^= k1 >> 47; + k1 *%= m; + h1 ^= k1; + h1 *%= m; + h1 ^= h1 >> 47; + h1 *%= m; + h1 ^= h1 >> 47; + return h1; + } +}; + +pub const Murmur3_32 = struct { + const Self = @This(); + + fn rotl32(x: u32, comptime r: u32) u32 { + return (x << r) | (x >> (32 - r)); + } + + pub fn hash(str: []const u8) u32 { + return @inlineCall(Self.hashWithSeed, str, default_seed); + } + + pub fn hashWithSeed(str: []const u8, seed: u32) u32 { + const c1: u32 = 0xcc9e2d51; + const c2: u32 = 0x1b873593; + const len = @truncate(u32, str.len); + var h1: u32 = seed; + for (@ptrCast([*]allowzero align(1) const u32, str.ptr)[0..(len >> 2)]) |v| { + var k1: u32 = v; + if (builtin.endian == builtin.Endian.Big) + k1 = @byteSwap(u32, k1); + k1 *%= c1; + k1 = rotl32(k1, 15); + k1 *%= c2; + h1 ^= k1; + h1 = rotl32(h1, 13); + h1 *%= 5; + h1 +%= 0xe6546b64; + } + { + var k1: u32 = 0; + const offset = len & 0xfffffffc; + const rest = len & 3; + if (rest == 3) { + k1 ^= @intCast(u32, str[offset + 2]) << 16; + } + if (rest >= 2) { + k1 ^= @intCast(u32, str[offset + 1]) << 8; + } + if (rest >= 1) { + k1 ^= @intCast(u32, str[offset + 0]); + k1 *%= c1; + k1 = rotl32(k1, 15); + k1 *%= c2; + h1 ^= k1; + } + } + h1 ^= len; + h1 ^= h1 >> 16; + h1 *%= 0x85ebca6b; + h1 ^= h1 >> 13; + h1 *%= 0xc2b2ae35; + h1 ^= h1 >> 16; + return h1; + } + + pub fn hashUint32(v: u32) u32 { + return @inlineCall(Self.hashUint32WithSeed, v, default_seed); + } + + pub fn hashUint32WithSeed(v: u32, seed: u32) u32 { + const c1: u32 = 0xcc9e2d51; + const c2: u32 = 0x1b873593; + const len: u32 = 4; + var h1: u32 = seed; + var k1: u32 = undefined; + k1 = v *% c1; + k1 = rotl32(k1, 15); + k1 *%= c2; + h1 ^= k1; + h1 = rotl32(h1, 13); + h1 *%= 5; + h1 +%= 0xe6546b64; + h1 ^= len; + h1 ^= h1 >> 16; + h1 *%= 0x85ebca6b; + h1 ^= h1 >> 13; + h1 *%= 0xc2b2ae35; + h1 ^= h1 >> 16; + return h1; + } + + pub fn hashUint64(v: u64) u32 { + return @inlineCall(Self.hashUint64WithSeed, v, default_seed); + } + + pub fn hashUint64WithSeed(v: u64, seed: u32) u32 { + const c1: u32 = 0xcc9e2d51; + const c2: u32 = 0x1b873593; + const len: u32 = 8; + var h1: u32 = seed; + var k1: u32 = undefined; + k1 = @truncate(u32, v) *% c1; + k1 = rotl32(k1, 15); + k1 *%= c2; + h1 ^= k1; + h1 = rotl32(h1, 13); + h1 *%= 5; + h1 +%= 0xe6546b64; + k1 = @truncate(u32, v >> 32) *% c1; + k1 = rotl32(k1, 15); + k1 *%= c2; + h1 ^= k1; + h1 = rotl32(h1, 13); + h1 *%= 5; + h1 +%= 0xe6546b64; + h1 ^= len; + h1 ^= h1 >> 16; + h1 *%= 0x85ebca6b; + h1 ^= h1 >> 13; + h1 *%= 0xc2b2ae35; + h1 ^= h1 >> 16; + return h1; + } +}; + +fn SMHasherTest(comptime hash_fn: var, comptime hashbits: u32) u32 { + const hashbytes = hashbits / 8; + var key: [256]u8 = undefined; + var hashes: [hashbytes * 256]u8 = undefined; + var final: [hashbytes]u8 = undefined; + + @memset(@ptrCast([*]u8, &key[0]), 0, @sizeOf(@typeOf(key))); + @memset(@ptrCast([*]u8, &hashes[0]), 0, @sizeOf(@typeOf(hashes))); + @memset(@ptrCast([*]u8, &final[0]), 0, @sizeOf(@typeOf(final))); + + var i: u32 = 0; + while (i < 256) : (i += 1) { + key[i] = @truncate(u8, i); + + var h = hash_fn(key[0..i], 256 - i); + if (builtin.endian == builtin.Endian.Big) + h = @byteSwap(@typeOf(h), h); + @memcpy(@ptrCast([*]u8, &hashes[i * hashbytes]), @ptrCast([*]u8, &h), hashbytes); + } + + return @truncate(u32, hash_fn(hashes, 0)); +} + +test "murmur2_32" { + testing.expectEqual(SMHasherTest(Murmur2_32.hashWithSeed, 32), 0x27864C1E); + var v0: u32 = 0x12345678; + var v1: u64 = 0x1234567812345678; + var v0le: u32 = v0; + var v1le: u64 = v1; + if (builtin.endian == builtin.Endian.Big) { + v0le = @byteSwap(u32, v0le); + v1le = @byteSwap(u64, v1le); + } + testing.expectEqual(Murmur2_32.hash(@ptrCast([*]u8, &v0le)[0..4]), Murmur2_32.hashUint32(v0)); + testing.expectEqual(Murmur2_32.hash(@ptrCast([*]u8, &v1le)[0..8]), Murmur2_32.hashUint64(v1)); +} + +test "murmur2_64" { + std.testing.expectEqual(SMHasherTest(Murmur2_64.hashWithSeed, 64), 0x1F0D3804); + var v0: u32 = 0x12345678; + var v1: u64 = 0x1234567812345678; + var v0le: u32 = v0; + var v1le: u64 = v1; + if (builtin.endian == builtin.Endian.Big) { + v0le = @byteSwap(u32, v0le); + v1le = @byteSwap(u64, v1le); + } + testing.expectEqual(Murmur2_64.hash(@ptrCast([*]u8, &v0le)[0..4]), Murmur2_64.hashUint32(v0)); + testing.expectEqual(Murmur2_64.hash(@ptrCast([*]u8, &v1le)[0..8]), Murmur2_64.hashUint64(v1)); +} + +test "murmur3_32" { + std.testing.expectEqual(SMHasherTest(Murmur3_32.hashWithSeed, 32), 0xB0F57EE3); + var v0: u32 = 0x12345678; + var v1: u64 = 0x1234567812345678; + var v0le: u32 = v0; + var v1le: u64 = v1; + if (builtin.endian == builtin.Endian.Big) { + v0le = @byteSwap(u32, v0le); + v1le = @byteSwap(u64, v1le); + } + testing.expectEqual(Murmur3_32.hash(@ptrCast([*]u8, &v0le)[0..4]), Murmur3_32.hashUint32(v0)); + testing.expectEqual(Murmur3_32.hash(@ptrCast([*]u8, &v1le)[0..8]), Murmur3_32.hashUint64(v1)); +} diff --git a/lib/std/hash/siphash.zig b/lib/std/hash/siphash.zig new file mode 100644 index 0000000000..3d67ba685b --- /dev/null +++ b/lib/std/hash/siphash.zig @@ -0,0 +1,383 @@ +// Siphash +// +// SipHash is a moderately fast, non-cryptographic keyed hash function designed for resistance +// against hash flooding DoS attacks. +// +// https://131002.net/siphash/ + +const std = @import("../std.zig"); +const assert = std.debug.assert; +const testing = std.testing; +const math = std.math; +const mem = std.mem; + +const Endian = @import("builtin").Endian; + +pub fn SipHash64(comptime c_rounds: usize, comptime d_rounds: usize) type { + return SipHash(u64, c_rounds, d_rounds); +} + +pub fn SipHash128(comptime c_rounds: usize, comptime d_rounds: usize) type { + return SipHash(u128, c_rounds, d_rounds); +} + +fn SipHashStateless(comptime T: type, comptime c_rounds: usize, comptime d_rounds: usize) type { + assert(T == u64 or T == u128); + assert(c_rounds > 0 and d_rounds > 0); + + return struct { + const Self = @This(); + const digest_size = 64; + const block_size = 64; + + v0: u64, + v1: u64, + v2: u64, + v3: u64, + msg_len: u8, + + pub fn init(key: []const u8) Self { + assert(key.len >= 16); + + const k0 = mem.readIntSliceLittle(u64, key[0..8]); + const k1 = mem.readIntSliceLittle(u64, key[8..16]); + + var d = Self{ + .v0 = k0 ^ 0x736f6d6570736575, + .v1 = k1 ^ 0x646f72616e646f6d, + .v2 = k0 ^ 0x6c7967656e657261, + .v3 = k1 ^ 0x7465646279746573, + .msg_len = 0, + }; + + if (T == u128) { + d.v1 ^= 0xee; + } + + return d; + } + + pub fn update(self: *Self, b: []const u8) void { + std.debug.assert(b.len % 8 == 0); + + var off: usize = 0; + while (off < b.len) : (off += 8) { + @inlineCall(self.round, b[off .. off + 8]); + } + + self.msg_len +%= @truncate(u8, b.len); + } + + pub fn final(self: *Self, b: []const u8) T { + std.debug.assert(b.len < 8); + + self.msg_len +%= @truncate(u8, b.len); + + var buf = [_]u8{0} ** 8; + mem.copy(u8, buf[0..], b[0..]); + buf[7] = self.msg_len; + self.round(buf[0..]); + + if (T == u128) { + self.v2 ^= 0xee; + } else { + self.v2 ^= 0xff; + } + + comptime var i: usize = 0; + inline while (i < d_rounds) : (i += 1) { + @inlineCall(sipRound, self); + } + + const b1 = self.v0 ^ self.v1 ^ self.v2 ^ self.v3; + if (T == u64) { + return b1; + } + + self.v1 ^= 0xdd; + + comptime var j: usize = 0; + inline while (j < d_rounds) : (j += 1) { + @inlineCall(sipRound, self); + } + + const b2 = self.v0 ^ self.v1 ^ self.v2 ^ self.v3; + return (u128(b2) << 64) | b1; + } + + fn round(self: *Self, b: []const u8) void { + assert(b.len == 8); + + const m = mem.readIntSliceLittle(u64, b[0..]); + self.v3 ^= m; + + comptime var i: usize = 0; + inline while (i < c_rounds) : (i += 1) { + @inlineCall(sipRound, self); + } + + self.v0 ^= m; + } + + fn sipRound(d: *Self) void { + d.v0 +%= d.v1; + d.v1 = math.rotl(u64, d.v1, u64(13)); + d.v1 ^= d.v0; + d.v0 = math.rotl(u64, d.v0, u64(32)); + d.v2 +%= d.v3; + d.v3 = math.rotl(u64, d.v3, u64(16)); + d.v3 ^= d.v2; + d.v0 +%= d.v3; + d.v3 = math.rotl(u64, d.v3, u64(21)); + d.v3 ^= d.v0; + d.v2 +%= d.v1; + d.v1 = math.rotl(u64, d.v1, u64(17)); + d.v1 ^= d.v2; + d.v2 = math.rotl(u64, d.v2, u64(32)); + } + + pub fn hash(key: []const u8, input: []const u8) T { + const aligned_len = input.len - (input.len % 8); + + var c = Self.init(key); + @inlineCall(c.update, input[0..aligned_len]); + return @inlineCall(c.final, input[aligned_len..]); + } + }; +} + +pub fn SipHash(comptime T: type, comptime c_rounds: usize, comptime d_rounds: usize) type { + assert(T == u64 or T == u128); + assert(c_rounds > 0 and d_rounds > 0); + + return struct { + const State = SipHashStateless(T, c_rounds, d_rounds); + const Self = @This(); + const digest_size = 64; + const block_size = 64; + + state: State, + buf: [8]u8, + buf_len: usize, + + pub fn init(key: []const u8) Self { + return Self{ + .state = State.init(key), + .buf = undefined, + .buf_len = 0, + }; + } + + pub fn update(self: *Self, b: []const u8) void { + var off: usize = 0; + + if (self.buf_len != 0 and self.buf_len + b.len >= 8) { + off += 8 - self.buf_len; + mem.copy(u8, self.buf[self.buf_len..], b[0..off]); + self.state.update(self.buf[0..]); + self.buf_len = 0; + } + + const remain_len = b.len - off; + const aligned_len = remain_len - (remain_len % 8); + self.state.update(b[off .. off + aligned_len]); + + mem.copy(u8, self.buf[self.buf_len..], b[off + aligned_len ..]); + self.buf_len += @intCast(u8, b[off + aligned_len ..].len); + } + + pub fn final(self: *Self) T { + return self.state.final(self.buf[0..self.buf_len]); + } + + pub fn hash(key: []const u8, input: []const u8) T { + return State.hash(key, input); + } + }; +} + +// Test vectors from reference implementation. +// https://github.com/veorq/SipHash/blob/master/vectors.h +const test_key = "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"; + +test "siphash64-2-4 sanity" { + const vectors = [_][8]u8{ + "\x31\x0e\x0e\xdd\x47\xdb\x6f\x72", // "" + "\xfd\x67\xdc\x93\xc5\x39\xf8\x74", // "\x00" + "\x5a\x4f\xa9\xd9\x09\x80\x6c\x0d", // "\x00\x01" ... etc + "\x2d\x7e\xfb\xd7\x96\x66\x67\x85", + "\xb7\x87\x71\x27\xe0\x94\x27\xcf", + "\x8d\xa6\x99\xcd\x64\x55\x76\x18", + "\xce\xe3\xfe\x58\x6e\x46\xc9\xcb", + "\x37\xd1\x01\x8b\xf5\x00\x02\xab", + "\x62\x24\x93\x9a\x79\xf5\xf5\x93", + "\xb0\xe4\xa9\x0b\xdf\x82\x00\x9e", + "\xf3\xb9\xdd\x94\xc5\xbb\x5d\x7a", + "\xa7\xad\x6b\x22\x46\x2f\xb3\xf4", + "\xfb\xe5\x0e\x86\xbc\x8f\x1e\x75", + "\x90\x3d\x84\xc0\x27\x56\xea\x14", + "\xee\xf2\x7a\x8e\x90\xca\x23\xf7", + "\xe5\x45\xbe\x49\x61\xca\x29\xa1", + "\xdb\x9b\xc2\x57\x7f\xcc\x2a\x3f", + "\x94\x47\xbe\x2c\xf5\xe9\x9a\x69", + "\x9c\xd3\x8d\x96\xf0\xb3\xc1\x4b", + "\xbd\x61\x79\xa7\x1d\xc9\x6d\xbb", + "\x98\xee\xa2\x1a\xf2\x5c\xd6\xbe", + "\xc7\x67\x3b\x2e\xb0\xcb\xf2\xd0", + "\x88\x3e\xa3\xe3\x95\x67\x53\x93", + "\xc8\xce\x5c\xcd\x8c\x03\x0c\xa8", + "\x94\xaf\x49\xf6\xc6\x50\xad\xb8", + "\xea\xb8\x85\x8a\xde\x92\xe1\xbc", + "\xf3\x15\xbb\x5b\xb8\x35\xd8\x17", + "\xad\xcf\x6b\x07\x63\x61\x2e\x2f", + "\xa5\xc9\x1d\xa7\xac\xaa\x4d\xde", + "\x71\x65\x95\x87\x66\x50\xa2\xa6", + "\x28\xef\x49\x5c\x53\xa3\x87\xad", + "\x42\xc3\x41\xd8\xfa\x92\xd8\x32", + "\xce\x7c\xf2\x72\x2f\x51\x27\x71", + "\xe3\x78\x59\xf9\x46\x23\xf3\xa7", + "\x38\x12\x05\xbb\x1a\xb0\xe0\x12", + "\xae\x97\xa1\x0f\xd4\x34\xe0\x15", + "\xb4\xa3\x15\x08\xbe\xff\x4d\x31", + "\x81\x39\x62\x29\xf0\x90\x79\x02", + "\x4d\x0c\xf4\x9e\xe5\xd4\xdc\xca", + "\x5c\x73\x33\x6a\x76\xd8\xbf\x9a", + "\xd0\xa7\x04\x53\x6b\xa9\x3e\x0e", + "\x92\x59\x58\xfc\xd6\x42\x0c\xad", + "\xa9\x15\xc2\x9b\xc8\x06\x73\x18", + "\x95\x2b\x79\xf3\xbc\x0a\xa6\xd4", + "\xf2\x1d\xf2\xe4\x1d\x45\x35\xf9", + "\x87\x57\x75\x19\x04\x8f\x53\xa9", + "\x10\xa5\x6c\xf5\xdf\xcd\x9a\xdb", + "\xeb\x75\x09\x5c\xcd\x98\x6c\xd0", + "\x51\xa9\xcb\x9e\xcb\xa3\x12\xe6", + "\x96\xaf\xad\xfc\x2c\xe6\x66\xc7", + "\x72\xfe\x52\x97\x5a\x43\x64\xee", + "\x5a\x16\x45\xb2\x76\xd5\x92\xa1", + "\xb2\x74\xcb\x8e\xbf\x87\x87\x0a", + "\x6f\x9b\xb4\x20\x3d\xe7\xb3\x81", + "\xea\xec\xb2\xa3\x0b\x22\xa8\x7f", + "\x99\x24\xa4\x3c\xc1\x31\x57\x24", + "\xbd\x83\x8d\x3a\xaf\xbf\x8d\xb7", + "\x0b\x1a\x2a\x32\x65\xd5\x1a\xea", + "\x13\x50\x79\xa3\x23\x1c\xe6\x60", + "\x93\x2b\x28\x46\xe4\xd7\x06\x66", + "\xe1\x91\x5f\x5c\xb1\xec\xa4\x6c", + "\xf3\x25\x96\x5c\xa1\x6d\x62\x9f", + "\x57\x5f\xf2\x8e\x60\x38\x1b\xe5", + "\x72\x45\x06\xeb\x4c\x32\x8a\x95", + }; + + const siphash = SipHash64(2, 4); + + var buffer: [64]u8 = undefined; + for (vectors) |vector, i| { + buffer[i] = @intCast(u8, i); + + const expected = mem.readIntLittle(u64, &vector); + testing.expectEqual(siphash.hash(test_key, buffer[0..i]), expected); + } +} + +test "siphash128-2-4 sanity" { + const vectors = [_][16]u8{ + "\xa3\x81\x7f\x04\xba\x25\xa8\xe6\x6d\xf6\x72\x14\xc7\x55\x02\x93", + "\xda\x87\xc1\xd8\x6b\x99\xaf\x44\x34\x76\x59\x11\x9b\x22\xfc\x45", + "\x81\x77\x22\x8d\xa4\xa4\x5d\xc7\xfc\xa3\x8b\xde\xf6\x0a\xff\xe4", + "\x9c\x70\xb6\x0c\x52\x67\xa9\x4e\x5f\x33\xb6\xb0\x29\x85\xed\x51", + "\xf8\x81\x64\xc1\x2d\x9c\x8f\xaf\x7d\x0f\x6e\x7c\x7b\xcd\x55\x79", + "\x13\x68\x87\x59\x80\x77\x6f\x88\x54\x52\x7a\x07\x69\x0e\x96\x27", + "\x14\xee\xca\x33\x8b\x20\x86\x13\x48\x5e\xa0\x30\x8f\xd7\xa1\x5e", + "\xa1\xf1\xeb\xbe\xd8\xdb\xc1\x53\xc0\xb8\x4a\xa6\x1f\xf0\x82\x39", + "\x3b\x62\xa9\xba\x62\x58\xf5\x61\x0f\x83\xe2\x64\xf3\x14\x97\xb4", + "\x26\x44\x99\x06\x0a\xd9\xba\xab\xc4\x7f\x8b\x02\xbb\x6d\x71\xed", + "\x00\x11\x0d\xc3\x78\x14\x69\x56\xc9\x54\x47\xd3\xf3\xd0\xfb\xba", + "\x01\x51\xc5\x68\x38\x6b\x66\x77\xa2\xb4\xdc\x6f\x81\xe5\xdc\x18", + "\xd6\x26\xb2\x66\x90\x5e\xf3\x58\x82\x63\x4d\xf6\x85\x32\xc1\x25", + "\x98\x69\xe2\x47\xe9\xc0\x8b\x10\xd0\x29\x93\x4f\xc4\xb9\x52\xf7", + "\x31\xfc\xef\xac\x66\xd7\xde\x9c\x7e\xc7\x48\x5f\xe4\x49\x49\x02", + "\x54\x93\xe9\x99\x33\xb0\xa8\x11\x7e\x08\xec\x0f\x97\xcf\xc3\xd9", + "\x6e\xe2\xa4\xca\x67\xb0\x54\xbb\xfd\x33\x15\xbf\x85\x23\x05\x77", + "\x47\x3d\x06\xe8\x73\x8d\xb8\x98\x54\xc0\x66\xc4\x7a\xe4\x77\x40", + "\xa4\x26\xe5\xe4\x23\xbf\x48\x85\x29\x4d\xa4\x81\xfe\xae\xf7\x23", + "\x78\x01\x77\x31\xcf\x65\xfa\xb0\x74\xd5\x20\x89\x52\x51\x2e\xb1", + "\x9e\x25\xfc\x83\x3f\x22\x90\x73\x3e\x93\x44\xa5\xe8\x38\x39\xeb", + "\x56\x8e\x49\x5a\xbe\x52\x5a\x21\x8a\x22\x14\xcd\x3e\x07\x1d\x12", + "\x4a\x29\xb5\x45\x52\xd1\x6b\x9a\x46\x9c\x10\x52\x8e\xff\x0a\xae", + "\xc9\xd1\x84\xdd\xd5\xa9\xf5\xe0\xcf\x8c\xe2\x9a\x9a\xbf\x69\x1c", + "\x2d\xb4\x79\xae\x78\xbd\x50\xd8\x88\x2a\x8a\x17\x8a\x61\x32\xad", + "\x8e\xce\x5f\x04\x2d\x5e\x44\x7b\x50\x51\xb9\xea\xcb\x8d\x8f\x6f", + "\x9c\x0b\x53\xb4\xb3\xc3\x07\xe8\x7e\xae\xe0\x86\x78\x14\x1f\x66", + "\xab\xf2\x48\xaf\x69\xa6\xea\xe4\xbf\xd3\xeb\x2f\x12\x9e\xeb\x94", + "\x06\x64\xda\x16\x68\x57\x4b\x88\xb9\x35\xf3\x02\x73\x58\xae\xf4", + "\xaa\x4b\x9d\xc4\xbf\x33\x7d\xe9\x0c\xd4\xfd\x3c\x46\x7c\x6a\xb7", + "\xea\x5c\x7f\x47\x1f\xaf\x6b\xde\x2b\x1a\xd7\xd4\x68\x6d\x22\x87", + "\x29\x39\xb0\x18\x32\x23\xfa\xfc\x17\x23\xde\x4f\x52\xc4\x3d\x35", + "\x7c\x39\x56\xca\x5e\xea\xfc\x3e\x36\x3e\x9d\x55\x65\x46\xeb\x68", + "\x77\xc6\x07\x71\x46\xf0\x1c\x32\xb6\xb6\x9d\x5f\x4e\xa9\xff\xcf", + "\x37\xa6\x98\x6c\xb8\x84\x7e\xdf\x09\x25\xf0\xf1\x30\x9b\x54\xde", + "\xa7\x05\xf0\xe6\x9d\xa9\xa8\xf9\x07\x24\x1a\x2e\x92\x3c\x8c\xc8", + "\x3d\xc4\x7d\x1f\x29\xc4\x48\x46\x1e\x9e\x76\xed\x90\x4f\x67\x11", + "\x0d\x62\xbf\x01\xe6\xfc\x0e\x1a\x0d\x3c\x47\x51\xc5\xd3\x69\x2b", + "\x8c\x03\x46\x8b\xca\x7c\x66\x9e\xe4\xfd\x5e\x08\x4b\xbe\xe7\xb5", + "\x52\x8a\x5b\xb9\x3b\xaf\x2c\x9c\x44\x73\xcc\xe5\xd0\xd2\x2b\xd9", + "\xdf\x6a\x30\x1e\x95\xc9\x5d\xad\x97\xae\x0c\xc8\xc6\x91\x3b\xd8", + "\x80\x11\x89\x90\x2c\x85\x7f\x39\xe7\x35\x91\x28\x5e\x70\xb6\xdb", + "\xe6\x17\x34\x6a\xc9\xc2\x31\xbb\x36\x50\xae\x34\xcc\xca\x0c\x5b", + "\x27\xd9\x34\x37\xef\xb7\x21\xaa\x40\x18\x21\xdc\xec\x5a\xdf\x89", + "\x89\x23\x7d\x9d\xed\x9c\x5e\x78\xd8\xb1\xc9\xb1\x66\xcc\x73\x42", + "\x4a\x6d\x80\x91\xbf\x5e\x7d\x65\x11\x89\xfa\x94\xa2\x50\xb1\x4c", + "\x0e\x33\xf9\x60\x55\xe7\xae\x89\x3f\xfc\x0e\x3d\xcf\x49\x29\x02", + "\xe6\x1c\x43\x2b\x72\x0b\x19\xd1\x8e\xc8\xd8\x4b\xdc\x63\x15\x1b", + "\xf7\xe5\xae\xf5\x49\xf7\x82\xcf\x37\x90\x55\xa6\x08\x26\x9b\x16", + "\x43\x8d\x03\x0f\xd0\xb7\xa5\x4f\xa8\x37\xf2\xad\x20\x1a\x64\x03", + "\xa5\x90\xd3\xee\x4f\xbf\x04\xe3\x24\x7e\x0d\x27\xf2\x86\x42\x3f", + "\x5f\xe2\xc1\xa1\x72\xfe\x93\xc4\xb1\x5c\xd3\x7c\xae\xf9\xf5\x38", + "\x2c\x97\x32\x5c\xbd\x06\xb3\x6e\xb2\x13\x3d\xd0\x8b\x3a\x01\x7c", + "\x92\xc8\x14\x22\x7a\x6b\xca\x94\x9f\xf0\x65\x9f\x00\x2a\xd3\x9e", + "\xdc\xe8\x50\x11\x0b\xd8\x32\x8c\xfb\xd5\x08\x41\xd6\x91\x1d\x87", + "\x67\xf1\x49\x84\xc7\xda\x79\x12\x48\xe3\x2b\xb5\x92\x25\x83\xda", + "\x19\x38\xf2\xcf\x72\xd5\x4e\xe9\x7e\x94\x16\x6f\xa9\x1d\x2a\x36", + "\x74\x48\x1e\x96\x46\xed\x49\xfe\x0f\x62\x24\x30\x16\x04\x69\x8e", + "\x57\xfc\xa5\xde\x98\xa9\xd6\xd8\x00\x64\x38\xd0\x58\x3d\x8a\x1d", + "\x9f\xec\xde\x1c\xef\xdc\x1c\xbe\xd4\x76\x36\x74\xd9\x57\x53\x59", + "\xe3\x04\x0c\x00\xeb\x28\xf1\x53\x66\xca\x73\xcb\xd8\x72\xe7\x40", + "\x76\x97\x00\x9a\x6a\x83\x1d\xfe\xcc\xa9\x1c\x59\x93\x67\x0f\x7a", + "\x58\x53\x54\x23\x21\xf5\x67\xa0\x05\xd5\x47\xa4\xf0\x47\x59\xbd", + "\x51\x50\xd1\x77\x2f\x50\x83\x4a\x50\x3e\x06\x9a\x97\x3f\xbd\x7c", + }; + + const siphash = SipHash128(2, 4); + + var buffer: [64]u8 = undefined; + for (vectors) |vector, i| { + buffer[i] = @intCast(u8, i); + + const expected = mem.readIntLittle(u128, &vector); + testing.expectEqual(siphash.hash(test_key, buffer[0..i]), expected); + } +} + +test "iterative non-divisible update" { + var buf: [1024]u8 = undefined; + for (buf) |*e, i| { + e.* = @truncate(u8, i); + } + + const key = "0x128dad08f12307"; + const Siphash = SipHash64(2, 4); + + var end: usize = 9; + while (end < buf.len) : (end += 9) { + const non_iterative_hash = Siphash.hash(key, buf[0..end]); + + var wy = Siphash.init(key); + var i: usize = 0; + while (i < end) : (i += 7) { + wy.update(buf[i..std.math.min(i + 7, end)]); + } + const iterative_hash = wy.final(); + + std.testing.expectEqual(iterative_hash, non_iterative_hash); + } +} diff --git a/lib/std/hash/wyhash.zig b/lib/std/hash/wyhash.zig new file mode 100644 index 0000000000..7e35ccc6d2 --- /dev/null +++ b/lib/std/hash/wyhash.zig @@ -0,0 +1,231 @@ +const std = @import("std"); +const mem = std.mem; + +const primes = [_]u64{ + 0xa0761d6478bd642f, + 0xe7037ed1a0b428db, + 0x8ebc6af09c88c6e3, + 0x589965cc75374cc3, + 0x1d8e4e27c47d124f, +}; + +fn read_bytes(comptime bytes: u8, data: []const u8) u64 { + const T = @IntType(false, 8 * bytes); + return mem.readIntSliceLittle(T, data[0..bytes]); +} + +fn read_8bytes_swapped(data: []const u8) u64 { + return (read_bytes(4, data) << 32 | read_bytes(4, data[4..])); +} + +fn mum(a: u64, b: u64) u64 { + var r = std.math.mulWide(u64, a, b); + r = (r >> 64) ^ r; + return @truncate(u64, r); +} + +fn mix0(a: u64, b: u64, seed: u64) u64 { + return mum(a ^ seed ^ primes[0], b ^ seed ^ primes[1]); +} + +fn mix1(a: u64, b: u64, seed: u64) u64 { + return mum(a ^ seed ^ primes[2], b ^ seed ^ primes[3]); +} + +// Wyhash version which does not store internal state for handling partial buffers. +// This is needed so that we can maximize the speed for the short key case, which will +// use the non-iterative api which the public Wyhash exposes. +const WyhashStateless = struct { + seed: u64, + msg_len: usize, + + pub fn init(seed: u64) WyhashStateless { + return WyhashStateless{ + .seed = seed, + .msg_len = 0, + }; + } + + fn round(self: *WyhashStateless, b: []const u8) void { + std.debug.assert(b.len == 32); + + self.seed = mix0( + read_bytes(8, b[0..]), + read_bytes(8, b[8..]), + self.seed, + ) ^ mix1( + read_bytes(8, b[16..]), + read_bytes(8, b[24..]), + self.seed, + ); + } + + pub fn update(self: *WyhashStateless, b: []const u8) void { + std.debug.assert(b.len % 32 == 0); + + var off: usize = 0; + while (off < b.len) : (off += 32) { + @inlineCall(self.round, b[off .. off + 32]); + } + + self.msg_len += b.len; + } + + pub fn final(self: *WyhashStateless, b: []const u8) u64 { + std.debug.assert(b.len < 32); + + const seed = self.seed; + const rem_len = @intCast(u5, b.len); + const rem_key = b[0..rem_len]; + + self.seed = switch (rem_len) { + 0 => seed, + 1 => mix0(read_bytes(1, rem_key), primes[4], seed), + 2 => mix0(read_bytes(2, rem_key), primes[4], seed), + 3 => mix0((read_bytes(2, rem_key) << 8) | read_bytes(1, rem_key[2..]), primes[4], seed), + 4 => mix0(read_bytes(4, rem_key), primes[4], seed), + 5 => mix0((read_bytes(4, rem_key) << 8) | read_bytes(1, rem_key[4..]), primes[4], seed), + 6 => mix0((read_bytes(4, rem_key) << 16) | read_bytes(2, rem_key[4..]), primes[4], seed), + 7 => mix0((read_bytes(4, rem_key) << 24) | (read_bytes(2, rem_key[4..]) << 8) | read_bytes(1, rem_key[6..]), primes[4], seed), + 8 => mix0(read_8bytes_swapped(rem_key), primes[4], seed), + 9 => mix0(read_8bytes_swapped(rem_key), read_bytes(1, rem_key[8..]), seed), + 10 => mix0(read_8bytes_swapped(rem_key), read_bytes(2, rem_key[8..]), seed), + 11 => mix0(read_8bytes_swapped(rem_key), (read_bytes(2, rem_key[8..]) << 8) | read_bytes(1, rem_key[10..]), seed), + 12 => mix0(read_8bytes_swapped(rem_key), read_bytes(4, rem_key[8..]), seed), + 13 => mix0(read_8bytes_swapped(rem_key), (read_bytes(4, rem_key[8..]) << 8) | read_bytes(1, rem_key[12..]), seed), + 14 => mix0(read_8bytes_swapped(rem_key), (read_bytes(4, rem_key[8..]) << 16) | read_bytes(2, rem_key[12..]), seed), + 15 => mix0(read_8bytes_swapped(rem_key), (read_bytes(4, rem_key[8..]) << 24) | (read_bytes(2, rem_key[12..]) << 8) | read_bytes(1, rem_key[14..]), seed), + 16 => mix0(read_8bytes_swapped(rem_key), read_8bytes_swapped(rem_key[8..]), seed), + 17 => mix0(read_8bytes_swapped(rem_key), read_8bytes_swapped(rem_key[8..]), seed) ^ mix1(read_bytes(1, rem_key[16..]), primes[4], seed), + 18 => mix0(read_8bytes_swapped(rem_key), read_8bytes_swapped(rem_key[8..]), seed) ^ mix1(read_bytes(2, rem_key[16..]), primes[4], seed), + 19 => mix0(read_8bytes_swapped(rem_key), read_8bytes_swapped(rem_key[8..]), seed) ^ mix1((read_bytes(2, rem_key[16..]) << 8) | read_bytes(1, rem_key[18..]), primes[4], seed), + 20 => mix0(read_8bytes_swapped(rem_key), read_8bytes_swapped(rem_key[8..]), seed) ^ mix1(read_bytes(4, rem_key[16..]), primes[4], seed), + 21 => mix0(read_8bytes_swapped(rem_key), read_8bytes_swapped(rem_key[8..]), seed) ^ mix1((read_bytes(4, rem_key[16..]) << 8) | read_bytes(1, rem_key[20..]), primes[4], seed), + 22 => mix0(read_8bytes_swapped(rem_key), read_8bytes_swapped(rem_key[8..]), seed) ^ mix1((read_bytes(4, rem_key[16..]) << 16) | read_bytes(2, rem_key[20..]), primes[4], seed), + 23 => mix0(read_8bytes_swapped(rem_key), read_8bytes_swapped(rem_key[8..]), seed) ^ mix1((read_bytes(4, rem_key[16..]) << 24) | (read_bytes(2, rem_key[20..]) << 8) | read_bytes(1, rem_key[22..]), primes[4], seed), + 24 => mix0(read_8bytes_swapped(rem_key), read_8bytes_swapped(rem_key[8..]), seed) ^ mix1(read_8bytes_swapped(rem_key[16..]), primes[4], seed), + 25 => mix0(read_8bytes_swapped(rem_key), read_8bytes_swapped(rem_key[8..]), seed) ^ mix1(read_8bytes_swapped(rem_key[16..]), read_bytes(1, rem_key[24..]), seed), + 26 => mix0(read_8bytes_swapped(rem_key), read_8bytes_swapped(rem_key[8..]), seed) ^ mix1(read_8bytes_swapped(rem_key[16..]), read_bytes(2, rem_key[24..]), seed), + 27 => mix0(read_8bytes_swapped(rem_key), read_8bytes_swapped(rem_key[8..]), seed) ^ mix1(read_8bytes_swapped(rem_key[16..]), (read_bytes(2, rem_key[24..]) << 8) | read_bytes(1, rem_key[26..]), seed), + 28 => mix0(read_8bytes_swapped(rem_key), read_8bytes_swapped(rem_key[8..]), seed) ^ mix1(read_8bytes_swapped(rem_key[16..]), read_bytes(4, rem_key[24..]), seed), + 29 => mix0(read_8bytes_swapped(rem_key), read_8bytes_swapped(rem_key[8..]), seed) ^ mix1(read_8bytes_swapped(rem_key[16..]), (read_bytes(4, rem_key[24..]) << 8) | read_bytes(1, rem_key[28..]), seed), + 30 => mix0(read_8bytes_swapped(rem_key), read_8bytes_swapped(rem_key[8..]), seed) ^ mix1(read_8bytes_swapped(rem_key[16..]), (read_bytes(4, rem_key[24..]) << 16) | read_bytes(2, rem_key[28..]), seed), + 31 => mix0(read_8bytes_swapped(rem_key), read_8bytes_swapped(rem_key[8..]), seed) ^ mix1(read_8bytes_swapped(rem_key[16..]), (read_bytes(4, rem_key[24..]) << 24) | (read_bytes(2, rem_key[28..]) << 8) | read_bytes(1, rem_key[30..]), seed), + }; + + self.msg_len += b.len; + return mum(self.seed ^ self.msg_len, primes[4]); + } + + pub fn hash(seed: u64, input: []const u8) u64 { + const aligned_len = input.len - (input.len % 32); + + var c = WyhashStateless.init(seed); + @inlineCall(c.update, input[0..aligned_len]); + return @inlineCall(c.final, input[aligned_len..]); + } +}; + +/// Fast non-cryptographic 64bit hash function. +/// See https://github.com/wangyi-fudan/wyhash +pub const Wyhash = struct { + state: WyhashStateless, + + buf: [32]u8, + buf_len: usize, + + pub fn init(seed: u64) Wyhash { + return Wyhash{ + .state = WyhashStateless.init(seed), + .buf = undefined, + .buf_len = 0, + }; + } + + pub fn update(self: *Wyhash, b: []const u8) void { + var off: usize = 0; + + if (self.buf_len != 0 and self.buf_len + b.len >= 32) { + off += 32 - self.buf_len; + mem.copy(u8, self.buf[self.buf_len..], b[0..off]); + self.state.update(self.buf[0..]); + self.buf_len = 0; + } + + const remain_len = b.len - off; + const aligned_len = remain_len - (remain_len % 32); + self.state.update(b[off .. off + aligned_len]); + + mem.copy(u8, self.buf[self.buf_len..], b[off + aligned_len ..]); + self.buf_len += @intCast(u8, b[off + aligned_len ..].len); + } + + pub fn final(self: *Wyhash) u64 { + const seed = self.state.seed; + const rem_len = @intCast(u5, self.buf_len); + const rem_key = self.buf[0..self.buf_len]; + + return self.state.final(rem_key); + } + + pub fn hash(seed: u64, input: []const u8) u64 { + return WyhashStateless.hash(seed, input); + } +}; + +const expectEqual = std.testing.expectEqual; + +test "test vectors" { + const hash = Wyhash.hash; + + expectEqual(hash(0, ""), 0x0); + expectEqual(hash(1, "a"), 0xbed235177f41d328); + expectEqual(hash(2, "abc"), 0xbe348debe59b27c3); + expectEqual(hash(3, "message digest"), 0x37320f657213a290); + expectEqual(hash(4, "abcdefghijklmnopqrstuvwxyz"), 0xd0b270e1d8a7019c); + expectEqual(hash(5, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"), 0x602a1894d3bbfe7f); + expectEqual(hash(6, "12345678901234567890123456789012345678901234567890123456789012345678901234567890"), 0x829e9c148b75970e); +} + +test "test vectors streaming" { + var wh = Wyhash.init(5); + for ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") |e| { + wh.update(mem.asBytes(&e)); + } + expectEqual(wh.final(), 0x602a1894d3bbfe7f); + + const pattern = "1234567890"; + const count = 8; + const result = 0x829e9c148b75970e; + expectEqual(Wyhash.hash(6, pattern ** 8), result); + + wh = Wyhash.init(6); + var i: u32 = 0; + while (i < count) : (i += 1) { + wh.update(pattern); + } + expectEqual(wh.final(), result); +} + +test "iterative non-divisible update" { + var buf: [8192]u8 = undefined; + for (buf) |*e, i| { + e.* = @truncate(u8, i); + } + + const seed = 0x128dad08f; + + var end: usize = 32; + while (end < buf.len) : (end += 32) { + const non_iterative_hash = Wyhash.hash(seed, buf[0..end]); + + var wy = Wyhash.init(seed); + var i: usize = 0; + while (i < end) : (i += 33) { + wy.update(buf[i..std.math.min(i + 33, end)]); + } + const iterative_hash = wy.final(); + + std.testing.expectEqual(iterative_hash, non_iterative_hash); + } +} diff --git a/lib/std/hash_map.zig b/lib/std/hash_map.zig new file mode 100644 index 0000000000..4ffe88067b --- /dev/null +++ b/lib/std/hash_map.zig @@ -0,0 +1,552 @@ +const std = @import("std.zig"); +const debug = std.debug; +const assert = debug.assert; +const testing = std.testing; +const math = std.math; +const mem = std.mem; +const meta = std.meta; +const autoHash = std.hash.autoHash; +const Wyhash = std.hash.Wyhash; +const Allocator = mem.Allocator; +const builtin = @import("builtin"); + +const want_modification_safety = builtin.mode != builtin.Mode.ReleaseFast; +const debug_u32 = if (want_modification_safety) u32 else void; + +pub fn AutoHashMap(comptime K: type, comptime V: type) type { + return HashMap(K, V, getAutoHashFn(K), getAutoEqlFn(K)); +} + +/// Builtin hashmap for strings as keys. +pub fn StringHashMap(comptime V: type) type { + return HashMap([]const u8, V, hashString, eqlString); +} + +pub fn eqlString(a: []const u8, b: []const u8) bool { + return mem.eql(u8, a, b); +} + +pub fn hashString(s: []const u8) u32 { + return @truncate(u32, std.hash.Wyhash.hash(0, s)); +} + +pub fn HashMap(comptime K: type, comptime V: type, comptime hash: fn (key: K) u32, comptime eql: fn (a: K, b: K) bool) type { + return struct { + entries: []Entry, + size: usize, + max_distance_from_start_index: usize, + allocator: *Allocator, + // this is used to detect bugs where a hashtable is edited while an iterator is running. + modification_count: debug_u32, + + const Self = @This(); + + pub const KV = struct { + key: K, + value: V, + }; + + const Entry = struct { + used: bool, + distance_from_start_index: usize, + kv: KV, + }; + + pub const GetOrPutResult = struct { + kv: *KV, + found_existing: bool, + }; + + pub const Iterator = struct { + hm: *const Self, + // how many items have we returned + count: usize, + // iterator through the entry array + index: usize, + // used to detect concurrent modification + initial_modification_count: debug_u32, + + pub fn next(it: *Iterator) ?*KV { + if (want_modification_safety) { + assert(it.initial_modification_count == it.hm.modification_count); // concurrent modification + } + if (it.count >= it.hm.size) return null; + while (it.index < it.hm.entries.len) : (it.index += 1) { + const entry = &it.hm.entries[it.index]; + if (entry.used) { + it.index += 1; + it.count += 1; + return &entry.kv; + } + } + unreachable; // no next item + } + + // Reset the iterator to the initial index + pub fn reset(it: *Iterator) void { + it.count = 0; + it.index = 0; + // Resetting the modification count too + it.initial_modification_count = it.hm.modification_count; + } + }; + + pub fn init(allocator: *Allocator) Self { + return Self{ + .entries = [_]Entry{}, + .allocator = allocator, + .size = 0, + .max_distance_from_start_index = 0, + .modification_count = if (want_modification_safety) 0 else {}, + }; + } + + pub fn deinit(hm: Self) void { + hm.allocator.free(hm.entries); + } + + pub fn clear(hm: *Self) void { + for (hm.entries) |*entry| { + entry.used = false; + } + hm.size = 0; + hm.max_distance_from_start_index = 0; + hm.incrementModificationCount(); + } + + pub fn count(self: Self) usize { + return self.size; + } + + /// If key exists this function cannot fail. + /// If there is an existing item with `key`, then the result + /// kv pointer points to it, and found_existing is true. + /// Otherwise, puts a new item with undefined value, and + /// the kv pointer points to it. Caller should then initialize + /// the data. + pub fn getOrPut(self: *Self, key: K) !GetOrPutResult { + // TODO this implementation can be improved - we should only + // have to hash once and find the entry once. + if (self.get(key)) |kv| { + return GetOrPutResult{ + .kv = kv, + .found_existing = true, + }; + } + self.incrementModificationCount(); + try self.autoCapacity(); + const put_result = self.internalPut(key); + assert(put_result.old_kv == null); + return GetOrPutResult{ + .kv = &put_result.new_entry.kv, + .found_existing = false, + }; + } + + pub fn getOrPutValue(self: *Self, key: K, value: V) !*KV { + const res = try self.getOrPut(key); + if (!res.found_existing) + res.kv.value = value; + + return res.kv; + } + + fn optimizedCapacity(expected_count: usize) usize { + // ensure that the hash map will be at most 60% full if + // expected_count items are put into it + var optimized_capacity = expected_count * 5 / 3; + // an overflow here would mean the amount of memory required would not + // be representable in the address space + return math.ceilPowerOfTwo(usize, optimized_capacity) catch unreachable; + } + + /// Increases capacity so that the hash map will be at most + /// 60% full when expected_count items are put into it + pub fn ensureCapacity(self: *Self, expected_count: usize) !void { + const optimized_capacity = optimizedCapacity(expected_count); + return self.ensureCapacityExact(optimized_capacity); + } + + /// Sets the capacity to the new capacity if the new + /// capacity is greater than the current capacity. + /// New capacity must be a power of two. + fn ensureCapacityExact(self: *Self, new_capacity: usize) !void { + // capacity must always be a power of two to allow for modulo + // optimization in the constrainIndex fn + assert(math.isPowerOfTwo(new_capacity)); + + if (new_capacity <= self.entries.len) { + return; + } + + const old_entries = self.entries; + try self.initCapacity(new_capacity); + self.incrementModificationCount(); + if (old_entries.len > 0) { + // dump all of the old elements into the new table + for (old_entries) |*old_entry| { + if (old_entry.used) { + self.internalPut(old_entry.kv.key).new_entry.kv.value = old_entry.kv.value; + } + } + self.allocator.free(old_entries); + } + } + + /// Returns the kv pair that was already there. + pub fn put(self: *Self, key: K, value: V) !?KV { + try self.autoCapacity(); + return putAssumeCapacity(self, key, value); + } + + /// Calls put() and asserts that no kv pair is clobbered. + pub fn putNoClobber(self: *Self, key: K, value: V) !void { + assert((try self.put(key, value)) == null); + } + + pub fn putAssumeCapacity(self: *Self, key: K, value: V) ?KV { + assert(self.count() < self.entries.len); + self.incrementModificationCount(); + + const put_result = self.internalPut(key); + put_result.new_entry.kv.value = value; + return put_result.old_kv; + } + + pub fn get(hm: *const Self, key: K) ?*KV { + if (hm.entries.len == 0) { + return null; + } + return hm.internalGet(key); + } + + pub fn getValue(hm: *const Self, key: K) ?V { + return if (hm.get(key)) |kv| kv.value else null; + } + + pub fn contains(hm: *const Self, key: K) bool { + return hm.get(key) != null; + } + + /// Returns any kv pair that was removed. + pub fn remove(hm: *Self, key: K) ?KV { + if (hm.entries.len == 0) return null; + hm.incrementModificationCount(); + const start_index = hm.keyToIndex(key); + { + var roll_over: usize = 0; + while (roll_over <= hm.max_distance_from_start_index) : (roll_over += 1) { + const index = hm.constrainIndex(start_index + roll_over); + var entry = &hm.entries[index]; + + if (!entry.used) return null; + + if (!eql(entry.kv.key, key)) continue; + + const removed_kv = entry.kv; + while (roll_over < hm.entries.len) : (roll_over += 1) { + const next_index = hm.constrainIndex(start_index + roll_over + 1); + const next_entry = &hm.entries[next_index]; + if (!next_entry.used or next_entry.distance_from_start_index == 0) { + entry.used = false; + hm.size -= 1; + return removed_kv; + } + entry.* = next_entry.*; + entry.distance_from_start_index -= 1; + entry = next_entry; + } + unreachable; // shifting everything in the table + } + } + return null; + } + + /// Calls remove(), asserts that a kv pair is removed, and discards it. + pub fn removeAssertDiscard(hm: *Self, key: K) void { + assert(hm.remove(key) != null); + } + + pub fn iterator(hm: *const Self) Iterator { + return Iterator{ + .hm = hm, + .count = 0, + .index = 0, + .initial_modification_count = hm.modification_count, + }; + } + + pub fn clone(self: Self) !Self { + var other = Self.init(self.allocator); + try other.initCapacity(self.entries.len); + var it = self.iterator(); + while (it.next()) |entry| { + try other.putNoClobber(entry.key, entry.value); + } + return other; + } + + fn autoCapacity(self: *Self) !void { + if (self.entries.len == 0) { + return self.ensureCapacityExact(16); + } + // if we get too full (60%), double the capacity + if (self.size * 5 >= self.entries.len * 3) { + return self.ensureCapacityExact(self.entries.len * 2); + } + } + + fn initCapacity(hm: *Self, capacity: usize) !void { + hm.entries = try hm.allocator.alloc(Entry, capacity); + hm.size = 0; + hm.max_distance_from_start_index = 0; + for (hm.entries) |*entry| { + entry.used = false; + } + } + + fn incrementModificationCount(hm: *Self) void { + if (want_modification_safety) { + hm.modification_count +%= 1; + } + } + + const InternalPutResult = struct { + new_entry: *Entry, + old_kv: ?KV, + }; + + /// Returns a pointer to the new entry. + /// Asserts that there is enough space for the new item. + fn internalPut(self: *Self, orig_key: K) InternalPutResult { + var key = orig_key; + var value: V = undefined; + const start_index = self.keyToIndex(key); + var roll_over: usize = 0; + var distance_from_start_index: usize = 0; + var got_result_entry = false; + var result = InternalPutResult{ + .new_entry = undefined, + .old_kv = null, + }; + while (roll_over < self.entries.len) : ({ + roll_over += 1; + distance_from_start_index += 1; + }) { + const index = self.constrainIndex(start_index + roll_over); + const entry = &self.entries[index]; + + if (entry.used and !eql(entry.kv.key, key)) { + if (entry.distance_from_start_index < distance_from_start_index) { + // robin hood to the rescue + const tmp = entry.*; + self.max_distance_from_start_index = math.max(self.max_distance_from_start_index, distance_from_start_index); + if (!got_result_entry) { + got_result_entry = true; + result.new_entry = entry; + } + entry.* = Entry{ + .used = true, + .distance_from_start_index = distance_from_start_index, + .kv = KV{ + .key = key, + .value = value, + }, + }; + key = tmp.kv.key; + value = tmp.kv.value; + distance_from_start_index = tmp.distance_from_start_index; + } + continue; + } + + if (entry.used) { + result.old_kv = entry.kv; + } else { + // adding an entry. otherwise overwriting old value with + // same key + self.size += 1; + } + + self.max_distance_from_start_index = math.max(distance_from_start_index, self.max_distance_from_start_index); + if (!got_result_entry) { + result.new_entry = entry; + } + entry.* = Entry{ + .used = true, + .distance_from_start_index = distance_from_start_index, + .kv = KV{ + .key = key, + .value = value, + }, + }; + return result; + } + unreachable; // put into a full map + } + + fn internalGet(hm: Self, key: K) ?*KV { + const start_index = hm.keyToIndex(key); + { + var roll_over: usize = 0; + while (roll_over <= hm.max_distance_from_start_index) : (roll_over += 1) { + const index = hm.constrainIndex(start_index + roll_over); + const entry = &hm.entries[index]; + + if (!entry.used) return null; + if (eql(entry.kv.key, key)) return &entry.kv; + } + } + return null; + } + + fn keyToIndex(hm: Self, key: K) usize { + return hm.constrainIndex(usize(hash(key))); + } + + fn constrainIndex(hm: Self, i: usize) usize { + // this is an optimization for modulo of power of two integers; + // it requires hm.entries.len to always be a power of two + return i & (hm.entries.len - 1); + } + }; +} + +test "basic hash map usage" { + var map = AutoHashMap(i32, i32).init(std.heap.direct_allocator); + defer map.deinit(); + + testing.expect((try map.put(1, 11)) == null); + testing.expect((try map.put(2, 22)) == null); + testing.expect((try map.put(3, 33)) == null); + testing.expect((try map.put(4, 44)) == null); + + try map.putNoClobber(5, 55); + testing.expect((try map.put(5, 66)).?.value == 55); + testing.expect((try map.put(5, 55)).?.value == 66); + + const gop1 = try map.getOrPut(5); + testing.expect(gop1.found_existing == true); + testing.expect(gop1.kv.value == 55); + gop1.kv.value = 77; + testing.expect(map.get(5).?.value == 77); + + const gop2 = try map.getOrPut(99); + testing.expect(gop2.found_existing == false); + gop2.kv.value = 42; + testing.expect(map.get(99).?.value == 42); + + const gop3 = try map.getOrPutValue(5, 5); + testing.expect(gop3.value == 77); + + const gop4 = try map.getOrPutValue(100, 41); + testing.expect(gop4.value == 41); + + testing.expect(map.contains(2)); + testing.expect(map.get(2).?.value == 22); + testing.expect(map.getValue(2).? == 22); + + const rmv1 = map.remove(2); + testing.expect(rmv1.?.key == 2); + testing.expect(rmv1.?.value == 22); + testing.expect(map.remove(2) == null); + testing.expect(map.get(2) == null); + testing.expect(map.getValue(2) == null); + + map.removeAssertDiscard(3); +} + +test "iterator hash map" { + var reset_map = AutoHashMap(i32, i32).init(std.heap.direct_allocator); + defer reset_map.deinit(); + + try reset_map.putNoClobber(1, 11); + try reset_map.putNoClobber(2, 22); + try reset_map.putNoClobber(3, 33); + + // TODO this test depends on the hashing algorithm, because it assumes the + // order of the elements in the hashmap. This should not be the case. + var keys = [_]i32{ + 1, + 3, + 2, + }; + var values = [_]i32{ + 11, + 33, + 22, + }; + + var it = reset_map.iterator(); + var count: usize = 0; + while (it.next()) |next| { + testing.expect(next.key == keys[count]); + testing.expect(next.value == values[count]); + count += 1; + } + + testing.expect(count == 3); + testing.expect(it.next() == null); + it.reset(); + count = 0; + while (it.next()) |next| { + testing.expect(next.key == keys[count]); + testing.expect(next.value == values[count]); + count += 1; + if (count == 2) break; + } + + it.reset(); + var entry = it.next().?; + testing.expect(entry.key == keys[0]); + testing.expect(entry.value == values[0]); +} + +test "ensure capacity" { + var map = AutoHashMap(i32, i32).init(std.heap.direct_allocator); + defer map.deinit(); + + try map.ensureCapacity(20); + const initialCapacity = map.entries.len; + testing.expect(initialCapacity >= 20); + var i: i32 = 0; + while (i < 20) : (i += 1) { + testing.expect(map.putAssumeCapacity(i, i + 10) == null); + } + // shouldn't resize from putAssumeCapacity + testing.expect(initialCapacity == map.entries.len); +} + +pub fn getHashPtrAddrFn(comptime K: type) (fn (K) u32) { + return struct { + fn hash(key: K) u32 { + return getAutoHashFn(usize)(@ptrToInt(key)); + } + }.hash; +} + +pub fn getTrivialEqlFn(comptime K: type) (fn (K, K) bool) { + return struct { + fn eql(a: K, b: K) bool { + return a == b; + } + }.eql; +} + +pub fn getAutoHashFn(comptime K: type) (fn (K) u32) { + return struct { + fn hash(key: K) u32 { + var hasher = Wyhash.init(0); + autoHash(&hasher, key); + return @truncate(u32, hasher.final()); + } + }.hash; +} + +pub fn getAutoEqlFn(comptime K: type) (fn (K, K) bool) { + return struct { + fn eql(a: K, b: K) bool { + return meta.eql(a, b); + } + }.eql; +} diff --git a/lib/std/heap.zig b/lib/std/heap.zig new file mode 100644 index 0000000000..b968b6242f --- /dev/null +++ b/lib/std/heap.zig @@ -0,0 +1,948 @@ +const std = @import("std.zig"); +const debug = std.debug; +const assert = debug.assert; +const testing = std.testing; +const mem = std.mem; +const os = std.os; +const builtin = @import("builtin"); +const c = std.c; +const maxInt = std.math.maxInt; + +pub const LoggingAllocator = @import("heap/logging_allocator.zig").LoggingAllocator; + +const Allocator = mem.Allocator; + +pub const c_allocator = &c_allocator_state; +var c_allocator_state = Allocator{ + .reallocFn = cRealloc, + .shrinkFn = cShrink, +}; + +fn cRealloc(self: *Allocator, old_mem: []u8, old_align: u29, new_size: usize, new_align: u29) ![]u8 { + assert(new_align <= @alignOf(c_longdouble)); + const old_ptr = if (old_mem.len == 0) null else @ptrCast(*c_void, old_mem.ptr); + const buf = c.realloc(old_ptr, new_size) orelse return error.OutOfMemory; + return @ptrCast([*]u8, buf)[0..new_size]; +} + +fn cShrink(self: *Allocator, old_mem: []u8, old_align: u29, new_size: usize, new_align: u29) []u8 { + const old_ptr = @ptrCast(*c_void, old_mem.ptr); + const buf = c.realloc(old_ptr, new_size) orelse return old_mem[0..new_size]; + return @ptrCast([*]u8, buf)[0..new_size]; +} + +/// This allocator makes a syscall directly for every allocation and free. +/// Thread-safe and lock-free. +pub const direct_allocator = &direct_allocator_state; +var direct_allocator_state = Allocator{ + .reallocFn = DirectAllocator.realloc, + .shrinkFn = DirectAllocator.shrink, +}; + +const DirectAllocator = struct { + fn alloc(allocator: *Allocator, n: usize, alignment: u29) error{OutOfMemory}![]u8 { + if (n == 0) + return (([*]u8)(undefined))[0..0]; + + if (os.windows.is_the_target) { + const w = os.windows; + + // Although officially it's at least aligned to page boundary, + // Windows is known to reserve pages on a 64K boundary. It's + // even more likely that the requested alignment is <= 64K than + // 4K, so we're just allocating blindly and hoping for the best. + // see https://devblogs.microsoft.com/oldnewthing/?p=42223 + const addr = w.VirtualAlloc( + null, + n, + w.MEM_COMMIT | w.MEM_RESERVE, + w.PAGE_READWRITE, + ) catch return error.OutOfMemory; + + // If the allocation is sufficiently aligned, use it. + if (@ptrToInt(addr) & (alignment - 1) == 0) { + return @ptrCast([*]u8, addr)[0..n]; + } + + // If it wasn't, actually do an explicitely aligned allocation. + w.VirtualFree(addr, 0, w.MEM_RELEASE); + const alloc_size = n + alignment; + + const final_addr = while (true) { + // Reserve a range of memory large enough to find a sufficiently + // aligned address. + const reserved_addr = w.VirtualAlloc( + null, + alloc_size, + w.MEM_RESERVE, + w.PAGE_NOACCESS, + ) catch return error.OutOfMemory; + const aligned_addr = mem.alignForward(@ptrToInt(reserved_addr), alignment); + + // Release the reserved pages (not actually used). + w.VirtualFree(reserved_addr, 0, w.MEM_RELEASE); + + // At this point, it is possible that another thread has + // obtained some memory space that will cause the next + // VirtualAlloc call to fail. To handle this, we will retry + // until it succeeds. + const ptr = w.VirtualAlloc( + @intToPtr(*c_void, aligned_addr), + n, + w.MEM_COMMIT | w.MEM_RESERVE, + w.PAGE_READWRITE, + ) catch continue; + + return @ptrCast([*]u8, ptr)[0..n]; + }; + + return @ptrCast([*]u8, final_addr)[0..n]; + } + + const alloc_size = if (alignment <= mem.page_size) n else n + alignment; + const slice = os.mmap( + null, + mem.alignForward(alloc_size, mem.page_size), + os.PROT_READ | os.PROT_WRITE, + os.MAP_PRIVATE | os.MAP_ANONYMOUS, + -1, + 0, + ) catch return error.OutOfMemory; + if (alloc_size == n) return slice[0..n]; + + const aligned_addr = mem.alignForward(@ptrToInt(slice.ptr), alignment); + + // Unmap the extra bytes that were only requested in order to guarantee + // that the range of memory we were provided had a proper alignment in + // it somewhere. The extra bytes could be at the beginning, or end, or both. + const unused_start_len = aligned_addr - @ptrToInt(slice.ptr); + if (unused_start_len != 0) { + os.munmap(slice[0..unused_start_len]); + } + const aligned_end_addr = mem.alignForward(aligned_addr + n, mem.page_size); + const unused_end_len = @ptrToInt(slice.ptr) + slice.len - aligned_end_addr; + if (unused_end_len != 0) { + os.munmap(@intToPtr([*]align(mem.page_size) u8, aligned_end_addr)[0..unused_end_len]); + } + + return @intToPtr([*]u8, aligned_addr)[0..n]; + } + + fn shrink(allocator: *Allocator, old_mem_unaligned: []u8, old_align: u29, new_size: usize, new_align: u29) []u8 { + const old_mem = @alignCast(mem.page_size, old_mem_unaligned); + if (os.windows.is_the_target) { + const w = os.windows; + if (new_size == 0) { + // From the docs: + // "If the dwFreeType parameter is MEM_RELEASE, this parameter + // must be 0 (zero). The function frees the entire region that + // is reserved in the initial allocation call to VirtualAlloc." + // So we can only use MEM_RELEASE when actually releasing the + // whole allocation. + w.VirtualFree(old_mem.ptr, 0, w.MEM_RELEASE); + } else { + const base_addr = @ptrToInt(old_mem.ptr); + const old_addr_end = base_addr + old_mem.len; + const new_addr_end = base_addr + new_size; + const new_addr_end_rounded = mem.alignForward(new_addr_end, mem.page_size); + if (old_addr_end > new_addr_end_rounded) { + // For shrinking that is not releasing, we will only + // decommit the pages not needed anymore. + w.VirtualFree( + @intToPtr(*c_void, new_addr_end_rounded), + old_addr_end - new_addr_end_rounded, + w.MEM_DECOMMIT, + ); + } + } + return old_mem[0..new_size]; + } + const base_addr = @ptrToInt(old_mem.ptr); + const old_addr_end = base_addr + old_mem.len; + const new_addr_end = base_addr + new_size; + const new_addr_end_rounded = mem.alignForward(new_addr_end, mem.page_size); + if (old_addr_end > new_addr_end_rounded) { + const ptr = @intToPtr([*]align(mem.page_size) u8, new_addr_end_rounded); + os.munmap(ptr[0 .. old_addr_end - new_addr_end_rounded]); + } + return old_mem[0..new_size]; + } + + fn realloc(allocator: *Allocator, old_mem_unaligned: []u8, old_align: u29, new_size: usize, new_align: u29) ![]u8 { + const old_mem = @alignCast(mem.page_size, old_mem_unaligned); + if (os.windows.is_the_target) { + if (old_mem.len == 0) { + return alloc(allocator, new_size, new_align); + } + + if (new_size <= old_mem.len and new_align <= old_align) { + return shrink(allocator, old_mem, old_align, new_size, new_align); + } + + const w = os.windows; + const base_addr = @ptrToInt(old_mem.ptr); + + if (new_align > old_align and base_addr & (new_align - 1) != 0) { + // Current allocation doesn't satisfy the new alignment. + // For now we'll do a new one no matter what, but maybe + // there is something smarter to do instead. + const result = try alloc(allocator, new_size, new_align); + assert(old_mem.len != 0); + @memcpy(result.ptr, old_mem.ptr, std.math.min(old_mem.len, result.len)); + w.VirtualFree(old_mem.ptr, 0, w.MEM_RELEASE); + + return result; + } + + const old_addr_end = base_addr + old_mem.len; + const old_addr_end_rounded = mem.alignForward(old_addr_end, mem.page_size); + const new_addr_end = base_addr + new_size; + const new_addr_end_rounded = mem.alignForward(new_addr_end, mem.page_size); + if (new_addr_end_rounded == old_addr_end_rounded) { + // The reallocation fits in the already allocated pages. + return @ptrCast([*]u8, old_mem.ptr)[0..new_size]; + } + assert(new_addr_end_rounded > old_addr_end_rounded); + + // We need to commit new pages. + const additional_size = new_addr_end - old_addr_end_rounded; + const realloc_addr = w.kernel32.VirtualAlloc( + @intToPtr(*c_void, old_addr_end_rounded), + additional_size, + w.MEM_COMMIT | w.MEM_RESERVE, + w.PAGE_READWRITE, + ) orelse { + // Committing new pages at the end of the existing allocation + // failed, we need to try a new one. + const new_alloc_mem = try alloc(allocator, new_size, new_align); + @memcpy(new_alloc_mem.ptr, old_mem.ptr, old_mem.len); + w.VirtualFree(old_mem.ptr, 0, w.MEM_RELEASE); + + return new_alloc_mem; + }; + + assert(@ptrToInt(realloc_addr) == old_addr_end_rounded); + return @ptrCast([*]u8, old_mem.ptr)[0..new_size]; + } + if (new_size <= old_mem.len and new_align <= old_align) { + return shrink(allocator, old_mem, old_align, new_size, new_align); + } + const result = try alloc(allocator, new_size, new_align); + if (old_mem.len != 0) { + @memcpy(result.ptr, old_mem.ptr, std.math.min(old_mem.len, result.len)); + os.munmap(old_mem); + } + return result; + } +}; + +pub const HeapAllocator = switch (builtin.os) { + .windows => struct { + allocator: Allocator, + heap_handle: ?HeapHandle, + + const HeapHandle = os.windows.HANDLE; + + pub fn init() HeapAllocator { + return HeapAllocator{ + .allocator = Allocator{ + .reallocFn = realloc, + .shrinkFn = shrink, + }, + .heap_handle = null, + }; + } + + pub fn deinit(self: *HeapAllocator) void { + if (self.heap_handle) |heap_handle| { + os.windows.HeapDestroy(heap_handle); + } + } + + fn alloc(allocator: *Allocator, n: usize, alignment: u29) error{OutOfMemory}![]u8 { + const self = @fieldParentPtr(HeapAllocator, "allocator", allocator); + if (n == 0) + return (([*]u8)(undefined))[0..0]; + + const amt = n + alignment + @sizeOf(usize); + const optional_heap_handle = @atomicLoad(?HeapHandle, &self.heap_handle, builtin.AtomicOrder.SeqCst); + const heap_handle = optional_heap_handle orelse blk: { + const options = if (builtin.single_threaded) os.windows.HEAP_NO_SERIALIZE else 0; + const hh = os.windows.kernel32.HeapCreate(options, amt, 0) orelse return error.OutOfMemory; + const other_hh = @cmpxchgStrong(?HeapHandle, &self.heap_handle, null, hh, builtin.AtomicOrder.SeqCst, builtin.AtomicOrder.SeqCst) orelse break :blk hh; + os.windows.HeapDestroy(hh); + break :blk other_hh.?; // can't be null because of the cmpxchg + }; + const ptr = os.windows.kernel32.HeapAlloc(heap_handle, 0, amt) orelse return error.OutOfMemory; + const root_addr = @ptrToInt(ptr); + const adjusted_addr = mem.alignForward(root_addr, alignment); + const record_addr = adjusted_addr + n; + @intToPtr(*align(1) usize, record_addr).* = root_addr; + return @intToPtr([*]u8, adjusted_addr)[0..n]; + } + + fn shrink(allocator: *Allocator, old_mem: []u8, old_align: u29, new_size: usize, new_align: u29) []u8 { + return realloc(allocator, old_mem, old_align, new_size, new_align) catch { + const old_adjusted_addr = @ptrToInt(old_mem.ptr); + const old_record_addr = old_adjusted_addr + old_mem.len; + const root_addr = @intToPtr(*align(1) usize, old_record_addr).*; + const old_ptr = @intToPtr(*c_void, root_addr); + const new_record_addr = old_record_addr - new_size + old_mem.len; + @intToPtr(*align(1) usize, new_record_addr).* = root_addr; + return old_mem[0..new_size]; + }; + } + + fn realloc(allocator: *Allocator, old_mem: []u8, old_align: u29, new_size: usize, new_align: u29) ![]u8 { + if (old_mem.len == 0) return alloc(allocator, new_size, new_align); + + const self = @fieldParentPtr(HeapAllocator, "allocator", allocator); + const old_adjusted_addr = @ptrToInt(old_mem.ptr); + const old_record_addr = old_adjusted_addr + old_mem.len; + const root_addr = @intToPtr(*align(1) usize, old_record_addr).*; + const old_ptr = @intToPtr(*c_void, root_addr); + + if (new_size == 0) { + os.windows.HeapFree(self.heap_handle.?, 0, old_ptr); + return old_mem[0..0]; + } + + const amt = new_size + new_align + @sizeOf(usize); + const new_ptr = os.windows.kernel32.HeapReAlloc( + self.heap_handle.?, + 0, + old_ptr, + amt, + ) orelse return error.OutOfMemory; + const offset = old_adjusted_addr - root_addr; + const new_root_addr = @ptrToInt(new_ptr); + var new_adjusted_addr = new_root_addr + offset; + const offset_is_valid = new_adjusted_addr + new_size + @sizeOf(usize) <= new_root_addr + amt; + const offset_is_aligned = new_adjusted_addr % new_align == 0; + if (!offset_is_valid or !offset_is_aligned) { + // If HeapReAlloc didn't happen to move the memory to the new alignment, + // or the memory starting at the old offset would be outside of the new allocation, + // then we need to copy the memory to a valid aligned address and use that + const new_aligned_addr = mem.alignForward(new_root_addr, new_align); + @memcpy(@intToPtr([*]u8, new_aligned_addr), @intToPtr([*]u8, new_adjusted_addr), std.math.min(old_mem.len, new_size)); + new_adjusted_addr = new_aligned_addr; + } + const new_record_addr = new_adjusted_addr + new_size; + @intToPtr(*align(1) usize, new_record_addr).* = new_root_addr; + return @intToPtr([*]u8, new_adjusted_addr)[0..new_size]; + } + }, + else => @compileError("Unsupported OS"), +}; + +/// This allocator takes an existing allocator, wraps it, and provides an interface +/// where you can allocate without freeing, and then free it all together. +pub const ArenaAllocator = struct { + pub allocator: Allocator, + + child_allocator: *Allocator, + buffer_list: std.SinglyLinkedList([]u8), + end_index: usize, + + const BufNode = std.SinglyLinkedList([]u8).Node; + + pub fn init(child_allocator: *Allocator) ArenaAllocator { + return ArenaAllocator{ + .allocator = Allocator{ + .reallocFn = realloc, + .shrinkFn = shrink, + }, + .child_allocator = child_allocator, + .buffer_list = std.SinglyLinkedList([]u8).init(), + .end_index = 0, + }; + } + + pub fn deinit(self: *ArenaAllocator) void { + var it = self.buffer_list.first; + while (it) |node| { + // this has to occur before the free because the free frees node + const next_it = node.next; + self.child_allocator.free(node.data); + it = next_it; + } + } + + fn createNode(self: *ArenaAllocator, prev_len: usize, minimum_size: usize) !*BufNode { + const actual_min_size = minimum_size + @sizeOf(BufNode); + var len = prev_len; + while (true) { + len += len / 2; + len += mem.page_size - @rem(len, mem.page_size); + if (len >= actual_min_size) break; + } + const buf = try self.child_allocator.alignedAlloc(u8, @alignOf(BufNode), len); + const buf_node_slice = @bytesToSlice(BufNode, buf[0..@sizeOf(BufNode)]); + const buf_node = &buf_node_slice[0]; + buf_node.* = BufNode{ + .data = buf, + .next = null, + }; + self.buffer_list.prepend(buf_node); + self.end_index = 0; + return buf_node; + } + + fn alloc(allocator: *Allocator, n: usize, alignment: u29) ![]u8 { + const self = @fieldParentPtr(ArenaAllocator, "allocator", allocator); + + var cur_node = if (self.buffer_list.first) |first_node| first_node else try self.createNode(0, n + alignment); + while (true) { + const cur_buf = cur_node.data[@sizeOf(BufNode)..]; + const addr = @ptrToInt(cur_buf.ptr) + self.end_index; + const adjusted_addr = mem.alignForward(addr, alignment); + const adjusted_index = self.end_index + (adjusted_addr - addr); + const new_end_index = adjusted_index + n; + if (new_end_index > cur_buf.len) { + cur_node = try self.createNode(cur_buf.len, n + alignment); + continue; + } + const result = cur_buf[adjusted_index..new_end_index]; + self.end_index = new_end_index; + return result; + } + } + + fn realloc(allocator: *Allocator, old_mem: []u8, old_align: u29, new_size: usize, new_align: u29) ![]u8 { + if (new_size <= old_mem.len and new_align <= new_size) { + // We can't do anything with the memory, so tell the client to keep it. + return error.OutOfMemory; + } else { + const result = try alloc(allocator, new_size, new_align); + @memcpy(result.ptr, old_mem.ptr, std.math.min(old_mem.len, result.len)); + return result; + } + } + + fn shrink(allocator: *Allocator, old_mem: []u8, old_align: u29, new_size: usize, new_align: u29) []u8 { + return old_mem[0..new_size]; + } +}; + +pub const FixedBufferAllocator = struct { + allocator: Allocator, + end_index: usize, + buffer: []u8, + + pub fn init(buffer: []u8) FixedBufferAllocator { + return FixedBufferAllocator{ + .allocator = Allocator{ + .reallocFn = realloc, + .shrinkFn = shrink, + }, + .buffer = buffer, + .end_index = 0, + }; + } + + fn alloc(allocator: *Allocator, n: usize, alignment: u29) ![]u8 { + const self = @fieldParentPtr(FixedBufferAllocator, "allocator", allocator); + const addr = @ptrToInt(self.buffer.ptr) + self.end_index; + const adjusted_addr = mem.alignForward(addr, alignment); + const adjusted_index = self.end_index + (adjusted_addr - addr); + const new_end_index = adjusted_index + n; + if (new_end_index > self.buffer.len) { + return error.OutOfMemory; + } + const result = self.buffer[adjusted_index..new_end_index]; + self.end_index = new_end_index; + + return result; + } + + fn realloc(allocator: *Allocator, old_mem: []u8, old_align: u29, new_size: usize, new_align: u29) ![]u8 { + const self = @fieldParentPtr(FixedBufferAllocator, "allocator", allocator); + assert(old_mem.len <= self.end_index); + if (old_mem.ptr == self.buffer.ptr + self.end_index - old_mem.len and + mem.alignForward(@ptrToInt(old_mem.ptr), new_align) == @ptrToInt(old_mem.ptr)) + { + const start_index = self.end_index - old_mem.len; + const new_end_index = start_index + new_size; + if (new_end_index > self.buffer.len) return error.OutOfMemory; + const result = self.buffer[start_index..new_end_index]; + self.end_index = new_end_index; + return result; + } else if (new_size <= old_mem.len and new_align <= old_align) { + // We can't do anything with the memory, so tell the client to keep it. + return error.OutOfMemory; + } else { + const result = try alloc(allocator, new_size, new_align); + @memcpy(result.ptr, old_mem.ptr, std.math.min(old_mem.len, result.len)); + return result; + } + } + + fn shrink(allocator: *Allocator, old_mem: []u8, old_align: u29, new_size: usize, new_align: u29) []u8 { + return old_mem[0..new_size]; + } + + pub fn reset(self: *FixedBufferAllocator) void { + self.end_index = 0; + } +}; + +// FIXME: Exposed LLVM intrinsics is a bug +// See: https://github.com/ziglang/zig/issues/2291 +extern fn @"llvm.wasm.memory.size.i32"(u32) u32; +extern fn @"llvm.wasm.memory.grow.i32"(u32, u32) i32; + +pub const wasm_allocator = &wasm_allocator_state.allocator; +var wasm_allocator_state = WasmAllocator{ + .allocator = Allocator{ + .reallocFn = WasmAllocator.realloc, + .shrinkFn = WasmAllocator.shrink, + }, + .start_ptr = undefined, + .num_pages = 0, + .end_index = 0, +}; + +const WasmAllocator = struct { + allocator: Allocator, + start_ptr: [*]u8, + num_pages: usize, + end_index: usize, + + comptime { + if (builtin.arch != .wasm32) { + @compileError("WasmAllocator is only available for wasm32 arch"); + } + } + + fn alloc(allocator: *Allocator, size: usize, alignment: u29) ![]u8 { + const self = @fieldParentPtr(WasmAllocator, "allocator", allocator); + + const addr = @ptrToInt(self.start_ptr) + self.end_index; + const adjusted_addr = mem.alignForward(addr, alignment); + const adjusted_index = self.end_index + (adjusted_addr - addr); + const new_end_index = adjusted_index + size; + + if (new_end_index > self.num_pages * mem.page_size) { + const required_memory = new_end_index - (self.num_pages * mem.page_size); + + var num_pages: usize = required_memory / mem.page_size; + if (required_memory % mem.page_size != 0) { + num_pages += 1; + } + + const prev_page = @"llvm.wasm.memory.grow.i32"(0, @intCast(u32, num_pages)); + if (prev_page == -1) { + return error.OutOfMemory; + } + + self.num_pages += num_pages; + } + + const result = self.start_ptr[adjusted_index..new_end_index]; + self.end_index = new_end_index; + + return result; + } + + // Check if memory is the last "item" and is aligned correctly + fn is_last_item(allocator: *Allocator, memory: []u8, alignment: u29) bool { + const self = @fieldParentPtr(WasmAllocator, "allocator", allocator); + return memory.ptr == self.start_ptr + self.end_index - memory.len and mem.alignForward(@ptrToInt(memory.ptr), alignment) == @ptrToInt(memory.ptr); + } + + fn realloc(allocator: *Allocator, old_mem: []u8, old_align: u29, new_size: usize, new_align: u29) ![]u8 { + const self = @fieldParentPtr(WasmAllocator, "allocator", allocator); + + // Initialize start_ptr at the first realloc + if (self.num_pages == 0) { + self.start_ptr = @intToPtr([*]u8, @intCast(usize, @"llvm.wasm.memory.size.i32"(0)) * mem.page_size); + } + + if (is_last_item(allocator, old_mem, new_align)) { + const start_index = self.end_index - old_mem.len; + const new_end_index = start_index + new_size; + + if (new_end_index > self.num_pages * mem.page_size) { + _ = try alloc(allocator, new_end_index - self.end_index, new_align); + } + const result = self.start_ptr[start_index..new_end_index]; + + self.end_index = new_end_index; + return result; + } else if (new_size <= old_mem.len and new_align <= old_align) { + return error.OutOfMemory; + } else { + const result = try alloc(allocator, new_size, new_align); + mem.copy(u8, result, old_mem); + return result; + } + } + + fn shrink(allocator: *Allocator, old_mem: []u8, old_align: u29, new_size: usize, new_align: u29) []u8 { + return old_mem[0..new_size]; + } +}; + +pub const ThreadSafeFixedBufferAllocator = blk: { + if (builtin.single_threaded) { + break :blk FixedBufferAllocator; + } else { + // lock free + break :blk struct { + allocator: Allocator, + end_index: usize, + buffer: []u8, + + pub fn init(buffer: []u8) ThreadSafeFixedBufferAllocator { + return ThreadSafeFixedBufferAllocator{ + .allocator = Allocator{ + .reallocFn = realloc, + .shrinkFn = shrink, + }, + .buffer = buffer, + .end_index = 0, + }; + } + + fn alloc(allocator: *Allocator, n: usize, alignment: u29) ![]u8 { + const self = @fieldParentPtr(ThreadSafeFixedBufferAllocator, "allocator", allocator); + var end_index = @atomicLoad(usize, &self.end_index, builtin.AtomicOrder.SeqCst); + while (true) { + const addr = @ptrToInt(self.buffer.ptr) + end_index; + const adjusted_addr = mem.alignForward(addr, alignment); + const adjusted_index = end_index + (adjusted_addr - addr); + const new_end_index = adjusted_index + n; + if (new_end_index > self.buffer.len) { + return error.OutOfMemory; + } + end_index = @cmpxchgWeak(usize, &self.end_index, end_index, new_end_index, builtin.AtomicOrder.SeqCst, builtin.AtomicOrder.SeqCst) orelse return self.buffer[adjusted_index..new_end_index]; + } + } + + fn realloc(allocator: *Allocator, old_mem: []u8, old_align: u29, new_size: usize, new_align: u29) ![]u8 { + if (new_size <= old_mem.len and new_align <= old_align) { + // We can't do anything useful with the memory, tell the client to keep it. + return error.OutOfMemory; + } else { + const result = try alloc(allocator, new_size, new_align); + @memcpy(result.ptr, old_mem.ptr, std.math.min(old_mem.len, result.len)); + return result; + } + } + + fn shrink(allocator: *Allocator, old_mem: []u8, old_align: u29, new_size: usize, new_align: u29) []u8 { + return old_mem[0..new_size]; + } + }; + } +}; + +pub fn stackFallback(comptime size: usize, fallback_allocator: *Allocator) StackFallbackAllocator(size) { + return StackFallbackAllocator(size){ + .buffer = undefined, + .fallback_allocator = fallback_allocator, + .fixed_buffer_allocator = undefined, + .allocator = Allocator{ + .reallocFn = StackFallbackAllocator(size).realloc, + .shrinkFn = StackFallbackAllocator(size).shrink, + }, + }; +} + +pub fn StackFallbackAllocator(comptime size: usize) type { + return struct { + const Self = @This(); + + buffer: [size]u8, + allocator: Allocator, + fallback_allocator: *Allocator, + fixed_buffer_allocator: FixedBufferAllocator, + + pub fn get(self: *Self) *Allocator { + self.fixed_buffer_allocator = FixedBufferAllocator.init(self.buffer[0..]); + return &self.allocator; + } + + fn realloc(allocator: *Allocator, old_mem: []u8, old_align: u29, new_size: usize, new_align: u29) ![]u8 { + const self = @fieldParentPtr(Self, "allocator", allocator); + const in_buffer = @ptrToInt(old_mem.ptr) >= @ptrToInt(&self.buffer) and + @ptrToInt(old_mem.ptr) < @ptrToInt(&self.buffer) + self.buffer.len; + if (in_buffer) { + return FixedBufferAllocator.realloc( + &self.fixed_buffer_allocator.allocator, + old_mem, + old_align, + new_size, + new_align, + ) catch { + const result = try self.fallback_allocator.reallocFn( + self.fallback_allocator, + ([*]u8)(undefined)[0..0], + undefined, + new_size, + new_align, + ); + mem.copy(u8, result, old_mem); + return result; + }; + } + return self.fallback_allocator.reallocFn( + self.fallback_allocator, + old_mem, + old_align, + new_size, + new_align, + ); + } + + fn shrink(allocator: *Allocator, old_mem: []u8, old_align: u29, new_size: usize, new_align: u29) []u8 { + const self = @fieldParentPtr(Self, "allocator", allocator); + const in_buffer = @ptrToInt(old_mem.ptr) >= @ptrToInt(&self.buffer) and + @ptrToInt(old_mem.ptr) < @ptrToInt(&self.buffer) + self.buffer.len; + if (in_buffer) { + return FixedBufferAllocator.shrink( + &self.fixed_buffer_allocator.allocator, + old_mem, + old_align, + new_size, + new_align, + ); + } + return self.fallback_allocator.shrinkFn( + self.fallback_allocator, + old_mem, + old_align, + new_size, + new_align, + ); + } + }; +} + +test "c_allocator" { + if (builtin.link_libc) { + var slice = try c_allocator.alloc(u8, 50); + defer c_allocator.free(slice); + slice = try c_allocator.realloc(slice, 100); + } +} + +test "DirectAllocator" { + const allocator = direct_allocator; + try testAllocator(allocator); + try testAllocatorAligned(allocator, 16); + try testAllocatorLargeAlignment(allocator); + try testAllocatorAlignedShrink(allocator); + + if (builtin.os == .windows) { + // Trying really large alignment. As mentionned in the implementation, + // VirtualAlloc returns 64K aligned addresses. We want to make sure + // DirectAllocator works beyond that, as it's not tested by + // `testAllocatorLargeAlignment`. + const slice = try allocator.alignedAlloc(u8, 1 << 20, 128); + slice[0] = 0x12; + slice[127] = 0x34; + allocator.free(slice); + } +} + +test "HeapAllocator" { + if (builtin.os == .windows) { + var heap_allocator = HeapAllocator.init(); + defer heap_allocator.deinit(); + + const allocator = &heap_allocator.allocator; + try testAllocator(allocator); + try testAllocatorAligned(allocator, 16); + try testAllocatorLargeAlignment(allocator); + try testAllocatorAlignedShrink(allocator); + } +} + +test "ArenaAllocator" { + var arena_allocator = ArenaAllocator.init(direct_allocator); + defer arena_allocator.deinit(); + + try testAllocator(&arena_allocator.allocator); + try testAllocatorAligned(&arena_allocator.allocator, 16); + try testAllocatorLargeAlignment(&arena_allocator.allocator); + try testAllocatorAlignedShrink(&arena_allocator.allocator); +} + +var test_fixed_buffer_allocator_memory: [80000 * @sizeOf(u64)]u8 = undefined; +test "FixedBufferAllocator" { + var fixed_buffer_allocator = FixedBufferAllocator.init(test_fixed_buffer_allocator_memory[0..]); + + try testAllocator(&fixed_buffer_allocator.allocator); + try testAllocatorAligned(&fixed_buffer_allocator.allocator, 16); + try testAllocatorLargeAlignment(&fixed_buffer_allocator.allocator); + try testAllocatorAlignedShrink(&fixed_buffer_allocator.allocator); +} + +test "FixedBufferAllocator.reset" { + var buf: [8]u8 align(@alignOf(u64)) = undefined; + var fba = FixedBufferAllocator.init(buf[0..]); + + const X = 0xeeeeeeeeeeeeeeee; + const Y = 0xffffffffffffffff; + + var x = try fba.allocator.create(u64); + x.* = X; + testing.expectError(error.OutOfMemory, fba.allocator.create(u64)); + + fba.reset(); + var y = try fba.allocator.create(u64); + y.* = Y; + + // we expect Y to have overwritten X. + testing.expect(x.* == y.*); + testing.expect(y.* == Y); +} + +test "FixedBufferAllocator Reuse memory on realloc" { + var small_fixed_buffer: [10]u8 = undefined; + // check if we re-use the memory + { + var fixed_buffer_allocator = FixedBufferAllocator.init(small_fixed_buffer[0..]); + + var slice0 = try fixed_buffer_allocator.allocator.alloc(u8, 5); + testing.expect(slice0.len == 5); + var slice1 = try fixed_buffer_allocator.allocator.realloc(slice0, 10); + testing.expect(slice1.ptr == slice0.ptr); + testing.expect(slice1.len == 10); + testing.expectError(error.OutOfMemory, fixed_buffer_allocator.allocator.realloc(slice1, 11)); + } + // check that we don't re-use the memory if it's not the most recent block + { + var fixed_buffer_allocator = FixedBufferAllocator.init(small_fixed_buffer[0..]); + + var slice0 = try fixed_buffer_allocator.allocator.alloc(u8, 2); + slice0[0] = 1; + slice0[1] = 2; + var slice1 = try fixed_buffer_allocator.allocator.alloc(u8, 2); + var slice2 = try fixed_buffer_allocator.allocator.realloc(slice0, 4); + testing.expect(slice0.ptr != slice2.ptr); + testing.expect(slice1.ptr != slice2.ptr); + testing.expect(slice2[0] == 1); + testing.expect(slice2[1] == 2); + } +} + +test "ThreadSafeFixedBufferAllocator" { + var fixed_buffer_allocator = ThreadSafeFixedBufferAllocator.init(test_fixed_buffer_allocator_memory[0..]); + + try testAllocator(&fixed_buffer_allocator.allocator); + try testAllocatorAligned(&fixed_buffer_allocator.allocator, 16); + try testAllocatorLargeAlignment(&fixed_buffer_allocator.allocator); + try testAllocatorAlignedShrink(&fixed_buffer_allocator.allocator); +} + +fn testAllocator(allocator: *mem.Allocator) !void { + var slice = try allocator.alloc(*i32, 100); + testing.expect(slice.len == 100); + for (slice) |*item, i| { + item.* = try allocator.create(i32); + item.*.* = @intCast(i32, i); + } + + slice = try allocator.realloc(slice, 20000); + testing.expect(slice.len == 20000); + + for (slice[0..100]) |item, i| { + testing.expect(item.* == @intCast(i32, i)); + allocator.destroy(item); + } + + slice = allocator.shrink(slice, 50); + testing.expect(slice.len == 50); + slice = allocator.shrink(slice, 25); + testing.expect(slice.len == 25); + slice = allocator.shrink(slice, 0); + testing.expect(slice.len == 0); + slice = try allocator.realloc(slice, 10); + testing.expect(slice.len == 10); + + allocator.free(slice); +} + +fn testAllocatorAligned(allocator: *mem.Allocator, comptime alignment: u29) !void { + // initial + var slice = try allocator.alignedAlloc(u8, alignment, 10); + testing.expect(slice.len == 10); + // grow + slice = try allocator.realloc(slice, 100); + testing.expect(slice.len == 100); + // shrink + slice = allocator.shrink(slice, 10); + testing.expect(slice.len == 10); + // go to zero + slice = allocator.shrink(slice, 0); + testing.expect(slice.len == 0); + // realloc from zero + slice = try allocator.realloc(slice, 100); + testing.expect(slice.len == 100); + // shrink with shrink + slice = allocator.shrink(slice, 10); + testing.expect(slice.len == 10); + // shrink to zero + slice = allocator.shrink(slice, 0); + testing.expect(slice.len == 0); +} + +fn testAllocatorLargeAlignment(allocator: *mem.Allocator) mem.Allocator.Error!void { + //Maybe a platform's page_size is actually the same as or + // very near usize? + if (mem.page_size << 2 > maxInt(usize)) return; + + const USizeShift = @IntType(false, std.math.log2(usize.bit_count)); + const large_align = u29(mem.page_size << 2); + + var align_mask: usize = undefined; + _ = @shlWithOverflow(usize, ~usize(0), USizeShift(@ctz(u29, large_align)), &align_mask); + + var slice = try allocator.alignedAlloc(u8, large_align, 500); + testing.expect(@ptrToInt(slice.ptr) & align_mask == @ptrToInt(slice.ptr)); + + slice = allocator.shrink(slice, 100); + testing.expect(@ptrToInt(slice.ptr) & align_mask == @ptrToInt(slice.ptr)); + + slice = try allocator.realloc(slice, 5000); + testing.expect(@ptrToInt(slice.ptr) & align_mask == @ptrToInt(slice.ptr)); + + slice = allocator.shrink(slice, 10); + testing.expect(@ptrToInt(slice.ptr) & align_mask == @ptrToInt(slice.ptr)); + + slice = try allocator.realloc(slice, 20000); + testing.expect(@ptrToInt(slice.ptr) & align_mask == @ptrToInt(slice.ptr)); + + allocator.free(slice); +} + +fn testAllocatorAlignedShrink(allocator: *mem.Allocator) mem.Allocator.Error!void { + var debug_buffer: [1000]u8 = undefined; + const debug_allocator = &FixedBufferAllocator.init(&debug_buffer).allocator; + + const alloc_size = mem.page_size * 2 + 50; + var slice = try allocator.alignedAlloc(u8, 16, alloc_size); + defer allocator.free(slice); + + var stuff_to_free = std.ArrayList([]align(16) u8).init(debug_allocator); + // On Windows, VirtualAlloc returns addresses aligned to a 64K boundary, + // which is 16 pages, hence the 32. This test may require to increase + // the size of the allocations feeding the `allocator` parameter if they + // fail, because of this high over-alignment we want to have. + while (@ptrToInt(slice.ptr) == mem.alignForward(@ptrToInt(slice.ptr), mem.page_size * 32)) { + try stuff_to_free.append(slice); + slice = try allocator.alignedAlloc(u8, 16, alloc_size); + } + while (stuff_to_free.popOrNull()) |item| { + allocator.free(item); + } + slice[0] = 0x12; + slice[60] = 0x34; + + // realloc to a smaller size but with a larger alignment + slice = try allocator.alignedRealloc(slice, mem.page_size * 32, alloc_size / 2); + testing.expect(slice[0] == 0x12); + testing.expect(slice[60] == 0x34); +} diff --git a/lib/std/heap/logging_allocator.zig b/lib/std/heap/logging_allocator.zig new file mode 100644 index 0000000000..c1f09a1aad --- /dev/null +++ b/lib/std/heap/logging_allocator.zig @@ -0,0 +1,53 @@ +const std = @import("../std.zig"); +const Allocator = std.mem.Allocator; + +const AnyErrorOutStream = std.io.OutStream(anyerror); + +/// This allocator is used in front of another allocator and logs to the provided stream +/// on every call to the allocator. Stream errors are ignored. +/// If https://github.com/ziglang/zig/issues/2586 is implemented, this API can be improved. +pub const LoggingAllocator = struct { + allocator: Allocator, + parent_allocator: *Allocator, + out_stream: *AnyErrorOutStream, + + const Self = @This(); + + pub fn init(parent_allocator: *Allocator, out_stream: *AnyErrorOutStream) Self { + return Self{ + .allocator = Allocator{ + .reallocFn = realloc, + .shrinkFn = shrink, + }, + .parent_allocator = parent_allocator, + .out_stream = out_stream, + }; + } + + fn realloc(allocator: *Allocator, old_mem: []u8, old_align: u29, new_size: usize, new_align: u29) ![]u8 { + const self = @fieldParentPtr(Self, "allocator", allocator); + if (old_mem.len == 0) { + self.out_stream.print("allocation of {} ", new_size) catch {}; + } else { + self.out_stream.print("resize from {} to {} ", old_mem.len, new_size) catch {}; + } + const result = self.parent_allocator.reallocFn(self.parent_allocator, old_mem, old_align, new_size, new_align); + if (result) |buff| { + self.out_stream.print("success!\n") catch {}; + } else |err| { + self.out_stream.print("failure!\n") catch {}; + } + return result; + } + + fn shrink(allocator: *Allocator, old_mem: []u8, old_align: u29, new_size: usize, new_align: u29) []u8 { + const self = @fieldParentPtr(Self, "allocator", allocator); + const result = self.parent_allocator.shrinkFn(self.parent_allocator, old_mem, old_align, new_size, new_align); + if (new_size == 0) { + self.out_stream.print("free of {} bytes success!\n", old_mem.len) catch {}; + } else { + self.out_stream.print("shrink from {} bytes to {} bytes success!\n", old_mem.len, new_size) catch {}; + } + return result; + } +}; diff --git a/lib/std/http.zig b/lib/std/http.zig new file mode 100644 index 0000000000..acb005a75f --- /dev/null +++ b/lib/std/http.zig @@ -0,0 +1,5 @@ +test "std.http" { + _ = @import("http/headers.zig"); +} + +pub const Headers = @import("http/headers.zig").Headers; diff --git a/lib/std/http/headers.zig b/lib/std/http/headers.zig new file mode 100644 index 0000000000..a8dfa68629 --- /dev/null +++ b/lib/std/http/headers.zig @@ -0,0 +1,614 @@ +// HTTP Header data structure/type +// Based on lua-http's http.header module +// +// Design criteria: +// - the same header field is allowed more than once +// - must be able to fetch separate occurrences (important for some headers e.g. Set-Cookie) +// - optionally available as comma separated list +// - http2 adds flag to headers that they should never be indexed +// - header order should be recoverable +// +// Headers are implemented as an array of entries. +// An index of field name => array indices is kept. + +const std = @import("../std.zig"); +const debug = std.debug; +const assert = debug.assert; +const testing = std.testing; +const mem = std.mem; +const Allocator = mem.Allocator; + +fn never_index_default(name: []const u8) bool { + if (mem.eql(u8, "authorization", name)) return true; + if (mem.eql(u8, "proxy-authorization", name)) return true; + if (mem.eql(u8, "cookie", name)) return true; + if (mem.eql(u8, "set-cookie", name)) return true; + return false; +} + +const HeaderEntry = struct { + allocator: *Allocator, + pub name: []const u8, + pub value: []u8, + pub never_index: bool, + + const Self = @This(); + + fn init(allocator: *Allocator, name: []const u8, value: []const u8, never_index: ?bool) !Self { + return Self{ + .allocator = allocator, + .name = name, // takes reference + .value = try mem.dupe(allocator, u8, value), + .never_index = never_index orelse never_index_default(name), + }; + } + + fn deinit(self: Self) void { + self.allocator.free(self.value); + } + + pub fn modify(self: *Self, value: []const u8, never_index: ?bool) !void { + const old_len = self.value.len; + if (value.len > old_len) { + self.value = try self.allocator.realloc(self.value, value.len); + } else if (value.len < old_len) { + self.value = self.allocator.shrink(self.value, value.len); + } + mem.copy(u8, self.value, value); + self.never_index = never_index orelse never_index_default(self.name); + } + + fn compare(a: HeaderEntry, b: HeaderEntry) bool { + if (a.name.ptr != b.name.ptr and a.name.len != b.name.len) { + // Things beginning with a colon *must* be before others + const a_is_colon = a.name[0] == ':'; + const b_is_colon = b.name[0] == ':'; + if (a_is_colon and !b_is_colon) { + return true; + } else if (!a_is_colon and b_is_colon) { + return false; + } + + // Sort lexicographically on header name + return mem.compare(u8, a.name, b.name) == mem.Compare.LessThan; + } + + // Sort lexicographically on header value + if (!mem.eql(u8, a.value, b.value)) { + return mem.compare(u8, a.value, b.value) == mem.Compare.LessThan; + } + + // Doesn't matter here; need to pick something for sort consistency + return a.never_index; + } +}; + +var test_memory: [32 * 1024]u8 = undefined; +var test_fba_state = std.heap.FixedBufferAllocator.init(&test_memory); +const test_allocator = &test_fba_state.allocator; + +test "HeaderEntry" { + var e = try HeaderEntry.init(test_allocator, "foo", "bar", null); + defer e.deinit(); + testing.expectEqualSlices(u8, "foo", e.name); + testing.expectEqualSlices(u8, "bar", e.value); + testing.expectEqual(false, e.never_index); + + try e.modify("longer value", null); + testing.expectEqualSlices(u8, "longer value", e.value); + + // shorter value + try e.modify("x", null); + testing.expectEqualSlices(u8, "x", e.value); +} + +const HeaderList = std.ArrayList(HeaderEntry); +const HeaderIndexList = std.ArrayList(usize); +const HeaderIndex = std.StringHashMap(HeaderIndexList); + +pub const Headers = struct { + // the owned header field name is stored in the index as part of the key + allocator: *Allocator, + data: HeaderList, + index: HeaderIndex, + + const Self = @This(); + + pub fn init(allocator: *Allocator) Self { + return Self{ + .allocator = allocator, + .data = HeaderList.init(allocator), + .index = HeaderIndex.init(allocator), + }; + } + + pub fn deinit(self: Self) void { + { + var it = self.index.iterator(); + while (it.next()) |kv| { + var dex = &kv.value; + dex.deinit(); + self.allocator.free(kv.key); + } + self.index.deinit(); + } + { + var it = self.data.iterator(); + while (it.next()) |entry| { + entry.deinit(); + } + self.data.deinit(); + } + } + + pub fn clone(self: Self, allocator: *Allocator) !Self { + var other = Headers.init(allocator); + errdefer other.deinit(); + try other.data.ensureCapacity(self.data.count()); + try other.index.initCapacity(self.index.entries.len); + var it = self.data.iterator(); + while (it.next()) |entry| { + try other.append(entry.name, entry.value, entry.never_index); + } + return other; + } + + pub fn count(self: Self) usize { + return self.data.count(); + } + + pub const Iterator = HeaderList.Iterator; + + pub fn iterator(self: Self) Iterator { + return self.data.iterator(); + } + + pub fn append(self: *Self, name: []const u8, value: []const u8, never_index: ?bool) !void { + const n = self.data.count() + 1; + try self.data.ensureCapacity(n); + var entry: HeaderEntry = undefined; + if (self.index.get(name)) |kv| { + entry = try HeaderEntry.init(self.allocator, kv.key, value, never_index); + errdefer entry.deinit(); + var dex = &kv.value; + try dex.append(n - 1); + } else { + const name_dup = try mem.dupe(self.allocator, u8, name); + errdefer self.allocator.free(name_dup); + entry = try HeaderEntry.init(self.allocator, name_dup, value, never_index); + errdefer entry.deinit(); + var dex = HeaderIndexList.init(self.allocator); + try dex.append(n - 1); + errdefer dex.deinit(); + _ = try self.index.put(name, dex); + } + self.data.appendAssumeCapacity(entry); + } + + /// If the header already exists, replace the current value, otherwise append it to the list of headers. + /// If the header has multiple entries then returns an error. + pub fn upsert(self: *Self, name: []const u8, value: []const u8, never_index: ?bool) !void { + if (self.index.get(name)) |kv| { + const dex = kv.value; + if (dex.count() != 1) + return error.CannotUpsertMultiValuedField; + var e = &self.data.at(dex.at(0)); + try e.modify(value, never_index); + } else { + try self.append(name, value, never_index); + } + } + + /// Returns boolean indicating if the field is present. + pub fn contains(self: Self, name: []const u8) bool { + return self.index.contains(name); + } + + /// Returns boolean indicating if something was deleted. + pub fn delete(self: *Self, name: []const u8) bool { + if (self.index.remove(name)) |kv| { + var dex = &kv.value; + // iterate backwards + var i = dex.count(); + while (i > 0) { + i -= 1; + const data_index = dex.at(i); + const removed = self.data.orderedRemove(data_index); + assert(mem.eql(u8, removed.name, name)); + removed.deinit(); + } + dex.deinit(); + self.allocator.free(kv.key); + self.rebuild_index(); + return true; + } else { + return false; + } + } + + /// Removes the element at the specified index. + /// Moves items down to fill the empty space. + pub fn orderedRemove(self: *Self, i: usize) void { + const removed = self.data.orderedRemove(i); + const kv = self.index.get(removed.name).?; + var dex = &kv.value; + if (dex.count() == 1) { + // was last item; delete the index + _ = self.index.remove(kv.key); + dex.deinit(); + removed.deinit(); + self.allocator.free(kv.key); + } else { + dex.shrink(dex.count() - 1); + removed.deinit(); + } + // if it was the last item; no need to rebuild index + if (i != self.data.count()) { + self.rebuild_index(); + } + } + + /// Removes the element at the specified index. + /// The empty slot is filled from the end of the list. + pub fn swapRemove(self: *Self, i: usize) void { + const removed = self.data.swapRemove(i); + const kv = self.index.get(removed.name).?; + var dex = &kv.value; + if (dex.count() == 1) { + // was last item; delete the index + _ = self.index.remove(kv.key); + dex.deinit(); + removed.deinit(); + self.allocator.free(kv.key); + } else { + dex.shrink(dex.count() - 1); + removed.deinit(); + } + // if it was the last item; no need to rebuild index + if (i != self.data.count()) { + self.rebuild_index(); + } + } + + /// Access the header at the specified index. + pub fn at(self: Self, i: usize) HeaderEntry { + return self.data.at(i); + } + + /// Returns a list of indices containing headers with the given name. + /// The returned list should not be modified by the caller. + pub fn getIndices(self: Self, name: []const u8) ?HeaderIndexList { + if (self.index.get(name)) |kv| { + return kv.value; + } else { + return null; + } + } + + /// Returns a slice containing each header with the given name. + pub fn get(self: Self, allocator: *Allocator, name: []const u8) !?[]const HeaderEntry { + const dex = self.getIndices(name) orelse return null; + + const buf = try allocator.alloc(HeaderEntry, dex.count()); + var it = dex.iterator(); + var n: usize = 0; + while (it.next()) |idx| { + buf[n] = self.data.at(idx); + n += 1; + } + return buf; + } + + /// Returns all headers with the given name as a comma separated string. + /// + /// Useful for HTTP headers that follow RFC-7230 section 3.2.2: + /// A recipient MAY combine multiple header fields with the same field + /// name into one "field-name: field-value" pair, without changing the + /// semantics of the message, by appending each subsequent field value to + /// the combined field value in order, separated by a comma. The order + /// in which header fields with the same field name are received is + /// therefore significant to the interpretation of the combined field + /// value + pub fn getCommaSeparated(self: Self, allocator: *Allocator, name: []const u8) !?[]u8 { + const dex = self.getIndices(name) orelse return null; + + // adapted from mem.join + const total_len = blk: { + var sum: usize = dex.count() - 1; // space for separator(s) + var it = dex.iterator(); + while (it.next()) |idx| + sum += self.data.at(idx).value.len; + break :blk sum; + }; + + const buf = try allocator.alloc(u8, total_len); + errdefer allocator.free(buf); + + const first_value = self.data.at(dex.at(0)).value; + mem.copy(u8, buf, first_value); + var buf_index: usize = first_value.len; + for (dex.toSlice()[1..]) |idx| { + const value = self.data.at(idx).value; + buf[buf_index] = ','; + buf_index += 1; + mem.copy(u8, buf[buf_index..], value); + buf_index += value.len; + } + + // No need for shrink since buf is exactly the correct size. + return buf; + } + + fn rebuild_index(self: *Self) void { + { // clear out the indexes + var it = self.index.iterator(); + while (it.next()) |kv| { + var dex = &kv.value; + dex.len = 0; // keeps capacity available + } + } + { // fill up indexes again; we know capacity is fine from before + var it = self.data.iterator(); + while (it.next()) |entry| { + var dex = &self.index.get(entry.name).?.value; + dex.appendAssumeCapacity(it.count); + } + } + } + + pub fn sort(self: *Self) void { + std.sort.sort(HeaderEntry, self.data.toSlice(), HeaderEntry.compare); + self.rebuild_index(); + } + + pub fn format( + self: Self, + comptime fmt: []const u8, + options: std.fmt.FormatOptions, + context: var, + comptime Errors: type, + output: fn (@typeOf(context), []const u8) Errors!void, + ) Errors!void { + var it = self.iterator(); + while (it.next()) |entry| { + try output(context, entry.name); + try output(context, ": "); + try output(context, entry.value); + try output(context, "\n"); + } + } +}; + +test "Headers.iterator" { + var h = Headers.init(test_allocator); + defer h.deinit(); + try h.append("foo", "bar", null); + try h.append("cookie", "somevalue", null); + + var count: i32 = 0; + var it = h.iterator(); + while (it.next()) |e| { + if (count == 0) { + testing.expectEqualSlices(u8, "foo", e.name); + testing.expectEqualSlices(u8, "bar", e.value); + testing.expectEqual(false, e.never_index); + } else if (count == 1) { + testing.expectEqualSlices(u8, "cookie", e.name); + testing.expectEqualSlices(u8, "somevalue", e.value); + testing.expectEqual(true, e.never_index); + } + count += 1; + } + testing.expectEqual(i32(2), count); +} + +test "Headers.contains" { + var h = Headers.init(test_allocator); + defer h.deinit(); + try h.append("foo", "bar", null); + try h.append("cookie", "somevalue", null); + + testing.expectEqual(true, h.contains("foo")); + testing.expectEqual(false, h.contains("flooble")); +} + +test "Headers.delete" { + var h = Headers.init(test_allocator); + defer h.deinit(); + try h.append("foo", "bar", null); + try h.append("baz", "qux", null); + try h.append("cookie", "somevalue", null); + + testing.expectEqual(false, h.delete("not-present")); + testing.expectEqual(usize(3), h.count()); + + testing.expectEqual(true, h.delete("foo")); + testing.expectEqual(usize(2), h.count()); + { + const e = h.at(0); + testing.expectEqualSlices(u8, "baz", e.name); + testing.expectEqualSlices(u8, "qux", e.value); + testing.expectEqual(false, e.never_index); + } + { + const e = h.at(1); + testing.expectEqualSlices(u8, "cookie", e.name); + testing.expectEqualSlices(u8, "somevalue", e.value); + testing.expectEqual(true, e.never_index); + } + + testing.expectEqual(false, h.delete("foo")); +} + +test "Headers.orderedRemove" { + var h = Headers.init(test_allocator); + defer h.deinit(); + try h.append("foo", "bar", null); + try h.append("baz", "qux", null); + try h.append("cookie", "somevalue", null); + + h.orderedRemove(0); + testing.expectEqual(usize(2), h.count()); + { + const e = h.at(0); + testing.expectEqualSlices(u8, "baz", e.name); + testing.expectEqualSlices(u8, "qux", e.value); + testing.expectEqual(false, e.never_index); + } + { + const e = h.at(1); + testing.expectEqualSlices(u8, "cookie", e.name); + testing.expectEqualSlices(u8, "somevalue", e.value); + testing.expectEqual(true, e.never_index); + } +} + +test "Headers.swapRemove" { + var h = Headers.init(test_allocator); + defer h.deinit(); + try h.append("foo", "bar", null); + try h.append("baz", "qux", null); + try h.append("cookie", "somevalue", null); + + h.swapRemove(0); + testing.expectEqual(usize(2), h.count()); + { + const e = h.at(0); + testing.expectEqualSlices(u8, "cookie", e.name); + testing.expectEqualSlices(u8, "somevalue", e.value); + testing.expectEqual(true, e.never_index); + } + { + const e = h.at(1); + testing.expectEqualSlices(u8, "baz", e.name); + testing.expectEqualSlices(u8, "qux", e.value); + testing.expectEqual(false, e.never_index); + } +} + +test "Headers.at" { + var h = Headers.init(test_allocator); + defer h.deinit(); + try h.append("foo", "bar", null); + try h.append("cookie", "somevalue", null); + + { + const e = h.at(0); + testing.expectEqualSlices(u8, "foo", e.name); + testing.expectEqualSlices(u8, "bar", e.value); + testing.expectEqual(false, e.never_index); + } + { + const e = h.at(1); + testing.expectEqualSlices(u8, "cookie", e.name); + testing.expectEqualSlices(u8, "somevalue", e.value); + testing.expectEqual(true, e.never_index); + } +} + +test "Headers.getIndices" { + var h = Headers.init(test_allocator); + defer h.deinit(); + try h.append("foo", "bar", null); + try h.append("set-cookie", "x=1", null); + try h.append("set-cookie", "y=2", null); + + testing.expect(null == h.getIndices("not-present")); + testing.expectEqualSlices(usize, [_]usize{0}, h.getIndices("foo").?.toSliceConst()); + testing.expectEqualSlices(usize, [_]usize{ 1, 2 }, h.getIndices("set-cookie").?.toSliceConst()); +} + +test "Headers.get" { + var h = Headers.init(test_allocator); + defer h.deinit(); + try h.append("foo", "bar", null); + try h.append("set-cookie", "x=1", null); + try h.append("set-cookie", "y=2", null); + + { + const v = try h.get(test_allocator, "not-present"); + testing.expect(null == v); + } + { + const v = (try h.get(test_allocator, "foo")).?; + defer test_allocator.free(v); + const e = v[0]; + testing.expectEqualSlices(u8, "foo", e.name); + testing.expectEqualSlices(u8, "bar", e.value); + testing.expectEqual(false, e.never_index); + } + { + const v = (try h.get(test_allocator, "set-cookie")).?; + defer test_allocator.free(v); + { + const e = v[0]; + testing.expectEqualSlices(u8, "set-cookie", e.name); + testing.expectEqualSlices(u8, "x=1", e.value); + testing.expectEqual(true, e.never_index); + } + { + const e = v[1]; + testing.expectEqualSlices(u8, "set-cookie", e.name); + testing.expectEqualSlices(u8, "y=2", e.value); + testing.expectEqual(true, e.never_index); + } + } +} + +test "Headers.getCommaSeparated" { + var h = Headers.init(test_allocator); + defer h.deinit(); + try h.append("foo", "bar", null); + try h.append("set-cookie", "x=1", null); + try h.append("set-cookie", "y=2", null); + + { + const v = try h.getCommaSeparated(test_allocator, "not-present"); + testing.expect(null == v); + } + { + const v = (try h.getCommaSeparated(test_allocator, "foo")).?; + defer test_allocator.free(v); + testing.expectEqualSlices(u8, "bar", v); + } + { + const v = (try h.getCommaSeparated(test_allocator, "set-cookie")).?; + defer test_allocator.free(v); + testing.expectEqualSlices(u8, "x=1,y=2", v); + } +} + +test "Headers.sort" { + var h = Headers.init(test_allocator); + defer h.deinit(); + try h.append("foo", "bar", null); + try h.append("cookie", "somevalue", null); + + h.sort(); + { + const e = h.at(0); + testing.expectEqualSlices(u8, "cookie", e.name); + testing.expectEqualSlices(u8, "somevalue", e.value); + testing.expectEqual(true, e.never_index); + } + { + const e = h.at(1); + testing.expectEqualSlices(u8, "foo", e.name); + testing.expectEqualSlices(u8, "bar", e.value); + testing.expectEqual(false, e.never_index); + } +} + +test "Headers.format" { + var h = Headers.init(test_allocator); + defer h.deinit(); + try h.append("foo", "bar", null); + try h.append("cookie", "somevalue", null); + + var buf: [100]u8 = undefined; + testing.expectEqualSlices(u8, + \\foo: bar + \\cookie: somevalue + \\ + , try std.fmt.bufPrint(buf[0..], "{}", h)); +} diff --git a/lib/std/io.zig b/lib/std/io.zig new file mode 100644 index 0000000000..25106e24be --- /dev/null +++ b/lib/std/io.zig @@ -0,0 +1,1307 @@ +const std = @import("std.zig"); +const builtin = @import("builtin"); +const root = @import("root"); +const c = std.c; + +const math = std.math; +const debug = std.debug; +const assert = debug.assert; +const os = std.os; +const fs = std.fs; +const mem = std.mem; +const meta = std.meta; +const trait = meta.trait; +const Buffer = std.Buffer; +const fmt = std.fmt; +const File = std.fs.File; +const testing = std.testing; + +pub const Mode = enum { + blocking, + evented, +}; +pub const mode: Mode = if (@hasDecl(root, "io_mode")) + root.io_mode +else if (@hasDecl(root, "event_loop")) + Mode.evented +else + Mode.blocking; +pub const is_async = mode != .blocking; + +pub const GetStdIoError = os.windows.GetStdHandleError; + +pub fn getStdOut() GetStdIoError!File { + if (os.windows.is_the_target) { + const handle = try os.windows.GetStdHandle(os.windows.STD_OUTPUT_HANDLE); + return File.openHandle(handle); + } + return File.openHandle(os.STDOUT_FILENO); +} + +pub fn getStdErr() GetStdIoError!File { + if (os.windows.is_the_target) { + const handle = try os.windows.GetStdHandle(os.windows.STD_ERROR_HANDLE); + return File.openHandle(handle); + } + return File.openHandle(os.STDERR_FILENO); +} + +pub fn getStdIn() GetStdIoError!File { + if (os.windows.is_the_target) { + const handle = try os.windows.GetStdHandle(os.windows.STD_INPUT_HANDLE); + return File.openHandle(handle); + } + return File.openHandle(os.STDIN_FILENO); +} + +pub const SeekableStream = @import("io/seekable_stream.zig").SeekableStream; +pub const SliceSeekableInStream = @import("io/seekable_stream.zig").SliceSeekableInStream; +pub const COutStream = @import("io/c_out_stream.zig").COutStream; +pub const InStream = @import("io/in_stream.zig").InStream; + +pub fn OutStream(comptime WriteError: type) type { + return struct { + const Self = @This(); + pub const Error = WriteError; + + writeFn: fn (self: *Self, bytes: []const u8) Error!void, + + pub fn print(self: *Self, comptime format: []const u8, args: ...) Error!void { + return std.fmt.format(self, Error, self.writeFn, format, args); + } + + pub fn write(self: *Self, bytes: []const u8) Error!void { + return self.writeFn(self, bytes); + } + + pub fn writeByte(self: *Self, byte: u8) Error!void { + const slice = (*const [1]u8)(&byte)[0..]; + return self.writeFn(self, slice); + } + + pub fn writeByteNTimes(self: *Self, byte: u8, n: usize) Error!void { + const slice = (*const [1]u8)(&byte)[0..]; + var i: usize = 0; + while (i < n) : (i += 1) { + try self.writeFn(self, slice); + } + } + + /// Write a native-endian integer. + pub fn writeIntNative(self: *Self, comptime T: type, value: T) Error!void { + var bytes: [(T.bit_count + 7) / 8]u8 = undefined; + mem.writeIntNative(T, &bytes, value); + return self.writeFn(self, bytes); + } + + /// Write a foreign-endian integer. + pub fn writeIntForeign(self: *Self, comptime T: type, value: T) Error!void { + var bytes: [(T.bit_count + 7) / 8]u8 = undefined; + mem.writeIntForeign(T, &bytes, value); + return self.writeFn(self, bytes); + } + + pub fn writeIntLittle(self: *Self, comptime T: type, value: T) Error!void { + var bytes: [(T.bit_count + 7) / 8]u8 = undefined; + mem.writeIntLittle(T, &bytes, value); + return self.writeFn(self, bytes); + } + + pub fn writeIntBig(self: *Self, comptime T: type, value: T) Error!void { + var bytes: [(T.bit_count + 7) / 8]u8 = undefined; + mem.writeIntBig(T, &bytes, value); + return self.writeFn(self, bytes); + } + + pub fn writeInt(self: *Self, comptime T: type, value: T, endian: builtin.Endian) Error!void { + var bytes: [(T.bit_count + 7) / 8]u8 = undefined; + mem.writeInt(T, &bytes, value, endian); + return self.writeFn(self, bytes); + } + }; +} + +pub fn writeFile(path: []const u8, data: []const u8) !void { + var file = try File.openWrite(path); + defer file.close(); + try file.write(data); +} + +/// On success, caller owns returned buffer. +pub fn readFileAlloc(allocator: *mem.Allocator, path: []const u8) ![]u8 { + return readFileAllocAligned(allocator, path, @alignOf(u8)); +} + +/// On success, caller owns returned buffer. +pub fn readFileAllocAligned(allocator: *mem.Allocator, path: []const u8, comptime A: u29) ![]align(A) u8 { + var file = try File.openRead(path); + defer file.close(); + + const size = try math.cast(usize, try file.getEndPos()); + const buf = try allocator.alignedAlloc(u8, A, size); + errdefer allocator.free(buf); + + var adapter = file.inStream(); + try adapter.stream.readNoEof(buf[0..size]); + return buf; +} + +pub fn BufferedInStream(comptime Error: type) type { + return BufferedInStreamCustom(mem.page_size, Error); +} + +pub fn BufferedInStreamCustom(comptime buffer_size: usize, comptime Error: type) type { + return struct { + const Self = @This(); + const Stream = InStream(Error); + + pub stream: Stream, + + unbuffered_in_stream: *Stream, + + buffer: [buffer_size]u8, + start_index: usize, + end_index: usize, + + pub fn init(unbuffered_in_stream: *Stream) Self { + return Self{ + .unbuffered_in_stream = unbuffered_in_stream, + .buffer = undefined, + + // Initialize these two fields to buffer_size so that + // in `readFn` we treat the state as being able to read + // more from the unbuffered stream. If we set them to 0 + // and 0, the code would think we already hit EOF. + .start_index = buffer_size, + .end_index = buffer_size, + + .stream = Stream{ .readFn = readFn }, + }; + } + + fn readFn(in_stream: *Stream, dest: []u8) !usize { + const self = @fieldParentPtr(Self, "stream", in_stream); + + var dest_index: usize = 0; + while (true) { + const dest_space = dest.len - dest_index; + if (dest_space == 0) { + return dest_index; + } + const amt_buffered = self.end_index - self.start_index; + if (amt_buffered == 0) { + assert(self.end_index <= buffer_size); + // Make sure the last read actually gave us some data + if (self.end_index == 0) { + // reading from the unbuffered stream returned nothing + // so we have nothing left to read. + return dest_index; + } + // we can read more data from the unbuffered stream + if (dest_space < buffer_size) { + self.start_index = 0; + self.end_index = try self.unbuffered_in_stream.read(self.buffer[0..]); + } else { + // asking for so much data that buffering is actually less efficient. + // forward the request directly to the unbuffered stream + const amt_read = try self.unbuffered_in_stream.read(dest[dest_index..]); + return dest_index + amt_read; + } + } + + const copy_amount = math.min(dest_space, amt_buffered); + const copy_end_index = self.start_index + copy_amount; + mem.copy(u8, dest[dest_index..], self.buffer[self.start_index..copy_end_index]); + self.start_index = copy_end_index; + dest_index += copy_amount; + } + } + }; +} + +test "io.BufferedInStream" { + const OneByteReadInStream = struct { + const Error = error{NoError}; + const Stream = InStream(Error); + + stream: Stream, + str: []const u8, + curr: usize, + + fn init(str: []const u8) @This() { + return @This(){ + .stream = Stream{ .readFn = readFn }, + .str = str, + .curr = 0, + }; + } + + fn readFn(in_stream: *Stream, dest: []u8) Error!usize { + const self = @fieldParentPtr(@This(), "stream", in_stream); + if (self.str.len <= self.curr or dest.len == 0) + return 0; + + dest[0] = self.str[self.curr]; + self.curr += 1; + return 1; + } + }; + + var buf: [100]u8 = undefined; + const allocator = &std.heap.FixedBufferAllocator.init(buf[0..]).allocator; + + const str = "This is a test"; + var one_byte_stream = OneByteReadInStream.init(str); + var buf_in_stream = BufferedInStream(OneByteReadInStream.Error).init(&one_byte_stream.stream); + const stream = &buf_in_stream.stream; + + const res = try stream.readAllAlloc(allocator, str.len + 1); + testing.expectEqualSlices(u8, str, res); +} + +/// Creates a stream which supports 'un-reading' data, so that it can be read again. +/// This makes look-ahead style parsing much easier. +pub fn PeekStream(comptime buffer_size: usize, comptime InStreamError: type) type { + return struct { + const Self = @This(); + pub const Error = InStreamError; + pub const Stream = InStream(Error); + + pub stream: Stream, + base: *Stream, + + // Right now the look-ahead space is statically allocated, but a version with dynamic allocation + // is not too difficult to derive from this. + buffer: [buffer_size]u8, + index: usize, + at_end: bool, + + pub fn init(base: *Stream) Self { + return Self{ + .base = base, + .buffer = undefined, + .index = 0, + .at_end = false, + .stream = Stream{ .readFn = readFn }, + }; + } + + pub fn putBackByte(self: *Self, byte: u8) void { + self.buffer[self.index] = byte; + self.index += 1; + } + + pub fn putBack(self: *Self, bytes: []const u8) void { + var pos = bytes.len; + while (pos != 0) { + pos -= 1; + self.putBackByte(bytes[pos]); + } + } + + fn readFn(in_stream: *Stream, dest: []u8) Error!usize { + const self = @fieldParentPtr(Self, "stream", in_stream); + + // copy over anything putBack()'d + var pos: usize = 0; + while (pos < dest.len and self.index != 0) { + dest[pos] = self.buffer[self.index - 1]; + self.index -= 1; + pos += 1; + } + + if (pos == dest.len or self.at_end) { + return pos; + } + + // ask the backing stream for more + const left = dest.len - pos; + const read = try self.base.read(dest[pos..]); + assert(read <= left); + + self.at_end = (read < left); + return pos + read; + } + }; +} + +pub const SliceInStream = struct { + const Self = @This(); + pub const Error = error{}; + pub const Stream = InStream(Error); + + pub stream: Stream, + + pos: usize, + slice: []const u8, + + pub fn init(slice: []const u8) Self { + return Self{ + .slice = slice, + .pos = 0, + .stream = Stream{ .readFn = readFn }, + }; + } + + fn readFn(in_stream: *Stream, dest: []u8) Error!usize { + const self = @fieldParentPtr(Self, "stream", in_stream); + const size = math.min(dest.len, self.slice.len - self.pos); + const end = self.pos + size; + + mem.copy(u8, dest[0..size], self.slice[self.pos..end]); + self.pos = end; + + return size; + } +}; + +/// Creates a stream which allows for reading bit fields from another stream +pub fn BitInStream(endian: builtin.Endian, comptime Error: type) type { + return struct { + const Self = @This(); + + in_stream: *Stream, + bit_buffer: u7, + bit_count: u3, + stream: Stream, + + pub const Stream = InStream(Error); + const u8_bit_count = comptime meta.bitCount(u8); + const u7_bit_count = comptime meta.bitCount(u7); + const u4_bit_count = comptime meta.bitCount(u4); + + pub fn init(in_stream: *Stream) Self { + return Self{ + .in_stream = in_stream, + .bit_buffer = 0, + .bit_count = 0, + .stream = Stream{ .readFn = read }, + }; + } + + /// Reads `bits` bits from the stream and returns a specified unsigned int type + /// containing them in the least significant end, returning an error if the + /// specified number of bits could not be read. + pub fn readBitsNoEof(self: *Self, comptime U: type, bits: usize) !U { + var n: usize = undefined; + const result = try self.readBits(U, bits, &n); + if (n < bits) return error.EndOfStream; + return result; + } + + /// Reads `bits` bits from the stream and returns a specified unsigned int type + /// containing them in the least significant end. The number of bits successfully + /// read is placed in `out_bits`, as reaching the end of the stream is not an error. + pub fn readBits(self: *Self, comptime U: type, bits: usize, out_bits: *usize) Error!U { + comptime assert(trait.isUnsignedInt(U)); + + //by extending the buffer to a minimum of u8 we can cover a number of edge cases + // related to shifting and casting. + const u_bit_count = comptime meta.bitCount(U); + const buf_bit_count = bc: { + assert(u_bit_count >= bits); + break :bc if (u_bit_count <= u8_bit_count) u8_bit_count else u_bit_count; + }; + const Buf = @IntType(false, buf_bit_count); + const BufShift = math.Log2Int(Buf); + + out_bits.* = usize(0); + if (U == u0 or bits == 0) return 0; + var out_buffer = Buf(0); + + if (self.bit_count > 0) { + const n = if (self.bit_count >= bits) @intCast(u3, bits) else self.bit_count; + const shift = u7_bit_count - n; + switch (endian) { + builtin.Endian.Big => { + out_buffer = Buf(self.bit_buffer >> shift); + self.bit_buffer <<= n; + }, + builtin.Endian.Little => { + const value = (self.bit_buffer << shift) >> shift; + out_buffer = Buf(value); + self.bit_buffer >>= n; + }, + } + self.bit_count -= n; + out_bits.* = n; + } + //at this point we know bit_buffer is empty + + //copy bytes until we have enough bits, then leave the rest in bit_buffer + while (out_bits.* < bits) { + const n = bits - out_bits.*; + const next_byte = self.in_stream.readByte() catch |err| { + if (err == error.EndOfStream) { + return @intCast(U, out_buffer); + } + //@BUG: See #1810. Not sure if the bug is that I have to do this for some + // streams, or that I don't for streams with emtpy errorsets. + return @errSetCast(Error, err); + }; + + switch (endian) { + builtin.Endian.Big => { + if (n >= u8_bit_count) { + out_buffer <<= @intCast(u3, u8_bit_count - 1); + out_buffer <<= 1; + out_buffer |= Buf(next_byte); + out_bits.* += u8_bit_count; + continue; + } + + const shift = @intCast(u3, u8_bit_count - n); + out_buffer <<= @intCast(BufShift, n); + out_buffer |= Buf(next_byte >> shift); + out_bits.* += n; + self.bit_buffer = @truncate(u7, next_byte << @intCast(u3, n - 1)); + self.bit_count = shift; + }, + builtin.Endian.Little => { + if (n >= u8_bit_count) { + out_buffer |= Buf(next_byte) << @intCast(BufShift, out_bits.*); + out_bits.* += u8_bit_count; + continue; + } + + const shift = @intCast(u3, u8_bit_count - n); + const value = (next_byte << shift) >> shift; + out_buffer |= Buf(value) << @intCast(BufShift, out_bits.*); + out_bits.* += n; + self.bit_buffer = @truncate(u7, next_byte >> @intCast(u3, n)); + self.bit_count = shift; + }, + } + } + + return @intCast(U, out_buffer); + } + + pub fn alignToByte(self: *Self) void { + self.bit_buffer = 0; + self.bit_count = 0; + } + + pub fn read(self_stream: *Stream, buffer: []u8) Error!usize { + var self = @fieldParentPtr(Self, "stream", self_stream); + + var out_bits: usize = undefined; + var out_bits_total = usize(0); + //@NOTE: I'm not sure this is a good idea, maybe alignToByte should be forced + if (self.bit_count > 0) { + for (buffer) |*b, i| { + b.* = try self.readBits(u8, u8_bit_count, &out_bits); + out_bits_total += out_bits; + } + const incomplete_byte = @boolToInt(out_bits_total % u8_bit_count > 0); + return (out_bits_total / u8_bit_count) + incomplete_byte; + } + + return self.in_stream.read(buffer); + } + }; +} + +/// This is a simple OutStream that writes to a slice, and returns an error +/// when it runs out of space. +pub const SliceOutStream = struct { + pub const Error = error{OutOfSpace}; + pub const Stream = OutStream(Error); + + pub stream: Stream, + + pub pos: usize, + slice: []u8, + + pub fn init(slice: []u8) SliceOutStream { + return SliceOutStream{ + .slice = slice, + .pos = 0, + .stream = Stream{ .writeFn = writeFn }, + }; + } + + pub fn getWritten(self: *const SliceOutStream) []const u8 { + return self.slice[0..self.pos]; + } + + pub fn reset(self: *SliceOutStream) void { + self.pos = 0; + } + + fn writeFn(out_stream: *Stream, bytes: []const u8) Error!void { + const self = @fieldParentPtr(SliceOutStream, "stream", out_stream); + + assert(self.pos <= self.slice.len); + + const n = if (self.pos + bytes.len <= self.slice.len) + bytes.len + else + self.slice.len - self.pos; + + std.mem.copy(u8, self.slice[self.pos .. self.pos + n], bytes[0..n]); + self.pos += n; + + if (n < bytes.len) { + return Error.OutOfSpace; + } + } +}; + +test "io.SliceOutStream" { + var buf: [255]u8 = undefined; + var slice_stream = SliceOutStream.init(buf[0..]); + const stream = &slice_stream.stream; + + try stream.print("{}{}!", "Hello", "World"); + testing.expectEqualSlices(u8, "HelloWorld!", slice_stream.getWritten()); +} + +var null_out_stream_state = NullOutStream.init(); +pub const null_out_stream = &null_out_stream_state.stream; + +/// An OutStream that doesn't write to anything. +pub const NullOutStream = struct { + pub const Error = error{}; + pub const Stream = OutStream(Error); + + pub stream: Stream, + + pub fn init() NullOutStream { + return NullOutStream{ + .stream = Stream{ .writeFn = writeFn }, + }; + } + + fn writeFn(out_stream: *Stream, bytes: []const u8) Error!void {} +}; + +test "io.NullOutStream" { + var null_stream = NullOutStream.init(); + const stream = &null_stream.stream; + stream.write("yay" ** 10000) catch unreachable; +} + +/// An OutStream that counts how many bytes has been written to it. +pub fn CountingOutStream(comptime OutStreamError: type) type { + return struct { + const Self = @This(); + pub const Stream = OutStream(Error); + pub const Error = OutStreamError; + + pub stream: Stream, + pub bytes_written: u64, + child_stream: *Stream, + + pub fn init(child_stream: *Stream) Self { + return Self{ + .stream = Stream{ .writeFn = writeFn }, + .bytes_written = 0, + .child_stream = child_stream, + }; + } + + fn writeFn(out_stream: *Stream, bytes: []const u8) OutStreamError!void { + const self = @fieldParentPtr(Self, "stream", out_stream); + try self.child_stream.write(bytes); + self.bytes_written += bytes.len; + } + }; +} + +test "io.CountingOutStream" { + var null_stream = NullOutStream.init(); + var counting_stream = CountingOutStream(NullOutStream.Error).init(&null_stream.stream); + const stream = &counting_stream.stream; + + const bytes = "yay" ** 10000; + stream.write(bytes) catch unreachable; + testing.expect(counting_stream.bytes_written == bytes.len); +} + +pub fn BufferedOutStream(comptime Error: type) type { + return BufferedOutStreamCustom(mem.page_size, Error); +} + +pub fn BufferedOutStreamCustom(comptime buffer_size: usize, comptime OutStreamError: type) type { + return struct { + const Self = @This(); + pub const Stream = OutStream(Error); + pub const Error = OutStreamError; + + pub stream: Stream, + + unbuffered_out_stream: *Stream, + + buffer: [buffer_size]u8, + index: usize, + + pub fn init(unbuffered_out_stream: *Stream) Self { + return Self{ + .unbuffered_out_stream = unbuffered_out_stream, + .buffer = undefined, + .index = 0, + .stream = Stream{ .writeFn = writeFn }, + }; + } + + pub fn flush(self: *Self) !void { + try self.unbuffered_out_stream.write(self.buffer[0..self.index]); + self.index = 0; + } + + fn writeFn(out_stream: *Stream, bytes: []const u8) !void { + const self = @fieldParentPtr(Self, "stream", out_stream); + + if (bytes.len >= self.buffer.len) { + try self.flush(); + return self.unbuffered_out_stream.write(bytes); + } + var src_index: usize = 0; + + while (src_index < bytes.len) { + const dest_space_left = self.buffer.len - self.index; + const copy_amt = math.min(dest_space_left, bytes.len - src_index); + mem.copy(u8, self.buffer[self.index..], bytes[src_index .. src_index + copy_amt]); + self.index += copy_amt; + assert(self.index <= self.buffer.len); + if (self.index == self.buffer.len) { + try self.flush(); + } + src_index += copy_amt; + } + } + }; +} + +/// Implementation of OutStream trait for Buffer +pub const BufferOutStream = struct { + buffer: *Buffer, + stream: Stream, + + pub const Error = error{OutOfMemory}; + pub const Stream = OutStream(Error); + + pub fn init(buffer: *Buffer) BufferOutStream { + return BufferOutStream{ + .buffer = buffer, + .stream = Stream{ .writeFn = writeFn }, + }; + } + + fn writeFn(out_stream: *Stream, bytes: []const u8) !void { + const self = @fieldParentPtr(BufferOutStream, "stream", out_stream); + return self.buffer.append(bytes); + } +}; + +/// Creates a stream which allows for writing bit fields to another stream +pub fn BitOutStream(endian: builtin.Endian, comptime Error: type) type { + return struct { + const Self = @This(); + + out_stream: *Stream, + bit_buffer: u8, + bit_count: u4, + stream: Stream, + + pub const Stream = OutStream(Error); + const u8_bit_count = comptime meta.bitCount(u8); + const u4_bit_count = comptime meta.bitCount(u4); + + pub fn init(out_stream: *Stream) Self { + return Self{ + .out_stream = out_stream, + .bit_buffer = 0, + .bit_count = 0, + .stream = Stream{ .writeFn = write }, + }; + } + + /// Write the specified number of bits to the stream from the least significant bits of + /// the specified unsigned int value. Bits will only be written to the stream when there + /// are enough to fill a byte. + pub fn writeBits(self: *Self, value: var, bits: usize) Error!void { + if (bits == 0) return; + + const U = @typeOf(value); + comptime assert(trait.isUnsignedInt(U)); + + //by extending the buffer to a minimum of u8 we can cover a number of edge cases + // related to shifting and casting. + const u_bit_count = comptime meta.bitCount(U); + const buf_bit_count = bc: { + assert(u_bit_count >= bits); + break :bc if (u_bit_count <= u8_bit_count) u8_bit_count else u_bit_count; + }; + const Buf = @IntType(false, buf_bit_count); + const BufShift = math.Log2Int(Buf); + + const buf_value = @intCast(Buf, value); + + const high_byte_shift = @intCast(BufShift, buf_bit_count - u8_bit_count); + var in_buffer = switch (endian) { + builtin.Endian.Big => buf_value << @intCast(BufShift, buf_bit_count - bits), + builtin.Endian.Little => buf_value, + }; + var in_bits = bits; + + if (self.bit_count > 0) { + const bits_remaining = u8_bit_count - self.bit_count; + const n = @intCast(u3, if (bits_remaining > bits) bits else bits_remaining); + switch (endian) { + builtin.Endian.Big => { + const shift = @intCast(BufShift, high_byte_shift + self.bit_count); + const v = @intCast(u8, in_buffer >> shift); + self.bit_buffer |= v; + in_buffer <<= n; + }, + builtin.Endian.Little => { + const v = @truncate(u8, in_buffer) << @intCast(u3, self.bit_count); + self.bit_buffer |= v; + in_buffer >>= n; + }, + } + self.bit_count += n; + in_bits -= n; + + //if we didn't fill the buffer, it's because bits < bits_remaining; + if (self.bit_count != u8_bit_count) return; + try self.out_stream.writeByte(self.bit_buffer); + self.bit_buffer = 0; + self.bit_count = 0; + } + //at this point we know bit_buffer is empty + + //copy bytes until we can't fill one anymore, then leave the rest in bit_buffer + while (in_bits >= u8_bit_count) { + switch (endian) { + builtin.Endian.Big => { + const v = @intCast(u8, in_buffer >> high_byte_shift); + try self.out_stream.writeByte(v); + in_buffer <<= @intCast(u3, u8_bit_count - 1); + in_buffer <<= 1; + }, + builtin.Endian.Little => { + const v = @truncate(u8, in_buffer); + try self.out_stream.writeByte(v); + in_buffer >>= @intCast(u3, u8_bit_count - 1); + in_buffer >>= 1; + }, + } + in_bits -= u8_bit_count; + } + + if (in_bits > 0) { + self.bit_count = @intCast(u4, in_bits); + self.bit_buffer = switch (endian) { + builtin.Endian.Big => @truncate(u8, in_buffer >> high_byte_shift), + builtin.Endian.Little => @truncate(u8, in_buffer), + }; + } + } + + /// Flush any remaining bits to the stream. + pub fn flushBits(self: *Self) Error!void { + if (self.bit_count == 0) return; + try self.out_stream.writeByte(self.bit_buffer); + self.bit_buffer = 0; + self.bit_count = 0; + } + + pub fn write(self_stream: *Stream, buffer: []const u8) Error!void { + var self = @fieldParentPtr(Self, "stream", self_stream); + + //@NOTE: I'm not sure this is a good idea, maybe flushBits should be forced + if (self.bit_count > 0) { + for (buffer) |b, i| + try self.writeBits(b, u8_bit_count); + return; + } + + return self.out_stream.write(buffer); + } + }; +} + +pub const BufferedAtomicFile = struct { + atomic_file: fs.AtomicFile, + file_stream: File.OutStream, + buffered_stream: BufferedOutStream(File.WriteError), + allocator: *mem.Allocator, + + pub fn create(allocator: *mem.Allocator, dest_path: []const u8) !*BufferedAtomicFile { + // TODO with well defined copy elision we don't need this allocation + var self = try allocator.create(BufferedAtomicFile); + self.* = BufferedAtomicFile{ + .atomic_file = undefined, + .file_stream = undefined, + .buffered_stream = undefined, + .allocator = allocator, + }; + errdefer allocator.destroy(self); + + self.atomic_file = try fs.AtomicFile.init(dest_path, File.default_mode); + errdefer self.atomic_file.deinit(); + + self.file_stream = self.atomic_file.file.outStream(); + self.buffered_stream = BufferedOutStream(File.WriteError).init(&self.file_stream.stream); + return self; + } + + /// always call destroy, even after successful finish() + pub fn destroy(self: *BufferedAtomicFile) void { + self.atomic_file.deinit(); + self.allocator.destroy(self); + } + + pub fn finish(self: *BufferedAtomicFile) !void { + try self.buffered_stream.flush(); + try self.atomic_file.finish(); + } + + pub fn stream(self: *BufferedAtomicFile) *OutStream(File.WriteError) { + return &self.buffered_stream.stream; + } +}; + +pub fn readLine(buf: *std.Buffer) ![]u8 { + var stdin = try getStdIn(); + var stdin_stream = stdin.inStream(); + return readLineFrom(&stdin_stream.stream, buf); +} + +/// Reads all characters until the next newline into buf, and returns +/// a slice of the characters read (excluding the newline character(s)). +pub fn readLineFrom(stream: var, buf: *std.Buffer) ![]u8 { + const start = buf.len(); + while (true) { + const byte = try stream.readByte(); + switch (byte) { + '\r' => { + // trash the following \n + _ = try stream.readByte(); + return buf.toSlice()[start..]; + }, + '\n' => return buf.toSlice()[start..], + else => try buf.appendByte(byte), + } + } +} + +test "io.readLineFrom" { + var bytes: [128]u8 = undefined; + const allocator = &std.heap.FixedBufferAllocator.init(bytes[0..]).allocator; + + var buf = try std.Buffer.initSize(allocator, 0); + var mem_stream = SliceInStream.init( + \\Line 1 + \\Line 22 + \\Line 333 + ); + const stream = &mem_stream.stream; + + testing.expectEqualSlices(u8, "Line 1", try readLineFrom(stream, &buf)); + testing.expectEqualSlices(u8, "Line 22", try readLineFrom(stream, &buf)); + testing.expectError(error.EndOfStream, readLineFrom(stream, &buf)); + testing.expectEqualSlices(u8, "Line 1Line 22Line 333", buf.toSlice()); +} + +pub fn readLineSlice(slice: []u8) ![]u8 { + var stdin = try getStdIn(); + var stdin_stream = stdin.inStream(); + return readLineSliceFrom(&stdin_stream.stream, slice); +} + +/// Reads all characters until the next newline into slice, and returns +/// a slice of the characters read (excluding the newline character(s)). +pub fn readLineSliceFrom(stream: var, slice: []u8) ![]u8 { + // We cannot use Buffer.fromOwnedSlice, as it wants to append a null byte + // after taking ownership, which would always require an allocation. + var buf = std.Buffer{ .list = std.ArrayList(u8).fromOwnedSlice(debug.failing_allocator, slice) }; + try buf.resize(0); + return try readLineFrom(stream, &buf); +} + +test "io.readLineSliceFrom" { + var buf: [7]u8 = undefined; + var mem_stream = SliceInStream.init( + \\Line 1 + \\Line 22 + \\Line 333 + ); + const stream = &mem_stream.stream; + + testing.expectEqualSlices(u8, "Line 1", try readLineSliceFrom(stream, buf[0..])); + testing.expectError(error.OutOfMemory, readLineSliceFrom(stream, buf[0..])); +} + +pub const Packing = enum { + /// Pack data to byte alignment + Byte, + + /// Pack data to bit alignment + Bit, +}; + +/// Creates a deserializer that deserializes types from any stream. +/// If `is_packed` is true, the data stream is treated as bit-packed, +/// otherwise data is expected to be packed to the smallest byte. +/// Types may implement a custom deserialization routine with a +/// function named `deserialize` in the form of: +/// pub fn deserialize(self: *Self, deserializer: var) !void +/// which will be called when the deserializer is used to deserialize +/// that type. It will pass a pointer to the type instance to deserialize +/// into and a pointer to the deserializer struct. +pub fn Deserializer(comptime endian: builtin.Endian, comptime packing: Packing, comptime Error: type) type { + return struct { + const Self = @This(); + + in_stream: if (packing == .Bit) BitInStream(endian, Stream.Error) else *Stream, + + pub const Stream = InStream(Error); + + pub fn init(in_stream: *Stream) Self { + return Self{ + .in_stream = switch (packing) { + .Bit => BitInStream(endian, Stream.Error).init(in_stream), + .Byte => in_stream, + }, + }; + } + + pub fn alignToByte(self: *Self) void { + if (packing == .Byte) return; + self.in_stream.alignToByte(); + } + + //@BUG: inferred error issue. See: #1386 + fn deserializeInt(self: *Self, comptime T: type) (Error || error{EndOfStream})!T { + comptime assert(trait.is(builtin.TypeId.Int)(T) or trait.is(builtin.TypeId.Float)(T)); + + const u8_bit_count = 8; + const t_bit_count = comptime meta.bitCount(T); + + const U = @IntType(false, t_bit_count); + const Log2U = math.Log2Int(U); + const int_size = (U.bit_count + 7) / 8; + + if (packing == .Bit) { + const result = try self.in_stream.readBitsNoEof(U, t_bit_count); + return @bitCast(T, result); + } + + var buffer: [int_size]u8 = undefined; + const read_size = try self.in_stream.read(buffer[0..]); + if (read_size < int_size) return error.EndOfStream; + + if (int_size == 1) { + if (t_bit_count == 8) return @bitCast(T, buffer[0]); + const PossiblySignedByte = @IntType(T.is_signed, 8); + return @truncate(T, @bitCast(PossiblySignedByte, buffer[0])); + } + + var result = U(0); + for (buffer) |byte, i| { + switch (endian) { + builtin.Endian.Big => { + result = (result << u8_bit_count) | byte; + }, + builtin.Endian.Little => { + result |= U(byte) << @intCast(Log2U, u8_bit_count * i); + }, + } + } + + return @bitCast(T, result); + } + + //@TODO: Replace this with @unionInit or whatever when it is added + // see: #1315 + fn setTag(ptr: var, tag: var) void { + const T = @typeOf(ptr); + comptime assert(trait.isPtrTo(builtin.TypeId.Union)(T)); + const U = meta.Child(T); + + const info = @typeInfo(U).Union; + if (info.tag_type) |TagType| { + comptime assert(TagType == @typeOf(tag)); + + var ptr_tag = ptr: { + if (@alignOf(TagType) >= @alignOf(U)) break :ptr @ptrCast(*TagType, ptr); + const offset = comptime max: { + var max_field_size: comptime_int = 0; + for (info.fields) |field_info| { + const field_size = @sizeOf(field_info.field_type); + max_field_size = math.max(max_field_size, field_size); + } + break :max math.max(max_field_size, @alignOf(U)); + }; + break :ptr @intToPtr(*TagType, @ptrToInt(ptr) + offset); + }; + ptr_tag.* = tag; + } + } + + /// Deserializes and returns data of the specified type from the stream + pub fn deserialize(self: *Self, comptime T: type) !T { + var value: T = undefined; + try self.deserializeInto(&value); + return value; + } + + /// Deserializes data into the type pointed to by `ptr` + pub fn deserializeInto(self: *Self, ptr: var) !void { + const T = @typeOf(ptr); + comptime assert(trait.is(builtin.TypeId.Pointer)(T)); + + if (comptime trait.isSlice(T) or comptime trait.isPtrTo(builtin.TypeId.Array)(T)) { + for (ptr) |*v| + try self.deserializeInto(v); + return; + } + + comptime assert(trait.isSingleItemPtr(T)); + + const C = comptime meta.Child(T); + const child_type_id = @typeId(C); + + //custom deserializer: fn(self: *Self, deserializer: var) !void + if (comptime trait.hasFn("deserialize")(C)) return C.deserialize(ptr, self); + + if (comptime trait.isPacked(C) and packing != .Bit) { + var packed_deserializer = Deserializer(endian, .Bit, Error).init(self.in_stream); + return packed_deserializer.deserializeInto(ptr); + } + + switch (child_type_id) { + builtin.TypeId.Void => return, + builtin.TypeId.Bool => ptr.* = (try self.deserializeInt(u1)) > 0, + builtin.TypeId.Float, builtin.TypeId.Int => ptr.* = try self.deserializeInt(C), + builtin.TypeId.Struct => { + const info = @typeInfo(C).Struct; + + inline for (info.fields) |*field_info| { + const name = field_info.name; + const FieldType = field_info.field_type; + + if (FieldType == void or FieldType == u0) continue; + + //it doesn't make any sense to read pointers + if (comptime trait.is(builtin.TypeId.Pointer)(FieldType)) { + @compileError("Will not " ++ "read field " ++ name ++ " of struct " ++ + @typeName(C) ++ " because it " ++ "is of pointer-type " ++ + @typeName(FieldType) ++ "."); + } + + try self.deserializeInto(&@field(ptr, name)); + } + }, + builtin.TypeId.Union => { + const info = @typeInfo(C).Union; + if (info.tag_type) |TagType| { + //we avoid duplicate iteration over the enum tags + // by getting the int directly and casting it without + // safety. If it is bad, it will be caught anyway. + const TagInt = @TagType(TagType); + const tag = try self.deserializeInt(TagInt); + + { + @setRuntimeSafety(false); + //See: #1315 + setTag(ptr, @intToEnum(TagType, tag)); + } + + inline for (info.fields) |field_info| { + if (field_info.enum_field.?.value == tag) { + const name = field_info.name; + const FieldType = field_info.field_type; + @field(ptr, name) = FieldType(undefined); + try self.deserializeInto(&@field(ptr, name)); + return; + } + } + //This is reachable if the enum data is bad + return error.InvalidEnumTag; + } + @compileError("Cannot meaningfully deserialize " ++ @typeName(C) ++ + " because it is an untagged union. Use a custom deserialize()."); + }, + builtin.TypeId.Optional => { + const OC = comptime meta.Child(C); + const exists = (try self.deserializeInt(u1)) > 0; + if (!exists) { + ptr.* = null; + return; + } + + ptr.* = OC(undefined); //make it non-null so the following .? is guaranteed safe + const val_ptr = &ptr.*.?; + try self.deserializeInto(val_ptr); + }, + builtin.TypeId.Enum => { + var value = try self.deserializeInt(@TagType(C)); + ptr.* = try meta.intToEnum(C, value); + }, + else => { + @compileError("Cannot deserialize " ++ @tagName(child_type_id) ++ " types (unimplemented)."); + }, + } + } + }; +} + +/// Creates a serializer that serializes types to any stream. +/// If `is_packed` is true, the data will be bit-packed into the stream. +/// Note that the you must call `serializer.flush()` when you are done +/// writing bit-packed data in order ensure any unwritten bits are committed. +/// If `is_packed` is false, data is packed to the smallest byte. In the case +/// of packed structs, the struct will written bit-packed and with the specified +/// endianess, after which data will resume being written at the next byte boundary. +/// Types may implement a custom serialization routine with a +/// function named `serialize` in the form of: +/// pub fn serialize(self: Self, serializer: var) !void +/// which will be called when the serializer is used to serialize that type. It will +/// pass a const pointer to the type instance to be serialized and a pointer +/// to the serializer struct. +pub fn Serializer(comptime endian: builtin.Endian, comptime packing: Packing, comptime Error: type) type { + return struct { + const Self = @This(); + + out_stream: if (packing == .Bit) BitOutStream(endian, Stream.Error) else *Stream, + + pub const Stream = OutStream(Error); + + pub fn init(out_stream: *Stream) Self { + return Self{ + .out_stream = switch (packing) { + .Bit => BitOutStream(endian, Stream.Error).init(out_stream), + .Byte => out_stream, + }, + }; + } + + /// Flushes any unwritten bits to the stream + pub fn flush(self: *Self) Error!void { + if (packing == .Bit) return self.out_stream.flushBits(); + } + + fn serializeInt(self: *Self, value: var) Error!void { + const T = @typeOf(value); + comptime assert(trait.is(builtin.TypeId.Int)(T) or trait.is(builtin.TypeId.Float)(T)); + + const t_bit_count = comptime meta.bitCount(T); + const u8_bit_count = comptime meta.bitCount(u8); + + const U = @IntType(false, t_bit_count); + const Log2U = math.Log2Int(U); + const int_size = (U.bit_count + 7) / 8; + + const u_value = @bitCast(U, value); + + if (packing == .Bit) return self.out_stream.writeBits(u_value, t_bit_count); + + var buffer: [int_size]u8 = undefined; + if (int_size == 1) buffer[0] = u_value; + + for (buffer) |*byte, i| { + const idx = switch (endian) { + .Big => int_size - i - 1, + .Little => i, + }; + const shift = @intCast(Log2U, idx * u8_bit_count); + const v = u_value >> shift; + byte.* = if (t_bit_count < u8_bit_count) v else @truncate(u8, v); + } + + try self.out_stream.write(buffer); + } + + /// Serializes the passed value into the stream + pub fn serialize(self: *Self, value: var) Error!void { + const T = comptime @typeOf(value); + + if (comptime trait.isIndexable(T)) { + for (value) |v| + try self.serialize(v); + return; + } + + //custom serializer: fn(self: Self, serializer: var) !void + if (comptime trait.hasFn("serialize")(T)) return T.serialize(value, self); + + if (comptime trait.isPacked(T) and packing != .Bit) { + var packed_serializer = Serializer(endian, .Bit, Error).init(self.out_stream); + try packed_serializer.serialize(value); + try packed_serializer.flush(); + return; + } + + switch (@typeId(T)) { + builtin.TypeId.Void => return, + builtin.TypeId.Bool => try self.serializeInt(u1(@boolToInt(value))), + builtin.TypeId.Float, builtin.TypeId.Int => try self.serializeInt(value), + builtin.TypeId.Struct => { + const info = @typeInfo(T); + + inline for (info.Struct.fields) |*field_info| { + const name = field_info.name; + const FieldType = field_info.field_type; + + if (FieldType == void or FieldType == u0) continue; + + //It doesn't make sense to write pointers + if (comptime trait.is(builtin.TypeId.Pointer)(FieldType)) { + @compileError("Will not " ++ "serialize field " ++ name ++ + " of struct " ++ @typeName(T) ++ " because it " ++ + "is of pointer-type " ++ @typeName(FieldType) ++ "."); + } + try self.serialize(@field(value, name)); + } + }, + builtin.TypeId.Union => { + const info = @typeInfo(T).Union; + if (info.tag_type) |TagType| { + const active_tag = meta.activeTag(value); + try self.serialize(active_tag); + //This inline loop is necessary because active_tag is a runtime + // value, but @field requires a comptime value. Our alternative + // is to check each field for a match + inline for (info.fields) |field_info| { + if (field_info.enum_field.?.value == @enumToInt(active_tag)) { + const name = field_info.name; + const FieldType = field_info.field_type; + try self.serialize(@field(value, name)); + return; + } + } + unreachable; + } + @compileError("Cannot meaningfully serialize " ++ @typeName(T) ++ + " because it is an untagged union. Use a custom serialize()."); + }, + builtin.TypeId.Optional => { + if (value == null) { + try self.serializeInt(u1(@boolToInt(false))); + return; + } + try self.serializeInt(u1(@boolToInt(true))); + + const OC = comptime meta.Child(T); + const val_ptr = &value.?; + try self.serialize(val_ptr.*); + }, + builtin.TypeId.Enum => { + try self.serializeInt(@enumToInt(value)); + }, + else => @compileError("Cannot serialize " ++ @tagName(@typeId(T)) ++ " types (unimplemented)."), + } + } + }; +} + +test "import io tests" { + comptime { + _ = @import("io/test.zig"); + } +} diff --git a/lib/std/io/c_out_stream.zig b/lib/std/io/c_out_stream.zig new file mode 100644 index 0000000000..8b341e6937 --- /dev/null +++ b/lib/std/io/c_out_stream.zig @@ -0,0 +1,43 @@ +const std = @import("../std.zig"); +const os = std.os; +const OutStream = std.io.OutStream; +const builtin = @import("builtin"); + +/// TODO make a proposal to make `std.fs.File` use *FILE when linking libc and this just becomes +/// std.io.FileOutStream because std.fs.File.write would do this when linking +/// libc. +pub const COutStream = struct { + pub const Error = std.fs.File.WriteError; + pub const Stream = OutStream(Error); + + stream: Stream, + c_file: *std.c.FILE, + + pub fn init(c_file: *std.c.FILE) COutStream { + return COutStream{ + .c_file = c_file, + .stream = Stream{ .writeFn = writeFn }, + }; + } + + fn writeFn(out_stream: *Stream, bytes: []const u8) Error!void { + const self = @fieldParentPtr(COutStream, "stream", out_stream); + const amt_written = std.c.fwrite(bytes.ptr, 1, bytes.len, self.c_file); + if (amt_written == bytes.len) return; + switch (std.c._errno().*) { + 0 => unreachable, + os.EINVAL => unreachable, + os.EFAULT => unreachable, + os.EAGAIN => unreachable, // this is a blocking API + os.EBADF => unreachable, // always a race condition + os.EDESTADDRREQ => unreachable, // connect was never called + os.EDQUOT => return error.DiskQuota, + os.EFBIG => return error.FileTooBig, + os.EIO => return error.InputOutput, + os.ENOSPC => return error.NoSpaceLeft, + os.EPERM => return error.AccessDenied, + os.EPIPE => return error.BrokenPipe, + else => |err| return os.unexpectedErrno(@intCast(usize, err)), + } + } +}; diff --git a/lib/std/io/in_stream.zig b/lib/std/io/in_stream.zig new file mode 100644 index 0000000000..44c74fcca4 --- /dev/null +++ b/lib/std/io/in_stream.zig @@ -0,0 +1,200 @@ +const std = @import("../std.zig"); +const builtin = @import("builtin"); +const root = @import("root"); +const math = std.math; +const assert = std.debug.assert; +const mem = std.mem; +const Buffer = std.Buffer; + +pub const default_stack_size = 1 * 1024 * 1024; +pub const stack_size: usize = if (@hasDecl(root, "stack_size_std_io_InStream")) + root.stack_size_std_io_InStream +else + default_stack_size; +pub const stack_align = 16; + +pub fn InStream(comptime ReadError: type) type { + return struct { + const Self = @This(); + pub const Error = ReadError; + pub const ReadFn = if (std.io.is_async) + async fn (self: *Self, buffer: []u8) Error!usize + else + fn (self: *Self, buffer: []u8) Error!usize; + + /// Returns the number of bytes read. It may be less than buffer.len. + /// If the number of bytes read is 0, it means end of stream. + /// End of stream is not an error condition. + readFn: ReadFn, + + /// Returns the number of bytes read. It may be less than buffer.len. + /// If the number of bytes read is 0, it means end of stream. + /// End of stream is not an error condition. + pub fn read(self: *Self, buffer: []u8) Error!usize { + if (std.io.is_async) { + // Let's not be writing 0xaa in safe modes for upwards of 4 MiB for every stream read. + @setRuntimeSafety(false); + var stack_frame: [stack_size]u8 align(stack_align) = undefined; + return await @asyncCall(&stack_frame, {}, self.readFn, self, buffer); + } else { + return self.readFn(self, buffer); + } + } + + /// Returns the number of bytes read. If the number read is smaller than buf.len, it + /// means the stream reached the end. Reaching the end of a stream is not an error + /// condition. + pub fn readFull(self: *Self, buffer: []u8) Error!usize { + var index: usize = 0; + while (index != buffer.len) { + const amt = try self.read(buffer[index..]); + if (amt == 0) return index; + index += amt; + } + return index; + } + + /// Returns the number of bytes read. If the number read would be smaller than buf.len, + /// error.EndOfStream is returned instead. + pub fn readNoEof(self: *Self, buf: []u8) !void { + const amt_read = try self.readFull(buf); + if (amt_read < buf.len) return error.EndOfStream; + } + + /// Replaces `buffer` contents by reading from the stream until it is finished. + /// If `buffer.len()` would exceed `max_size`, `error.StreamTooLong` is returned and + /// the contents read from the stream are lost. + pub fn readAllBuffer(self: *Self, buffer: *Buffer, max_size: usize) !void { + try buffer.resize(0); + + var actual_buf_len: usize = 0; + while (true) { + const dest_slice = buffer.toSlice()[actual_buf_len..]; + const bytes_read = try self.readFull(dest_slice); + actual_buf_len += bytes_read; + + if (bytes_read != dest_slice.len) { + buffer.shrink(actual_buf_len); + return; + } + + const new_buf_size = math.min(max_size, actual_buf_len + mem.page_size); + if (new_buf_size == actual_buf_len) return error.StreamTooLong; + try buffer.resize(new_buf_size); + } + } + + /// Allocates enough memory to hold all the contents of the stream. If the allocated + /// memory would be greater than `max_size`, returns `error.StreamTooLong`. + /// Caller owns returned memory. + /// If this function returns an error, the contents from the stream read so far are lost. + pub fn readAllAlloc(self: *Self, allocator: *mem.Allocator, max_size: usize) ![]u8 { + var buf = Buffer.initNull(allocator); + defer buf.deinit(); + + try self.readAllBuffer(&buf, max_size); + return buf.toOwnedSlice(); + } + + /// Replaces `buffer` contents by reading from the stream until `delimiter` is found. + /// Does not include the delimiter in the result. + /// If `buffer.len()` would exceed `max_size`, `error.StreamTooLong` is returned and the contents + /// read from the stream so far are lost. + pub fn readUntilDelimiterBuffer(self: *Self, buffer: *Buffer, delimiter: u8, max_size: usize) !void { + try buffer.resize(0); + + while (true) { + var byte: u8 = try self.readByte(); + + if (byte == delimiter) { + return; + } + + if (buffer.len() == max_size) { + return error.StreamTooLong; + } + + try buffer.appendByte(byte); + } + } + + /// Allocates enough memory to read until `delimiter`. If the allocated + /// memory would be greater than `max_size`, returns `error.StreamTooLong`. + /// Caller owns returned memory. + /// If this function returns an error, the contents from the stream read so far are lost. + pub fn readUntilDelimiterAlloc(self: *Self, allocator: *mem.Allocator, delimiter: u8, max_size: usize) ![]u8 { + var buf = Buffer.initNull(allocator); + defer buf.deinit(); + + try self.readUntilDelimiterBuffer(&buf, delimiter, max_size); + return buf.toOwnedSlice(); + } + + /// Reads 1 byte from the stream or returns `error.EndOfStream`. + pub fn readByte(self: *Self) !u8 { + var result: [1]u8 = undefined; + try self.readNoEof(result[0..]); + return result[0]; + } + + /// Same as `readByte` except the returned byte is signed. + pub fn readByteSigned(self: *Self) !i8 { + return @bitCast(i8, try self.readByte()); + } + + /// Reads a native-endian integer + pub fn readIntNative(self: *Self, comptime T: type) !T { + var bytes: [(T.bit_count + 7) / 8]u8 = undefined; + try self.readNoEof(bytes[0..]); + return mem.readIntNative(T, &bytes); + } + + /// Reads a foreign-endian integer + pub fn readIntForeign(self: *Self, comptime T: type) !T { + var bytes: [(T.bit_count + 7) / 8]u8 = undefined; + try self.readNoEof(bytes[0..]); + return mem.readIntForeign(T, &bytes); + } + + pub fn readIntLittle(self: *Self, comptime T: type) !T { + var bytes: [(T.bit_count + 7) / 8]u8 = undefined; + try self.readNoEof(bytes[0..]); + return mem.readIntLittle(T, &bytes); + } + + pub fn readIntBig(self: *Self, comptime T: type) !T { + var bytes: [(T.bit_count + 7) / 8]u8 = undefined; + try self.readNoEof(bytes[0..]); + return mem.readIntBig(T, &bytes); + } + + pub fn readInt(self: *Self, comptime T: type, endian: builtin.Endian) !T { + var bytes: [(T.bit_count + 7) / 8]u8 = undefined; + try self.readNoEof(bytes[0..]); + return mem.readInt(T, &bytes, endian); + } + + pub fn readVarInt(self: *Self, comptime ReturnType: type, endian: builtin.Endian, size: usize) !ReturnType { + assert(size <= @sizeOf(ReturnType)); + var bytes_buf: [@sizeOf(ReturnType)]u8 = undefined; + const bytes = bytes_buf[0..size]; + try self.readNoEof(bytes); + return mem.readVarInt(ReturnType, bytes, endian); + } + + pub fn skipBytes(self: *Self, num_bytes: u64) !void { + var i: u64 = 0; + while (i < num_bytes) : (i += 1) { + _ = try self.readByte(); + } + } + + pub fn readStruct(self: *Self, comptime T: type) !T { + // Only extern and packed structs have defined in-memory layout. + comptime assert(@typeInfo(T).Struct.layout != builtin.TypeInfo.ContainerLayout.Auto); + var res: [1]T = undefined; + try self.readNoEof(@sliceToBytes(res[0..])); + return res[0]; + } + }; +} diff --git a/lib/std/io/seekable_stream.zig b/lib/std/io/seekable_stream.zig new file mode 100644 index 0000000000..86f76d8c14 --- /dev/null +++ b/lib/std/io/seekable_stream.zig @@ -0,0 +1,103 @@ +const std = @import("../std.zig"); +const InStream = std.io.InStream; + +pub fn SeekableStream(comptime SeekErrorType: type, comptime GetSeekPosErrorType: type) type { + return struct { + const Self = @This(); + pub const SeekError = SeekErrorType; + pub const GetSeekPosError = GetSeekPosErrorType; + + seekToFn: fn (self: *Self, pos: u64) SeekError!void, + seekByFn: fn (self: *Self, pos: i64) SeekError!void, + + getPosFn: fn (self: *Self) GetSeekPosError!u64, + getEndPosFn: fn (self: *Self) GetSeekPosError!u64, + + pub fn seekTo(self: *Self, pos: u64) SeekError!void { + return self.seekToFn(self, pos); + } + + pub fn seekBy(self: *Self, amt: i64) SeekError!void { + return self.seekByFn(self, amt); + } + + pub fn getEndPos(self: *Self) GetSeekPosError!u64 { + return self.getEndPosFn(self); + } + + pub fn getPos(self: *Self) GetSeekPosError!u64 { + return self.getPosFn(self); + } + }; +} + +pub const SliceSeekableInStream = struct { + const Self = @This(); + pub const Error = error{}; + pub const SeekError = error{EndOfStream}; + pub const GetSeekPosError = error{}; + pub const Stream = InStream(Error); + pub const SeekableInStream = SeekableStream(SeekError, GetSeekPosError); + + pub stream: Stream, + pub seekable_stream: SeekableInStream, + + pos: usize, + slice: []const u8, + + pub fn init(slice: []const u8) Self { + return Self{ + .slice = slice, + .pos = 0, + .stream = Stream{ .readFn = readFn }, + .seekable_stream = SeekableInStream{ + .seekToFn = seekToFn, + .seekByFn = seekByFn, + .getEndPosFn = getEndPosFn, + .getPosFn = getPosFn, + }, + }; + } + + fn readFn(in_stream: *Stream, dest: []u8) Error!usize { + const self = @fieldParentPtr(Self, "stream", in_stream); + const size = std.math.min(dest.len, self.slice.len - self.pos); + const end = self.pos + size; + + std.mem.copy(u8, dest[0..size], self.slice[self.pos..end]); + self.pos = end; + + return size; + } + + fn seekToFn(in_stream: *SeekableInStream, pos: u64) SeekError!void { + const self = @fieldParentPtr(Self, "seekable_stream", in_stream); + const usize_pos = @intCast(usize, pos); + if (usize_pos >= self.slice.len) return error.EndOfStream; + self.pos = usize_pos; + } + + fn seekByFn(in_stream: *SeekableInStream, amt: i64) SeekError!void { + const self = @fieldParentPtr(Self, "seekable_stream", in_stream); + + if (amt < 0) { + const abs_amt = @intCast(usize, -amt); + if (abs_amt > self.pos) return error.EndOfStream; + self.pos -= abs_amt; + } else { + const usize_amt = @intCast(usize, amt); + if (self.pos + usize_amt >= self.slice.len) return error.EndOfStream; + self.pos += usize_amt; + } + } + + fn getEndPosFn(in_stream: *SeekableInStream) GetSeekPosError!u64 { + const self = @fieldParentPtr(Self, "seekable_stream", in_stream); + return @intCast(u64, self.slice.len); + } + + fn getPosFn(in_stream: *SeekableInStream) GetSeekPosError!u64 { + const self = @fieldParentPtr(Self, "seekable_stream", in_stream); + return @intCast(u64, self.pos); + } +}; diff --git a/lib/std/io/test.zig b/lib/std/io/test.zig new file mode 100644 index 0000000000..537a0b9719 --- /dev/null +++ b/lib/std/io/test.zig @@ -0,0 +1,640 @@ +const builtin = @import("builtin"); +const std = @import("../std.zig"); +const io = std.io; +const meta = std.meta; +const trait = std.trait; +const DefaultPrng = std.rand.DefaultPrng; +const expect = std.testing.expect; +const expectError = std.testing.expectError; +const mem = std.mem; +const fs = std.fs; +const File = std.fs.File; + +test "write a file, read it, then delete it" { + if (builtin.arch == .aarch64 and builtin.glibc_version != null) { + // TODO https://github.com/ziglang/zig/issues/3288 + return error.SkipZigTest; + } + var raw_bytes: [200 * 1024]u8 = undefined; + var allocator = &std.heap.FixedBufferAllocator.init(raw_bytes[0..]).allocator; + + var data: [1024]u8 = undefined; + var prng = DefaultPrng.init(1234); + prng.random.bytes(data[0..]); + const tmp_file_name = "temp_test_file.txt"; + { + var file = try File.openWrite(tmp_file_name); + defer file.close(); + + var file_out_stream = file.outStream(); + var buf_stream = io.BufferedOutStream(File.WriteError).init(&file_out_stream.stream); + const st = &buf_stream.stream; + try st.print("begin"); + try st.write(data[0..]); + try st.print("end"); + try buf_stream.flush(); + } + + { + // make sure openWriteNoClobber doesn't harm the file + if (File.openWriteNoClobber(tmp_file_name, File.default_mode)) |file| { + unreachable; + } else |err| { + std.debug.assert(err == File.OpenError.PathAlreadyExists); + } + } + + { + var file = try File.openRead(tmp_file_name); + defer file.close(); + + const file_size = try file.getEndPos(); + const expected_file_size = "begin".len + data.len + "end".len; + expect(file_size == expected_file_size); + + var file_in_stream = file.inStream(); + var buf_stream = io.BufferedInStream(File.ReadError).init(&file_in_stream.stream); + const st = &buf_stream.stream; + const contents = try st.readAllAlloc(allocator, 2 * 1024); + defer allocator.free(contents); + + expect(mem.eql(u8, contents[0.."begin".len], "begin")); + expect(mem.eql(u8, contents["begin".len .. contents.len - "end".len], data)); + expect(mem.eql(u8, contents[contents.len - "end".len ..], "end")); + } + try fs.deleteFile(tmp_file_name); +} + +test "BufferOutStream" { + var bytes: [100]u8 = undefined; + var allocator = &std.heap.FixedBufferAllocator.init(bytes[0..]).allocator; + + var buffer = try std.Buffer.initSize(allocator, 0); + var buf_stream = &std.io.BufferOutStream.init(&buffer).stream; + + const x: i32 = 42; + const y: i32 = 1234; + try buf_stream.print("x: {}\ny: {}\n", x, y); + + expect(mem.eql(u8, buffer.toSlice(), "x: 42\ny: 1234\n")); +} + +test "SliceInStream" { + const bytes = [_]u8{ 1, 2, 3, 4, 5, 6, 7 }; + var ss = io.SliceInStream.init(bytes); + + var dest: [4]u8 = undefined; + + var read = try ss.stream.read(dest[0..4]); + expect(read == 4); + expect(mem.eql(u8, dest[0..4], bytes[0..4])); + + read = try ss.stream.read(dest[0..4]); + expect(read == 3); + expect(mem.eql(u8, dest[0..3], bytes[4..7])); + + read = try ss.stream.read(dest[0..4]); + expect(read == 0); +} + +test "PeekStream" { + const bytes = [_]u8{ 1, 2, 3, 4, 5, 6, 7, 8 }; + var ss = io.SliceInStream.init(bytes); + var ps = io.PeekStream(2, io.SliceInStream.Error).init(&ss.stream); + + var dest: [4]u8 = undefined; + + ps.putBackByte(9); + ps.putBackByte(10); + + var read = try ps.stream.read(dest[0..4]); + expect(read == 4); + expect(dest[0] == 10); + expect(dest[1] == 9); + expect(mem.eql(u8, dest[2..4], bytes[0..2])); + + read = try ps.stream.read(dest[0..4]); + expect(read == 4); + expect(mem.eql(u8, dest[0..4], bytes[2..6])); + + read = try ps.stream.read(dest[0..4]); + expect(read == 2); + expect(mem.eql(u8, dest[0..2], bytes[6..8])); + + ps.putBackByte(11); + ps.putBackByte(12); + + read = try ps.stream.read(dest[0..4]); + expect(read == 2); + expect(dest[0] == 12); + expect(dest[1] == 11); +} + +test "SliceOutStream" { + var buffer: [10]u8 = undefined; + var ss = io.SliceOutStream.init(buffer[0..]); + + try ss.stream.write("Hello"); + expect(mem.eql(u8, ss.getWritten(), "Hello")); + + try ss.stream.write("world"); + expect(mem.eql(u8, ss.getWritten(), "Helloworld")); + + expectError(error.OutOfSpace, ss.stream.write("!")); + expect(mem.eql(u8, ss.getWritten(), "Helloworld")); + + ss.reset(); + expect(ss.getWritten().len == 0); + + expectError(error.OutOfSpace, ss.stream.write("Hello world!")); + expect(mem.eql(u8, ss.getWritten(), "Hello worl")); +} + +test "BitInStream" { + const mem_be = [_]u8{ 0b11001101, 0b00001011 }; + const mem_le = [_]u8{ 0b00011101, 0b10010101 }; + + var mem_in_be = io.SliceInStream.init(mem_be[0..]); + const InError = io.SliceInStream.Error; + var bit_stream_be = io.BitInStream(builtin.Endian.Big, InError).init(&mem_in_be.stream); + + var out_bits: usize = undefined; + + expect(1 == try bit_stream_be.readBits(u2, 1, &out_bits)); + expect(out_bits == 1); + expect(2 == try bit_stream_be.readBits(u5, 2, &out_bits)); + expect(out_bits == 2); + expect(3 == try bit_stream_be.readBits(u128, 3, &out_bits)); + expect(out_bits == 3); + expect(4 == try bit_stream_be.readBits(u8, 4, &out_bits)); + expect(out_bits == 4); + expect(5 == try bit_stream_be.readBits(u9, 5, &out_bits)); + expect(out_bits == 5); + expect(1 == try bit_stream_be.readBits(u1, 1, &out_bits)); + expect(out_bits == 1); + + mem_in_be.pos = 0; + bit_stream_be.bit_count = 0; + expect(0b110011010000101 == try bit_stream_be.readBits(u15, 15, &out_bits)); + expect(out_bits == 15); + + mem_in_be.pos = 0; + bit_stream_be.bit_count = 0; + expect(0b1100110100001011 == try bit_stream_be.readBits(u16, 16, &out_bits)); + expect(out_bits == 16); + + _ = try bit_stream_be.readBits(u0, 0, &out_bits); + + expect(0 == try bit_stream_be.readBits(u1, 1, &out_bits)); + expect(out_bits == 0); + expectError(error.EndOfStream, bit_stream_be.readBitsNoEof(u1, 1)); + + var mem_in_le = io.SliceInStream.init(mem_le[0..]); + var bit_stream_le = io.BitInStream(builtin.Endian.Little, InError).init(&mem_in_le.stream); + + expect(1 == try bit_stream_le.readBits(u2, 1, &out_bits)); + expect(out_bits == 1); + expect(2 == try bit_stream_le.readBits(u5, 2, &out_bits)); + expect(out_bits == 2); + expect(3 == try bit_stream_le.readBits(u128, 3, &out_bits)); + expect(out_bits == 3); + expect(4 == try bit_stream_le.readBits(u8, 4, &out_bits)); + expect(out_bits == 4); + expect(5 == try bit_stream_le.readBits(u9, 5, &out_bits)); + expect(out_bits == 5); + expect(1 == try bit_stream_le.readBits(u1, 1, &out_bits)); + expect(out_bits == 1); + + mem_in_le.pos = 0; + bit_stream_le.bit_count = 0; + expect(0b001010100011101 == try bit_stream_le.readBits(u15, 15, &out_bits)); + expect(out_bits == 15); + + mem_in_le.pos = 0; + bit_stream_le.bit_count = 0; + expect(0b1001010100011101 == try bit_stream_le.readBits(u16, 16, &out_bits)); + expect(out_bits == 16); + + _ = try bit_stream_le.readBits(u0, 0, &out_bits); + + expect(0 == try bit_stream_le.readBits(u1, 1, &out_bits)); + expect(out_bits == 0); + expectError(error.EndOfStream, bit_stream_le.readBitsNoEof(u1, 1)); +} + +test "BitOutStream" { + var mem_be = [_]u8{0} ** 2; + var mem_le = [_]u8{0} ** 2; + + var mem_out_be = io.SliceOutStream.init(mem_be[0..]); + const OutError = io.SliceOutStream.Error; + var bit_stream_be = io.BitOutStream(builtin.Endian.Big, OutError).init(&mem_out_be.stream); + + try bit_stream_be.writeBits(u2(1), 1); + try bit_stream_be.writeBits(u5(2), 2); + try bit_stream_be.writeBits(u128(3), 3); + try bit_stream_be.writeBits(u8(4), 4); + try bit_stream_be.writeBits(u9(5), 5); + try bit_stream_be.writeBits(u1(1), 1); + + expect(mem_be[0] == 0b11001101 and mem_be[1] == 0b00001011); + + mem_out_be.pos = 0; + + try bit_stream_be.writeBits(u15(0b110011010000101), 15); + try bit_stream_be.flushBits(); + expect(mem_be[0] == 0b11001101 and mem_be[1] == 0b00001010); + + mem_out_be.pos = 0; + try bit_stream_be.writeBits(u32(0b110011010000101), 16); + expect(mem_be[0] == 0b01100110 and mem_be[1] == 0b10000101); + + try bit_stream_be.writeBits(u0(0), 0); + + var mem_out_le = io.SliceOutStream.init(mem_le[0..]); + var bit_stream_le = io.BitOutStream(builtin.Endian.Little, OutError).init(&mem_out_le.stream); + + try bit_stream_le.writeBits(u2(1), 1); + try bit_stream_le.writeBits(u5(2), 2); + try bit_stream_le.writeBits(u128(3), 3); + try bit_stream_le.writeBits(u8(4), 4); + try bit_stream_le.writeBits(u9(5), 5); + try bit_stream_le.writeBits(u1(1), 1); + + expect(mem_le[0] == 0b00011101 and mem_le[1] == 0b10010101); + + mem_out_le.pos = 0; + try bit_stream_le.writeBits(u15(0b110011010000101), 15); + try bit_stream_le.flushBits(); + expect(mem_le[0] == 0b10000101 and mem_le[1] == 0b01100110); + + mem_out_le.pos = 0; + try bit_stream_le.writeBits(u32(0b1100110100001011), 16); + expect(mem_le[0] == 0b00001011 and mem_le[1] == 0b11001101); + + try bit_stream_le.writeBits(u0(0), 0); +} + +test "BitStreams with File Stream" { + const tmp_file_name = "temp_test_file.txt"; + { + var file = try File.openWrite(tmp_file_name); + defer file.close(); + + var file_out = file.outStream(); + var file_out_stream = &file_out.stream; + const OutError = File.WriteError; + var bit_stream = io.BitOutStream(builtin.endian, OutError).init(file_out_stream); + + try bit_stream.writeBits(u2(1), 1); + try bit_stream.writeBits(u5(2), 2); + try bit_stream.writeBits(u128(3), 3); + try bit_stream.writeBits(u8(4), 4); + try bit_stream.writeBits(u9(5), 5); + try bit_stream.writeBits(u1(1), 1); + try bit_stream.flushBits(); + } + { + var file = try File.openRead(tmp_file_name); + defer file.close(); + + var file_in = file.inStream(); + var file_in_stream = &file_in.stream; + const InError = File.ReadError; + var bit_stream = io.BitInStream(builtin.endian, InError).init(file_in_stream); + + var out_bits: usize = undefined; + + expect(1 == try bit_stream.readBits(u2, 1, &out_bits)); + expect(out_bits == 1); + expect(2 == try bit_stream.readBits(u5, 2, &out_bits)); + expect(out_bits == 2); + expect(3 == try bit_stream.readBits(u128, 3, &out_bits)); + expect(out_bits == 3); + expect(4 == try bit_stream.readBits(u8, 4, &out_bits)); + expect(out_bits == 4); + expect(5 == try bit_stream.readBits(u9, 5, &out_bits)); + expect(out_bits == 5); + expect(1 == try bit_stream.readBits(u1, 1, &out_bits)); + expect(out_bits == 1); + + expectError(error.EndOfStream, bit_stream.readBitsNoEof(u1, 1)); + } + try fs.deleteFile(tmp_file_name); +} + +fn testIntSerializerDeserializer(comptime endian: builtin.Endian, comptime packing: io.Packing) !void { + //@NOTE: if this test is taking too long, reduce the maximum tested bitsize + const max_test_bitsize = 128; + + const total_bytes = comptime blk: { + var bytes = 0; + comptime var i = 0; + while (i <= max_test_bitsize) : (i += 1) bytes += (i / 8) + @boolToInt(i % 8 > 0); + break :blk bytes * 2; + }; + + var data_mem: [total_bytes]u8 = undefined; + var out = io.SliceOutStream.init(data_mem[0..]); + const OutError = io.SliceOutStream.Error; + var out_stream = &out.stream; + var serializer = io.Serializer(endian, packing, OutError).init(out_stream); + + var in = io.SliceInStream.init(data_mem[0..]); + const InError = io.SliceInStream.Error; + var in_stream = &in.stream; + var deserializer = io.Deserializer(endian, packing, InError).init(in_stream); + + comptime var i = 0; + inline while (i <= max_test_bitsize) : (i += 1) { + const U = @IntType(false, i); + const S = @IntType(true, i); + try serializer.serializeInt(U(i)); + if (i != 0) try serializer.serializeInt(S(-1)) else try serializer.serialize(S(0)); + } + try serializer.flush(); + + i = 0; + inline while (i <= max_test_bitsize) : (i += 1) { + const U = @IntType(false, i); + const S = @IntType(true, i); + const x = try deserializer.deserializeInt(U); + const y = try deserializer.deserializeInt(S); + expect(x == U(i)); + if (i != 0) expect(y == S(-1)) else expect(y == 0); + } + + const u8_bit_count = comptime meta.bitCount(u8); + //0 + 1 + 2 + ... n = (n * (n + 1)) / 2 + //and we have each for unsigned and signed, so * 2 + const total_bits = (max_test_bitsize * (max_test_bitsize + 1)); + const extra_packed_byte = @boolToInt(total_bits % u8_bit_count > 0); + const total_packed_bytes = (total_bits / u8_bit_count) + extra_packed_byte; + + expect(in.pos == if (packing == .Bit) total_packed_bytes else total_bytes); + + //Verify that empty error set works with serializer. + //deserializer is covered by SliceInStream + const NullError = io.NullOutStream.Error; + var null_out = io.NullOutStream.init(); + var null_out_stream = &null_out.stream; + var null_serializer = io.Serializer(endian, packing, NullError).init(null_out_stream); + try null_serializer.serialize(data_mem[0..]); + try null_serializer.flush(); +} + +test "Serializer/Deserializer Int" { + try testIntSerializerDeserializer(.Big, .Byte); + try testIntSerializerDeserializer(.Little, .Byte); + // TODO these tests are disabled due to tripping an LLVM assertion + // https://github.com/ziglang/zig/issues/2019 + //try testIntSerializerDeserializer(builtin.Endian.Big, true); + //try testIntSerializerDeserializer(builtin.Endian.Little, true); +} + +fn testIntSerializerDeserializerInfNaN( + comptime endian: builtin.Endian, + comptime packing: io.Packing, +) !void { + const mem_size = (16 * 2 + 32 * 2 + 64 * 2 + 128 * 2) / comptime meta.bitCount(u8); + var data_mem: [mem_size]u8 = undefined; + + var out = io.SliceOutStream.init(data_mem[0..]); + const OutError = io.SliceOutStream.Error; + var out_stream = &out.stream; + var serializer = io.Serializer(endian, packing, OutError).init(out_stream); + + var in = io.SliceInStream.init(data_mem[0..]); + const InError = io.SliceInStream.Error; + var in_stream = &in.stream; + var deserializer = io.Deserializer(endian, packing, InError).init(in_stream); + + //@TODO: isInf/isNan not currently implemented for f128. + try serializer.serialize(std.math.nan(f16)); + try serializer.serialize(std.math.inf(f16)); + try serializer.serialize(std.math.nan(f32)); + try serializer.serialize(std.math.inf(f32)); + try serializer.serialize(std.math.nan(f64)); + try serializer.serialize(std.math.inf(f64)); + //try serializer.serialize(std.math.nan(f128)); + //try serializer.serialize(std.math.inf(f128)); + const nan_check_f16 = try deserializer.deserialize(f16); + const inf_check_f16 = try deserializer.deserialize(f16); + const nan_check_f32 = try deserializer.deserialize(f32); + deserializer.alignToByte(); + const inf_check_f32 = try deserializer.deserialize(f32); + const nan_check_f64 = try deserializer.deserialize(f64); + const inf_check_f64 = try deserializer.deserialize(f64); + //const nan_check_f128 = try deserializer.deserialize(f128); + //const inf_check_f128 = try deserializer.deserialize(f128); + expect(std.math.isNan(nan_check_f16)); + expect(std.math.isInf(inf_check_f16)); + expect(std.math.isNan(nan_check_f32)); + expect(std.math.isInf(inf_check_f32)); + expect(std.math.isNan(nan_check_f64)); + expect(std.math.isInf(inf_check_f64)); + //expect(std.math.isNan(nan_check_f128)); + //expect(std.math.isInf(inf_check_f128)); +} + +test "Serializer/Deserializer Int: Inf/NaN" { + try testIntSerializerDeserializerInfNaN(.Big, .Byte); + try testIntSerializerDeserializerInfNaN(.Little, .Byte); + try testIntSerializerDeserializerInfNaN(.Big, .Bit); + try testIntSerializerDeserializerInfNaN(.Little, .Bit); +} + +fn testAlternateSerializer(self: var, serializer: var) !void { + try serializer.serialize(self.f_f16); +} + +fn testSerializerDeserializer(comptime endian: builtin.Endian, comptime packing: io.Packing) !void { + const ColorType = enum(u4) { + RGB8 = 1, + RA16 = 2, + R32 = 3, + }; + + const TagAlign = union(enum(u32)) { + A: u8, + B: u8, + C: u8, + }; + + const Color = union(ColorType) { + RGB8: struct { + r: u8, + g: u8, + b: u8, + a: u8, + }, + RA16: struct { + r: u16, + a: u16, + }, + R32: u32, + }; + + const PackedStruct = packed struct { + f_i3: i3, + f_u2: u2, + }; + + //to test custom serialization + const Custom = struct { + f_f16: f16, + f_unused_u32: u32, + + pub fn deserialize(self: *@This(), deserializer: var) !void { + try deserializer.deserializeInto(&self.f_f16); + self.f_unused_u32 = 47; + } + + pub const serialize = testAlternateSerializer; + }; + + const MyStruct = struct { + f_i3: i3, + f_u8: u8, + f_tag_align: TagAlign, + f_u24: u24, + f_i19: i19, + f_void: void, + f_f32: f32, + f_f128: f128, + f_packed_0: PackedStruct, + f_i7arr: [10]i7, + f_of64n: ?f64, + f_of64v: ?f64, + f_color_type: ColorType, + f_packed_1: PackedStruct, + f_custom: Custom, + f_color: Color, + }; + + const my_inst = MyStruct{ + .f_i3 = -1, + .f_u8 = 8, + .f_tag_align = TagAlign{ .B = 148 }, + .f_u24 = 24, + .f_i19 = 19, + .f_void = {}, + .f_f32 = 32.32, + .f_f128 = 128.128, + .f_packed_0 = PackedStruct{ .f_i3 = -1, .f_u2 = 2 }, + .f_i7arr = [10]i7{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, + .f_of64n = null, + .f_of64v = 64.64, + .f_color_type = ColorType.R32, + .f_packed_1 = PackedStruct{ .f_i3 = 1, .f_u2 = 1 }, + .f_custom = Custom{ .f_f16 = 38.63, .f_unused_u32 = 47 }, + .f_color = Color{ .R32 = 123822 }, + }; + + var data_mem: [@sizeOf(MyStruct)]u8 = undefined; + var out = io.SliceOutStream.init(data_mem[0..]); + const OutError = io.SliceOutStream.Error; + var out_stream = &out.stream; + var serializer = io.Serializer(endian, packing, OutError).init(out_stream); + + var in = io.SliceInStream.init(data_mem[0..]); + const InError = io.SliceInStream.Error; + var in_stream = &in.stream; + var deserializer = io.Deserializer(endian, packing, InError).init(in_stream); + + try serializer.serialize(my_inst); + + const my_copy = try deserializer.deserialize(MyStruct); + expect(meta.eql(my_copy, my_inst)); +} + +test "Serializer/Deserializer generic" { + try testSerializerDeserializer(builtin.Endian.Big, .Byte); + try testSerializerDeserializer(builtin.Endian.Little, .Byte); + try testSerializerDeserializer(builtin.Endian.Big, .Bit); + try testSerializerDeserializer(builtin.Endian.Little, .Bit); +} + +fn testBadData(comptime endian: builtin.Endian, comptime packing: io.Packing) !void { + const E = enum(u14) { + One = 1, + Two = 2, + }; + + const A = struct { + e: E, + }; + + const C = union(E) { + One: u14, + Two: f16, + }; + + var data_mem: [4]u8 = undefined; + var out = io.SliceOutStream.init(data_mem[0..]); + const OutError = io.SliceOutStream.Error; + var out_stream = &out.stream; + var serializer = io.Serializer(endian, packing, OutError).init(out_stream); + + var in = io.SliceInStream.init(data_mem[0..]); + const InError = io.SliceInStream.Error; + var in_stream = &in.stream; + var deserializer = io.Deserializer(endian, packing, InError).init(in_stream); + + try serializer.serialize(u14(3)); + expectError(error.InvalidEnumTag, deserializer.deserialize(A)); + out.pos = 0; + try serializer.serialize(u14(3)); + try serializer.serialize(u14(88)); + expectError(error.InvalidEnumTag, deserializer.deserialize(C)); +} + +test "Deserializer bad data" { + try testBadData(.Big, .Byte); + try testBadData(.Little, .Byte); + try testBadData(.Big, .Bit); + try testBadData(.Little, .Bit); +} + +test "c out stream" { + if (!builtin.link_libc) return error.SkipZigTest; + + const filename = c"tmp_io_test_file.txt"; + const out_file = std.c.fopen(filename, c"w") orelse return error.UnableToOpenTestFile; + defer { + _ = std.c.fclose(out_file); + fs.deleteFileC(filename) catch {}; + } + + const out_stream = &io.COutStream.init(out_file).stream; + try out_stream.print("hi: {}\n", i32(123)); +} + +test "File seek ops" { + if (builtin.arch == .aarch64 and builtin.glibc_version != null) { + // TODO https://github.com/ziglang/zig/issues/3288 + return error.SkipZigTest; + } + + const tmp_file_name = "temp_test_file.txt"; + var file = try File.openWrite(tmp_file_name); + defer { + file.close(); + fs.deleteFile(tmp_file_name) catch {}; + } + + try file.write([_]u8{0x55} ** 8192); + + // Seek to the end + try file.seekFromEnd(0); + std.testing.expect((try file.getPos()) == try file.getEndPos()); + // Negative delta + try file.seekBy(-4096); + std.testing.expect((try file.getPos()) == 4096); + // Positive delta + try file.seekBy(10); + std.testing.expect((try file.getPos()) == 4106); + // Absolute position + try file.seekTo(1234); + std.testing.expect((try file.getPos()) == 1234); +} diff --git a/lib/std/json.zig b/lib/std/json.zig new file mode 100644 index 0000000000..f562a672f8 --- /dev/null +++ b/lib/std/json.zig @@ -0,0 +1,1407 @@ +// JSON parser conforming to RFC8259. +// +// https://tools.ietf.org/html/rfc8259 + +const std = @import("std.zig"); +const debug = std.debug; +const testing = std.testing; +const mem = std.mem; +const maxInt = std.math.maxInt; + +// A single token slice into the parent string. +// +// Use `token.slice()` on the input at the current position to get the current slice. +pub const Token = struct { + id: Id, + // How many bytes do we skip before counting + offset: u1, + // Whether string contains a \uXXXX sequence and cannot be zero-copied + string_has_escape: bool, + // Whether number is simple and can be represented by an integer (i.e. no `.` or `e`) + number_is_integer: bool, + // How many bytes from the current position behind the start of this token is. + count: usize, + + pub const Id = enum { + ObjectBegin, + ObjectEnd, + ArrayBegin, + ArrayEnd, + String, + Number, + True, + False, + Null, + }; + + pub fn init(id: Id, count: usize, offset: u1) Token { + return Token{ + .id = id, + .offset = offset, + .string_has_escape = false, + .number_is_integer = true, + .count = count, + }; + } + + pub fn initString(count: usize, has_unicode_escape: bool) Token { + return Token{ + .id = Id.String, + .offset = 0, + .string_has_escape = has_unicode_escape, + .number_is_integer = true, + .count = count, + }; + } + + pub fn initNumber(count: usize, number_is_integer: bool) Token { + return Token{ + .id = Id.Number, + .offset = 0, + .string_has_escape = false, + .number_is_integer = number_is_integer, + .count = count, + }; + } + + // A marker token is a zero-length + pub fn initMarker(id: Id) Token { + return Token{ + .id = id, + .offset = 0, + .string_has_escape = false, + .number_is_integer = true, + .count = 0, + }; + } + + // Slice into the underlying input string. + pub fn slice(self: Token, input: []const u8, i: usize) []const u8 { + return input[i + self.offset - self.count .. i + self.offset]; + } +}; + +// A small streaming JSON parser. This accepts input one byte at a time and returns tokens as +// they are encountered. No copies or allocations are performed during parsing and the entire +// parsing state requires ~40-50 bytes of stack space. +// +// Conforms strictly to RFC8529. +// +// For a non-byte based wrapper, consider using TokenStream instead. +pub const StreamingParser = struct { + // Current state + state: State, + // How many bytes we have counted for the current token + count: usize, + // What state to follow after parsing a string (either property or value string) + after_string_state: State, + // What state to follow after parsing a value (either top-level or value end) + after_value_state: State, + // If we stopped now, would the complete parsed string to now be a valid json string + complete: bool, + // Current token flags to pass through to the next generated, see Token. + string_has_escape: bool, + number_is_integer: bool, + + // Bit-stack for nested object/map literals (max 255 nestings). + stack: u256, + stack_used: u8, + + const object_bit = 0; + const array_bit = 1; + const max_stack_size = maxInt(u8); + + pub fn init() StreamingParser { + var p: StreamingParser = undefined; + p.reset(); + return p; + } + + pub fn reset(p: *StreamingParser) void { + p.state = State.TopLevelBegin; + p.count = 0; + // Set before ever read in main transition function + p.after_string_state = undefined; + p.after_value_state = State.ValueEnd; // handle end of values normally + p.stack = 0; + p.stack_used = 0; + p.complete = false; + p.string_has_escape = false; + p.number_is_integer = true; + } + + pub const State = enum { + // These must be first with these explicit values as we rely on them for indexing the + // bit-stack directly and avoiding a branch. + ObjectSeparator = 0, + ValueEnd = 1, + + TopLevelBegin, + TopLevelEnd, + + ValueBegin, + ValueBeginNoClosing, + + String, + StringUtf8Byte3, + StringUtf8Byte2, + StringUtf8Byte1, + StringEscapeCharacter, + StringEscapeHexUnicode4, + StringEscapeHexUnicode3, + StringEscapeHexUnicode2, + StringEscapeHexUnicode1, + + Number, + NumberMaybeDotOrExponent, + NumberMaybeDigitOrDotOrExponent, + NumberFractionalRequired, + NumberFractional, + NumberMaybeExponent, + NumberExponent, + NumberExponentDigitsRequired, + NumberExponentDigits, + + TrueLiteral1, + TrueLiteral2, + TrueLiteral3, + + FalseLiteral1, + FalseLiteral2, + FalseLiteral3, + FalseLiteral4, + + NullLiteral1, + NullLiteral2, + NullLiteral3, + + // Only call this function to generate array/object final state. + pub fn fromInt(x: var) State { + debug.assert(x == 0 or x == 1); + const T = @TagType(State); + return @intToEnum(State, @intCast(T, x)); + } + }; + + pub const Error = error{ + InvalidTopLevel, + TooManyNestedItems, + TooManyClosingItems, + InvalidValueBegin, + InvalidValueEnd, + UnbalancedBrackets, + UnbalancedBraces, + UnexpectedClosingBracket, + UnexpectedClosingBrace, + InvalidNumber, + InvalidSeparator, + InvalidLiteral, + InvalidEscapeCharacter, + InvalidUnicodeHexSymbol, + InvalidUtf8Byte, + InvalidTopLevelTrailing, + InvalidControlCharacter, + }; + + // Give another byte to the parser and obtain any new tokens. This may (rarely) return two + // tokens. token2 is always null if token1 is null. + // + // There is currently no error recovery on a bad stream. + pub fn feed(p: *StreamingParser, c: u8, token1: *?Token, token2: *?Token) Error!void { + token1.* = null; + token2.* = null; + p.count += 1; + + // unlikely + if (try p.transition(c, token1)) { + _ = try p.transition(c, token2); + } + } + + // Perform a single transition on the state machine and return any possible token. + fn transition(p: *StreamingParser, c: u8, token: *?Token) Error!bool { + switch (p.state) { + State.TopLevelBegin => switch (c) { + '{' => { + p.stack <<= 1; + p.stack |= object_bit; + p.stack_used += 1; + + p.state = State.ValueBegin; + p.after_string_state = State.ObjectSeparator; + + token.* = Token.initMarker(Token.Id.ObjectBegin); + }, + '[' => { + p.stack <<= 1; + p.stack |= array_bit; + p.stack_used += 1; + + p.state = State.ValueBegin; + p.after_string_state = State.ValueEnd; + + token.* = Token.initMarker(Token.Id.ArrayBegin); + }, + '-' => { + p.number_is_integer = true; + p.state = State.Number; + p.after_value_state = State.TopLevelEnd; + p.count = 0; + }, + '0' => { + p.number_is_integer = true; + p.state = State.NumberMaybeDotOrExponent; + p.after_value_state = State.TopLevelEnd; + p.count = 0; + }, + '1'...'9' => { + p.number_is_integer = true; + p.state = State.NumberMaybeDigitOrDotOrExponent; + p.after_value_state = State.TopLevelEnd; + p.count = 0; + }, + '"' => { + p.state = State.String; + p.after_value_state = State.TopLevelEnd; + // We don't actually need the following since after_value_state should override. + p.after_string_state = State.ValueEnd; + p.string_has_escape = false; + p.count = 0; + }, + 't' => { + p.state = State.TrueLiteral1; + p.after_value_state = State.TopLevelEnd; + p.count = 0; + }, + 'f' => { + p.state = State.FalseLiteral1; + p.after_value_state = State.TopLevelEnd; + p.count = 0; + }, + 'n' => { + p.state = State.NullLiteral1; + p.after_value_state = State.TopLevelEnd; + p.count = 0; + }, + 0x09, 0x0A, 0x0D, 0x20 => { + // whitespace + }, + else => { + return error.InvalidTopLevel; + }, + }, + + State.TopLevelEnd => switch (c) { + 0x09, 0x0A, 0x0D, 0x20 => { + // whitespace + }, + else => { + return error.InvalidTopLevelTrailing; + }, + }, + + State.ValueBegin => switch (c) { + // NOTE: These are shared in ValueEnd as well, think we can reorder states to + // be a bit clearer and avoid this duplication. + '}' => { + // unlikely + if (p.stack & 1 != object_bit) { + return error.UnexpectedClosingBracket; + } + if (p.stack_used == 0) { + return error.TooManyClosingItems; + } + + p.state = State.ValueBegin; + p.after_string_state = State.fromInt(p.stack & 1); + + p.stack >>= 1; + p.stack_used -= 1; + + switch (p.stack_used) { + 0 => { + p.complete = true; + p.state = State.TopLevelEnd; + }, + else => { + p.state = State.ValueEnd; + }, + } + + token.* = Token.initMarker(Token.Id.ObjectEnd); + }, + ']' => { + if (p.stack & 1 != array_bit) { + return error.UnexpectedClosingBrace; + } + if (p.stack_used == 0) { + return error.TooManyClosingItems; + } + + p.state = State.ValueBegin; + p.after_string_state = State.fromInt(p.stack & 1); + + p.stack >>= 1; + p.stack_used -= 1; + + switch (p.stack_used) { + 0 => { + p.complete = true; + p.state = State.TopLevelEnd; + }, + else => { + p.state = State.ValueEnd; + }, + } + + token.* = Token.initMarker(Token.Id.ArrayEnd); + }, + '{' => { + if (p.stack_used == max_stack_size) { + return error.TooManyNestedItems; + } + + p.stack <<= 1; + p.stack |= object_bit; + p.stack_used += 1; + + p.state = State.ValueBegin; + p.after_string_state = State.ObjectSeparator; + + token.* = Token.initMarker(Token.Id.ObjectBegin); + }, + '[' => { + if (p.stack_used == max_stack_size) { + return error.TooManyNestedItems; + } + + p.stack <<= 1; + p.stack |= array_bit; + p.stack_used += 1; + + p.state = State.ValueBegin; + p.after_string_state = State.ValueEnd; + + token.* = Token.initMarker(Token.Id.ArrayBegin); + }, + '-' => { + p.state = State.Number; + p.count = 0; + }, + '0' => { + p.state = State.NumberMaybeDotOrExponent; + p.count = 0; + }, + '1'...'9' => { + p.state = State.NumberMaybeDigitOrDotOrExponent; + p.count = 0; + }, + '"' => { + p.state = State.String; + p.count = 0; + }, + 't' => { + p.state = State.TrueLiteral1; + p.count = 0; + }, + 'f' => { + p.state = State.FalseLiteral1; + p.count = 0; + }, + 'n' => { + p.state = State.NullLiteral1; + p.count = 0; + }, + 0x09, 0x0A, 0x0D, 0x20 => { + // whitespace + }, + else => { + return error.InvalidValueBegin; + }, + }, + + // TODO: A bit of duplication here and in the following state, redo. + State.ValueBeginNoClosing => switch (c) { + '{' => { + if (p.stack_used == max_stack_size) { + return error.TooManyNestedItems; + } + + p.stack <<= 1; + p.stack |= object_bit; + p.stack_used += 1; + + p.state = State.ValueBegin; + p.after_string_state = State.ObjectSeparator; + + token.* = Token.initMarker(Token.Id.ObjectBegin); + }, + '[' => { + if (p.stack_used == max_stack_size) { + return error.TooManyNestedItems; + } + + p.stack <<= 1; + p.stack |= array_bit; + p.stack_used += 1; + + p.state = State.ValueBegin; + p.after_string_state = State.ValueEnd; + + token.* = Token.initMarker(Token.Id.ArrayBegin); + }, + '-' => { + p.state = State.Number; + p.count = 0; + }, + '0' => { + p.state = State.NumberMaybeDotOrExponent; + p.count = 0; + }, + '1'...'9' => { + p.state = State.NumberMaybeDigitOrDotOrExponent; + p.count = 0; + }, + '"' => { + p.state = State.String; + p.count = 0; + }, + 't' => { + p.state = State.TrueLiteral1; + p.count = 0; + }, + 'f' => { + p.state = State.FalseLiteral1; + p.count = 0; + }, + 'n' => { + p.state = State.NullLiteral1; + p.count = 0; + }, + 0x09, 0x0A, 0x0D, 0x20 => { + // whitespace + }, + else => { + return error.InvalidValueBegin; + }, + }, + + State.ValueEnd => switch (c) { + ',' => { + p.after_string_state = State.fromInt(p.stack & 1); + p.state = State.ValueBeginNoClosing; + }, + ']' => { + if (p.stack_used == 0) { + return error.UnbalancedBrackets; + } + + p.state = State.ValueEnd; + p.after_string_state = State.fromInt(p.stack & 1); + + p.stack >>= 1; + p.stack_used -= 1; + + if (p.stack_used == 0) { + p.complete = true; + p.state = State.TopLevelEnd; + } + + token.* = Token.initMarker(Token.Id.ArrayEnd); + }, + '}' => { + if (p.stack_used == 0) { + return error.UnbalancedBraces; + } + + p.state = State.ValueEnd; + p.after_string_state = State.fromInt(p.stack & 1); + + p.stack >>= 1; + p.stack_used -= 1; + + if (p.stack_used == 0) { + p.complete = true; + p.state = State.TopLevelEnd; + } + + token.* = Token.initMarker(Token.Id.ObjectEnd); + }, + 0x09, 0x0A, 0x0D, 0x20 => { + // whitespace + }, + else => { + return error.InvalidValueEnd; + }, + }, + + State.ObjectSeparator => switch (c) { + ':' => { + p.state = State.ValueBegin; + p.after_string_state = State.ValueEnd; + }, + 0x09, 0x0A, 0x0D, 0x20 => { + // whitespace + }, + else => { + return error.InvalidSeparator; + }, + }, + + State.String => switch (c) { + 0x00...0x1F => { + return error.InvalidControlCharacter; + }, + '"' => { + p.state = p.after_string_state; + if (p.after_value_state == State.TopLevelEnd) { + p.state = State.TopLevelEnd; + p.complete = true; + } + + token.* = Token.initString(p.count - 1, p.string_has_escape); + }, + '\\' => { + p.state = State.StringEscapeCharacter; + }, + 0x20, 0x21, 0x23...0x5B, 0x5D...0x7F => { + // non-control ascii + }, + 0xC0...0xDF => { + p.state = State.StringUtf8Byte1; + }, + 0xE0...0xEF => { + p.state = State.StringUtf8Byte2; + }, + 0xF0...0xFF => { + p.state = State.StringUtf8Byte3; + }, + else => { + return error.InvalidUtf8Byte; + }, + }, + + State.StringUtf8Byte3 => switch (c >> 6) { + 0b10 => p.state = State.StringUtf8Byte2, + else => return error.InvalidUtf8Byte, + }, + + State.StringUtf8Byte2 => switch (c >> 6) { + 0b10 => p.state = State.StringUtf8Byte1, + else => return error.InvalidUtf8Byte, + }, + + State.StringUtf8Byte1 => switch (c >> 6) { + 0b10 => p.state = State.String, + else => return error.InvalidUtf8Byte, + }, + + State.StringEscapeCharacter => switch (c) { + // NOTE: '/' is allowed as an escaped character but it also is allowed + // as unescaped according to the RFC. There is a reported errata which suggests + // removing the non-escaped variant but it makes more sense to simply disallow + // it as an escape code here. + // + // The current JSONTestSuite tests rely on both of this behaviour being present + // however, so we default to the status quo where both are accepted until this + // is further clarified. + '"', '\\', '/', 'b', 'f', 'n', 'r', 't' => { + p.string_has_escape = true; + p.state = State.String; + }, + 'u' => { + p.string_has_escape = true; + p.state = State.StringEscapeHexUnicode4; + }, + else => { + return error.InvalidEscapeCharacter; + }, + }, + + State.StringEscapeHexUnicode4 => switch (c) { + '0'...'9', 'A'...'F', 'a'...'f' => { + p.state = State.StringEscapeHexUnicode3; + }, + else => return error.InvalidUnicodeHexSymbol, + }, + + State.StringEscapeHexUnicode3 => switch (c) { + '0'...'9', 'A'...'F', 'a'...'f' => { + p.state = State.StringEscapeHexUnicode2; + }, + else => return error.InvalidUnicodeHexSymbol, + }, + + State.StringEscapeHexUnicode2 => switch (c) { + '0'...'9', 'A'...'F', 'a'...'f' => { + p.state = State.StringEscapeHexUnicode1; + }, + else => return error.InvalidUnicodeHexSymbol, + }, + + State.StringEscapeHexUnicode1 => switch (c) { + '0'...'9', 'A'...'F', 'a'...'f' => { + p.state = State.String; + }, + else => return error.InvalidUnicodeHexSymbol, + }, + + State.Number => { + p.complete = p.after_value_state == State.TopLevelEnd; + switch (c) { + '0' => { + p.state = State.NumberMaybeDotOrExponent; + }, + '1'...'9' => { + p.state = State.NumberMaybeDigitOrDotOrExponent; + }, + else => { + return error.InvalidNumber; + }, + } + }, + + State.NumberMaybeDotOrExponent => { + p.complete = p.after_value_state == State.TopLevelEnd; + switch (c) { + '.' => { + p.number_is_integer = false; + p.state = State.NumberFractionalRequired; + }, + 'e', 'E' => { + p.number_is_integer = false; + p.state = State.NumberExponent; + }, + else => { + p.state = p.after_value_state; + token.* = Token.initNumber(p.count, p.number_is_integer); + return true; + }, + } + }, + + State.NumberMaybeDigitOrDotOrExponent => { + p.complete = p.after_value_state == State.TopLevelEnd; + switch (c) { + '.' => { + p.number_is_integer = false; + p.state = State.NumberFractionalRequired; + }, + 'e', 'E' => { + p.number_is_integer = false; + p.state = State.NumberExponent; + }, + '0'...'9' => { + // another digit + }, + else => { + p.state = p.after_value_state; + token.* = Token.initNumber(p.count, p.number_is_integer); + return true; + }, + } + }, + + State.NumberFractionalRequired => { + p.complete = p.after_value_state == State.TopLevelEnd; + switch (c) { + '0'...'9' => { + p.state = State.NumberFractional; + }, + else => { + return error.InvalidNumber; + }, + } + }, + + State.NumberFractional => { + p.complete = p.after_value_state == State.TopLevelEnd; + switch (c) { + '0'...'9' => { + // another digit + }, + 'e', 'E' => { + p.number_is_integer = false; + p.state = State.NumberExponent; + }, + else => { + p.state = p.after_value_state; + token.* = Token.initNumber(p.count, p.number_is_integer); + return true; + }, + } + }, + + State.NumberMaybeExponent => { + p.complete = p.after_value_state == State.TopLevelEnd; + switch (c) { + 'e', 'E' => { + p.number_is_integer = false; + p.state = State.NumberExponent; + }, + else => { + p.state = p.after_value_state; + token.* = Token.initNumber(p.count, p.number_is_integer); + return true; + }, + } + }, + + State.NumberExponent => switch (c) { + '-', '+' => { + p.complete = false; + p.state = State.NumberExponentDigitsRequired; + }, + '0'...'9' => { + p.complete = p.after_value_state == State.TopLevelEnd; + p.state = State.NumberExponentDigits; + }, + else => { + return error.InvalidNumber; + }, + }, + + State.NumberExponentDigitsRequired => switch (c) { + '0'...'9' => { + p.complete = p.after_value_state == State.TopLevelEnd; + p.state = State.NumberExponentDigits; + }, + else => { + return error.InvalidNumber; + }, + }, + + State.NumberExponentDigits => { + p.complete = p.after_value_state == State.TopLevelEnd; + switch (c) { + '0'...'9' => { + // another digit + }, + else => { + p.state = p.after_value_state; + token.* = Token.initNumber(p.count, p.number_is_integer); + return true; + }, + } + }, + + State.TrueLiteral1 => switch (c) { + 'r' => p.state = State.TrueLiteral2, + else => return error.InvalidLiteral, + }, + + State.TrueLiteral2 => switch (c) { + 'u' => p.state = State.TrueLiteral3, + else => return error.InvalidLiteral, + }, + + State.TrueLiteral3 => switch (c) { + 'e' => { + p.state = p.after_value_state; + p.complete = p.state == State.TopLevelEnd; + token.* = Token.init(Token.Id.True, p.count + 1, 1); + }, + else => { + return error.InvalidLiteral; + }, + }, + + State.FalseLiteral1 => switch (c) { + 'a' => p.state = State.FalseLiteral2, + else => return error.InvalidLiteral, + }, + + State.FalseLiteral2 => switch (c) { + 'l' => p.state = State.FalseLiteral3, + else => return error.InvalidLiteral, + }, + + State.FalseLiteral3 => switch (c) { + 's' => p.state = State.FalseLiteral4, + else => return error.InvalidLiteral, + }, + + State.FalseLiteral4 => switch (c) { + 'e' => { + p.state = p.after_value_state; + p.complete = p.state == State.TopLevelEnd; + token.* = Token.init(Token.Id.False, p.count + 1, 1); + }, + else => { + return error.InvalidLiteral; + }, + }, + + State.NullLiteral1 => switch (c) { + 'u' => p.state = State.NullLiteral2, + else => return error.InvalidLiteral, + }, + + State.NullLiteral2 => switch (c) { + 'l' => p.state = State.NullLiteral3, + else => return error.InvalidLiteral, + }, + + State.NullLiteral3 => switch (c) { + 'l' => { + p.state = p.after_value_state; + p.complete = p.state == State.TopLevelEnd; + token.* = Token.init(Token.Id.Null, p.count + 1, 1); + }, + else => { + return error.InvalidLiteral; + }, + }, + } + + return false; + } +}; + +// A small wrapper over a StreamingParser for full slices. Returns a stream of json Tokens. +pub const TokenStream = struct { + i: usize, + slice: []const u8, + parser: StreamingParser, + token: ?Token, + + pub fn init(slice: []const u8) TokenStream { + return TokenStream{ + .i = 0, + .slice = slice, + .parser = StreamingParser.init(), + .token = null, + }; + } + + pub fn next(self: *TokenStream) !?Token { + if (self.token) |token| { + const copy = token; + self.token = null; + return copy; + } + + var t1: ?Token = undefined; + var t2: ?Token = undefined; + + while (self.i < self.slice.len) { + try self.parser.feed(self.slice[self.i], &t1, &t2); + self.i += 1; + + if (t1) |token| { + self.token = t2; + return token; + } + } + + if (self.i > self.slice.len) { + try self.parser.feed(' ', &t1, &t2); + self.i += 1; + + if (t1) |token| { + return token; + } + } + + return null; + } +}; + +fn checkNext(p: *TokenStream, id: Token.Id) void { + const token = (p.next() catch unreachable).?; + debug.assert(token.id == id); +} + +test "json.token" { + const s = + \\{ + \\ "Image": { + \\ "Width": 800, + \\ "Height": 600, + \\ "Title": "View from 15th Floor", + \\ "Thumbnail": { + \\ "Url": "http://www.example.com/image/481989943", + \\ "Height": 125, + \\ "Width": 100 + \\ }, + \\ "Animated" : false, + \\ "IDs": [116, 943, 234, 38793] + \\ } + \\} + ; + + var p = TokenStream.init(s); + + checkNext(&p, Token.Id.ObjectBegin); + checkNext(&p, Token.Id.String); // Image + checkNext(&p, Token.Id.ObjectBegin); + checkNext(&p, Token.Id.String); // Width + checkNext(&p, Token.Id.Number); + checkNext(&p, Token.Id.String); // Height + checkNext(&p, Token.Id.Number); + checkNext(&p, Token.Id.String); // Title + checkNext(&p, Token.Id.String); + checkNext(&p, Token.Id.String); // Thumbnail + checkNext(&p, Token.Id.ObjectBegin); + checkNext(&p, Token.Id.String); // Url + checkNext(&p, Token.Id.String); + checkNext(&p, Token.Id.String); // Height + checkNext(&p, Token.Id.Number); + checkNext(&p, Token.Id.String); // Width + checkNext(&p, Token.Id.Number); + checkNext(&p, Token.Id.ObjectEnd); + checkNext(&p, Token.Id.String); // Animated + checkNext(&p, Token.Id.False); + checkNext(&p, Token.Id.String); // IDs + checkNext(&p, Token.Id.ArrayBegin); + checkNext(&p, Token.Id.Number); + checkNext(&p, Token.Id.Number); + checkNext(&p, Token.Id.Number); + checkNext(&p, Token.Id.Number); + checkNext(&p, Token.Id.ArrayEnd); + checkNext(&p, Token.Id.ObjectEnd); + checkNext(&p, Token.Id.ObjectEnd); + + testing.expect((try p.next()) == null); +} + +// Validate a JSON string. This does not limit number precision so a decoder may not necessarily +// be able to decode the string even if this returns true. +pub fn validate(s: []const u8) bool { + var p = StreamingParser.init(); + + for (s) |c, i| { + var token1: ?Token = undefined; + var token2: ?Token = undefined; + + p.feed(c, &token1, &token2) catch |err| { + return false; + }; + } + + return p.complete; +} + +test "json.validate" { + testing.expect(validate("{}")); +} + +const Allocator = std.mem.Allocator; +const ArenaAllocator = std.heap.ArenaAllocator; +const ArrayList = std.ArrayList; +const StringHashMap = std.StringHashMap; + +pub const ValueTree = struct { + arena: ArenaAllocator, + root: Value, + + pub fn deinit(self: *ValueTree) void { + self.arena.deinit(); + } +}; + +pub const ObjectMap = StringHashMap(Value); + +pub const Value = union(enum) { + Null, + Bool: bool, + Integer: i64, + Float: f64, + String: []const u8, + Array: ArrayList(Value), + Object: ObjectMap, + + pub fn dump(self: Value) void { + switch (self) { + Value.Null => { + debug.warn("null"); + }, + Value.Bool => |inner| { + debug.warn("{}", inner); + }, + Value.Integer => |inner| { + debug.warn("{}", inner); + }, + Value.Float => |inner| { + debug.warn("{:.5}", inner); + }, + Value.String => |inner| { + debug.warn("\"{}\"", inner); + }, + Value.Array => |inner| { + var not_first = false; + debug.warn("["); + for (inner.toSliceConst()) |value| { + if (not_first) { + debug.warn(","); + } + not_first = true; + value.dump(); + } + debug.warn("]"); + }, + Value.Object => |inner| { + var not_first = false; + debug.warn("{{"); + var it = inner.iterator(); + + while (it.next()) |entry| { + if (not_first) { + debug.warn(","); + } + not_first = true; + debug.warn("\"{}\":", entry.key); + entry.value.dump(); + } + debug.warn("}}"); + }, + } + } + + pub fn dumpIndent(self: Value, indent: usize) void { + if (indent == 0) { + self.dump(); + } else { + self.dumpIndentLevel(indent, 0); + } + } + + fn dumpIndentLevel(self: Value, indent: usize, level: usize) void { + switch (self) { + Value.Null => { + debug.warn("null"); + }, + Value.Bool => |inner| { + debug.warn("{}", inner); + }, + Value.Integer => |inner| { + debug.warn("{}", inner); + }, + Value.Float => |inner| { + debug.warn("{:.5}", inner); + }, + Value.String => |inner| { + debug.warn("\"{}\"", inner); + }, + Value.Array => |inner| { + var not_first = false; + debug.warn("[\n"); + + for (inner.toSliceConst()) |value| { + if (not_first) { + debug.warn(",\n"); + } + not_first = true; + padSpace(level + indent); + value.dumpIndentLevel(indent, level + indent); + } + debug.warn("\n"); + padSpace(level); + debug.warn("]"); + }, + Value.Object => |inner| { + var not_first = false; + debug.warn("{{\n"); + var it = inner.iterator(); + + while (it.next()) |entry| { + if (not_first) { + debug.warn(",\n"); + } + not_first = true; + padSpace(level + indent); + debug.warn("\"{}\": ", entry.key); + entry.value.dumpIndentLevel(indent, level + indent); + } + debug.warn("\n"); + padSpace(level); + debug.warn("}}"); + }, + } + } + + fn padSpace(indent: usize) void { + var i: usize = 0; + while (i < indent) : (i += 1) { + debug.warn(" "); + } + } +}; + +// A non-stream JSON parser which constructs a tree of Value's. +pub const Parser = struct { + allocator: *Allocator, + state: State, + copy_strings: bool, + // Stores parent nodes and un-combined Values. + stack: ArrayList(Value), + + const State = enum { + ObjectKey, + ObjectValue, + ArrayValue, + Simple, + }; + + pub fn init(allocator: *Allocator, copy_strings: bool) Parser { + return Parser{ + .allocator = allocator, + .state = State.Simple, + .copy_strings = copy_strings, + .stack = ArrayList(Value).init(allocator), + }; + } + + pub fn deinit(p: *Parser) void { + p.stack.deinit(); + } + + pub fn reset(p: *Parser) void { + p.state = State.Simple; + p.stack.shrink(0); + } + + pub fn parse(p: *Parser, input: []const u8) !ValueTree { + var s = TokenStream.init(input); + + var arena = ArenaAllocator.init(p.allocator); + errdefer arena.deinit(); + + while (try s.next()) |token| { + try p.transition(&arena.allocator, input, s.i - 1, token); + } + + debug.assert(p.stack.len == 1); + + return ValueTree{ + .arena = arena, + .root = p.stack.at(0), + }; + } + + // Even though p.allocator exists, we take an explicit allocator so that allocation state + // can be cleaned up on error correctly during a `parse` on call. + fn transition(p: *Parser, allocator: *Allocator, input: []const u8, i: usize, token: Token) !void { + switch (p.state) { + State.ObjectKey => switch (token.id) { + Token.Id.ObjectEnd => { + if (p.stack.len == 1) { + return; + } + + var value = p.stack.pop(); + try p.pushToParent(&value); + }, + Token.Id.String => { + try p.stack.append(try p.parseString(allocator, token, input, i)); + p.state = State.ObjectValue; + }, + else => { + unreachable; + }, + }, + State.ObjectValue => { + var object = &p.stack.items[p.stack.len - 2].Object; + var key = p.stack.items[p.stack.len - 1].String; + + switch (token.id) { + Token.Id.ObjectBegin => { + try p.stack.append(Value{ .Object = ObjectMap.init(allocator) }); + p.state = State.ObjectKey; + }, + Token.Id.ArrayBegin => { + try p.stack.append(Value{ .Array = ArrayList(Value).init(allocator) }); + p.state = State.ArrayValue; + }, + Token.Id.String => { + _ = try object.put(key, try p.parseString(allocator, token, input, i)); + _ = p.stack.pop(); + p.state = State.ObjectKey; + }, + Token.Id.Number => { + _ = try object.put(key, try p.parseNumber(token, input, i)); + _ = p.stack.pop(); + p.state = State.ObjectKey; + }, + Token.Id.True => { + _ = try object.put(key, Value{ .Bool = true }); + _ = p.stack.pop(); + p.state = State.ObjectKey; + }, + Token.Id.False => { + _ = try object.put(key, Value{ .Bool = false }); + _ = p.stack.pop(); + p.state = State.ObjectKey; + }, + Token.Id.Null => { + _ = try object.put(key, Value.Null); + _ = p.stack.pop(); + p.state = State.ObjectKey; + }, + Token.Id.ObjectEnd, Token.Id.ArrayEnd => { + unreachable; + }, + } + }, + State.ArrayValue => { + var array = &p.stack.items[p.stack.len - 1].Array; + + switch (token.id) { + Token.Id.ArrayEnd => { + if (p.stack.len == 1) { + return; + } + + var value = p.stack.pop(); + try p.pushToParent(&value); + }, + Token.Id.ObjectBegin => { + try p.stack.append(Value{ .Object = ObjectMap.init(allocator) }); + p.state = State.ObjectKey; + }, + Token.Id.ArrayBegin => { + try p.stack.append(Value{ .Array = ArrayList(Value).init(allocator) }); + p.state = State.ArrayValue; + }, + Token.Id.String => { + try array.append(try p.parseString(allocator, token, input, i)); + }, + Token.Id.Number => { + try array.append(try p.parseNumber(token, input, i)); + }, + Token.Id.True => { + try array.append(Value{ .Bool = true }); + }, + Token.Id.False => { + try array.append(Value{ .Bool = false }); + }, + Token.Id.Null => { + try array.append(Value.Null); + }, + Token.Id.ObjectEnd => { + unreachable; + }, + } + }, + State.Simple => switch (token.id) { + Token.Id.ObjectBegin => { + try p.stack.append(Value{ .Object = ObjectMap.init(allocator) }); + p.state = State.ObjectKey; + }, + Token.Id.ArrayBegin => { + try p.stack.append(Value{ .Array = ArrayList(Value).init(allocator) }); + p.state = State.ArrayValue; + }, + Token.Id.String => { + try p.stack.append(try p.parseString(allocator, token, input, i)); + }, + Token.Id.Number => { + try p.stack.append(try p.parseNumber(token, input, i)); + }, + Token.Id.True => { + try p.stack.append(Value{ .Bool = true }); + }, + Token.Id.False => { + try p.stack.append(Value{ .Bool = false }); + }, + Token.Id.Null => { + try p.stack.append(Value.Null); + }, + Token.Id.ObjectEnd, Token.Id.ArrayEnd => { + unreachable; + }, + }, + } + } + + fn pushToParent(p: *Parser, value: *const Value) !void { + switch (p.stack.toSlice()[p.stack.len - 1]) { + // Object Parent -> [ ..., object, , value ] + Value.String => |key| { + _ = p.stack.pop(); + + var object = &p.stack.items[p.stack.len - 1].Object; + _ = try object.put(key, value.*); + p.state = State.ObjectKey; + }, + // Array Parent -> [ ..., , value ] + Value.Array => |*array| { + try array.append(value.*); + p.state = State.ArrayValue; + }, + else => { + unreachable; + }, + } + } + + fn parseString(p: *Parser, allocator: *Allocator, token: Token, input: []const u8, i: usize) !Value { + // TODO: We don't strictly have to copy values which do not contain any escape + // characters if flagged with the option. + const slice = token.slice(input, i); + return Value{ .String = try mem.dupe(p.allocator, u8, slice) }; + } + + fn parseNumber(p: *Parser, token: Token, input: []const u8, i: usize) !Value { + return if (token.number_is_integer) + Value{ .Integer = try std.fmt.parseInt(i64, token.slice(input, i), 10) } + else + Value{ .Float = try std.fmt.parseFloat(f64, token.slice(input, i)) }; + } +}; + +test "json.parser.dynamic" { + var p = Parser.init(debug.global_allocator, false); + defer p.deinit(); + + const s = + \\{ + \\ "Image": { + \\ "Width": 800, + \\ "Height": 600, + \\ "Title": "View from 15th Floor", + \\ "Thumbnail": { + \\ "Url": "http://www.example.com/image/481989943", + \\ "Height": 125, + \\ "Width": 100 + \\ }, + \\ "Animated" : false, + \\ "IDs": [116, 943, 234, 38793], + \\ "ArrayOfObject": [{"n": "m"}], + \\ "double": 1.3412 + \\ } + \\} + ; + + var tree = try p.parse(s); + defer tree.deinit(); + + var root = tree.root; + + var image = root.Object.get("Image").?.value; + + const width = image.Object.get("Width").?.value; + testing.expect(width.Integer == 800); + + const height = image.Object.get("Height").?.value; + testing.expect(height.Integer == 600); + + const title = image.Object.get("Title").?.value; + testing.expect(mem.eql(u8, title.String, "View from 15th Floor")); + + const animated = image.Object.get("Animated").?.value; + testing.expect(animated.Bool == false); + + const array_of_object = image.Object.get("ArrayOfObject").?.value; + testing.expect(array_of_object.Array.len == 1); + + const obj0 = array_of_object.Array.at(0).Object.get("n").?.value; + testing.expect(mem.eql(u8, obj0.String, "m")); + + const double = image.Object.get("double").?.value; + testing.expect(double.Float == 1.3412); +} + +test "import more json tests" { + _ = @import("json/test.zig"); +} diff --git a/lib/std/json/test.zig b/lib/std/json/test.zig new file mode 100644 index 0000000000..7c89dcd123 --- /dev/null +++ b/lib/std/json/test.zig @@ -0,0 +1,1904 @@ +// RFC 8529 conformance tests. +// +// Tests are taken from https://github.com/nst/JSONTestSuite +// Read also http://seriot.ch/parsing_json.php for a good overview. + +const std = @import("../std.zig"); + +fn ok(comptime s: []const u8) void { + std.testing.expect(std.json.validate(s)); +} + +fn err(comptime s: []const u8) void { + std.testing.expect(!std.json.validate(s)); +} + +fn any(comptime s: []const u8) void { + std.testing.expect(true); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// +// +// Additional tests not part of test JSONTestSuite. + +test "y_trailing_comma_after_empty" { + ok( + \\{"1":[],"2":{},"3":"4"} + ); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +test "y_array_arraysWithSpaces" { + ok( + \\[[] ] + ); +} + +test "y_array_empty" { + ok( + \\[] + ); +} + +test "y_array_empty-string" { + ok( + \\[""] + ); +} + +test "y_array_ending_with_newline" { + ok( + \\["a"] + ); +} + +test "y_array_false" { + ok( + \\[false] + ); +} + +test "y_array_heterogeneous" { + ok( + \\[null, 1, "1", {}] + ); +} + +test "y_array_null" { + ok( + \\[null] + ); +} + +test "y_array_with_1_and_newline" { + ok( + \\[1 + \\] + ); +} + +test "y_array_with_leading_space" { + ok( + \\ [1] + ); +} + +test "y_array_with_several_null" { + ok( + \\[1,null,null,null,2] + ); +} + +test "y_array_with_trailing_space" { + ok("[2] "); +} + +test "y_number_0e+1" { + ok( + \\[0e+1] + ); +} + +test "y_number_0e1" { + ok( + \\[0e1] + ); +} + +test "y_number_after_space" { + ok( + \\[ 4] + ); +} + +test "y_number_double_close_to_zero" { + ok( + \\[-0.000000000000000000000000000000000000000000000000000000000000000000000000000001] + ); +} + +test "y_number_int_with_exp" { + ok( + \\[20e1] + ); +} + +test "y_number" { + ok( + \\[123e65] + ); +} + +test "y_number_minus_zero" { + ok( + \\[-0] + ); +} + +test "y_number_negative_int" { + ok( + \\[-123] + ); +} + +test "y_number_negative_one" { + ok( + \\[-1] + ); +} + +test "y_number_negative_zero" { + ok( + \\[-0] + ); +} + +test "y_number_real_capital_e" { + ok( + \\[1E22] + ); +} + +test "y_number_real_capital_e_neg_exp" { + ok( + \\[1E-2] + ); +} + +test "y_number_real_capital_e_pos_exp" { + ok( + \\[1E+2] + ); +} + +test "y_number_real_exponent" { + ok( + \\[123e45] + ); +} + +test "y_number_real_fraction_exponent" { + ok( + \\[123.456e78] + ); +} + +test "y_number_real_neg_exp" { + ok( + \\[1e-2] + ); +} + +test "y_number_real_pos_exponent" { + ok( + \\[1e+2] + ); +} + +test "y_number_simple_int" { + ok( + \\[123] + ); +} + +test "y_number_simple_real" { + ok( + \\[123.456789] + ); +} + +test "y_object_basic" { + ok( + \\{"asd":"sdf"} + ); +} + +test "y_object_duplicated_key_and_value" { + ok( + \\{"a":"b","a":"b"} + ); +} + +test "y_object_duplicated_key" { + ok( + \\{"a":"b","a":"c"} + ); +} + +test "y_object_empty" { + ok( + \\{} + ); +} + +test "y_object_empty_key" { + ok( + \\{"":0} + ); +} + +test "y_object_escaped_null_in_key" { + ok( + \\{"foo\u0000bar": 42} + ); +} + +test "y_object_extreme_numbers" { + ok( + \\{ "min": -1.0e+28, "max": 1.0e+28 } + ); +} + +test "y_object" { + ok( + \\{"asd":"sdf", "dfg":"fgh"} + ); +} + +test "y_object_long_strings" { + ok( + \\{"x":[{"id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}], "id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"} + ); +} + +test "y_object_simple" { + ok( + \\{"a":[]} + ); +} + +test "y_object_string_unicode" { + ok( + \\{"title":"\u041f\u043e\u043b\u0442\u043e\u0440\u0430 \u0417\u0435\u043c\u043b\u0435\u043a\u043e\u043f\u0430" } + ); +} + +test "y_object_with_newlines" { + ok( + \\{ + \\"a": "b" + \\} + ); +} + +test "y_string_1_2_3_bytes_UTF-8_sequences" { + ok( + \\["\u0060\u012a\u12AB"] + ); +} + +test "y_string_accepted_surrogate_pair" { + ok( + \\["\uD801\udc37"] + ); +} + +test "y_string_accepted_surrogate_pairs" { + ok( + \\["\ud83d\ude39\ud83d\udc8d"] + ); +} + +test "y_string_allowed_escapes" { + ok( + \\["\"\\\/\b\f\n\r\t"] + ); +} + +test "y_string_backslash_and_u_escaped_zero" { + ok( + \\["\\u0000"] + ); +} + +test "y_string_backslash_doublequotes" { + ok( + \\["\""] + ); +} + +test "y_string_comments" { + ok( + \\["a/*b*/c/*d//e"] + ); +} + +test "y_string_double_escape_a" { + ok( + \\["\\a"] + ); +} + +test "y_string_double_escape_n" { + ok( + \\["\\n"] + ); +} + +test "y_string_escaped_control_character" { + ok( + \\["\u0012"] + ); +} + +test "y_string_escaped_noncharacter" { + ok( + \\["\uFFFF"] + ); +} + +test "y_string_in_array" { + ok( + \\["asd"] + ); +} + +test "y_string_in_array_with_leading_space" { + ok( + \\[ "asd"] + ); +} + +test "y_string_last_surrogates_1_and_2" { + ok( + \\["\uDBFF\uDFFF"] + ); +} + +test "y_string_nbsp_uescaped" { + ok( + \\["new\u00A0line"] + ); +} + +test "y_string_nonCharacterInUTF-8_U+10FFFF" { + ok( + \\["􏿿"] + ); +} + +test "y_string_nonCharacterInUTF-8_U+FFFF" { + ok( + \\["￿"] + ); +} + +test "y_string_null_escape" { + ok( + \\["\u0000"] + ); +} + +test "y_string_one-byte-utf-8" { + ok( + \\["\u002c"] + ); +} + +test "y_string_pi" { + ok( + \\["π"] + ); +} + +test "y_string_reservedCharacterInUTF-8_U+1BFFF" { + ok( + \\["𛿿"] + ); +} + +test "y_string_simple_ascii" { + ok( + \\["asd "] + ); +} + +test "y_string_space" { + ok( + \\" " + ); +} + +test "y_string_surrogates_U+1D11E_MUSICAL_SYMBOL_G_CLEF" { + ok( + \\["\uD834\uDd1e"] + ); +} + +test "y_string_three-byte-utf-8" { + ok( + \\["\u0821"] + ); +} + +test "y_string_two-byte-utf-8" { + ok( + \\["\u0123"] + ); +} + +test "y_string_u+2028_line_sep" { + ok("[\"\xe2\x80\xa8\"]"); +} + +test "y_string_u+2029_par_sep" { + ok("[\"\xe2\x80\xa9\"]"); +} + +test "y_string_uescaped_newline" { + ok( + \\["new\u000Aline"] + ); +} + +test "y_string_uEscape" { + ok( + \\["\u0061\u30af\u30EA\u30b9"] + ); +} + +test "y_string_unescaped_char_delete" { + ok("[\"\x7f\"]"); +} + +test "y_string_unicode_2" { + ok( + \\["⍂㈴⍂"] + ); +} + +test "y_string_unicodeEscapedBackslash" { + ok( + \\["\u005C"] + ); +} + +test "y_string_unicode_escaped_double_quote" { + ok( + \\["\u0022"] + ); +} + +test "y_string_unicode" { + ok( + \\["\uA66D"] + ); +} + +test "y_string_unicode_U+10FFFE_nonchar" { + ok( + \\["\uDBFF\uDFFE"] + ); +} + +test "y_string_unicode_U+1FFFE_nonchar" { + ok( + \\["\uD83F\uDFFE"] + ); +} + +test "y_string_unicode_U+200B_ZERO_WIDTH_SPACE" { + ok( + \\["\u200B"] + ); +} + +test "y_string_unicode_U+2064_invisible_plus" { + ok( + \\["\u2064"] + ); +} + +test "y_string_unicode_U+FDD0_nonchar" { + ok( + \\["\uFDD0"] + ); +} + +test "y_string_unicode_U+FFFE_nonchar" { + ok( + \\["\uFFFE"] + ); +} + +test "y_string_utf8" { + ok( + \\["€𝄞"] + ); +} + +test "y_string_with_del_character" { + ok("[\"a\x7fa\"]"); +} + +test "y_structure_lonely_false" { + ok( + \\false + ); +} + +test "y_structure_lonely_int" { + ok( + \\42 + ); +} + +test "y_structure_lonely_negative_real" { + ok( + \\-0.1 + ); +} + +test "y_structure_lonely_null" { + ok( + \\null + ); +} + +test "y_structure_lonely_string" { + ok( + \\"asd" + ); +} + +test "y_structure_lonely_true" { + ok( + \\true + ); +} + +test "y_structure_string_empty" { + ok( + \\"" + ); +} + +test "y_structure_trailing_newline" { + ok( + \\["a"] + ); +} + +test "y_structure_true_in_array" { + ok( + \\[true] + ); +} + +test "y_structure_whitespace_array" { + ok(" [] "); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +test "n_array_1_true_without_comma" { + err( + \\[1 true] + ); +} + +test "n_array_a_invalid_utf8" { + err( + \\[aå] + ); +} + +test "n_array_colon_instead_of_comma" { + err( + \\["": 1] + ); +} + +test "n_array_comma_after_close" { + //err( + // \\[""], + //); +} + +test "n_array_comma_and_number" { + err( + \\[,1] + ); +} + +test "n_array_double_comma" { + err( + \\[1,,2] + ); +} + +test "n_array_double_extra_comma" { + err( + \\["x",,] + ); +} + +test "n_array_extra_close" { + err( + \\["x"]] + ); +} + +test "n_array_extra_comma" { + //err( + // \\["",] + //); +} + +test "n_array_incomplete_invalid_value" { + err( + \\[x + ); +} + +test "n_array_incomplete" { + err( + \\["x" + ); +} + +test "n_array_inner_array_no_comma" { + err( + \\[3[4]] + ); +} + +test "n_array_invalid_utf8" { + err( + \\[ÿ] + ); +} + +test "n_array_items_separated_by_semicolon" { + err( + \\[1:2] + ); +} + +test "n_array_just_comma" { + err( + \\[,] + ); +} + +test "n_array_just_minus" { + err( + \\[-] + ); +} + +test "n_array_missing_value" { + err( + \\[ , ""] + ); +} + +test "n_array_newlines_unclosed" { + err( + \\["a", + \\4 + \\,1, + ); +} + +test "n_array_number_and_comma" { + err( + \\[1,] + ); +} + +test "n_array_number_and_several_commas" { + err( + \\[1,,] + ); +} + +test "n_array_spaces_vertical_tab_formfeed" { + err("[\"\x0aa\"\\f]"); +} + +test "n_array_star_inside" { + err( + \\[*] + ); +} + +test "n_array_unclosed" { + err( + \\["" + ); +} + +test "n_array_unclosed_trailing_comma" { + err( + \\[1, + ); +} + +test "n_array_unclosed_with_new_lines" { + err( + \\[1, + \\1 + \\,1 + ); +} + +test "n_array_unclosed_with_object_inside" { + err( + \\[{} + ); +} + +test "n_incomplete_false" { + err( + \\[fals] + ); +} + +test "n_incomplete_null" { + err( + \\[nul] + ); +} + +test "n_incomplete_true" { + err( + \\[tru] + ); +} + +test "n_multidigit_number_then_00" { + err("123\x00"); +} + +test "n_number_0.1.2" { + err( + \\[0.1.2] + ); +} + +test "n_number_-01" { + err( + \\[-01] + ); +} + +test "n_number_0.3e" { + err( + \\[0.3e] + ); +} + +test "n_number_0.3e+" { + err( + \\[0.3e+] + ); +} + +test "n_number_0_capital_E" { + err( + \\[0E] + ); +} + +test "n_number_0_capital_E+" { + err( + \\[0E+] + ); +} + +test "n_number_0.e1" { + err( + \\[0.e1] + ); +} + +test "n_number_0e" { + err( + \\[0e] + ); +} + +test "n_number_0e+" { + err( + \\[0e+] + ); +} + +test "n_number_1_000" { + err( + \\[1 000.0] + ); +} + +test "n_number_1.0e-" { + err( + \\[1.0e-] + ); +} + +test "n_number_1.0e" { + err( + \\[1.0e] + ); +} + +test "n_number_1.0e+" { + err( + \\[1.0e+] + ); +} + +test "n_number_-1.0." { + err( + \\[-1.0.] + ); +} + +test "n_number_1eE2" { + err( + \\[1eE2] + ); +} + +test "n_number_.-1" { + err( + \\[.-1] + ); +} + +test "n_number_+1" { + err( + \\[+1] + ); +} + +test "n_number_.2e-3" { + err( + \\[.2e-3] + ); +} + +test "n_number_2.e-3" { + err( + \\[2.e-3] + ); +} + +test "n_number_2.e+3" { + err( + \\[2.e+3] + ); +} + +test "n_number_2.e3" { + err( + \\[2.e3] + ); +} + +test "n_number_-2." { + err( + \\[-2.] + ); +} + +test "n_number_9.e+" { + err( + \\[9.e+] + ); +} + +test "n_number_expression" { + err( + \\[1+2] + ); +} + +test "n_number_hex_1_digit" { + err( + \\[0x1] + ); +} + +test "n_number_hex_2_digits" { + err( + \\[0x42] + ); +} + +test "n_number_infinity" { + err( + \\[Infinity] + ); +} + +test "n_number_+Inf" { + err( + \\[+Inf] + ); +} + +test "n_number_Inf" { + err( + \\[Inf] + ); +} + +test "n_number_invalid+-" { + err( + \\[0e+-1] + ); +} + +test "n_number_invalid-negative-real" { + err( + \\[-123.123foo] + ); +} + +test "n_number_invalid-utf-8-in-bigger-int" { + err( + \\[123å] + ); +} + +test "n_number_invalid-utf-8-in-exponent" { + err( + \\[1e1å] + ); +} + +test "n_number_invalid-utf-8-in-int" { + err( + \\[0å] + ); +} + +test "n_number_++" { + err( + \\[++1234] + ); +} + +test "n_number_minus_infinity" { + err( + \\[-Infinity] + ); +} + +test "n_number_minus_sign_with_trailing_garbage" { + err( + \\[-foo] + ); +} + +test "n_number_minus_space_1" { + err( + \\[- 1] + ); +} + +test "n_number_-NaN" { + err( + \\[-NaN] + ); +} + +test "n_number_NaN" { + err( + \\[NaN] + ); +} + +test "n_number_neg_int_starting_with_zero" { + err( + \\[-012] + ); +} + +test "n_number_neg_real_without_int_part" { + err( + \\[-.123] + ); +} + +test "n_number_neg_with_garbage_at_end" { + err( + \\[-1x] + ); +} + +test "n_number_real_garbage_after_e" { + err( + \\[1ea] + ); +} + +test "n_number_real_with_invalid_utf8_after_e" { + err( + \\[1eå] + ); +} + +test "n_number_real_without_fractional_part" { + err( + \\[1.] + ); +} + +test "n_number_starting_with_dot" { + err( + \\[.123] + ); +} + +test "n_number_U+FF11_fullwidth_digit_one" { + err( + \\[1] + ); +} + +test "n_number_with_alpha_char" { + err( + \\[1.8011670033376514H-308] + ); +} + +test "n_number_with_alpha" { + err( + \\[1.2a-3] + ); +} + +test "n_number_with_leading_zero" { + err( + \\[012] + ); +} + +test "n_object_bad_value" { + err( + \\["x", truth] + ); +} + +test "n_object_bracket_key" { + err( + \\{[: "x"} + ); +} + +test "n_object_comma_instead_of_colon" { + err( + \\{"x", null} + ); +} + +test "n_object_double_colon" { + err( + \\{"x"::"b"} + ); +} + +test "n_object_emoji" { + err( + \\{🇨🇭} + ); +} + +test "n_object_garbage_at_end" { + err( + \\{"a":"a" 123} + ); +} + +test "n_object_key_with_single_quotes" { + err( + \\{key: 'value'} + ); +} + +test "n_object_lone_continuation_byte_in_key_and_trailing_comma" { + err( + \\{"¹":"0",} + ); +} + +test "n_object_missing_colon" { + err( + \\{"a" b} + ); +} + +test "n_object_missing_key" { + err( + \\{:"b"} + ); +} + +test "n_object_missing_semicolon" { + err( + \\{"a" "b"} + ); +} + +test "n_object_missing_value" { + err( + \\{"a": + ); +} + +test "n_object_no-colon" { + err( + \\{"a" + ); +} + +test "n_object_non_string_key_but_huge_number_instead" { + err( + \\{9999E9999:1} + ); +} + +test "n_object_non_string_key" { + err( + \\{1:1} + ); +} + +test "n_object_repeated_null_null" { + err( + \\{null:null,null:null} + ); +} + +test "n_object_several_trailing_commas" { + err( + \\{"id":0,,,,,} + ); +} + +test "n_object_single_quote" { + err( + \\{'a':0} + ); +} + +test "n_object_trailing_comma" { + err( + \\{"id":0,} + ); +} + +test "n_object_trailing_comment" { + err( + \\{"a":"b"}/**/ + ); +} + +test "n_object_trailing_comment_open" { + err( + \\{"a":"b"}/**// + ); +} + +test "n_object_trailing_comment_slash_open_incomplete" { + err( + \\{"a":"b"}/ + ); +} + +test "n_object_trailing_comment_slash_open" { + err( + \\{"a":"b"}// + ); +} + +test "n_object_two_commas_in_a_row" { + err( + \\{"a":"b",,"c":"d"} + ); +} + +test "n_object_unquoted_key" { + err( + \\{a: "b"} + ); +} + +test "n_object_unterminated-value" { + err( + \\{"a":"a + ); +} + +test "n_object_with_single_string" { + err( + \\{ "foo" : "bar", "a" } + ); +} + +test "n_object_with_trailing_garbage" { + err( + \\{"a":"b"}# + ); +} + +test "n_single_space" { + err(" "); +} + +test "n_string_1_surrogate_then_escape" { + err( + \\["\uD800\"] + ); +} + +test "n_string_1_surrogate_then_escape_u1" { + err( + \\["\uD800\u1"] + ); +} + +test "n_string_1_surrogate_then_escape_u1x" { + err( + \\["\uD800\u1x"] + ); +} + +test "n_string_1_surrogate_then_escape_u" { + err( + \\["\uD800\u"] + ); +} + +test "n_string_accentuated_char_no_quotes" { + err( + \\[é] + ); +} + +test "n_string_backslash_00" { + err("[\"\x00\"]"); +} + +test "n_string_escaped_backslash_bad" { + err( + \\["\\\"] + ); +} + +test "n_string_escaped_ctrl_char_tab" { + err("\x5b\x22\x5c\x09\x22\x5d"); +} + +test "n_string_escaped_emoji" { + err("[\"\x5c\xc3\xb0\xc2\x9f\xc2\x8c\xc2\x80\"]"); +} + +test "n_string_escape_x" { + err( + \\["\x00"] + ); +} + +test "n_string_incomplete_escaped_character" { + err( + \\["\u00A"] + ); +} + +test "n_string_incomplete_escape" { + err( + \\["\"] + ); +} + +test "n_string_incomplete_surrogate_escape_invalid" { + err( + \\["\uD800\uD800\x"] + ); +} + +test "n_string_incomplete_surrogate" { + err( + \\["\uD834\uDd"] + ); +} + +test "n_string_invalid_backslash_esc" { + err( + \\["\a"] + ); +} + +test "n_string_invalid_unicode_escape" { + err( + \\["\uqqqq"] + ); +} + +test "n_string_invalid_utf8_after_escape" { + err("[\"\\\x75\xc3\xa5\"]"); +} + +test "n_string_invalid-utf-8-in-escape" { + err( + \\["\uå"] + ); +} + +test "n_string_leading_uescaped_thinspace" { + err( + \\[\u0020"asd"] + ); +} + +test "n_string_no_quotes_with_bad_escape" { + err( + \\[\n] + ); +} + +test "n_string_single_doublequote" { + err( + \\" + ); +} + +test "n_string_single_quote" { + err( + \\['single quote'] + ); +} + +test "n_string_single_string_no_double_quotes" { + err( + \\abc + ); +} + +test "n_string_start_escape_unclosed" { + err( + \\["\ + ); +} + +test "n_string_unescaped_crtl_char" { + err("[\"a\x00a\"]"); +} + +test "n_string_unescaped_newline" { + err( + \\["new + \\line"] + ); +} + +test "n_string_unescaped_tab" { + err("[\"\t\"]"); +} + +test "n_string_unicode_CapitalU" { + err( + \\"\UA66D" + ); +} + +test "n_string_with_trailing_garbage" { + err( + \\""x + ); +} + +test "n_structure_100000_opening_arrays" { + err("[" ** 100000); +} + +test "n_structure_angle_bracket_." { + err( + \\<.> + ); +} + +test "n_structure_angle_bracket_null" { + err( + \\[] + ); +} + +test "n_structure_array_trailing_garbage" { + err( + \\[1]x + ); +} + +test "n_structure_array_with_extra_array_close" { + err( + \\[1]] + ); +} + +test "n_structure_array_with_unclosed_string" { + err( + \\["asd] + ); +} + +test "n_structure_ascii-unicode-identifier" { + err( + \\aÃ¥ + ); +} + +test "n_structure_capitalized_True" { + err( + \\[True] + ); +} + +test "n_structure_close_unopened_array" { + err( + \\1] + ); +} + +test "n_structure_comma_instead_of_closing_brace" { + err( + \\{"x": true, + ); +} + +test "n_structure_double_array" { + err( + \\[][] + ); +} + +test "n_structure_end_array" { + err( + \\] + ); +} + +test "n_structure_incomplete_UTF8_BOM" { + err( + \\ï»{} + ); +} + +test "n_structure_lone-invalid-utf-8" { + err( + \\å + ); +} + +test "n_structure_lone-open-bracket" { + err( + \\[ + ); +} + +test "n_structure_no_data" { + err( + \\ + ); +} + +test "n_structure_null-byte-outside-string" { + err("[\x00]"); +} + +test "n_structure_number_with_trailing_garbage" { + err( + \\2@ + ); +} + +test "n_structure_object_followed_by_closing_object" { + err( + \\{}} + ); +} + +test "n_structure_object_unclosed_no_value" { + err( + \\{"": + ); +} + +test "n_structure_object_with_comment" { + err( + \\{"a":/*comment*/"b"} + ); +} + +test "n_structure_object_with_trailing_garbage" { + err( + \\{"a": true} "x" + ); +} + +test "n_structure_open_array_apostrophe" { + err( + \\[' + ); +} + +test "n_structure_open_array_comma" { + err( + \\[, + ); +} + +test "n_structure_open_array_object" { + err("[{\"\":" ** 50000); +} + +test "n_structure_open_array_open_object" { + err( + \\[{ + ); +} + +test "n_structure_open_array_open_string" { + err( + \\["a + ); +} + +test "n_structure_open_array_string" { + err( + \\["a" + ); +} + +test "n_structure_open_object_close_array" { + err( + \\{] + ); +} + +test "n_structure_open_object_comma" { + err( + \\{, + ); +} + +test "n_structure_open_object" { + err( + \\{ + ); +} + +test "n_structure_open_object_open_array" { + err( + \\{[ + ); +} + +test "n_structure_open_object_open_string" { + err( + \\{"a + ); +} + +test "n_structure_open_object_string_with_apostrophes" { + err( + \\{'a' + ); +} + +test "n_structure_open_open" { + err( + \\["\{["\{["\{["\{ + ); +} + +test "n_structure_single_eacute" { + err( + \\é + ); +} + +test "n_structure_single_star" { + err( + \\* + ); +} + +test "n_structure_trailing_#" { + err( + \\{"a":"b"}#{} + ); +} + +test "n_structure_U+2060_word_joined" { + err( + \\[⁠] + ); +} + +test "n_structure_uescaped_LF_before_string" { + err( + \\[\u000A""] + ); +} + +test "n_structure_unclosed_array" { + err( + \\[1 + ); +} + +test "n_structure_unclosed_array_partial_null" { + err( + \\[ false, nul + ); +} + +test "n_structure_unclosed_array_unfinished_false" { + err( + \\[ true, fals + ); +} + +test "n_structure_unclosed_array_unfinished_true" { + err( + \\[ false, tru + ); +} + +test "n_structure_unclosed_object" { + err( + \\{"asd":"asd" + ); +} + +test "n_structure_unicode-identifier" { + err( + \\Ã¥ + ); +} + +test "n_structure_UTF8_BOM_no_data" { + err( + \\ + ); +} + +test "n_structure_whitespace_formfeed" { + err("[\x0c]"); +} + +test "n_structure_whitespace_U+2060_word_joiner" { + err( + \\[⁠] + ); +} + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +test "i_number_double_huge_neg_exp" { + any( + \\[123.456e-789] + ); +} + +test "i_number_huge_exp" { + any( + \\[0.4e00669999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999969999999006] + ); +} + +test "i_number_neg_int_huge_exp" { + any( + \\[-1e+9999] + ); +} + +test "i_number_pos_double_huge_exp" { + any( + \\[1.5e+9999] + ); +} + +test "i_number_real_neg_overflow" { + any( + \\[-123123e100000] + ); +} + +test "i_number_real_pos_overflow" { + any( + \\[123123e100000] + ); +} + +test "i_number_real_underflow" { + any( + \\[123e-10000000] + ); +} + +test "i_number_too_big_neg_int" { + any( + \\[-123123123123123123123123123123] + ); +} + +test "i_number_too_big_pos_int" { + any( + \\[100000000000000000000] + ); +} + +test "i_number_very_big_negative_int" { + any( + \\[-237462374673276894279832749832423479823246327846] + ); +} + +test "i_object_key_lone_2nd_surrogate" { + any( + \\{"\uDFAA":0} + ); +} + +test "i_string_1st_surrogate_but_2nd_missing" { + any( + \\["\uDADA"] + ); +} + +test "i_string_1st_valid_surrogate_2nd_invalid" { + any( + \\["\uD888\u1234"] + ); +} + +test "i_string_incomplete_surrogate_and_escape_valid" { + any( + \\["\uD800\n"] + ); +} + +test "i_string_incomplete_surrogate_pair" { + any( + \\["\uDd1ea"] + ); +} + +test "i_string_incomplete_surrogates_escape_valid" { + any( + \\["\uD800\uD800\n"] + ); +} + +test "i_string_invalid_lonely_surrogate" { + any( + \\["\ud800"] + ); +} + +test "i_string_invalid_surrogate" { + any( + \\["\ud800abc"] + ); +} + +test "i_string_invalid_utf-8" { + any( + \\["ÿ"] + ); +} + +test "i_string_inverted_surrogates_U+1D11E" { + any( + \\["\uDd1e\uD834"] + ); +} + +test "i_string_iso_latin_1" { + any( + \\["é"] + ); +} + +test "i_string_lone_second_surrogate" { + any( + \\["\uDFAA"] + ); +} + +test "i_string_lone_utf8_continuation_byte" { + any( + \\[""] + ); +} + +test "i_string_not_in_unicode_range" { + any( + \\["ô¿¿¿"] + ); +} + +test "i_string_overlong_sequence_2_bytes" { + any( + \\["À¯"] + ); +} + +test "i_string_overlong_sequence_6_bytes" { + any( + \\["üƒ¿¿¿¿"] + ); +} + +test "i_string_overlong_sequence_6_bytes_null" { + any( + \\["ü€€€€€"] + ); +} + +test "i_string_truncated-utf-8" { + any( + \\["àÿ"] + ); +} + +test "i_string_utf16BE_no_BOM" { + any("\x00\x5b\x00\x22\x00\xc3\xa9\x00\x22\x00\x5d"); +} + +test "i_string_utf16LE_no_BOM" { + any("\x5b\x00\x22\x00\xc3\xa9\x00\x22\x00\x5d\x00"); +} + +test "i_string_UTF-16LE_with_BOM" { + any("\xc3\xbf\xc3\xbe\x5b\x00\x22\x00\xc3\xa9\x00\x22\x00\x5d\x00"); +} + +test "i_string_UTF-8_invalid_sequence" { + any( + \\["日шú"] + ); +} + +test "i_string_UTF8_surrogate_U+D800" { + any( + \\["í €"] + ); +} + +test "i_structure_500_nested_arrays" { + any(("[" ** 500) ++ ("]" ** 500)); +} + +test "i_structure_UTF-8_BOM_empty_object" { + any( + \\{} + ); +} diff --git a/lib/std/lazy_init.zig b/lib/std/lazy_init.zig new file mode 100644 index 0000000000..7beabb9cde --- /dev/null +++ b/lib/std/lazy_init.zig @@ -0,0 +1,86 @@ +const std = @import("std.zig"); +const builtin = @import("builtin"); +const assert = std.debug.assert; +const testing = std.testing; +const AtomicRmwOp = builtin.AtomicRmwOp; +const AtomicOrder = builtin.AtomicOrder; + +/// Thread-safe initialization of global data. +/// TODO use a mutex instead of a spinlock +pub fn lazyInit(comptime T: type) LazyInit(T) { + return LazyInit(T){ + .data = undefined, + .state = 0, + }; +} + +fn LazyInit(comptime T: type) type { + return struct { + state: u8, // TODO make this an enum + data: Data, + + const Self = @This(); + + // TODO this isn't working for void, investigate and then remove this special case + const Data = if (@sizeOf(T) == 0) u8 else T; + const Ptr = if (T == void) void else *T; + + /// Returns a usable pointer to the initialized data, + /// or returns null, indicating that the caller should + /// perform the initialization and then call resolve(). + pub fn get(self: *Self) ?Ptr { + while (true) { + var state = @cmpxchgWeak(u8, &self.state, 0, 1, AtomicOrder.SeqCst, AtomicOrder.SeqCst) orelse return null; + switch (state) { + 0 => continue, + 1 => { + // TODO mutex instead of a spinlock + continue; + }, + 2 => { + if (@sizeOf(T) == 0) { + return T(undefined); + } else { + return &self.data; + } + }, + else => unreachable, + } + } + } + + pub fn resolve(self: *Self) void { + const prev = @atomicRmw(u8, &self.state, AtomicRmwOp.Xchg, 2, AtomicOrder.SeqCst); + assert(prev == 1); // resolve() called twice + } + }; +} + +var global_number = lazyInit(i32); + +test "std.lazyInit" { + if (global_number.get()) |_| @panic("bad") else { + global_number.data = 1234; + global_number.resolve(); + } + if (global_number.get()) |x| { + testing.expect(x.* == 1234); + } else { + @panic("bad"); + } + if (global_number.get()) |x| { + testing.expect(x.* == 1234); + } else { + @panic("bad"); + } +} + +var global_void = lazyInit(void); + +test "std.lazyInit(void)" { + if (global_void.get()) |_| @panic("bad") else { + global_void.resolve(); + } + testing.expect(global_void.get() != null); + testing.expect(global_void.get() != null); +} diff --git a/lib/std/linked_list.zig b/lib/std/linked_list.zig new file mode 100644 index 0000000000..6495653150 --- /dev/null +++ b/lib/std/linked_list.zig @@ -0,0 +1,530 @@ +const std = @import("std.zig"); +const debug = std.debug; +const assert = debug.assert; +const testing = std.testing; +const mem = std.mem; +const Allocator = mem.Allocator; + +/// A singly-linked list is headed by a single forward pointer. The elements +/// are singly linked for minimum space and pointer manipulation overhead at +/// the expense of O(n) removal for arbitrary elements. New elements can be +/// added to the list after an existing element or at the head of the list. +/// A singly-linked list may only be traversed in the forward direction. +/// Singly-linked lists are ideal for applications with large datasets and +/// few or no removals or for implementing a LIFO queue. +pub fn SinglyLinkedList(comptime T: type) type { + return struct { + const Self = @This(); + + /// Node inside the linked list wrapping the actual data. + pub const Node = struct { + next: ?*Node, + data: T, + + pub fn init(data: T) Node { + return Node{ + .next = null, + .data = data, + }; + } + + /// Insert a new node after the current one. + /// + /// Arguments: + /// new_node: Pointer to the new node to insert. + pub fn insertAfter(node: *Node, new_node: *Node) void { + new_node.next = node.next; + node.next = new_node; + } + + /// Remove a node from the list. + /// + /// Arguments: + /// node: Pointer to the node to be removed. + /// Returns: + /// node removed + pub fn removeNext(node: *Node) ?*Node { + const next_node = node.next orelse return null; + node.next = next_node.next; + return next_node; + } + }; + + first: ?*Node, + + /// Initialize a linked list. + /// + /// Returns: + /// An empty linked list. + pub fn init() Self { + return Self{ + .first = null, + }; + } + + /// Insert a new node after an existing one. + /// + /// Arguments: + /// node: Pointer to a node in the list. + /// new_node: Pointer to the new node to insert. + pub fn insertAfter(list: *Self, node: *Node, new_node: *Node) void { + node.insertAfter(new_node); + } + + /// Insert a new node at the head. + /// + /// Arguments: + /// new_node: Pointer to the new node to insert. + pub fn prepend(list: *Self, new_node: *Node) void { + new_node.next = list.first; + list.first = new_node; + } + + /// Remove a node from the list. + /// + /// Arguments: + /// node: Pointer to the node to be removed. + pub fn remove(list: *Self, node: *Node) void { + if (list.first == node) { + list.first = node.next; + } else { + var current_elm = list.first.?; + while (current_elm.next != node) { + current_elm = current_elm.next.?; + } + current_elm.next = node.next; + } + } + + /// Remove and return the first node in the list. + /// + /// Returns: + /// A pointer to the first node in the list. + pub fn popFirst(list: *Self) ?*Node { + const first = list.first orelse return null; + list.first = first.next; + return first; + } + + /// Allocate a new node. + /// + /// Arguments: + /// allocator: Dynamic memory allocator. + /// + /// Returns: + /// A pointer to the new node. + pub fn allocateNode(list: *Self, allocator: *Allocator) !*Node { + return allocator.create(Node); + } + + /// Deallocate a node. + /// + /// Arguments: + /// node: Pointer to the node to deallocate. + /// allocator: Dynamic memory allocator. + pub fn destroyNode(list: *Self, node: *Node, allocator: *Allocator) void { + allocator.destroy(node); + } + + /// Allocate and initialize a node and its data. + /// + /// Arguments: + /// data: The data to put inside the node. + /// allocator: Dynamic memory allocator. + /// + /// Returns: + /// A pointer to the new node. + pub fn createNode(list: *Self, data: T, allocator: *Allocator) !*Node { + var node = try list.allocateNode(allocator); + node.* = Node.init(data); + return node; + } + }; +} + +test "basic SinglyLinkedList test" { + const allocator = debug.global_allocator; + var list = SinglyLinkedList(u32).init(); + + var one = try list.createNode(1, allocator); + var two = try list.createNode(2, allocator); + var three = try list.createNode(3, allocator); + var four = try list.createNode(4, allocator); + var five = try list.createNode(5, allocator); + defer { + list.destroyNode(one, allocator); + list.destroyNode(two, allocator); + list.destroyNode(three, allocator); + list.destroyNode(four, allocator); + list.destroyNode(five, allocator); + } + + list.prepend(two); // {2} + list.insertAfter(two, five); // {2, 5} + list.prepend(one); // {1, 2, 5} + list.insertAfter(two, three); // {1, 2, 3, 5} + list.insertAfter(three, four); // {1, 2, 3, 4, 5} + + // Traverse forwards. + { + var it = list.first; + var index: u32 = 1; + while (it) |node| : (it = node.next) { + testing.expect(node.data == index); + index += 1; + } + } + + _ = list.popFirst(); // {2, 3, 4, 5} + _ = list.remove(five); // {2, 3, 4} + _ = two.removeNext(); // {2, 4} + + testing.expect(list.first.?.data == 2); + testing.expect(list.first.?.next.?.data == 4); + testing.expect(list.first.?.next.?.next == null); +} + +/// A tail queue is headed by a pair of pointers, one to the head of the +/// list and the other to the tail of the list. The elements are doubly +/// linked so that an arbitrary element can be removed without a need to +/// traverse the list. New elements can be added to the list before or +/// after an existing element, at the head of the list, or at the end of +/// the list. A tail queue may be traversed in either direction. +pub fn TailQueue(comptime T: type) type { + return struct { + const Self = @This(); + + /// Node inside the linked list wrapping the actual data. + pub const Node = struct { + prev: ?*Node, + next: ?*Node, + data: T, + + pub fn init(data: T) Node { + return Node{ + .prev = null, + .next = null, + .data = data, + }; + } + }; + + first: ?*Node, + last: ?*Node, + len: usize, + + /// Initialize a linked list. + /// + /// Returns: + /// An empty linked list. + pub fn init() Self { + return Self{ + .first = null, + .last = null, + .len = 0, + }; + } + + /// Insert a new node after an existing one. + /// + /// Arguments: + /// node: Pointer to a node in the list. + /// new_node: Pointer to the new node to insert. + pub fn insertAfter(list: *Self, node: *Node, new_node: *Node) void { + new_node.prev = node; + if (node.next) |next_node| { + // Intermediate node. + new_node.next = next_node; + next_node.prev = new_node; + } else { + // Last element of the list. + new_node.next = null; + list.last = new_node; + } + node.next = new_node; + + list.len += 1; + } + + /// Insert a new node before an existing one. + /// + /// Arguments: + /// node: Pointer to a node in the list. + /// new_node: Pointer to the new node to insert. + pub fn insertBefore(list: *Self, node: *Node, new_node: *Node) void { + new_node.next = node; + if (node.prev) |prev_node| { + // Intermediate node. + new_node.prev = prev_node; + prev_node.next = new_node; + } else { + // First element of the list. + new_node.prev = null; + list.first = new_node; + } + node.prev = new_node; + + list.len += 1; + } + + /// Concatenate list2 onto the end of list1, removing all entries from the former. + /// + /// Arguments: + /// list1: the list to concatenate onto + /// list2: the list to be concatenated + pub fn concatByMoving(list1: *Self, list2: *Self) void { + const l2_first = list2.first orelse return; + if (list1.last) |l1_last| { + l1_last.next = list2.first; + l2_first.prev = list1.last; + list1.len += list2.len; + } else { + // list1 was empty + list1.first = list2.first; + list1.len = list2.len; + } + list1.last = list2.last; + list2.first = null; + list2.last = null; + list2.len = 0; + } + + /// Insert a new node at the end of the list. + /// + /// Arguments: + /// new_node: Pointer to the new node to insert. + pub fn append(list: *Self, new_node: *Node) void { + if (list.last) |last| { + // Insert after last. + list.insertAfter(last, new_node); + } else { + // Empty list. + list.prepend(new_node); + } + } + + /// Insert a new node at the beginning of the list. + /// + /// Arguments: + /// new_node: Pointer to the new node to insert. + pub fn prepend(list: *Self, new_node: *Node) void { + if (list.first) |first| { + // Insert before first. + list.insertBefore(first, new_node); + } else { + // Empty list. + list.first = new_node; + list.last = new_node; + new_node.prev = null; + new_node.next = null; + + list.len = 1; + } + } + + /// Remove a node from the list. + /// + /// Arguments: + /// node: Pointer to the node to be removed. + pub fn remove(list: *Self, node: *Node) void { + if (node.prev) |prev_node| { + // Intermediate node. + prev_node.next = node.next; + } else { + // First element of the list. + list.first = node.next; + } + + if (node.next) |next_node| { + // Intermediate node. + next_node.prev = node.prev; + } else { + // Last element of the list. + list.last = node.prev; + } + + list.len -= 1; + assert(list.len == 0 or (list.first != null and list.last != null)); + } + + /// Remove and return the last node in the list. + /// + /// Returns: + /// A pointer to the last node in the list. + pub fn pop(list: *Self) ?*Node { + const last = list.last orelse return null; + list.remove(last); + return last; + } + + /// Remove and return the first node in the list. + /// + /// Returns: + /// A pointer to the first node in the list. + pub fn popFirst(list: *Self) ?*Node { + const first = list.first orelse return null; + list.remove(first); + return first; + } + + /// Allocate a new node. + /// + /// Arguments: + /// allocator: Dynamic memory allocator. + /// + /// Returns: + /// A pointer to the new node. + pub fn allocateNode(list: *Self, allocator: *Allocator) !*Node { + return allocator.create(Node); + } + + /// Deallocate a node. + /// + /// Arguments: + /// node: Pointer to the node to deallocate. + /// allocator: Dynamic memory allocator. + pub fn destroyNode(list: *Self, node: *Node, allocator: *Allocator) void { + allocator.destroy(node); + } + + /// Allocate and initialize a node and its data. + /// + /// Arguments: + /// data: The data to put inside the node. + /// allocator: Dynamic memory allocator. + /// + /// Returns: + /// A pointer to the new node. + pub fn createNode(list: *Self, data: T, allocator: *Allocator) !*Node { + var node = try list.allocateNode(allocator); + node.* = Node.init(data); + return node; + } + }; +} + +test "basic TailQueue test" { + const allocator = debug.global_allocator; + var list = TailQueue(u32).init(); + + var one = try list.createNode(1, allocator); + var two = try list.createNode(2, allocator); + var three = try list.createNode(3, allocator); + var four = try list.createNode(4, allocator); + var five = try list.createNode(5, allocator); + defer { + list.destroyNode(one, allocator); + list.destroyNode(two, allocator); + list.destroyNode(three, allocator); + list.destroyNode(four, allocator); + list.destroyNode(five, allocator); + } + + list.append(two); // {2} + list.append(five); // {2, 5} + list.prepend(one); // {1, 2, 5} + list.insertBefore(five, four); // {1, 2, 4, 5} + list.insertAfter(two, three); // {1, 2, 3, 4, 5} + + // Traverse forwards. + { + var it = list.first; + var index: u32 = 1; + while (it) |node| : (it = node.next) { + testing.expect(node.data == index); + index += 1; + } + } + + // Traverse backwards. + { + var it = list.last; + var index: u32 = 1; + while (it) |node| : (it = node.prev) { + testing.expect(node.data == (6 - index)); + index += 1; + } + } + + var first = list.popFirst(); // {2, 3, 4, 5} + var last = list.pop(); // {2, 3, 4} + list.remove(three); // {2, 4} + + testing.expect(list.first.?.data == 2); + testing.expect(list.last.?.data == 4); + testing.expect(list.len == 2); +} + +test "TailQueue concatenation" { + const allocator = debug.global_allocator; + var list1 = TailQueue(u32).init(); + var list2 = TailQueue(u32).init(); + + var one = try list1.createNode(1, allocator); + defer list1.destroyNode(one, allocator); + var two = try list1.createNode(2, allocator); + defer list1.destroyNode(two, allocator); + var three = try list1.createNode(3, allocator); + defer list1.destroyNode(three, allocator); + var four = try list1.createNode(4, allocator); + defer list1.destroyNode(four, allocator); + var five = try list1.createNode(5, allocator); + defer list1.destroyNode(five, allocator); + + list1.append(one); + list1.append(two); + list2.append(three); + list2.append(four); + list2.append(five); + + list1.concatByMoving(&list2); + + testing.expect(list1.last == five); + testing.expect(list1.len == 5); + testing.expect(list2.first == null); + testing.expect(list2.last == null); + testing.expect(list2.len == 0); + + // Traverse forwards. + { + var it = list1.first; + var index: u32 = 1; + while (it) |node| : (it = node.next) { + testing.expect(node.data == index); + index += 1; + } + } + + // Traverse backwards. + { + var it = list1.last; + var index: u32 = 1; + while (it) |node| : (it = node.prev) { + testing.expect(node.data == (6 - index)); + index += 1; + } + } + + // Swap them back, this verifies that concating to an empty list works. + list2.concatByMoving(&list1); + + // Traverse forwards. + { + var it = list2.first; + var index: u32 = 1; + while (it) |node| : (it = node.next) { + testing.expect(node.data == index); + index += 1; + } + } + + // Traverse backwards. + { + var it = list2.last; + var index: u32 = 1; + while (it) |node| : (it = node.prev) { + testing.expect(node.data == (6 - index)); + index += 1; + } + } +} diff --git a/lib/std/macho.zig b/lib/std/macho.zig new file mode 100644 index 0000000000..e1bbd755c6 --- /dev/null +++ b/lib/std/macho.zig @@ -0,0 +1,694 @@ +pub const mach_header = extern struct { + magic: u32, + cputype: cpu_type_t, + cpusubtype: cpu_subtype_t, + filetype: u32, + ncmds: u32, + sizeofcmds: u32, + flags: u32, +}; + +pub const mach_header_64 = extern struct { + magic: u32, + cputype: cpu_type_t, + cpusubtype: cpu_subtype_t, + filetype: u32, + ncmds: u32, + sizeofcmds: u32, + flags: u32, + reserved: u32, +}; + +pub const load_command = extern struct { + cmd: u32, + cmdsize: u32, +}; + +/// The symtab_command contains the offsets and sizes of the link-edit 4.3BSD +/// "stab" style symbol table information as described in the header files +/// and . +pub const symtab_command = extern struct { + /// LC_SYMTAB + cmd: u32, + + /// sizeof(struct symtab_command) + cmdsize: u32, + + /// symbol table offset + symoff: u32, + + /// number of symbol table entries + nsyms: u32, + + /// string table offset + stroff: u32, + + /// string table size in bytes + strsize: u32, +}; + +/// The linkedit_data_command contains the offsets and sizes of a blob +/// of data in the __LINKEDIT segment. +const linkedit_data_command = extern struct { + /// LC_CODE_SIGNATURE, LC_SEGMENT_SPLIT_INFO, LC_FUNCTION_STARTS, LC_DATA_IN_CODE, LC_DYLIB_CODE_SIGN_DRS or LC_LINKER_OPTIMIZATION_HINT. + cmd: u32, + + /// sizeof(struct linkedit_data_command) + cmdsize: u32, + + /// file offset of data in __LINKEDIT segment + dataoff: u32, + + /// file size of data in __LINKEDIT segment + datasize: u32, +}; + +/// The segment load command indicates that a part of this file is to be +/// mapped into the task's address space. The size of this segment in memory, +/// vmsize, maybe equal to or larger than the amount to map from this file, +/// filesize. The file is mapped starting at fileoff to the beginning of +/// the segment in memory, vmaddr. The rest of the memory of the segment, +/// if any, is allocated zero fill on demand. The segment's maximum virtual +/// memory protection and initial virtual memory protection are specified +/// by the maxprot and initprot fields. If the segment has sections then the +/// section structures directly follow the segment command and their size is +/// reflected in cmdsize. +pub const segment_command = extern struct { + /// LC_SEGMENT + cmd: u32, + + /// includes sizeof section structs + cmdsize: u32, + + /// segment name + segname: [16]u8, + + /// memory address of this segment + vmaddr: u32, + + /// memory size of this segment + vmsize: u32, + + /// file offset of this segment + fileoff: u32, + + /// amount to map from the file + filesize: u32, + + /// maximum VM protection + maxprot: vm_prot_t, + + /// initial VM protection + initprot: vm_prot_t, + + /// number of sections in segment + nsects: u32, + flags: u32, +}; + +/// The 64-bit segment load command indicates that a part of this file is to be +/// mapped into a 64-bit task's address space. If the 64-bit segment has +/// sections then section_64 structures directly follow the 64-bit segment +/// command and their size is reflected in cmdsize. +pub const segment_command_64 = extern struct { + /// LC_SEGMENT_64 + cmd: u32, + + /// includes sizeof section_64 structs + cmdsize: u32, + + /// segment name + segname: [16]u8, + + /// memory address of this segment + vmaddr: u64, + + /// memory size of this segment + vmsize: u64, + + /// file offset of this segment + fileoff: u64, + + /// amount to map from the file + filesize: u64, + + /// maximum VM protection + maxprot: vm_prot_t, + + /// initial VM protection + initprot: vm_prot_t, + + /// number of sections in segment + nsects: u32, + flags: u32, +}; + +/// A segment is made up of zero or more sections. Non-MH_OBJECT files have +/// all of their segments with the proper sections in each, and padded to the +/// specified segment alignment when produced by the link editor. The first +/// segment of a MH_EXECUTE and MH_FVMLIB format file contains the mach_header +/// and load commands of the object file before its first section. The zero +/// fill sections are always last in their segment (in all formats). This +/// allows the zeroed segment padding to be mapped into memory where zero fill +/// sections might be. The gigabyte zero fill sections, those with the section +/// type S_GB_ZEROFILL, can only be in a segment with sections of this type. +/// These segments are then placed after all other segments. +/// +/// The MH_OBJECT format has all of its sections in one segment for +/// compactness. There is no padding to a specified segment boundary and the +/// mach_header and load commands are not part of the segment. +/// +/// Sections with the same section name, sectname, going into the same segment, +/// segname, are combined by the link editor. The resulting section is aligned +/// to the maximum alignment of the combined sections and is the new section's +/// alignment. The combined sections are aligned to their original alignment in +/// the combined section. Any padded bytes to get the specified alignment are +/// zeroed. +/// +/// The format of the relocation entries referenced by the reloff and nreloc +/// fields of the section structure for mach object files is described in the +/// header file . +pub const @"section" = extern struct { + /// name of this section + sectname: [16]u8, + + /// segment this section goes in + segname: [16]u8, + + /// memory address of this section + addr: u32, + + /// size in bytes of this section + size: u32, + + /// file offset of this section + offset: u32, + + /// section alignment (power of 2) + @"align": u32, + + /// file offset of relocation entries + reloff: u32, + + /// number of relocation entries + nreloc: u32, + + /// flags (section type and attributes + flags: u32, + + /// reserved (for offset or index) + reserved1: u32, + + /// reserved (for count or sizeof) + reserved2: u32, +}; + +pub const section_64 = extern struct { + /// name of this section + sectname: [16]u8, + + /// segment this section goes in + segname: [16]u8, + + /// memory address of this section + addr: u64, + + /// size in bytes of this section + size: u64, + + /// file offset of this section + offset: u32, + + /// section alignment (power of 2) + @"align": u32, + + /// file offset of relocation entries + reloff: u32, + + /// number of relocation entries + nreloc: u32, + + /// flags (section type and attributes + flags: u32, + + /// reserved (for offset or index) + reserved1: u32, + + /// reserved (for count or sizeof) + reserved2: u32, + + /// reserved + reserved3: u32, +}; + +pub const nlist = extern struct { + n_strx: u32, + n_type: u8, + n_sect: u8, + n_desc: i16, + n_value: u32, +}; + +pub const nlist_64 = extern struct { + n_strx: u32, + n_type: u8, + n_sect: u8, + n_desc: u16, + n_value: u64, +}; + +/// After MacOS X 10.1 when a new load command is added that is required to be +/// understood by the dynamic linker for the image to execute properly the +/// LC_REQ_DYLD bit will be or'ed into the load command constant. If the dynamic +/// linker sees such a load command it it does not understand will issue a +/// "unknown load command required for execution" error and refuse to use the +/// image. Other load commands without this bit that are not understood will +/// simply be ignored. +pub const LC_REQ_DYLD = 0x80000000; + +/// segment of this file to be mapped +pub const LC_SEGMENT = 0x1; + +/// link-edit stab symbol table info +pub const LC_SYMTAB = 0x2; + +/// link-edit gdb symbol table info (obsolete) +pub const LC_SYMSEG = 0x3; + +/// thread +pub const LC_THREAD = 0x4; + +/// unix thread (includes a stack) +pub const LC_UNIXTHREAD = 0x5; + +/// load a specified fixed VM shared library +pub const LC_LOADFVMLIB = 0x6; + +/// fixed VM shared library identification +pub const LC_IDFVMLIB = 0x7; + +/// object identification info (obsolete) +pub const LC_IDENT = 0x8; + +/// fixed VM file inclusion (internal use) +pub const LC_FVMFILE = 0x9; + +/// prepage command (internal use) +pub const LC_PREPAGE = 0xa; + +/// dynamic link-edit symbol table info +pub const LC_DYSYMTAB = 0xb; + +/// load a dynamically linked shared library +pub const LC_LOAD_DYLIB = 0xc; + +/// dynamically linked shared lib ident +pub const LC_ID_DYLIB = 0xd; + +/// load a dynamic linker +pub const LC_LOAD_DYLINKER = 0xe; + +/// dynamic linker identification +pub const LC_ID_DYLINKER = 0xf; + +/// modules prebound for a dynamically +pub const LC_PREBOUND_DYLIB = 0x10; + +/// image routines +pub const LC_ROUTINES = 0x11; + +/// sub framework +pub const LC_SUB_FRAMEWORK = 0x12; + +/// sub umbrella +pub const LC_SUB_UMBRELLA = 0x13; + +/// sub client +pub const LC_SUB_CLIENT = 0x14; + +/// sub library +pub const LC_SUB_LIBRARY = 0x15; + +/// two-level namespace lookup hints +pub const LC_TWOLEVEL_HINTS = 0x16; + +/// prebind checksum +pub const LC_PREBIND_CKSUM = 0x17; + +/// load a dynamically linked shared library that is allowed to be missing +/// (all symbols are weak imported). +pub const LC_LOAD_WEAK_DYLIB = (0x18 | LC_REQ_DYLD); + +/// 64-bit segment of this file to be mapped +pub const LC_SEGMENT_64 = 0x19; + +/// 64-bit image routines +pub const LC_ROUTINES_64 = 0x1a; + +/// the uuid +pub const LC_UUID = 0x1b; + +/// runpath additions +pub const LC_RPATH = (0x1c | LC_REQ_DYLD); + +/// local of code signature +pub const LC_CODE_SIGNATURE = 0x1d; + +/// local of info to split segments +pub const LC_SEGMENT_SPLIT_INFO = 0x1e; + +/// load and re-export dylib +pub const LC_REEXPORT_DYLIB = (0x1f | LC_REQ_DYLD); + +/// delay load of dylib until first use +pub const LC_LAZY_LOAD_DYLIB = 0x20; + +/// encrypted segment information +pub const LC_ENCRYPTION_INFO = 0x21; + +/// compressed dyld information +pub const LC_DYLD_INFO = 0x22; + +/// compressed dyld information only +pub const LC_DYLD_INFO_ONLY = (0x22 | LC_REQ_DYLD); + +/// load upward dylib +pub const LC_LOAD_UPWARD_DYLIB = (0x23 | LC_REQ_DYLD); + +/// build for MacOSX min OS version +pub const LC_VERSION_MIN_MACOSX = 0x24; + +/// build for iPhoneOS min OS version +pub const LC_VERSION_MIN_IPHONEOS = 0x25; + +/// compressed table of function start addresses +pub const LC_FUNCTION_STARTS = 0x26; + +/// string for dyld to treat like environment variable +pub const LC_DYLD_ENVIRONMENT = 0x27; + +/// replacement for LC_UNIXTHREAD +pub const LC_MAIN = (0x28 | LC_REQ_DYLD); + +/// table of non-instructions in __text +pub const LC_DATA_IN_CODE = 0x29; + +/// source version used to build binary +pub const LC_SOURCE_VERSION = 0x2A; + +/// Code signing DRs copied from linked dylibs +pub const LC_DYLIB_CODE_SIGN_DRS = 0x2B; + +/// 64-bit encrypted segment information +pub const LC_ENCRYPTION_INFO_64 = 0x2C; + +/// linker options in MH_OBJECT files +pub const LC_LINKER_OPTION = 0x2D; + +/// optimization hints in MH_OBJECT files +pub const LC_LINKER_OPTIMIZATION_HINT = 0x2E; + +/// build for AppleTV min OS version +pub const LC_VERSION_MIN_TVOS = 0x2F; + +/// build for Watch min OS version +pub const LC_VERSION_MIN_WATCHOS = 0x30; + +/// arbitrary data included within a Mach-O file +pub const LC_NOTE = 0x31; + +/// build for platform min OS version +pub const LC_BUILD_VERSION = 0x32; + +/// the mach magic number +pub const MH_MAGIC = 0xfeedface; + +/// NXSwapInt(MH_MAGIC) +pub const MH_CIGAM = 0xcefaedfe; + +/// the 64-bit mach magic number +pub const MH_MAGIC_64 = 0xfeedfacf; + +/// NXSwapInt(MH_MAGIC_64) +pub const MH_CIGAM_64 = 0xcffaedfe; + +/// relocatable object file +pub const MH_OBJECT = 0x1; + +/// demand paged executable file +pub const MH_EXECUTE = 0x2; + +/// fixed VM shared library file +pub const MH_FVMLIB = 0x3; + +/// core file +pub const MH_CORE = 0x4; + +/// preloaded executable file +pub const MH_PRELOAD = 0x5; + +/// dynamically bound shared library +pub const MH_DYLIB = 0x6; + +/// dynamic link editor +pub const MH_DYLINKER = 0x7; + +/// dynamically bound bundle file +pub const MH_BUNDLE = 0x8; + +/// shared library stub for static linking only, no section contents +pub const MH_DYLIB_STUB = 0x9; + +/// companion file with only debug sections +pub const MH_DSYM = 0xa; + +/// x86_64 kexts +pub const MH_KEXT_BUNDLE = 0xb; + +// Constants for the flags field of the mach_header + +/// the object file has no undefined references +pub const MH_NOUNDEFS = 0x1; + +/// the object file is the output of an incremental link against a base file and can't be link edited again +pub const MH_INCRLINK = 0x2; + +/// the object file is input for the dynamic linker and can't be staticly link edited again +pub const MH_DYLDLINK = 0x4; + +/// the object file's undefined references are bound by the dynamic linker when loaded. +pub const MH_BINDATLOAD = 0x8; + +/// the file has its dynamic undefined references prebound. +pub const MH_PREBOUND = 0x10; + +/// the file has its read-only and read-write segments split +pub const MH_SPLIT_SEGS = 0x20; + +/// the shared library init routine is to be run lazily via catching memory faults to its writeable segments (obsolete) +pub const MH_LAZY_INIT = 0x40; + +/// the image is using two-level name space bindings +pub const MH_TWOLEVEL = 0x80; + +/// the executable is forcing all images to use flat name space bindings +pub const MH_FORCE_FLAT = 0x100; + +/// this umbrella guarantees no multiple defintions of symbols in its sub-images so the two-level namespace hints can always be used. +pub const MH_NOMULTIDEFS = 0x200; + +/// do not have dyld notify the prebinding agent about this executable +pub const MH_NOFIXPREBINDING = 0x400; + +/// the binary is not prebound but can have its prebinding redone. only used when MH_PREBOUND is not set. +pub const MH_PREBINDABLE = 0x800; + +/// indicates that this binary binds to all two-level namespace modules of its dependent libraries. only used when MH_PREBINDABLE and MH_TWOLEVEL are both set. +pub const MH_ALLMODSBOUND = 0x1000; + +/// safe to divide up the sections into sub-sections via symbols for dead code stripping +pub const MH_SUBSECTIONS_VIA_SYMBOLS = 0x2000; + +/// the binary has been canonicalized via the unprebind operation +pub const MH_CANONICAL = 0x4000; + +/// the final linked image contains external weak symbols +pub const MH_WEAK_DEFINES = 0x8000; + +/// the final linked image uses weak symbols +pub const MH_BINDS_TO_WEAK = 0x10000; + +/// When this bit is set, all stacks in the task will be given stack execution privilege. Only used in MH_EXECUTE filetypes. +pub const MH_ALLOW_STACK_EXECUTION = 0x20000; + +/// When this bit is set, the binary declares it is safe for use in processes with uid zero +pub const MH_ROOT_SAFE = 0x40000; + +/// When this bit is set, the binary declares it is safe for use in processes when issetugid() is true +pub const MH_SETUID_SAFE = 0x80000; + +/// When this bit is set on a dylib, the static linker does not need to examine dependent dylibs to see if any are re-exported +pub const MH_NO_REEXPORTED_DYLIBS = 0x100000; + +/// When this bit is set, the OS will load the main executable at a random address. Only used in MH_EXECUTE filetypes. +pub const MH_PIE = 0x200000; + +/// Only for use on dylibs. When linking against a dylib that has this bit set, the static linker will automatically not create a LC_LOAD_DYLIB load command to the dylib if no symbols are being referenced from the dylib. +pub const MH_DEAD_STRIPPABLE_DYLIB = 0x400000; + +/// Contains a section of type S_THREAD_LOCAL_VARIABLES +pub const MH_HAS_TLV_DESCRIPTORS = 0x800000; + +/// When this bit is set, the OS will run the main executable with a non-executable heap even on platforms (e.g. i386) that don't require it. Only used in MH_EXECUTE filetypes. +pub const MH_NO_HEAP_EXECUTION = 0x1000000; + +/// The code was linked for use in an application extension. +pub const MH_APP_EXTENSION_SAFE = 0x02000000; + +/// The external symbols listed in the nlist symbol table do not include all the symbols listed in the dyld info. +pub const MH_NLIST_OUTOFSYNC_WITH_DYLDINFO = 0x04000000; + +/// The flags field of a section structure is separated into two parts a section +/// type and section attributes. The section types are mutually exclusive (it +/// can only have one type) but the section attributes are not (it may have more +/// than one attribute). +/// 256 section types +pub const SECTION_TYPE = 0x000000ff; + +/// 24 section attributes +pub const SECTION_ATTRIBUTES = 0xffffff00; + +/// regular section +pub const S_REGULAR = 0x0; + +/// zero fill on demand section +pub const S_ZEROFILL = 0x1; + +/// section with only literal C string +pub const S_CSTRING_LITERALS = 0x2; + +/// section with only 4 byte literals +pub const S_4BYTE_LITERALS = 0x3; + +/// section with only 8 byte literals +pub const S_8BYTE_LITERALS = 0x4; + +/// section with only pointers to +pub const S_LITERAL_POINTERS = 0x5; + +/// if any of these bits set, a symbolic debugging entry +pub const N_STAB = 0xe0; + +/// private external symbol bit +pub const N_PEXT = 0x10; + +/// mask for the type bits +pub const N_TYPE = 0x0e; + +/// external symbol bit, set for external symbols +pub const N_EXT = 0x01; + +/// global symbol: name,,NO_SECT,type,0 +pub const N_GSYM = 0x20; + +/// procedure name (f77 kludge): name,,NO_SECT,0,0 +pub const N_FNAME = 0x22; + +/// procedure: name,,n_sect,linenumber,address +pub const N_FUN = 0x24; + +/// static symbol: name,,n_sect,type,address +pub const N_STSYM = 0x26; + +/// .lcomm symbol: name,,n_sect,type,address +pub const N_LCSYM = 0x28; + +/// begin nsect sym: 0,,n_sect,0,address +pub const N_BNSYM = 0x2e; + +/// AST file path: name,,NO_SECT,0,0 +pub const N_AST = 0x32; + +/// emitted with gcc2_compiled and in gcc source +pub const N_OPT = 0x3c; + +/// register sym: name,,NO_SECT,type,register +pub const N_RSYM = 0x40; + +/// src line: 0,,n_sect,linenumber,address +pub const N_SLINE = 0x44; + +/// end nsect sym: 0,,n_sect,0,address +pub const N_ENSYM = 0x4e; + +/// structure elt: name,,NO_SECT,type,struct_offset +pub const N_SSYM = 0x60; + +/// source file name: name,,n_sect,0,address +pub const N_SO = 0x64; + +/// object file name: name,,0,0,st_mtime +pub const N_OSO = 0x66; + +/// local sym: name,,NO_SECT,type,offset +pub const N_LSYM = 0x80; + +/// include file beginning: name,,NO_SECT,0,sum +pub const N_BINCL = 0x82; + +/// #included file name: name,,n_sect,0,address +pub const N_SOL = 0x84; + +/// compiler parameters: name,,NO_SECT,0,0 +pub const N_PARAMS = 0x86; + +/// compiler version: name,,NO_SECT,0,0 +pub const N_VERSION = 0x88; + +/// compiler -O level: name,,NO_SECT,0,0 +pub const N_OLEVEL = 0x8A; + +/// parameter: name,,NO_SECT,type,offset +pub const N_PSYM = 0xa0; + +/// include file end: name,,NO_SECT,0,0 +pub const N_EINCL = 0xa2; + +/// alternate entry: name,,n_sect,linenumber,address +pub const N_ENTRY = 0xa4; + +/// left bracket: 0,,NO_SECT,nesting level,address +pub const N_LBRAC = 0xc0; + +/// deleted include file: name,,NO_SECT,0,sum +pub const N_EXCL = 0xc2; + +/// right bracket: 0,,NO_SECT,nesting level,address +pub const N_RBRAC = 0xe0; + +/// begin common: name,,NO_SECT,0,0 +pub const N_BCOMM = 0xe2; + +/// end common: name,,n_sect,0,0 +pub const N_ECOMM = 0xe4; + +/// end common (local name): 0,,n_sect,0,address +pub const N_ECOML = 0xe8; + +/// second stab entry with length information +pub const N_LENG = 0xfe; + +/// If a segment contains any sections marked with S_ATTR_DEBUG then all +/// sections in that segment must have this attribute. No section other than +/// a section marked with this attribute may reference the contents of this +/// section. A section with this attribute may contain no symbols and must have +/// a section type S_REGULAR. The static linker will not copy section contents +/// from sections with this attribute into its output file. These sections +/// generally contain DWARF debugging info. +/// a debug section +pub const S_ATTR_DEBUG = 0x02000000; + +pub const cpu_type_t = integer_t; +pub const cpu_subtype_t = integer_t; +pub const integer_t = c_int; +pub const vm_prot_t = c_int; diff --git a/lib/std/math.zig b/lib/std/math.zig new file mode 100644 index 0000000000..e47021512e --- /dev/null +++ b/lib/std/math.zig @@ -0,0 +1,964 @@ +const builtin = @import("builtin"); +const std = @import("std.zig"); +const TypeId = builtin.TypeId; +const assert = std.debug.assert; +const testing = std.testing; + +pub const e = 2.71828182845904523536028747135266249775724709369995; +pub const pi = 3.14159265358979323846264338327950288419716939937510; + +// From a small c++ [program using boost float128](https://github.com/winksaville/cpp_boost_float128) +pub const f128_true_min = @bitCast(f128, u128(0x00000000000000000000000000000001)); +pub const f128_min = @bitCast(f128, u128(0x00010000000000000000000000000000)); +pub const f128_max = @bitCast(f128, u128(0x7FFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF)); +pub const f128_epsilon = @bitCast(f128, u128(0x3F8F0000000000000000000000000000)); +pub const f128_toint = 1.0 / f128_epsilon; + +// float.h details +pub const f64_true_min = 4.94065645841246544177e-324; +pub const f64_min = 2.2250738585072014e-308; +pub const f64_max = 1.79769313486231570815e+308; +pub const f64_epsilon = 2.22044604925031308085e-16; +pub const f64_toint = 1.0 / f64_epsilon; + +pub const f32_true_min = 1.40129846432481707092e-45; +pub const f32_min = 1.17549435082228750797e-38; +pub const f32_max = 3.40282346638528859812e+38; +pub const f32_epsilon = 1.1920928955078125e-07; +pub const f32_toint = 1.0 / f32_epsilon; + +pub const f16_true_min = 0.000000059604644775390625; // 2**-24 +pub const f16_min = 0.00006103515625; // 2**-14 +pub const f16_max = 65504; +pub const f16_epsilon = 0.0009765625; // 2**-10 +pub const f16_toint = 1.0 / f16_epsilon; + +pub const nan_u16 = u16(0x7C01); +pub const nan_f16 = @bitCast(f16, nan_u16); + +pub const inf_u16 = u16(0x7C00); +pub const inf_f16 = @bitCast(f16, inf_u16); + +pub const nan_u32 = u32(0x7F800001); +pub const nan_f32 = @bitCast(f32, nan_u32); + +pub const inf_u32 = u32(0x7F800000); +pub const inf_f32 = @bitCast(f32, inf_u32); + +pub const nan_u64 = u64(0x7FF << 52) | 1; +pub const nan_f64 = @bitCast(f64, nan_u64); + +pub const inf_u64 = u64(0x7FF << 52); +pub const inf_f64 = @bitCast(f64, inf_u64); + +pub const nan_u128 = u128(0x7fff0000000000000000000000000001); +pub const nan_f128 = @bitCast(f128, nan_u128); + +pub const inf_u128 = u128(0x7fff0000000000000000000000000000); +pub const inf_f128 = @bitCast(f128, inf_u128); + +pub const nan = @import("math/nan.zig").nan; +pub const snan = @import("math/nan.zig").snan; +pub const inf = @import("math/inf.zig").inf; + +pub fn approxEq(comptime T: type, x: T, y: T, epsilon: T) bool { + assert(@typeId(T) == TypeId.Float); + return fabs(x - y) < epsilon; +} + +// TODO: Hide the following in an internal module. +pub fn forceEval(value: var) void { + const T = @typeOf(value); + switch (T) { + f16 => { + var x: f16 = undefined; + const p = @ptrCast(*volatile f16, &x); + p.* = x; + }, + f32 => { + var x: f32 = undefined; + const p = @ptrCast(*volatile f32, &x); + p.* = x; + }, + f64 => { + var x: f64 = undefined; + const p = @ptrCast(*volatile f64, &x); + p.* = x; + }, + else => { + @compileError("forceEval not implemented for " ++ @typeName(T)); + }, + } +} + +pub fn raiseInvalid() void { + // Raise INVALID fpu exception +} + +pub fn raiseUnderflow() void { + // Raise UNDERFLOW fpu exception +} + +pub fn raiseOverflow() void { + // Raise OVERFLOW fpu exception +} + +pub fn raiseInexact() void { + // Raise INEXACT fpu exception +} + +pub fn raiseDivByZero() void { + // Raise INEXACT fpu exception +} + +pub const isNan = @import("math/isnan.zig").isNan; +pub const isSignalNan = @import("math/isnan.zig").isSignalNan; +pub const fabs = @import("math/fabs.zig").fabs; +pub const ceil = @import("math/ceil.zig").ceil; +pub const floor = @import("math/floor.zig").floor; +pub const trunc = @import("math/trunc.zig").trunc; +pub const round = @import("math/round.zig").round; +pub const frexp = @import("math/frexp.zig").frexp; +pub const frexp32_result = @import("math/frexp.zig").frexp32_result; +pub const frexp64_result = @import("math/frexp.zig").frexp64_result; +pub const modf = @import("math/modf.zig").modf; +pub const modf32_result = @import("math/modf.zig").modf32_result; +pub const modf64_result = @import("math/modf.zig").modf64_result; +pub const copysign = @import("math/copysign.zig").copysign; +pub const isFinite = @import("math/isfinite.zig").isFinite; +pub const isInf = @import("math/isinf.zig").isInf; +pub const isPositiveInf = @import("math/isinf.zig").isPositiveInf; +pub const isNegativeInf = @import("math/isinf.zig").isNegativeInf; +pub const isNormal = @import("math/isnormal.zig").isNormal; +pub const signbit = @import("math/signbit.zig").signbit; +pub const scalbn = @import("math/scalbn.zig").scalbn; +pub const pow = @import("math/pow.zig").pow; +pub const powi = @import("math/powi.zig").powi; +pub const sqrt = @import("math/sqrt.zig").sqrt; +pub const cbrt = @import("math/cbrt.zig").cbrt; +pub const acos = @import("math/acos.zig").acos; +pub const asin = @import("math/asin.zig").asin; +pub const atan = @import("math/atan.zig").atan; +pub const atan2 = @import("math/atan2.zig").atan2; +pub const hypot = @import("math/hypot.zig").hypot; +pub const exp = @import("math/exp.zig").exp; +pub const exp2 = @import("math/exp2.zig").exp2; +pub const expm1 = @import("math/expm1.zig").expm1; +pub const ilogb = @import("math/ilogb.zig").ilogb; +pub const ln = @import("math/ln.zig").ln; +pub const log = @import("math/log.zig").log; +pub const log2 = @import("math/log2.zig").log2; +pub const log10 = @import("math/log10.zig").log10; +pub const log1p = @import("math/log1p.zig").log1p; +pub const fma = @import("math/fma.zig").fma; +pub const asinh = @import("math/asinh.zig").asinh; +pub const acosh = @import("math/acosh.zig").acosh; +pub const atanh = @import("math/atanh.zig").atanh; +pub const sinh = @import("math/sinh.zig").sinh; +pub const cosh = @import("math/cosh.zig").cosh; +pub const tanh = @import("math/tanh.zig").tanh; +pub const cos = @import("math/cos.zig").cos; +pub const sin = @import("math/sin.zig").sin; +pub const tan = @import("math/tan.zig").tan; + +pub const complex = @import("math/complex.zig"); +pub const Complex = complex.Complex; + +pub const big = @import("math/big.zig"); + +test "math" { + _ = @import("math/nan.zig"); + _ = @import("math/isnan.zig"); + _ = @import("math/fabs.zig"); + _ = @import("math/ceil.zig"); + _ = @import("math/floor.zig"); + _ = @import("math/trunc.zig"); + _ = @import("math/round.zig"); + _ = @import("math/frexp.zig"); + _ = @import("math/modf.zig"); + _ = @import("math/copysign.zig"); + _ = @import("math/isfinite.zig"); + _ = @import("math/isinf.zig"); + _ = @import("math/isnormal.zig"); + _ = @import("math/signbit.zig"); + _ = @import("math/scalbn.zig"); + _ = @import("math/pow.zig"); + _ = @import("math/powi.zig"); + _ = @import("math/sqrt.zig"); + _ = @import("math/cbrt.zig"); + _ = @import("math/acos.zig"); + _ = @import("math/asin.zig"); + _ = @import("math/atan.zig"); + _ = @import("math/atan2.zig"); + _ = @import("math/hypot.zig"); + _ = @import("math/exp.zig"); + _ = @import("math/exp2.zig"); + _ = @import("math/expm1.zig"); + _ = @import("math/ilogb.zig"); + _ = @import("math/ln.zig"); + _ = @import("math/log.zig"); + _ = @import("math/log2.zig"); + _ = @import("math/log10.zig"); + _ = @import("math/log1p.zig"); + _ = @import("math/fma.zig"); + _ = @import("math/asinh.zig"); + _ = @import("math/acosh.zig"); + _ = @import("math/atanh.zig"); + _ = @import("math/sinh.zig"); + _ = @import("math/cosh.zig"); + _ = @import("math/tanh.zig"); + _ = @import("math/sin.zig"); + _ = @import("math/cos.zig"); + _ = @import("math/tan.zig"); + + _ = @import("math/complex.zig"); + + _ = @import("math/big.zig"); +} + +pub fn floatMantissaBits(comptime T: type) comptime_int { + assert(@typeId(T) == builtin.TypeId.Float); + + return switch (T.bit_count) { + 16 => 10, + 32 => 23, + 64 => 52, + 80 => 64, + 128 => 112, + else => @compileError("unknown floating point type " ++ @typeName(T)), + }; +} + +pub fn floatExponentBits(comptime T: type) comptime_int { + assert(@typeId(T) == builtin.TypeId.Float); + + return switch (T.bit_count) { + 16 => 5, + 32 => 8, + 64 => 11, + 80 => 15, + 128 => 15, + else => @compileError("unknown floating point type " ++ @typeName(T)), + }; +} + +/// Given two types, returns the smallest one which is capable of holding the +/// full range of the minimum value. +pub fn Min(comptime A: type, comptime B: type) type { + switch (@typeInfo(A)) { + .Int => |a_info| switch (@typeInfo(B)) { + .Int => |b_info| if (!a_info.is_signed and !b_info.is_signed) { + if (a_info.bits < b_info.bits) { + return A; + } else { + return B; + } + }, + else => {}, + }, + else => {}, + } + return @typeOf(A(0) + B(0)); +} + +/// Returns the smaller number. When one of the parameter's type's full range fits in the other, +/// the return type is the smaller type. +pub fn min(x: var, y: var) Min(@typeOf(x), @typeOf(y)) { + const Result = Min(@typeOf(x), @typeOf(y)); + if (x < y) { + // TODO Zig should allow this as an implicit cast because x is immutable and in this + // scope it is known to fit in the return type. + switch (@typeInfo(Result)) { + .Int => return @intCast(Result, x), + else => return x, + } + } else { + // TODO Zig should allow this as an implicit cast because y is immutable and in this + // scope it is known to fit in the return type. + switch (@typeInfo(Result)) { + .Int => return @intCast(Result, y), + else => return y, + } + } +} + +test "math.min" { + testing.expect(min(i32(-1), i32(2)) == -1); + { + var a: u16 = 999; + var b: u32 = 10; + var result = min(a, b); + testing.expect(@typeOf(result) == u16); + testing.expect(result == 10); + } + { + var a: f64 = 10.34; + var b: f32 = 999.12; + var result = min(a, b); + testing.expect(@typeOf(result) == f64); + testing.expect(result == 10.34); + } + { + var a: i8 = -127; + var b: i16 = -200; + var result = min(a, b); + testing.expect(@typeOf(result) == i16); + testing.expect(result == -200); + } + { + const a = 10.34; + var b: f32 = 999.12; + var result = min(a, b); + testing.expect(@typeOf(result) == f32); + testing.expect(result == 10.34); + } +} + +pub fn max(x: var, y: var) @typeOf(x + y) { + return if (x > y) x else y; +} + +test "math.max" { + testing.expect(max(i32(-1), i32(2)) == 2); +} + +pub fn mul(comptime T: type, a: T, b: T) (error{Overflow}!T) { + var answer: T = undefined; + return if (@mulWithOverflow(T, a, b, &answer)) error.Overflow else answer; +} + +pub fn add(comptime T: type, a: T, b: T) (error{Overflow}!T) { + var answer: T = undefined; + return if (@addWithOverflow(T, a, b, &answer)) error.Overflow else answer; +} + +pub fn sub(comptime T: type, a: T, b: T) (error{Overflow}!T) { + var answer: T = undefined; + return if (@subWithOverflow(T, a, b, &answer)) error.Overflow else answer; +} + +pub fn negate(x: var) !@typeOf(x) { + return sub(@typeOf(x), 0, x); +} + +pub fn shlExact(comptime T: type, a: T, shift_amt: Log2Int(T)) !T { + var answer: T = undefined; + return if (@shlWithOverflow(T, a, shift_amt, &answer)) error.Overflow else answer; +} + +/// Shifts left. Overflowed bits are truncated. +/// A negative shift amount results in a right shift. +pub fn shl(comptime T: type, a: T, shift_amt: var) T { + const abs_shift_amt = absCast(shift_amt); + const casted_shift_amt = if (abs_shift_amt >= T.bit_count) return 0 else @intCast(Log2Int(T), abs_shift_amt); + + if (@typeOf(shift_amt) == comptime_int or @typeOf(shift_amt).is_signed) { + if (shift_amt < 0) { + return a >> casted_shift_amt; + } + } + + return a << casted_shift_amt; +} + +test "math.shl" { + testing.expect(shl(u8, 0b11111111, usize(3)) == 0b11111000); + testing.expect(shl(u8, 0b11111111, usize(8)) == 0); + testing.expect(shl(u8, 0b11111111, usize(9)) == 0); + testing.expect(shl(u8, 0b11111111, isize(-2)) == 0b00111111); + testing.expect(shl(u8, 0b11111111, 3) == 0b11111000); + testing.expect(shl(u8, 0b11111111, 8) == 0); + testing.expect(shl(u8, 0b11111111, 9) == 0); + testing.expect(shl(u8, 0b11111111, -2) == 0b00111111); +} + +/// Shifts right. Overflowed bits are truncated. +/// A negative shift amount results in a left shift. +pub fn shr(comptime T: type, a: T, shift_amt: var) T { + const abs_shift_amt = absCast(shift_amt); + const casted_shift_amt = if (abs_shift_amt >= T.bit_count) return 0 else @intCast(Log2Int(T), abs_shift_amt); + + if (@typeOf(shift_amt) == comptime_int or @typeOf(shift_amt).is_signed) { + if (shift_amt >= 0) { + return a >> casted_shift_amt; + } else { + return a << casted_shift_amt; + } + } + + return a >> casted_shift_amt; +} + +test "math.shr" { + testing.expect(shr(u8, 0b11111111, usize(3)) == 0b00011111); + testing.expect(shr(u8, 0b11111111, usize(8)) == 0); + testing.expect(shr(u8, 0b11111111, usize(9)) == 0); + testing.expect(shr(u8, 0b11111111, isize(-2)) == 0b11111100); + testing.expect(shr(u8, 0b11111111, 3) == 0b00011111); + testing.expect(shr(u8, 0b11111111, 8) == 0); + testing.expect(shr(u8, 0b11111111, 9) == 0); + testing.expect(shr(u8, 0b11111111, -2) == 0b11111100); +} + +/// Rotates right. Only unsigned values can be rotated. +/// Negative shift values results in shift modulo the bit count. +pub fn rotr(comptime T: type, x: T, r: var) T { + if (T.is_signed) { + @compileError("cannot rotate signed integer"); + } else { + const ar = @mod(r, T.bit_count); + return shr(T, x, ar) | shl(T, x, T.bit_count - ar); + } +} + +test "math.rotr" { + testing.expect(rotr(u8, 0b00000001, usize(0)) == 0b00000001); + testing.expect(rotr(u8, 0b00000001, usize(9)) == 0b10000000); + testing.expect(rotr(u8, 0b00000001, usize(8)) == 0b00000001); + testing.expect(rotr(u8, 0b00000001, usize(4)) == 0b00010000); + testing.expect(rotr(u8, 0b00000001, isize(-1)) == 0b00000010); +} + +/// Rotates left. Only unsigned values can be rotated. +/// Negative shift values results in shift modulo the bit count. +pub fn rotl(comptime T: type, x: T, r: var) T { + if (T.is_signed) { + @compileError("cannot rotate signed integer"); + } else { + const ar = @mod(r, T.bit_count); + return shl(T, x, ar) | shr(T, x, T.bit_count - ar); + } +} + +test "math.rotl" { + testing.expect(rotl(u8, 0b00000001, usize(0)) == 0b00000001); + testing.expect(rotl(u8, 0b00000001, usize(9)) == 0b00000010); + testing.expect(rotl(u8, 0b00000001, usize(8)) == 0b00000001); + testing.expect(rotl(u8, 0b00000001, usize(4)) == 0b00010000); + testing.expect(rotl(u8, 0b00000001, isize(-1)) == 0b10000000); +} + +pub fn Log2Int(comptime T: type) type { + // comptime ceil log2 + comptime var count = 0; + comptime var s = T.bit_count - 1; + inline while (s != 0) : (s >>= 1) { + count += 1; + } + + return @IntType(false, count); +} + +pub fn IntFittingRange(comptime from: comptime_int, comptime to: comptime_int) type { + assert(from <= to); + if (from == 0 and to == 0) { + return u0; + } + const is_signed = from < 0; + const largest_positive_integer = max(if (from < 0) (-from) - 1 else from, to); // two's complement + const base = log2(largest_positive_integer); + const upper = (1 << base) - 1; + var magnitude_bits = if (upper >= largest_positive_integer) base else base + 1; + if (is_signed) { + magnitude_bits += 1; + } + return @IntType(is_signed, magnitude_bits); +} + +test "math.IntFittingRange" { + testing.expect(IntFittingRange(0, 0) == u0); + testing.expect(IntFittingRange(0, 1) == u1); + testing.expect(IntFittingRange(0, 2) == u2); + testing.expect(IntFittingRange(0, 3) == u2); + testing.expect(IntFittingRange(0, 4) == u3); + testing.expect(IntFittingRange(0, 7) == u3); + testing.expect(IntFittingRange(0, 8) == u4); + testing.expect(IntFittingRange(0, 9) == u4); + testing.expect(IntFittingRange(0, 15) == u4); + testing.expect(IntFittingRange(0, 16) == u5); + testing.expect(IntFittingRange(0, 17) == u5); + testing.expect(IntFittingRange(0, 4095) == u12); + testing.expect(IntFittingRange(2000, 4095) == u12); + testing.expect(IntFittingRange(0, 4096) == u13); + testing.expect(IntFittingRange(2000, 4096) == u13); + testing.expect(IntFittingRange(0, 4097) == u13); + testing.expect(IntFittingRange(2000, 4097) == u13); + testing.expect(IntFittingRange(0, 123456789123456798123456789) == u87); + testing.expect(IntFittingRange(0, 123456789123456798123456789123456789123456798123456789) == u177); + + testing.expect(IntFittingRange(-1, -1) == i1); + testing.expect(IntFittingRange(-1, 0) == i1); + testing.expect(IntFittingRange(-1, 1) == i2); + testing.expect(IntFittingRange(-2, -2) == i2); + testing.expect(IntFittingRange(-2, -1) == i2); + testing.expect(IntFittingRange(-2, 0) == i2); + testing.expect(IntFittingRange(-2, 1) == i2); + testing.expect(IntFittingRange(-2, 2) == i3); + testing.expect(IntFittingRange(-1, 2) == i3); + testing.expect(IntFittingRange(-1, 3) == i3); + testing.expect(IntFittingRange(-1, 4) == i4); + testing.expect(IntFittingRange(-1, 7) == i4); + testing.expect(IntFittingRange(-1, 8) == i5); + testing.expect(IntFittingRange(-1, 9) == i5); + testing.expect(IntFittingRange(-1, 15) == i5); + testing.expect(IntFittingRange(-1, 16) == i6); + testing.expect(IntFittingRange(-1, 17) == i6); + testing.expect(IntFittingRange(-1, 4095) == i13); + testing.expect(IntFittingRange(-4096, 4095) == i13); + testing.expect(IntFittingRange(-1, 4096) == i14); + testing.expect(IntFittingRange(-4097, 4095) == i14); + testing.expect(IntFittingRange(-1, 4097) == i14); + testing.expect(IntFittingRange(-1, 123456789123456798123456789) == i88); + testing.expect(IntFittingRange(-1, 123456789123456798123456789123456789123456798123456789) == i178); +} + +test "math overflow functions" { + testOverflow(); + comptime testOverflow(); +} + +fn testOverflow() void { + testing.expect((mul(i32, 3, 4) catch unreachable) == 12); + testing.expect((add(i32, 3, 4) catch unreachable) == 7); + testing.expect((sub(i32, 3, 4) catch unreachable) == -1); + testing.expect((shlExact(i32, 0b11, 4) catch unreachable) == 0b110000); +} + +pub fn absInt(x: var) !@typeOf(x) { + const T = @typeOf(x); + comptime assert(@typeId(T) == builtin.TypeId.Int); // must pass an integer to absInt + comptime assert(T.is_signed); // must pass a signed integer to absInt + + if (x == minInt(@typeOf(x))) { + return error.Overflow; + } else { + @setRuntimeSafety(false); + return if (x < 0) -x else x; + } +} + +test "math.absInt" { + testAbsInt(); + comptime testAbsInt(); +} +fn testAbsInt() void { + testing.expect((absInt(i32(-10)) catch unreachable) == 10); + testing.expect((absInt(i32(10)) catch unreachable) == 10); +} + +pub const absFloat = fabs; + +test "math.absFloat" { + testAbsFloat(); + comptime testAbsFloat(); +} +fn testAbsFloat() void { + testing.expect(absFloat(f32(-10.05)) == 10.05); + testing.expect(absFloat(f32(10.05)) == 10.05); +} + +pub fn divTrunc(comptime T: type, numerator: T, denominator: T) !T { + @setRuntimeSafety(false); + if (denominator == 0) return error.DivisionByZero; + if (@typeId(T) == builtin.TypeId.Int and T.is_signed and numerator == minInt(T) and denominator == -1) return error.Overflow; + return @divTrunc(numerator, denominator); +} + +test "math.divTrunc" { + testDivTrunc(); + comptime testDivTrunc(); +} +fn testDivTrunc() void { + testing.expect((divTrunc(i32, 5, 3) catch unreachable) == 1); + testing.expect((divTrunc(i32, -5, 3) catch unreachable) == -1); + testing.expectError(error.DivisionByZero, divTrunc(i8, -5, 0)); + testing.expectError(error.Overflow, divTrunc(i8, -128, -1)); + + testing.expect((divTrunc(f32, 5.0, 3.0) catch unreachable) == 1.0); + testing.expect((divTrunc(f32, -5.0, 3.0) catch unreachable) == -1.0); +} + +pub fn divFloor(comptime T: type, numerator: T, denominator: T) !T { + @setRuntimeSafety(false); + if (denominator == 0) return error.DivisionByZero; + if (@typeId(T) == builtin.TypeId.Int and T.is_signed and numerator == minInt(T) and denominator == -1) return error.Overflow; + return @divFloor(numerator, denominator); +} + +test "math.divFloor" { + testDivFloor(); + comptime testDivFloor(); +} +fn testDivFloor() void { + testing.expect((divFloor(i32, 5, 3) catch unreachable) == 1); + testing.expect((divFloor(i32, -5, 3) catch unreachable) == -2); + testing.expectError(error.DivisionByZero, divFloor(i8, -5, 0)); + testing.expectError(error.Overflow, divFloor(i8, -128, -1)); + + testing.expect((divFloor(f32, 5.0, 3.0) catch unreachable) == 1.0); + testing.expect((divFloor(f32, -5.0, 3.0) catch unreachable) == -2.0); +} + +pub fn divExact(comptime T: type, numerator: T, denominator: T) !T { + @setRuntimeSafety(false); + if (denominator == 0) return error.DivisionByZero; + if (@typeId(T) == builtin.TypeId.Int and T.is_signed and numerator == minInt(T) and denominator == -1) return error.Overflow; + const result = @divTrunc(numerator, denominator); + if (result * denominator != numerator) return error.UnexpectedRemainder; + return result; +} + +test "math.divExact" { + testDivExact(); + comptime testDivExact(); +} +fn testDivExact() void { + testing.expect((divExact(i32, 10, 5) catch unreachable) == 2); + testing.expect((divExact(i32, -10, 5) catch unreachable) == -2); + testing.expectError(error.DivisionByZero, divExact(i8, -5, 0)); + testing.expectError(error.Overflow, divExact(i8, -128, -1)); + testing.expectError(error.UnexpectedRemainder, divExact(i32, 5, 2)); + + testing.expect((divExact(f32, 10.0, 5.0) catch unreachable) == 2.0); + testing.expect((divExact(f32, -10.0, 5.0) catch unreachable) == -2.0); + testing.expectError(error.UnexpectedRemainder, divExact(f32, 5.0, 2.0)); +} + +pub fn mod(comptime T: type, numerator: T, denominator: T) !T { + @setRuntimeSafety(false); + if (denominator == 0) return error.DivisionByZero; + if (denominator < 0) return error.NegativeDenominator; + return @mod(numerator, denominator); +} + +test "math.mod" { + testMod(); + comptime testMod(); +} +fn testMod() void { + testing.expect((mod(i32, -5, 3) catch unreachable) == 1); + testing.expect((mod(i32, 5, 3) catch unreachable) == 2); + testing.expectError(error.NegativeDenominator, mod(i32, 10, -1)); + testing.expectError(error.DivisionByZero, mod(i32, 10, 0)); + + testing.expect((mod(f32, -5, 3) catch unreachable) == 1); + testing.expect((mod(f32, 5, 3) catch unreachable) == 2); + testing.expectError(error.NegativeDenominator, mod(f32, 10, -1)); + testing.expectError(error.DivisionByZero, mod(f32, 10, 0)); +} + +pub fn rem(comptime T: type, numerator: T, denominator: T) !T { + @setRuntimeSafety(false); + if (denominator == 0) return error.DivisionByZero; + if (denominator < 0) return error.NegativeDenominator; + return @rem(numerator, denominator); +} + +test "math.rem" { + testRem(); + comptime testRem(); +} +fn testRem() void { + testing.expect((rem(i32, -5, 3) catch unreachable) == -2); + testing.expect((rem(i32, 5, 3) catch unreachable) == 2); + testing.expectError(error.NegativeDenominator, rem(i32, 10, -1)); + testing.expectError(error.DivisionByZero, rem(i32, 10, 0)); + + testing.expect((rem(f32, -5, 3) catch unreachable) == -2); + testing.expect((rem(f32, 5, 3) catch unreachable) == 2); + testing.expectError(error.NegativeDenominator, rem(f32, 10, -1)); + testing.expectError(error.DivisionByZero, rem(f32, 10, 0)); +} + +/// Returns the absolute value of the integer parameter. +/// Result is an unsigned integer. +pub fn absCast(x: var) t: { + if (@typeOf(x) == comptime_int) { + break :t comptime_int; + } else { + break :t @IntType(false, @typeOf(x).bit_count); + } +} { + if (@typeOf(x) == comptime_int) { + return if (x < 0) -x else x; + } + const uint = @IntType(false, @typeOf(x).bit_count); + if (x >= 0) return @intCast(uint, x); + + return @intCast(uint, -(x + 1)) + 1; +} + +test "math.absCast" { + testing.expect(absCast(i32(-999)) == 999); + testing.expect(@typeOf(absCast(i32(-999))) == u32); + + testing.expect(absCast(i32(999)) == 999); + testing.expect(@typeOf(absCast(i32(999))) == u32); + + testing.expect(absCast(i32(minInt(i32))) == -minInt(i32)); + testing.expect(@typeOf(absCast(i32(minInt(i32)))) == u32); + + testing.expect(absCast(-999) == 999); +} + +/// Returns the negation of the integer parameter. +/// Result is a signed integer. +pub fn negateCast(x: var) !@IntType(true, @typeOf(x).bit_count) { + if (@typeOf(x).is_signed) return negate(x); + + const int = @IntType(true, @typeOf(x).bit_count); + if (x > -minInt(int)) return error.Overflow; + + if (x == -minInt(int)) return minInt(int); + + return -@intCast(int, x); +} + +test "math.negateCast" { + testing.expect((negateCast(u32(999)) catch unreachable) == -999); + testing.expect(@typeOf(negateCast(u32(999)) catch unreachable) == i32); + + testing.expect((negateCast(u32(-minInt(i32))) catch unreachable) == minInt(i32)); + testing.expect(@typeOf(negateCast(u32(-minInt(i32))) catch unreachable) == i32); + + testing.expectError(error.Overflow, negateCast(u32(maxInt(i32) + 10))); +} + +/// Cast an integer to a different integer type. If the value doesn't fit, +/// return an error. +pub fn cast(comptime T: type, x: var) (error{Overflow}!T) { + comptime assert(@typeId(T) == builtin.TypeId.Int); // must pass an integer + comptime assert(@typeId(@typeOf(x)) == builtin.TypeId.Int); // must pass an integer + if (maxInt(@typeOf(x)) > maxInt(T) and x > maxInt(T)) { + return error.Overflow; + } else if (minInt(@typeOf(x)) < minInt(T) and x < minInt(T)) { + return error.Overflow; + } else { + return @intCast(T, x); + } +} + +test "math.cast" { + testing.expectError(error.Overflow, cast(u8, u32(300))); + testing.expectError(error.Overflow, cast(i8, i32(-200))); + testing.expectError(error.Overflow, cast(u8, i8(-1))); + testing.expectError(error.Overflow, cast(u64, i8(-1))); + + testing.expect((try cast(u8, u32(255))) == u8(255)); + testing.expect(@typeOf(try cast(u8, u32(255))) == u8); +} + +pub const AlignCastError = error{UnalignedMemory}; + +/// Align cast a pointer but return an error if it's the wrong alignment +pub fn alignCast(comptime alignment: u29, ptr: var) AlignCastError!@typeOf(@alignCast(alignment, ptr)) { + const addr = @ptrToInt(ptr); + if (addr % alignment != 0) { + return error.UnalignedMemory; + } + return @alignCast(alignment, ptr); +} + +pub fn isPowerOfTwo(v: var) bool { + assert(v != 0); + return (v & (v - 1)) == 0; +} + +pub fn floorPowerOfTwo(comptime T: type, value: T) T { + var x = value; + + comptime var i = 1; + inline while (T.bit_count > i) : (i *= 2) { + x |= (x >> i); + } + + return x - (x >> 1); +} + +test "math.floorPowerOfTwo" { + testFloorPowerOfTwo(); + comptime testFloorPowerOfTwo(); +} + +fn testFloorPowerOfTwo() void { + testing.expect(floorPowerOfTwo(u32, 63) == 32); + testing.expect(floorPowerOfTwo(u32, 64) == 64); + testing.expect(floorPowerOfTwo(u32, 65) == 64); + testing.expect(floorPowerOfTwo(u4, 7) == 4); + testing.expect(floorPowerOfTwo(u4, 8) == 8); + testing.expect(floorPowerOfTwo(u4, 9) == 8); +} + +/// Returns the next power of two (if the value is not already a power of two). +/// Only unsigned integers can be used. Zero is not an allowed input. +/// Result is a type with 1 more bit than the input type. +pub fn ceilPowerOfTwoPromote(comptime T: type, value: T) @IntType(T.is_signed, T.bit_count + 1) { + comptime assert(@typeId(T) == builtin.TypeId.Int); + comptime assert(!T.is_signed); + assert(value != 0); + comptime const promotedType = @IntType(T.is_signed, T.bit_count + 1); + comptime const shiftType = std.math.Log2Int(promotedType); + return promotedType(1) << @intCast(shiftType, T.bit_count - @clz(T, value - 1)); +} + +/// Returns the next power of two (if the value is not already a power of two). +/// Only unsigned integers can be used. Zero is not an allowed input. +/// If the value doesn't fit, returns an error. +pub fn ceilPowerOfTwo(comptime T: type, value: T) (error{Overflow}!T) { + comptime assert(@typeId(T) == builtin.TypeId.Int); + comptime assert(!T.is_signed); + comptime const promotedType = @IntType(T.is_signed, T.bit_count + 1); + comptime const overflowBit = promotedType(1) << T.bit_count; + var x = ceilPowerOfTwoPromote(T, value); + if (overflowBit & x != 0) { + return error.Overflow; + } + return @intCast(T, x); +} + +test "math.ceilPowerOfTwoPromote" { + testCeilPowerOfTwoPromote(); + comptime testCeilPowerOfTwoPromote(); +} + +fn testCeilPowerOfTwoPromote() void { + testing.expectEqual(u33(1), ceilPowerOfTwoPromote(u32, 1)); + testing.expectEqual(u33(2), ceilPowerOfTwoPromote(u32, 2)); + testing.expectEqual(u33(64), ceilPowerOfTwoPromote(u32, 63)); + testing.expectEqual(u33(64), ceilPowerOfTwoPromote(u32, 64)); + testing.expectEqual(u33(128), ceilPowerOfTwoPromote(u32, 65)); + testing.expectEqual(u6(8), ceilPowerOfTwoPromote(u5, 7)); + testing.expectEqual(u6(8), ceilPowerOfTwoPromote(u5, 8)); + testing.expectEqual(u6(16), ceilPowerOfTwoPromote(u5, 9)); + testing.expectEqual(u5(16), ceilPowerOfTwoPromote(u4, 9)); +} + +test "math.ceilPowerOfTwo" { + try testCeilPowerOfTwo(); + comptime try testCeilPowerOfTwo(); +} + +fn testCeilPowerOfTwo() !void { + testing.expectEqual(u32(1), try ceilPowerOfTwo(u32, 1)); + testing.expectEqual(u32(2), try ceilPowerOfTwo(u32, 2)); + testing.expectEqual(u32(64), try ceilPowerOfTwo(u32, 63)); + testing.expectEqual(u32(64), try ceilPowerOfTwo(u32, 64)); + testing.expectEqual(u32(128), try ceilPowerOfTwo(u32, 65)); + testing.expectEqual(u5(8), try ceilPowerOfTwo(u5, 7)); + testing.expectEqual(u5(8), try ceilPowerOfTwo(u5, 8)); + testing.expectEqual(u5(16), try ceilPowerOfTwo(u5, 9)); + testing.expectError(error.Overflow, ceilPowerOfTwo(u4, 9)); +} + +pub fn log2_int(comptime T: type, x: T) Log2Int(T) { + assert(x != 0); + return @intCast(Log2Int(T), T.bit_count - 1 - @clz(T, x)); +} + +pub fn log2_int_ceil(comptime T: type, x: T) Log2Int(T) { + assert(x != 0); + const log2_val = log2_int(T, x); + if (T(1) << log2_val == x) + return log2_val; + return log2_val + 1; +} + +test "std.math.log2_int_ceil" { + testing.expect(log2_int_ceil(u32, 1) == 0); + testing.expect(log2_int_ceil(u32, 2) == 1); + testing.expect(log2_int_ceil(u32, 3) == 2); + testing.expect(log2_int_ceil(u32, 4) == 2); + testing.expect(log2_int_ceil(u32, 5) == 3); + testing.expect(log2_int_ceil(u32, 6) == 3); + testing.expect(log2_int_ceil(u32, 7) == 3); + testing.expect(log2_int_ceil(u32, 8) == 3); + testing.expect(log2_int_ceil(u32, 9) == 4); + testing.expect(log2_int_ceil(u32, 10) == 4); +} + +pub fn lossyCast(comptime T: type, value: var) T { + switch (@typeInfo(@typeOf(value))) { + builtin.TypeId.Int => return @intToFloat(T, value), + builtin.TypeId.Float => return @floatCast(T, value), + builtin.TypeId.ComptimeInt => return T(value), + builtin.TypeId.ComptimeFloat => return T(value), + else => @compileError("bad type"), + } +} + +test "math.f64_min" { + const f64_min_u64 = 0x0010000000000000; + const fmin: f64 = f64_min; + testing.expect(@bitCast(u64, fmin) == f64_min_u64); +} + +pub fn maxInt(comptime T: type) comptime_int { + const info = @typeInfo(T); + const bit_count = info.Int.bits; + if (bit_count == 0) return 0; + return (1 << (bit_count - @boolToInt(info.Int.is_signed))) - 1; +} + +pub fn minInt(comptime T: type) comptime_int { + const info = @typeInfo(T); + const bit_count = info.Int.bits; + if (!info.Int.is_signed) return 0; + if (bit_count == 0) return 0; + return -(1 << (bit_count - 1)); +} + +test "minInt and maxInt" { + testing.expect(maxInt(u0) == 0); + testing.expect(maxInt(u1) == 1); + testing.expect(maxInt(u8) == 255); + testing.expect(maxInt(u16) == 65535); + testing.expect(maxInt(u32) == 4294967295); + testing.expect(maxInt(u64) == 18446744073709551615); + testing.expect(maxInt(u128) == 340282366920938463463374607431768211455); + + testing.expect(maxInt(i0) == 0); + testing.expect(maxInt(i1) == 0); + testing.expect(maxInt(i8) == 127); + testing.expect(maxInt(i16) == 32767); + testing.expect(maxInt(i32) == 2147483647); + testing.expect(maxInt(i63) == 4611686018427387903); + testing.expect(maxInt(i64) == 9223372036854775807); + testing.expect(maxInt(i128) == 170141183460469231731687303715884105727); + + testing.expect(minInt(u0) == 0); + testing.expect(minInt(u1) == 0); + testing.expect(minInt(u8) == 0); + testing.expect(minInt(u16) == 0); + testing.expect(minInt(u32) == 0); + testing.expect(minInt(u63) == 0); + testing.expect(minInt(u64) == 0); + testing.expect(minInt(u128) == 0); + + testing.expect(minInt(i0) == 0); + testing.expect(minInt(i1) == -1); + testing.expect(minInt(i8) == -128); + testing.expect(minInt(i16) == -32768); + testing.expect(minInt(i32) == -2147483648); + testing.expect(minInt(i63) == -4611686018427387904); + testing.expect(minInt(i64) == -9223372036854775808); + testing.expect(minInt(i128) == -170141183460469231731687303715884105728); +} + +test "max value type" { + // If the type of maxInt(i32) was i32 then this implicit cast to + // u32 would not work. But since the value is a number literal, + // it works fine. + const x: u32 = maxInt(i32); + testing.expect(x == 2147483647); +} + +pub fn mulWide(comptime T: type, a: T, b: T) @IntType(T.is_signed, T.bit_count * 2) { + const ResultInt = @IntType(T.is_signed, T.bit_count * 2); + return ResultInt(a) * ResultInt(b); +} + +test "math.mulWide" { + testing.expect(mulWide(u8, 5, 5) == 25); + testing.expect(mulWide(i8, 5, -5) == -25); + testing.expect(mulWide(u8, 100, 100) == 10000); +} diff --git a/lib/std/math/acos.zig b/lib/std/math/acos.zig new file mode 100644 index 0000000000..de07da8fe0 --- /dev/null +++ b/lib/std/math/acos.zig @@ -0,0 +1,186 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/acosf.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/acos.c + +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; + +/// Returns the arc-cosine of x. +/// +/// Special cases: +/// - acos(x) = nan if x < -1 or x > 1 +pub fn acos(x: var) @typeOf(x) { + const T = @typeOf(x); + return switch (T) { + f32 => acos32(x), + f64 => acos64(x), + else => @compileError("acos not implemented for " ++ @typeName(T)), + }; +} + +fn r32(z: f32) f32 { + const pS0 = 1.6666586697e-01; + const pS1 = -4.2743422091e-02; + const pS2 = -8.6563630030e-03; + const qS1 = -7.0662963390e-01; + + const p = z * (pS0 + z * (pS1 + z * pS2)); + const q = 1.0 + z * qS1; + return p / q; +} + +fn acos32(x: f32) f32 { + const pio2_hi = 1.5707962513e+00; + const pio2_lo = 7.5497894159e-08; + + const hx: u32 = @bitCast(u32, x); + const ix: u32 = hx & 0x7FFFFFFF; + + // |x| >= 1 or nan + if (ix >= 0x3F800000) { + if (ix == 0x3F800000) { + if (hx >> 31 != 0) { + return 2.0 * pio2_hi + 0x1.0p-120; + } else { + return 0.0; + } + } else { + return math.nan(f32); + } + } + + // |x| < 0.5 + if (ix < 0x3F000000) { + if (ix <= 0x32800000) { // |x| < 2^(-26) + return pio2_hi + 0x1.0p-120; + } else { + return pio2_hi - (x - (pio2_lo - x * r32(x * x))); + } + } + + // x < -0.5 + if (hx >> 31 != 0) { + const z = (1 + x) * 0.5; + const s = math.sqrt(z); + const w = r32(z) * s - pio2_lo; + return 2 * (pio2_hi - (s + w)); + } + + // x > 0.5 + const z = (1.0 - x) * 0.5; + const s = math.sqrt(z); + const jx = @bitCast(u32, s); + const df = @bitCast(f32, jx & 0xFFFFF000); + const c = (z - df * df) / (s + df); + const w = r32(z) * s + c; + return 2 * (df + w); +} + +fn r64(z: f64) f64 { + const pS0: f64 = 1.66666666666666657415e-01; + const pS1: f64 = -3.25565818622400915405e-01; + const pS2: f64 = 2.01212532134862925881e-01; + const pS3: f64 = -4.00555345006794114027e-02; + const pS4: f64 = 7.91534994289814532176e-04; + const pS5: f64 = 3.47933107596021167570e-05; + const qS1: f64 = -2.40339491173441421878e+00; + const qS2: f64 = 2.02094576023350569471e+00; + const qS3: f64 = -6.88283971605453293030e-01; + const qS4: f64 = 7.70381505559019352791e-02; + + const p = z * (pS0 + z * (pS1 + z * (pS2 + z * (pS3 + z * (pS4 + z * pS5))))); + const q = 1.0 + z * (qS1 + z * (qS2 + z * (qS3 + z * qS4))); + return p / q; +} + +fn acos64(x: f64) f64 { + const pio2_hi: f64 = 1.57079632679489655800e+00; + const pio2_lo: f64 = 6.12323399573676603587e-17; + + const ux = @bitCast(u64, x); + const hx = @intCast(u32, ux >> 32); + const ix = hx & 0x7FFFFFFF; + + // |x| >= 1 or nan + if (ix >= 0x3FF00000) { + const lx = @intCast(u32, ux & 0xFFFFFFFF); + + // acos(1) = 0, acos(-1) = pi + if ((ix - 0x3FF00000) | lx == 0) { + if (hx >> 31 != 0) { + return 2 * pio2_hi + 0x1.0p-120; + } else { + return 0; + } + } + + return math.nan(f32); + } + + // |x| < 0.5 + if (ix < 0x3FE00000) { + // |x| < 2^(-57) + if (ix <= 0x3C600000) { + return pio2_hi + 0x1.0p-120; + } else { + return pio2_hi - (x - (pio2_lo - x * r64(x * x))); + } + } + + // x < -0.5 + if (hx >> 31 != 0) { + const z = (1.0 + x) * 0.5; + const s = math.sqrt(z); + const w = r64(z) * s - pio2_lo; + return 2 * (pio2_hi - (s + w)); + } + + // x > 0.5 + const z = (1.0 - x) * 0.5; + const s = math.sqrt(z); + const jx = @bitCast(u64, s); + const df = @bitCast(f64, jx & 0xFFFFFFFF00000000); + const c = (z - df * df) / (s + df); + const w = r64(z) * s + c; + return 2 * (df + w); +} + +test "math.acos" { + expect(acos(f32(0.0)) == acos32(0.0)); + expect(acos(f64(0.0)) == acos64(0.0)); +} + +test "math.acos32" { + const epsilon = 0.000001; + + expect(math.approxEq(f32, acos32(0.0), 1.570796, epsilon)); + expect(math.approxEq(f32, acos32(0.2), 1.369438, epsilon)); + expect(math.approxEq(f32, acos32(0.3434), 1.220262, epsilon)); + expect(math.approxEq(f32, acos32(0.5), 1.047198, epsilon)); + expect(math.approxEq(f32, acos32(0.8923), 0.468382, epsilon)); + expect(math.approxEq(f32, acos32(-0.2), 1.772154, epsilon)); +} + +test "math.acos64" { + const epsilon = 0.000001; + + expect(math.approxEq(f64, acos64(0.0), 1.570796, epsilon)); + expect(math.approxEq(f64, acos64(0.2), 1.369438, epsilon)); + expect(math.approxEq(f64, acos64(0.3434), 1.220262, epsilon)); + expect(math.approxEq(f64, acos64(0.5), 1.047198, epsilon)); + expect(math.approxEq(f64, acos64(0.8923), 0.468382, epsilon)); + expect(math.approxEq(f64, acos64(-0.2), 1.772154, epsilon)); +} + +test "math.acos32.special" { + expect(math.isNan(acos32(-2))); + expect(math.isNan(acos32(1.5))); +} + +test "math.acos64.special" { + expect(math.isNan(acos64(-2))); + expect(math.isNan(acos64(1.5))); +} diff --git a/lib/std/math/acosh.zig b/lib/std/math/acosh.zig new file mode 100644 index 0000000000..503c0433fc --- /dev/null +++ b/lib/std/math/acosh.zig @@ -0,0 +1,94 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/acoshf.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/acosh.c + +const builtin = @import("builtin"); +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; + +/// Returns the hyperbolic arc-cosine of x. +/// +/// Special cases: +/// - acosh(x) = snan if x < 1 +/// - acosh(nan) = nan +pub fn acosh(x: var) @typeOf(x) { + const T = @typeOf(x); + return switch (T) { + f32 => acosh32(x), + f64 => acosh64(x), + else => @compileError("acosh not implemented for " ++ @typeName(T)), + }; +} + +// acosh(x) = log(x + sqrt(x * x - 1)) +fn acosh32(x: f32) f32 { + const u = @bitCast(u32, x); + const i = u & 0x7FFFFFFF; + + // |x| < 2, invalid if x < 1 or nan + if (i < 0x3F800000 + (1 << 23)) { + return math.log1p(x - 1 + math.sqrt((x - 1) * (x - 1) + 2 * (x - 1))); + } + // |x| < 0x1p12 + else if (i < 0x3F800000 + (12 << 23)) { + return math.ln(2 * x - 1 / (x + math.sqrt(x * x - 1))); + } + // |x| >= 0x1p12 + else { + return math.ln(x) + 0.693147180559945309417232121458176568; + } +} + +fn acosh64(x: f64) f64 { + const u = @bitCast(u64, x); + const e = (u >> 52) & 0x7FF; + + // |x| < 2, invalid if x < 1 or nan + if (e < 0x3FF + 1) { + return math.log1p(x - 1 + math.sqrt((x - 1) * (x - 1) + 2 * (x - 1))); + } + // |x| < 0x1p26 + else if (e < 0x3FF + 26) { + return math.ln(2 * x - 1 / (x + math.sqrt(x * x - 1))); + } + // |x| >= 0x1p26 or nan + else { + return math.ln(x) + 0.693147180559945309417232121458176568; + } +} + +test "math.acosh" { + expect(acosh(f32(1.5)) == acosh32(1.5)); + expect(acosh(f64(1.5)) == acosh64(1.5)); +} + +test "math.acosh32" { + const epsilon = 0.000001; + + expect(math.approxEq(f32, acosh32(1.5), 0.962424, epsilon)); + expect(math.approxEq(f32, acosh32(37.45), 4.315976, epsilon)); + expect(math.approxEq(f32, acosh32(89.123), 5.183133, epsilon)); + expect(math.approxEq(f32, acosh32(123123.234375), 12.414088, epsilon)); +} + +test "math.acosh64" { + const epsilon = 0.000001; + + expect(math.approxEq(f64, acosh64(1.5), 0.962424, epsilon)); + expect(math.approxEq(f64, acosh64(37.45), 4.315976, epsilon)); + expect(math.approxEq(f64, acosh64(89.123), 5.183133, epsilon)); + expect(math.approxEq(f64, acosh64(123123.234375), 12.414088, epsilon)); +} + +test "math.acosh32.special" { + expect(math.isNan(acosh32(math.nan(f32)))); + expect(math.isSignalNan(acosh32(0.5))); +} + +test "math.acosh64.special" { + expect(math.isNan(acosh64(math.nan(f64)))); + expect(math.isSignalNan(acosh64(0.5))); +} diff --git a/lib/std/math/asin.zig b/lib/std/math/asin.zig new file mode 100644 index 0000000000..2db9f86ff1 --- /dev/null +++ b/lib/std/math/asin.zig @@ -0,0 +1,183 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/asinf.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/asin.c + +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; + +/// Returns the arc-sin of x. +/// +/// Special Cases: +/// - asin(+-0) = +-0 +/// - asin(x) = nan if x < -1 or x > 1 +pub fn asin(x: var) @typeOf(x) { + const T = @typeOf(x); + return switch (T) { + f32 => asin32(x), + f64 => asin64(x), + else => @compileError("asin not implemented for " ++ @typeName(T)), + }; +} + +fn r32(z: f32) f32 { + const pS0 = 1.6666586697e-01; + const pS1 = -4.2743422091e-02; + const pS2 = -8.6563630030e-03; + const qS1 = -7.0662963390e-01; + + const p = z * (pS0 + z * (pS1 + z * pS2)); + const q = 1.0 + z * qS1; + return p / q; +} + +fn asin32(x: f32) f32 { + const pio2 = 1.570796326794896558e+00; + + const hx: u32 = @bitCast(u32, x); + const ix: u32 = hx & 0x7FFFFFFF; + + // |x| >= 1 + if (ix >= 0x3F800000) { + // |x| >= 1 + if (ix == 0x3F800000) { + return x * pio2 + 0x1.0p-120; // asin(+-1) = +-pi/2 with inexact + } else { + return math.nan(f32); // asin(|x| > 1) is nan + } + } + + // |x| < 0.5 + if (ix < 0x3F000000) { + // 0x1p-126 <= |x| < 0x1p-12 + if (ix < 0x39800000 and ix >= 0x00800000) { + return x; + } else { + return x + x * r32(x * x); + } + } + + // 1 > |x| >= 0.5 + const z = (1 - math.fabs(x)) * 0.5; + const s = math.sqrt(z); + const fx = pio2 - 2 * (s + s * r32(z)); + + if (hx >> 31 != 0) { + return -fx; + } else { + return fx; + } +} + +fn r64(z: f64) f64 { + const pS0: f64 = 1.66666666666666657415e-01; + const pS1: f64 = -3.25565818622400915405e-01; + const pS2: f64 = 2.01212532134862925881e-01; + const pS3: f64 = -4.00555345006794114027e-02; + const pS4: f64 = 7.91534994289814532176e-04; + const pS5: f64 = 3.47933107596021167570e-05; + const qS1: f64 = -2.40339491173441421878e+00; + const qS2: f64 = 2.02094576023350569471e+00; + const qS3: f64 = -6.88283971605453293030e-01; + const qS4: f64 = 7.70381505559019352791e-02; + + const p = z * (pS0 + z * (pS1 + z * (pS2 + z * (pS3 + z * (pS4 + z * pS5))))); + const q = 1.0 + z * (qS1 + z * (qS2 + z * (qS3 + z * qS4))); + return p / q; +} + +fn asin64(x: f64) f64 { + const pio2_hi: f64 = 1.57079632679489655800e+00; + const pio2_lo: f64 = 6.12323399573676603587e-17; + + const ux = @bitCast(u64, x); + const hx = @intCast(u32, ux >> 32); + const ix = hx & 0x7FFFFFFF; + + // |x| >= 1 or nan + if (ix >= 0x3FF00000) { + const lx = @intCast(u32, ux & 0xFFFFFFFF); + + // asin(1) = +-pi/2 with inexact + if ((ix - 0x3FF00000) | lx == 0) { + return x * pio2_hi + 0x1.0p-120; + } else { + return math.nan(f64); + } + } + + // |x| < 0.5 + if (ix < 0x3FE00000) { + // if 0x1p-1022 <= |x| < 0x1p-26 avoid raising overflow + if (ix < 0x3E500000 and ix >= 0x00100000) { + return x; + } else { + return x + x * r64(x * x); + } + } + + // 1 > |x| >= 0.5 + const z = (1 - math.fabs(x)) * 0.5; + const s = math.sqrt(z); + const r = r64(z); + var fx: f64 = undefined; + + // |x| > 0.975 + if (ix >= 0x3FEF3333) { + fx = pio2_hi - 2 * (s + s * r); + } else { + const jx = @bitCast(u64, s); + const df = @bitCast(f64, jx & 0xFFFFFFFF00000000); + const c = (z - df * df) / (s + df); + fx = 0.5 * pio2_hi - (2 * s * r - (pio2_lo - 2 * c) - (0.5 * pio2_hi - 2 * df)); + } + + if (hx >> 31 != 0) { + return -fx; + } else { + return fx; + } +} + +test "math.asin" { + expect(asin(f32(0.0)) == asin32(0.0)); + expect(asin(f64(0.0)) == asin64(0.0)); +} + +test "math.asin32" { + const epsilon = 0.000001; + + expect(math.approxEq(f32, asin32(0.0), 0.0, epsilon)); + expect(math.approxEq(f32, asin32(0.2), 0.201358, epsilon)); + expect(math.approxEq(f32, asin32(-0.2), -0.201358, epsilon)); + expect(math.approxEq(f32, asin32(0.3434), 0.350535, epsilon)); + expect(math.approxEq(f32, asin32(0.5), 0.523599, epsilon)); + expect(math.approxEq(f32, asin32(0.8923), 1.102415, epsilon)); +} + +test "math.asin64" { + const epsilon = 0.000001; + + expect(math.approxEq(f64, asin64(0.0), 0.0, epsilon)); + expect(math.approxEq(f64, asin64(0.2), 0.201358, epsilon)); + expect(math.approxEq(f64, asin64(-0.2), -0.201358, epsilon)); + expect(math.approxEq(f64, asin64(0.3434), 0.350535, epsilon)); + expect(math.approxEq(f64, asin64(0.5), 0.523599, epsilon)); + expect(math.approxEq(f64, asin64(0.8923), 1.102415, epsilon)); +} + +test "math.asin32.special" { + expect(asin32(0.0) == 0.0); + expect(asin32(-0.0) == -0.0); + expect(math.isNan(asin32(-2))); + expect(math.isNan(asin32(1.5))); +} + +test "math.asin64.special" { + expect(asin64(0.0) == 0.0); + expect(asin64(-0.0) == -0.0); + expect(math.isNan(asin64(-2))); + expect(math.isNan(asin64(1.5))); +} diff --git a/lib/std/math/asinh.zig b/lib/std/math/asinh.zig new file mode 100644 index 0000000000..0fb51d1b43 --- /dev/null +++ b/lib/std/math/asinh.zig @@ -0,0 +1,134 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/asinhf.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/asinh.c + +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; +const maxInt = std.math.maxInt; + +/// Returns the hyperbolic arc-sin of x. +/// +/// Special Cases: +/// - asinh(+-0) = +-0 +/// - asinh(+-inf) = +-inf +/// - asinh(nan) = nan +pub fn asinh(x: var) @typeOf(x) { + const T = @typeOf(x); + return switch (T) { + f32 => asinh32(x), + f64 => asinh64(x), + else => @compileError("asinh not implemented for " ++ @typeName(T)), + }; +} + +// asinh(x) = sign(x) * log(|x| + sqrt(x * x + 1)) ~= x - x^3/6 + o(x^5) +fn asinh32(x: f32) f32 { + const u = @bitCast(u32, x); + const i = u & 0x7FFFFFFF; + const s = i >> 31; + + var rx = @bitCast(f32, i); // |x| + + // TODO: Shouldn't need this explicit check. + if (math.isNegativeInf(x)) { + return x; + } + + // |x| >= 0x1p12 or inf or nan + if (i >= 0x3F800000 + (12 << 23)) { + rx = math.ln(rx) + 0.69314718055994530941723212145817656; + } + // |x| >= 2 + else if (i >= 0x3F800000 + (1 << 23)) { + rx = math.ln(2 * x + 1 / (math.sqrt(x * x + 1) + x)); + } + // |x| >= 0x1p-12, up to 1.6ulp error + else if (i >= 0x3F800000 - (12 << 23)) { + rx = math.log1p(x + x * x / (math.sqrt(x * x + 1) + 1)); + } + // |x| < 0x1p-12, inexact if x != 0 + else { + math.forceEval(x + 0x1.0p120); + } + + return if (s != 0) -rx else rx; +} + +fn asinh64(x: f64) f64 { + const u = @bitCast(u64, x); + const e = (u >> 52) & 0x7FF; + const s = u >> 63; + + var rx = @bitCast(f64, u & (maxInt(u64) >> 1)); // |x| + + if (math.isNegativeInf(x)) { + return x; + } + + // |x| >= 0x1p26 or inf or nan + if (e >= 0x3FF + 26) { + rx = math.ln(rx) + 0.693147180559945309417232121458176568; + } + // |x| >= 2 + else if (e >= 0x3FF + 1) { + rx = math.ln(2 * x + 1 / (math.sqrt(x * x + 1) + x)); + } + // |x| >= 0x1p-12, up to 1.6ulp error + else if (e >= 0x3FF - 26) { + rx = math.log1p(x + x * x / (math.sqrt(x * x + 1) + 1)); + } + // |x| < 0x1p-12, inexact if x != 0 + else { + math.forceEval(x + 0x1.0p120); + } + + return if (s != 0) -rx else rx; +} + +test "math.asinh" { + expect(asinh(f32(0.0)) == asinh32(0.0)); + expect(asinh(f64(0.0)) == asinh64(0.0)); +} + +test "math.asinh32" { + const epsilon = 0.000001; + + expect(math.approxEq(f32, asinh32(0.0), 0.0, epsilon)); + expect(math.approxEq(f32, asinh32(0.2), 0.198690, epsilon)); + expect(math.approxEq(f32, asinh32(0.8923), 0.803133, epsilon)); + expect(math.approxEq(f32, asinh32(1.5), 1.194763, epsilon)); + expect(math.approxEq(f32, asinh32(37.45), 4.316332, epsilon)); + expect(math.approxEq(f32, asinh32(89.123), 5.183196, epsilon)); + expect(math.approxEq(f32, asinh32(123123.234375), 12.414088, epsilon)); +} + +test "math.asinh64" { + const epsilon = 0.000001; + + expect(math.approxEq(f64, asinh64(0.0), 0.0, epsilon)); + expect(math.approxEq(f64, asinh64(0.2), 0.198690, epsilon)); + expect(math.approxEq(f64, asinh64(0.8923), 0.803133, epsilon)); + expect(math.approxEq(f64, asinh64(1.5), 1.194763, epsilon)); + expect(math.approxEq(f64, asinh64(37.45), 4.316332, epsilon)); + expect(math.approxEq(f64, asinh64(89.123), 5.183196, epsilon)); + expect(math.approxEq(f64, asinh64(123123.234375), 12.414088, epsilon)); +} + +test "math.asinh32.special" { + expect(asinh32(0.0) == 0.0); + expect(asinh32(-0.0) == -0.0); + expect(math.isPositiveInf(asinh32(math.inf(f32)))); + expect(math.isNegativeInf(asinh32(-math.inf(f32)))); + expect(math.isNan(asinh32(math.nan(f32)))); +} + +test "math.asinh64.special" { + expect(asinh64(0.0) == 0.0); + expect(asinh64(-0.0) == -0.0); + expect(math.isPositiveInf(asinh64(math.inf(f64)))); + expect(math.isNegativeInf(asinh64(-math.inf(f64)))); + expect(math.isNan(asinh64(math.nan(f64)))); +} diff --git a/lib/std/math/atan.zig b/lib/std/math/atan.zig new file mode 100644 index 0000000000..5790eba8cf --- /dev/null +++ b/lib/std/math/atan.zig @@ -0,0 +1,255 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/atanf.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/atan.c + +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; + +/// Returns the arc-tangent of x. +/// +/// Special Cases: +/// - atan(+-0) = +-0 +/// - atan(+-inf) = +-pi/2 +pub fn atan(x: var) @typeOf(x) { + const T = @typeOf(x); + return switch (T) { + f32 => atan32(x), + f64 => atan64(x), + else => @compileError("atan not implemented for " ++ @typeName(T)), + }; +} + +fn atan32(x_: f32) f32 { + const atanhi = [_]f32{ + 4.6364760399e-01, // atan(0.5)hi + 7.8539812565e-01, // atan(1.0)hi + 9.8279368877e-01, // atan(1.5)hi + 1.5707962513e+00, // atan(inf)hi + }; + + const atanlo = [_]f32{ + 5.0121582440e-09, // atan(0.5)lo + 3.7748947079e-08, // atan(1.0)lo + 3.4473217170e-08, // atan(1.5)lo + 7.5497894159e-08, // atan(inf)lo + }; + + const aT = [_]f32{ + 3.3333328366e-01, + -1.9999158382e-01, + 1.4253635705e-01, + -1.0648017377e-01, + 6.1687607318e-02, + }; + + var x = x_; + var ix: u32 = @bitCast(u32, x); + const sign = ix >> 31; + ix &= 0x7FFFFFFF; + + // |x| >= 2^26 + if (ix >= 0x4C800000) { + if (math.isNan(x)) { + return x; + } else { + const z = atanhi[3] + 0x1.0p-120; + return if (sign != 0) -z else z; + } + } + + var id: ?usize = undefined; + + // |x| < 0.4375 + if (ix < 0x3EE00000) { + // |x| < 2^(-12) + if (ix < 0x39800000) { + if (ix < 0x00800000) { + math.forceEval(x * x); + } + return x; + } + id = null; + } else { + x = math.fabs(x); + // |x| < 1.1875 + if (ix < 0x3F980000) { + // 7/16 <= |x| < 11/16 + if (ix < 0x3F300000) { + id = 0; + x = (2.0 * x - 1.0) / (2.0 + x); + } + // 11/16 <= |x| < 19/16 + else { + id = 1; + x = (x - 1.0) / (x + 1.0); + } + } else { + // |x| < 2.4375 + if (ix < 0x401C0000) { + id = 2; + x = (x - 1.5) / (1.0 + 1.5 * x); + } + // 2.4375 <= |x| < 2^26 + else { + id = 3; + x = -1.0 / x; + } + } + } + + const z = x * x; + const w = z * z; + const s1 = z * (aT[0] + w * (aT[2] + w * aT[4])); + const s2 = w * (aT[1] + w * aT[3]); + + if (id) |id_value| { + const zz = atanhi[id_value] - ((x * (s1 + s2) - atanlo[id_value]) - x); + return if (sign != 0) -zz else zz; + } else { + return x - x * (s1 + s2); + } +} + +fn atan64(x_: f64) f64 { + const atanhi = [_]f64{ + 4.63647609000806093515e-01, // atan(0.5)hi + 7.85398163397448278999e-01, // atan(1.0)hi + 9.82793723247329054082e-01, // atan(1.5)hi + 1.57079632679489655800e+00, // atan(inf)hi + }; + + const atanlo = [_]f64{ + 2.26987774529616870924e-17, // atan(0.5)lo + 3.06161699786838301793e-17, // atan(1.0)lo + 1.39033110312309984516e-17, // atan(1.5)lo + 6.12323399573676603587e-17, // atan(inf)lo + }; + + const aT = [_]f64{ + 3.33333333333329318027e-01, + -1.99999999998764832476e-01, + 1.42857142725034663711e-01, + -1.11111104054623557880e-01, + 9.09088713343650656196e-02, + -7.69187620504482999495e-02, + 6.66107313738753120669e-02, + -5.83357013379057348645e-02, + 4.97687799461593236017e-02, + -3.65315727442169155270e-02, + 1.62858201153657823623e-02, + }; + + var x = x_; + var ux = @bitCast(u64, x); + var ix = @intCast(u32, ux >> 32); + const sign = ix >> 31; + ix &= 0x7FFFFFFF; + + // |x| >= 2^66 + if (ix >= 0x44100000) { + if (math.isNan(x)) { + return x; + } else { + const z = atanhi[3] + 0x1.0p-120; + return if (sign != 0) -z else z; + } + } + + var id: ?usize = undefined; + + // |x| < 0.4375 + if (ix < 0x3DFC0000) { + // |x| < 2^(-27) + if (ix < 0x3E400000) { + if (ix < 0x00100000) { + math.forceEval(@floatCast(f32, x)); + } + return x; + } + id = null; + } else { + x = math.fabs(x); + // |x| < 1.1875 + if (ix < 0x3FF30000) { + // 7/16 <= |x| < 11/16 + if (ix < 0x3FE60000) { + id = 0; + x = (2.0 * x - 1.0) / (2.0 + x); + } + // 11/16 <= |x| < 19/16 + else { + id = 1; + x = (x - 1.0) / (x + 1.0); + } + } else { + // |x| < 2.4375 + if (ix < 0x40038000) { + id = 2; + x = (x - 1.5) / (1.0 + 1.5 * x); + } + // 2.4375 <= |x| < 2^66 + else { + id = 3; + x = -1.0 / x; + } + } + } + + const z = x * x; + const w = z * z; + const s1 = z * (aT[0] + w * (aT[2] + w * (aT[4] + w * (aT[6] + w * (aT[8] + w * aT[10]))))); + const s2 = w * (aT[1] + w * (aT[3] + w * (aT[5] + w * (aT[7] + w * aT[9])))); + + if (id) |id_value| { + const zz = atanhi[id_value] - ((x * (s1 + s2) - atanlo[id_value]) - x); + return if (sign != 0) -zz else zz; + } else { + return x - x * (s1 + s2); + } +} + +test "math.atan" { + expect(@bitCast(u32, atan(f32(0.2))) == @bitCast(u32, atan32(0.2))); + expect(atan(f64(0.2)) == atan64(0.2)); +} + +test "math.atan32" { + const epsilon = 0.000001; + + expect(math.approxEq(f32, atan32(0.2), 0.197396, epsilon)); + expect(math.approxEq(f32, atan32(-0.2), -0.197396, epsilon)); + expect(math.approxEq(f32, atan32(0.3434), 0.330783, epsilon)); + expect(math.approxEq(f32, atan32(0.8923), 0.728545, epsilon)); + expect(math.approxEq(f32, atan32(1.5), 0.982794, epsilon)); +} + +test "math.atan64" { + const epsilon = 0.000001; + + expect(math.approxEq(f64, atan64(0.2), 0.197396, epsilon)); + expect(math.approxEq(f64, atan64(-0.2), -0.197396, epsilon)); + expect(math.approxEq(f64, atan64(0.3434), 0.330783, epsilon)); + expect(math.approxEq(f64, atan64(0.8923), 0.728545, epsilon)); + expect(math.approxEq(f64, atan64(1.5), 0.982794, epsilon)); +} + +test "math.atan32.special" { + const epsilon = 0.000001; + + expect(atan32(0.0) == 0.0); + expect(atan32(-0.0) == -0.0); + expect(math.approxEq(f32, atan32(math.inf(f32)), math.pi / 2.0, epsilon)); + expect(math.approxEq(f32, atan32(-math.inf(f32)), -math.pi / 2.0, epsilon)); +} + +test "math.atan64.special" { + const epsilon = 0.000001; + + expect(atan64(0.0) == 0.0); + expect(atan64(-0.0) == -0.0); + expect(math.approxEq(f64, atan64(math.inf(f64)), math.pi / 2.0, epsilon)); + expect(math.approxEq(f64, atan64(-math.inf(f64)), -math.pi / 2.0, epsilon)); +} diff --git a/lib/std/math/atan2.zig b/lib/std/math/atan2.zig new file mode 100644 index 0000000000..68e381607d --- /dev/null +++ b/lib/std/math/atan2.zig @@ -0,0 +1,289 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/atan2f.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/atan2.c + +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; + +/// Returns the arc-tangent of y/x. +/// +/// Special Cases: +/// - atan2(y, nan) = nan +/// - atan2(nan, x) = nan +/// - atan2(+0, x>=0) = +0 +/// - atan2(-0, x>=0) = -0 +/// - atan2(+0, x<=-0) = +pi +/// - atan2(-0, x<=-0) = -pi +/// - atan2(y>0, 0) = +pi/2 +/// - atan2(y<0, 0) = -pi/2 +/// - atan2(+inf, +inf) = +pi/4 +/// - atan2(-inf, +inf) = -pi/4 +/// - atan2(+inf, -inf) = 3pi/4 +/// - atan2(-inf, -inf) = -3pi/4 +/// - atan2(y, +inf) = 0 +/// - atan2(y>0, -inf) = +pi +/// - atan2(y<0, -inf) = -pi +/// - atan2(+inf, x) = +pi/2 +/// - atan2(-inf, x) = -pi/2 +pub fn atan2(comptime T: type, y: T, x: T) T { + return switch (T) { + f32 => atan2_32(y, x), + f64 => atan2_64(y, x), + else => @compileError("atan2 not implemented for " ++ @typeName(T)), + }; +} + +fn atan2_32(y: f32, x: f32) f32 { + const pi: f32 = 3.1415927410e+00; + const pi_lo: f32 = -8.7422776573e-08; + + if (math.isNan(x) or math.isNan(y)) { + return x + y; + } + + var ix = @bitCast(u32, x); + var iy = @bitCast(u32, y); + + // x = 1.0 + if (ix == 0x3F800000) { + return math.atan(y); + } + + // 2 * sign(x) + sign(y) + const m = ((iy >> 31) & 1) | ((ix >> 30) & 2); + ix &= 0x7FFFFFFF; + iy &= 0x7FFFFFFF; + + if (iy == 0) { + switch (m) { + 0, 1 => return y, // atan(+-0, +...) + 2 => return pi, // atan(+0, -...) + 3 => return -pi, // atan(-0, -...) + else => unreachable, + } + } + + if (ix == 0) { + if (m & 1 != 0) { + return -pi / 2; + } else { + return pi / 2; + } + } + + if (ix == 0x7F800000) { + if (iy == 0x7F800000) { + switch (m) { + 0 => return pi / 4, // atan(+inf, +inf) + 1 => return -pi / 4, // atan(-inf, +inf) + 2 => return 3 * pi / 4, // atan(+inf, -inf) + 3 => return -3 * pi / 4, // atan(-inf, -inf) + else => unreachable, + } + } else { + switch (m) { + 0 => return 0.0, // atan(+..., +inf) + 1 => return -0.0, // atan(-..., +inf) + 2 => return pi, // atan(+..., -inf) + 3 => return -pi, // atan(-...f, -inf) + else => unreachable, + } + } + } + + // |y / x| > 0x1p26 + if (ix + (26 << 23) < iy or iy == 0x7F800000) { + if (m & 1 != 0) { + return -pi / 2; + } else { + return pi / 2; + } + } + + // z = atan(|y / x|) with correct underflow + var z = z: { + if ((m & 2) != 0 and iy + (26 << 23) < ix) { + break :z 0.0; + } else { + break :z math.atan(math.fabs(y / x)); + } + }; + + switch (m) { + 0 => return z, // atan(+, +) + 1 => return -z, // atan(-, +) + 2 => return pi - (z - pi_lo), // atan(+, -) + 3 => return (z - pi_lo) - pi, // atan(-, -) + else => unreachable, + } +} + +fn atan2_64(y: f64, x: f64) f64 { + const pi: f64 = 3.1415926535897931160E+00; + const pi_lo: f64 = 1.2246467991473531772E-16; + + if (math.isNan(x) or math.isNan(y)) { + return x + y; + } + + var ux = @bitCast(u64, x); + var ix = @intCast(u32, ux >> 32); + var lx = @intCast(u32, ux & 0xFFFFFFFF); + + var uy = @bitCast(u64, y); + var iy = @intCast(u32, uy >> 32); + var ly = @intCast(u32, uy & 0xFFFFFFFF); + + // x = 1.0 + if ((ix -% 0x3FF00000) | lx == 0) { + return math.atan(y); + } + + // 2 * sign(x) + sign(y) + const m = ((iy >> 31) & 1) | ((ix >> 30) & 2); + ix &= 0x7FFFFFFF; + iy &= 0x7FFFFFFF; + + if (iy | ly == 0) { + switch (m) { + 0, 1 => return y, // atan(+-0, +...) + 2 => return pi, // atan(+0, -...) + 3 => return -pi, // atan(-0, -...) + else => unreachable, + } + } + + if (ix | lx == 0) { + if (m & 1 != 0) { + return -pi / 2; + } else { + return pi / 2; + } + } + + if (ix == 0x7FF00000) { + if (iy == 0x7FF00000) { + switch (m) { + 0 => return pi / 4, // atan(+inf, +inf) + 1 => return -pi / 4, // atan(-inf, +inf) + 2 => return 3 * pi / 4, // atan(+inf, -inf) + 3 => return -3 * pi / 4, // atan(-inf, -inf) + else => unreachable, + } + } else { + switch (m) { + 0 => return 0.0, // atan(+..., +inf) + 1 => return -0.0, // atan(-..., +inf) + 2 => return pi, // atan(+..., -inf) + 3 => return -pi, // atan(-...f, -inf) + else => unreachable, + } + } + } + + // |y / x| > 0x1p64 + if (ix +% (64 << 20) < iy or iy == 0x7FF00000) { + if (m & 1 != 0) { + return -pi / 2; + } else { + return pi / 2; + } + } + + // z = atan(|y / x|) with correct underflow + var z = z: { + if ((m & 2) != 0 and iy +% (64 << 20) < ix) { + break :z 0.0; + } else { + break :z math.atan(math.fabs(y / x)); + } + }; + + switch (m) { + 0 => return z, // atan(+, +) + 1 => return -z, // atan(-, +) + 2 => return pi - (z - pi_lo), // atan(+, -) + 3 => return (z - pi_lo) - pi, // atan(-, -) + else => unreachable, + } +} + +test "math.atan2" { + expect(atan2(f32, 0.2, 0.21) == atan2_32(0.2, 0.21)); + expect(atan2(f64, 0.2, 0.21) == atan2_64(0.2, 0.21)); +} + +test "math.atan2_32" { + const epsilon = 0.000001; + + expect(math.approxEq(f32, atan2_32(0.0, 0.0), 0.0, epsilon)); + expect(math.approxEq(f32, atan2_32(0.2, 0.2), 0.785398, epsilon)); + expect(math.approxEq(f32, atan2_32(-0.2, 0.2), -0.785398, epsilon)); + expect(math.approxEq(f32, atan2_32(0.2, -0.2), 2.356194, epsilon)); + expect(math.approxEq(f32, atan2_32(-0.2, -0.2), -2.356194, epsilon)); + expect(math.approxEq(f32, atan2_32(0.34, -0.4), 2.437099, epsilon)); + expect(math.approxEq(f32, atan2_32(0.34, 1.243), 0.267001, epsilon)); +} + +test "math.atan2_64" { + const epsilon = 0.000001; + + expect(math.approxEq(f64, atan2_64(0.0, 0.0), 0.0, epsilon)); + expect(math.approxEq(f64, atan2_64(0.2, 0.2), 0.785398, epsilon)); + expect(math.approxEq(f64, atan2_64(-0.2, 0.2), -0.785398, epsilon)); + expect(math.approxEq(f64, atan2_64(0.2, -0.2), 2.356194, epsilon)); + expect(math.approxEq(f64, atan2_64(-0.2, -0.2), -2.356194, epsilon)); + expect(math.approxEq(f64, atan2_64(0.34, -0.4), 2.437099, epsilon)); + expect(math.approxEq(f64, atan2_64(0.34, 1.243), 0.267001, epsilon)); +} + +test "math.atan2_32.special" { + const epsilon = 0.000001; + + expect(math.isNan(atan2_32(1.0, math.nan(f32)))); + expect(math.isNan(atan2_32(math.nan(f32), 1.0))); + expect(atan2_32(0.0, 5.0) == 0.0); + expect(atan2_32(-0.0, 5.0) == -0.0); + expect(math.approxEq(f32, atan2_32(0.0, -5.0), math.pi, epsilon)); + //expect(math.approxEq(f32, atan2_32(-0.0, -5.0), -math.pi, epsilon)); TODO support negative zero? + expect(math.approxEq(f32, atan2_32(1.0, 0.0), math.pi / 2.0, epsilon)); + expect(math.approxEq(f32, atan2_32(1.0, -0.0), math.pi / 2.0, epsilon)); + expect(math.approxEq(f32, atan2_32(-1.0, 0.0), -math.pi / 2.0, epsilon)); + expect(math.approxEq(f32, atan2_32(-1.0, -0.0), -math.pi / 2.0, epsilon)); + expect(math.approxEq(f32, atan2_32(math.inf(f32), math.inf(f32)), math.pi / 4.0, epsilon)); + expect(math.approxEq(f32, atan2_32(-math.inf(f32), math.inf(f32)), -math.pi / 4.0, epsilon)); + expect(math.approxEq(f32, atan2_32(math.inf(f32), -math.inf(f32)), 3.0 * math.pi / 4.0, epsilon)); + expect(math.approxEq(f32, atan2_32(-math.inf(f32), -math.inf(f32)), -3.0 * math.pi / 4.0, epsilon)); + expect(atan2_32(1.0, math.inf(f32)) == 0.0); + expect(math.approxEq(f32, atan2_32(1.0, -math.inf(f32)), math.pi, epsilon)); + expect(math.approxEq(f32, atan2_32(-1.0, -math.inf(f32)), -math.pi, epsilon)); + expect(math.approxEq(f32, atan2_32(math.inf(f32), 1.0), math.pi / 2.0, epsilon)); + expect(math.approxEq(f32, atan2_32(-math.inf(f32), 1.0), -math.pi / 2.0, epsilon)); +} + +test "math.atan2_64.special" { + const epsilon = 0.000001; + + expect(math.isNan(atan2_64(1.0, math.nan(f64)))); + expect(math.isNan(atan2_64(math.nan(f64), 1.0))); + expect(atan2_64(0.0, 5.0) == 0.0); + expect(atan2_64(-0.0, 5.0) == -0.0); + expect(math.approxEq(f64, atan2_64(0.0, -5.0), math.pi, epsilon)); + //expect(math.approxEq(f64, atan2_64(-0.0, -5.0), -math.pi, epsilon)); TODO support negative zero? + expect(math.approxEq(f64, atan2_64(1.0, 0.0), math.pi / 2.0, epsilon)); + expect(math.approxEq(f64, atan2_64(1.0, -0.0), math.pi / 2.0, epsilon)); + expect(math.approxEq(f64, atan2_64(-1.0, 0.0), -math.pi / 2.0, epsilon)); + expect(math.approxEq(f64, atan2_64(-1.0, -0.0), -math.pi / 2.0, epsilon)); + expect(math.approxEq(f64, atan2_64(math.inf(f64), math.inf(f64)), math.pi / 4.0, epsilon)); + expect(math.approxEq(f64, atan2_64(-math.inf(f64), math.inf(f64)), -math.pi / 4.0, epsilon)); + expect(math.approxEq(f64, atan2_64(math.inf(f64), -math.inf(f64)), 3.0 * math.pi / 4.0, epsilon)); + expect(math.approxEq(f64, atan2_64(-math.inf(f64), -math.inf(f64)), -3.0 * math.pi / 4.0, epsilon)); + expect(atan2_64(1.0, math.inf(f64)) == 0.0); + expect(math.approxEq(f64, atan2_64(1.0, -math.inf(f64)), math.pi, epsilon)); + expect(math.approxEq(f64, atan2_64(-1.0, -math.inf(f64)), -math.pi, epsilon)); + expect(math.approxEq(f64, atan2_64(math.inf(f64), 1.0), math.pi / 2.0, epsilon)); + expect(math.approxEq(f64, atan2_64(-math.inf(f64), 1.0), -math.pi / 2.0, epsilon)); +} diff --git a/lib/std/math/atanh.zig b/lib/std/math/atanh.zig new file mode 100644 index 0000000000..8ba29be761 --- /dev/null +++ b/lib/std/math/atanh.zig @@ -0,0 +1,121 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/atanhf.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/atanh.c + +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; +const maxInt = std.math.maxInt; + +/// Returns the hyperbolic arc-tangent of x. +/// +/// Special Cases: +/// - atanh(+-1) = +-inf with signal +/// - atanh(x) = nan if |x| > 1 with signal +/// - atanh(nan) = nan +pub fn atanh(x: var) @typeOf(x) { + const T = @typeOf(x); + return switch (T) { + f32 => atanh_32(x), + f64 => atanh_64(x), + else => @compileError("atanh not implemented for " ++ @typeName(T)), + }; +} + +// atanh(x) = log((1 + x) / (1 - x)) / 2 = log1p(2x / (1 - x)) / 2 ~= x + x^3 / 3 + o(x^5) +fn atanh_32(x: f32) f32 { + const u = @bitCast(u32, x); + const i = u & 0x7FFFFFFF; + const s = u >> 31; + + var y = @bitCast(f32, i); // |x| + + if (y == 1.0) { + return math.copysign(f32, math.inf(f32), x); + } + + if (u < 0x3F800000 - (1 << 23)) { + if (u < 0x3F800000 - (32 << 23)) { + // underflow + if (u < (1 << 23)) { + math.forceEval(y * y); + } + } + // |x| < 0.5 + else { + y = 0.5 * math.log1p(2 * y + 2 * y * y / (1 - y)); + } + } else { + y = 0.5 * math.log1p(2 * (y / (1 - y))); + } + + return if (s != 0) -y else y; +} + +fn atanh_64(x: f64) f64 { + const u = @bitCast(u64, x); + const e = (u >> 52) & 0x7FF; + const s = u >> 63; + + var y = @bitCast(f64, u & (maxInt(u64) >> 1)); // |x| + + if (y == 1.0) { + return math.copysign(f64, math.inf(f64), x); + } + + if (e < 0x3FF - 1) { + if (e < 0x3FF - 32) { + // underflow + if (e == 0) { + math.forceEval(@floatCast(f32, y)); + } + } + // |x| < 0.5 + else { + y = 0.5 * math.log1p(2 * y + 2 * y * y / (1 - y)); + } + } else { + y = 0.5 * math.log1p(2 * (y / (1 - y))); + } + + return if (s != 0) -y else y; +} + +test "math.atanh" { + expect(atanh(f32(0.0)) == atanh_32(0.0)); + expect(atanh(f64(0.0)) == atanh_64(0.0)); +} + +test "math.atanh_32" { + const epsilon = 0.000001; + + expect(math.approxEq(f32, atanh_32(0.0), 0.0, epsilon)); + expect(math.approxEq(f32, atanh_32(0.2), 0.202733, epsilon)); + expect(math.approxEq(f32, atanh_32(0.8923), 1.433099, epsilon)); +} + +test "math.atanh_64" { + const epsilon = 0.000001; + + expect(math.approxEq(f64, atanh_64(0.0), 0.0, epsilon)); + expect(math.approxEq(f64, atanh_64(0.2), 0.202733, epsilon)); + expect(math.approxEq(f64, atanh_64(0.8923), 1.433099, epsilon)); +} + +test "math.atanh32.special" { + expect(math.isPositiveInf(atanh_32(1))); + expect(math.isNegativeInf(atanh_32(-1))); + expect(math.isSignalNan(atanh_32(1.5))); + expect(math.isSignalNan(atanh_32(-1.5))); + expect(math.isNan(atanh_32(math.nan(f32)))); +} + +test "math.atanh64.special" { + expect(math.isPositiveInf(atanh_64(1))); + expect(math.isNegativeInf(atanh_64(-1))); + expect(math.isSignalNan(atanh_64(1.5))); + expect(math.isSignalNan(atanh_64(-1.5))); + expect(math.isNan(atanh_64(math.nan(f64)))); +} diff --git a/lib/std/math/big.zig b/lib/std/math/big.zig new file mode 100644 index 0000000000..8105beb506 --- /dev/null +++ b/lib/std/math/big.zig @@ -0,0 +1,7 @@ +pub usingnamespace @import("big/int.zig"); +pub usingnamespace @import("big/rational.zig"); + +test "math.big" { + _ = @import("big/int.zig"); + _ = @import("big/rational.zig"); +} diff --git a/lib/std/math/big/int.zig b/lib/std/math/big/int.zig new file mode 100644 index 0000000000..8a6f6c1f75 --- /dev/null +++ b/lib/std/math/big/int.zig @@ -0,0 +1,2314 @@ +const std = @import("../../std.zig"); +const builtin = @import("builtin"); +const debug = std.debug; +const testing = std.testing; +const math = std.math; +const mem = std.mem; +const Allocator = mem.Allocator; +const ArrayList = std.ArrayList; +const maxInt = std.math.maxInt; +const minInt = std.math.minInt; + +const TypeId = builtin.TypeId; + +pub const Limb = usize; +pub const DoubleLimb = @IntType(false, 2 * Limb.bit_count); +pub const Log2Limb = math.Log2Int(Limb); + +comptime { + debug.assert(math.floorPowerOfTwo(usize, Limb.bit_count) == Limb.bit_count); + debug.assert(Limb.bit_count <= 64); // u128 set is unsupported + debug.assert(Limb.is_signed == false); +} + +/// An arbitrary-precision big integer. +/// +/// Memory is allocated by an Int as needed to ensure operations never overflow. The range of an +/// Int is bounded only by available memory. +pub const Int = struct { + const sign_bit: usize = 1 << (usize.bit_count - 1); + + /// Default number of limbs to allocate on creation of an Int. + pub const default_capacity = 4; + + /// Allocator used by the Int when requesting memory. + allocator: ?*Allocator, + + /// Raw digits. These are: + /// + /// * Little-endian ordered + /// * limbs.len >= 1 + /// * Zero is represent as Int.len() == 1 with limbs[0] == 0. + /// + /// Accessing limbs directly should be avoided. + limbs: []Limb, + + /// High bit is the sign bit. If set, Int is negative, else Int is positive. + /// The remaining bits represent the number of limbs used by Int. + metadata: usize, + + /// Creates a new Int. default_capacity limbs will be allocated immediately. + /// Int will be zeroed. + pub fn init(allocator: *Allocator) !Int { + return try Int.initCapacity(allocator, default_capacity); + } + + /// Creates a new Int. Int will be set to `value`. + /// + /// This is identical to an `init`, followed by a `set`. + pub fn initSet(allocator: *Allocator, value: var) !Int { + var s = try Int.init(allocator); + try s.set(value); + return s; + } + + /// Creates a new Int with a specific capacity. If capacity < default_capacity then the + /// default capacity will be used instead. + pub fn initCapacity(allocator: *Allocator, capacity: usize) !Int { + return Int{ + .allocator = allocator, + .metadata = 1, + .limbs = block: { + var limbs = try allocator.alloc(Limb, math.max(default_capacity, capacity)); + limbs[0] = 0; + break :block limbs; + }, + }; + } + + /// Returns the number of limbs currently in use. + pub fn len(self: Int) usize { + return self.metadata & ~sign_bit; + } + + /// Returns whether an Int is positive. + pub fn isPositive(self: Int) bool { + return self.metadata & sign_bit == 0; + } + + /// Sets the sign of an Int. + pub fn setSign(self: *Int, positive: bool) void { + if (positive) { + self.metadata &= ~sign_bit; + } else { + self.metadata |= sign_bit; + } + } + + /// Sets the length of an Int. + /// + /// If setLen is used, then the Int must be normalized to suit. + pub fn setLen(self: *Int, new_len: usize) void { + self.metadata &= sign_bit; + self.metadata |= new_len; + } + + /// Returns an Int backed by a fixed set of limb values. + /// This is read-only and cannot be used as a result argument. If the Int tries to allocate + /// memory a runtime panic will occur. + pub fn initFixed(limbs: []const Limb) Int { + var self = Int{ + .allocator = null, + .metadata = limbs.len, + // Cast away the const, invalid use to pass as a pointer argument. + .limbs = @intToPtr([*]Limb, @ptrToInt(limbs.ptr))[0..limbs.len], + }; + + self.normalize(limbs.len); + return self; + } + + /// Ensures an Int has enough space allocated for capacity limbs. If the Int does not have + /// sufficient capacity, the exact amount will be allocated. This occurs even if the requested + /// capacity is only greater than the current capacity by one limb. + pub fn ensureCapacity(self: *Int, capacity: usize) !void { + self.assertWritable(); + if (capacity <= self.limbs.len) { + return; + } + + self.limbs = try self.allocator.?.realloc(self.limbs, capacity); + } + + fn assertWritable(self: Int) void { + if (self.allocator == null) { + @panic("provided Int value is read-only but must be writable"); + } + } + + /// Frees all memory associated with an Int. + pub fn deinit(self: *Int) void { + self.assertWritable(); + self.allocator.?.free(self.limbs); + self.* = undefined; + } + + /// Clones an Int and returns a new Int with the same value. The new Int is a deep copy and + /// can be modified separately from the original. + pub fn clone(other: Int) !Int { + other.assertWritable(); + return Int{ + .allocator = other.allocator, + .metadata = other.metadata, + .limbs = block: { + var limbs = try other.allocator.?.alloc(Limb, other.len()); + mem.copy(Limb, limbs[0..], other.limbs[0..other.len()]); + break :block limbs; + }, + }; + } + + /// Copies the value of an Int to an existing Int so that they both have the same value. + /// Extra memory will be allocated if the receiver does not have enough capacity. + pub fn copy(self: *Int, other: Int) !void { + self.assertWritable(); + if (self.limbs.ptr == other.limbs.ptr) { + return; + } + + try self.ensureCapacity(other.len()); + mem.copy(Limb, self.limbs[0..], other.limbs[0..other.len()]); + self.metadata = other.metadata; + } + + /// Efficiently swap an Int with another. This swaps the limb pointers and a full copy is not + /// performed. The address of the limbs field will not be the same after this function. + pub fn swap(self: *Int, other: *Int) void { + self.assertWritable(); + mem.swap(Int, self, other); + } + + pub fn dump(self: Int) void { + for (self.limbs) |limb| { + debug.warn("{x} ", limb); + } + debug.warn("\n"); + } + + /// Negate the sign of an Int. + pub fn negate(self: *Int) void { + self.metadata ^= sign_bit; + } + + /// Make an Int positive. + pub fn abs(self: *Int) void { + self.metadata &= ~sign_bit; + } + + /// Returns true if an Int is odd. + pub fn isOdd(self: Int) bool { + return self.limbs[0] & 1 != 0; + } + + /// Returns true if an Int is even. + pub fn isEven(self: Int) bool { + return !self.isOdd(); + } + + /// Returns the number of bits required to represent the absolute value an Int. + fn bitCountAbs(self: Int) usize { + return (self.len() - 1) * Limb.bit_count + (Limb.bit_count - @clz(Limb, self.limbs[self.len() - 1])); + } + + /// Returns the number of bits required to represent the integer in twos-complement form. + /// + /// If the integer is negative the value returned is the number of bits needed by a signed + /// integer to represent the value. If positive the value is the number of bits for an + /// unsigned integer. Any unsigned integer will fit in the signed integer with bitcount + /// one greater than the returned value. + /// + /// e.g. -127 returns 8 as it will fit in an i8. 127 returns 7 since it fits in a u7. + fn bitCountTwosComp(self: Int) usize { + var bits = self.bitCountAbs(); + + // If the entire value has only one bit set (e.g. 0b100000000) then the negation in twos + // complement requires one less bit. + if (!self.isPositive()) block: { + bits += 1; + + if (@popCount(Limb, self.limbs[self.len() - 1]) == 1) { + for (self.limbs[0 .. self.len() - 1]) |limb| { + if (@popCount(Limb, limb) != 0) { + break :block; + } + } + + bits -= 1; + } + } + + return bits; + } + + fn fitsInTwosComp(self: Int, is_signed: bool, bit_count: usize) bool { + if (self.eqZero()) { + return true; + } + if (!is_signed and !self.isPositive()) { + return false; + } + + const req_bits = self.bitCountTwosComp() + @boolToInt(self.isPositive() and is_signed); + return bit_count >= req_bits; + } + + /// Returns whether self can fit into an integer of the requested type. + pub fn fits(self: Int, comptime T: type) bool { + return self.fitsInTwosComp(T.is_signed, T.bit_count); + } + + /// Returns the approximate size of the integer in the given base. Negative values accommodate for + /// the minus sign. This is used for determining the number of characters needed to print the + /// value. It is inexact and may exceed the given value by ~1-2 bytes. + pub fn sizeInBase(self: Int, base: usize) usize { + const bit_count = usize(@boolToInt(!self.isPositive())) + self.bitCountAbs(); + return (bit_count / math.log2(base)) + 1; + } + + /// Sets an Int to value. Value must be an primitive integer type. + pub fn set(self: *Int, value: var) Allocator.Error!void { + self.assertWritable(); + const T = @typeOf(value); + + switch (@typeInfo(T)) { + TypeId.Int => |info| { + const UT = if (T.is_signed) @IntType(false, T.bit_count - 1) else T; + + try self.ensureCapacity(@sizeOf(UT) / @sizeOf(Limb)); + self.metadata = 0; + self.setSign(value >= 0); + + var w_value: UT = if (value < 0) @intCast(UT, -value) else @intCast(UT, value); + + if (info.bits <= Limb.bit_count) { + self.limbs[0] = Limb(w_value); + self.metadata += 1; + } else { + var i: usize = 0; + while (w_value != 0) : (i += 1) { + self.limbs[i] = @truncate(Limb, w_value); + self.metadata += 1; + + // TODO: shift == 64 at compile-time fails. Fails on u128 limbs. + w_value >>= Limb.bit_count / 2; + w_value >>= Limb.bit_count / 2; + } + } + }, + TypeId.ComptimeInt => { + comptime var w_value = if (value < 0) -value else value; + + const req_limbs = @divFloor(math.log2(w_value), Limb.bit_count) + 1; + try self.ensureCapacity(req_limbs); + + self.metadata = req_limbs; + self.setSign(value >= 0); + + if (w_value <= maxInt(Limb)) { + self.limbs[0] = w_value; + } else { + const mask = (1 << Limb.bit_count) - 1; + + comptime var i = 0; + inline while (w_value != 0) : (i += 1) { + self.limbs[i] = w_value & mask; + + w_value >>= Limb.bit_count / 2; + w_value >>= Limb.bit_count / 2; + } + } + }, + else => { + @compileError("cannot set Int using type " ++ @typeName(T)); + }, + } + } + + pub const ConvertError = error{ + NegativeIntoUnsigned, + TargetTooSmall, + }; + + /// Convert self to type T. + /// + /// Returns an error if self cannot be narrowed into the requested type without truncation. + pub fn to(self: Int, comptime T: type) ConvertError!T { + switch (@typeId(T)) { + TypeId.Int => { + const UT = @IntType(false, T.bit_count); + + if (self.bitCountTwosComp() > T.bit_count) { + return error.TargetTooSmall; + } + + var r: UT = 0; + + if (@sizeOf(UT) <= @sizeOf(Limb)) { + r = @intCast(UT, self.limbs[0]); + } else { + for (self.limbs[0..self.len()]) |_, ri| { + const limb = self.limbs[self.len() - ri - 1]; + r <<= Limb.bit_count; + r |= limb; + } + } + + if (!T.is_signed) { + return if (self.isPositive()) @intCast(T, r) else error.NegativeIntoUnsigned; + } else { + if (self.isPositive()) { + return @intCast(T, r); + } else { + if (math.cast(T, r)) |ok| { + return -ok; + } else |_| { + return minInt(T); + } + } + } + }, + else => { + @compileError("cannot convert Int to type " ++ @typeName(T)); + }, + } + } + + fn charToDigit(ch: u8, base: u8) !u8 { + const d = switch (ch) { + '0'...'9' => ch - '0', + 'a'...'f' => (ch - 'a') + 0xa, + else => return error.InvalidCharForDigit, + }; + + return if (d < base) d else return error.DigitTooLargeForBase; + } + + fn digitToChar(d: u8, base: u8) !u8 { + if (d >= base) { + return error.DigitTooLargeForBase; + } + + return switch (d) { + 0...9 => '0' + d, + 0xa...0xf => ('a' - 0xa) + d, + else => unreachable, + }; + } + + /// Set self from the string representation `value`. + /// + /// value must contain only digits <= `base`. Base prefixes are not allowed (e.g. 0x43 should + /// simply be 43). + /// + /// Returns an error if memory could not be allocated or `value` has invalid digits for the + /// requested base. + pub fn setString(self: *Int, base: u8, value: []const u8) !void { + self.assertWritable(); + if (base < 2 or base > 16) { + return error.InvalidBase; + } + + var i: usize = 0; + var positive = true; + if (value.len > 0 and value[0] == '-') { + positive = false; + i += 1; + } + + const ap_base = Int.initFixed(([_]Limb{base})[0..]); + try self.set(0); + + for (value[i..]) |ch| { + const d = try charToDigit(ch, base); + + const ap_d = Int.initFixed(([_]Limb{d})[0..]); + + try self.mul(self.*, ap_base); + try self.add(self.*, ap_d); + } + self.setSign(positive); + } + + /// Converts self to a string in the requested base. Memory is allocated from the provided + /// allocator and not the one present in self. + /// TODO make this call format instead of the other way around + pub fn toString(self: Int, allocator: *Allocator, base: u8) ![]const u8 { + if (base < 2 or base > 16) { + return error.InvalidBase; + } + + var digits = ArrayList(u8).init(allocator); + try digits.ensureCapacity(self.sizeInBase(base) + 1); + defer digits.deinit(); + + if (self.eqZero()) { + try digits.append('0'); + return digits.toOwnedSlice(); + } + + // Power of two: can do a single pass and use masks to extract digits. + if (math.isPowerOfTwo(base)) { + const base_shift = math.log2_int(Limb, base); + + for (self.limbs[0..self.len()]) |limb| { + var shift: usize = 0; + while (shift < Limb.bit_count) : (shift += base_shift) { + const r = @intCast(u8, (limb >> @intCast(Log2Limb, shift)) & Limb(base - 1)); + const ch = try digitToChar(r, base); + try digits.append(ch); + } + } + + while (true) { + // always will have a non-zero digit somewhere + const c = digits.pop(); + if (c != '0') { + digits.append(c) catch unreachable; + break; + } + } + } // Non power-of-two: batch divisions per word size. + else { + const digits_per_limb = math.log(Limb, base, maxInt(Limb)); + var limb_base: Limb = 1; + var j: usize = 0; + while (j < digits_per_limb) : (j += 1) { + limb_base *= base; + } + + var q = try self.clone(); + q.abs(); + var r = try Int.init(allocator); + var b = try Int.initSet(allocator, limb_base); + + while (q.len() >= 2) { + try Int.divTrunc(&q, &r, q, b); + + var r_word = r.limbs[0]; + var i: usize = 0; + while (i < digits_per_limb) : (i += 1) { + const ch = try digitToChar(@intCast(u8, r_word % base), base); + r_word /= base; + try digits.append(ch); + } + } + + { + debug.assert(q.len() == 1); + + var r_word = q.limbs[0]; + while (r_word != 0) { + const ch = try digitToChar(@intCast(u8, r_word % base), base); + r_word /= base; + try digits.append(ch); + } + } + } + + if (!self.isPositive()) { + try digits.append('-'); + } + + var s = digits.toOwnedSlice(); + mem.reverse(u8, s); + return s; + } + + /// To allow `std.fmt.printf` to work with Int. + /// TODO make this non-allocating + pub fn format( + self: Int, + comptime fmt: []const u8, + options: std.fmt.FormatOptions, + context: var, + comptime FmtError: type, + output: fn (@typeOf(context), []const u8) FmtError!void, + ) FmtError!void { + self.assertWritable(); + // TODO look at fmt and support other bases + // TODO support read-only fixed integers + const str = self.toString(self.allocator.?, 10) catch @panic("TODO make this non allocating"); + defer self.allocator.?.free(str); + return output(context, str); + } + + /// Returns -1, 0, 1 if |a| < |b|, |a| == |b| or |a| > |b| respectively. + pub fn cmpAbs(a: Int, b: Int) i8 { + if (a.len() < b.len()) { + return -1; + } + if (a.len() > b.len()) { + return 1; + } + + var i: usize = a.len() - 1; + while (i != 0) : (i -= 1) { + if (a.limbs[i] != b.limbs[i]) { + break; + } + } + + if (a.limbs[i] < b.limbs[i]) { + return -1; + } else if (a.limbs[i] > b.limbs[i]) { + return 1; + } else { + return 0; + } + } + + /// Returns -1, 0, 1 if a < b, a == b or a > b respectively. + pub fn cmp(a: Int, b: Int) i8 { + if (a.isPositive() != b.isPositive()) { + return if (a.isPositive()) i8(1) else -1; + } else { + const r = cmpAbs(a, b); + return if (a.isPositive()) r else -r; + } + } + + /// Returns true if a == 0. + pub fn eqZero(a: Int) bool { + return a.len() == 1 and a.limbs[0] == 0; + } + + /// Returns true if |a| == |b|. + pub fn eqAbs(a: Int, b: Int) bool { + return cmpAbs(a, b) == 0; + } + + /// Returns true if a == b. + pub fn eq(a: Int, b: Int) bool { + return cmp(a, b) == 0; + } + + // Normalize a possible sequence of leading zeros. + // + // [1, 2, 3, 4, 0] -> [1, 2, 3, 4] + // [1, 2, 0, 0, 0] -> [1, 2] + // [0, 0, 0, 0, 0] -> [0] + fn normalize(r: *Int, length: usize) void { + debug.assert(length > 0); + debug.assert(length <= r.limbs.len); + + var j = length; + while (j > 0) : (j -= 1) { + if (r.limbs[j - 1] != 0) { + break; + } + } + + // Handle zero + r.setLen(if (j != 0) j else 1); + } + + // Cannot be used as a result argument to any function. + fn readOnlyPositive(a: Int) Int { + return Int{ + .allocator = null, + .metadata = a.len(), + .limbs = a.limbs, + }; + } + + /// r = a + b + /// + /// r, a and b may be aliases. + /// + /// Returns an error if memory could not be allocated. + pub fn add(r: *Int, a: Int, b: Int) Allocator.Error!void { + r.assertWritable(); + if (a.eqZero()) { + try r.copy(b); + return; + } else if (b.eqZero()) { + try r.copy(a); + return; + } + + if (a.isPositive() != b.isPositive()) { + if (a.isPositive()) { + // (a) + (-b) => a - b + try r.sub(a, readOnlyPositive(b)); + } else { + // (-a) + (b) => b - a + try r.sub(b, readOnlyPositive(a)); + } + } else { + if (a.len() >= b.len()) { + try r.ensureCapacity(a.len() + 1); + lladd(r.limbs[0..], a.limbs[0..a.len()], b.limbs[0..b.len()]); + r.normalize(a.len() + 1); + } else { + try r.ensureCapacity(b.len() + 1); + lladd(r.limbs[0..], b.limbs[0..b.len()], a.limbs[0..a.len()]); + r.normalize(b.len() + 1); + } + + r.setSign(a.isPositive()); + } + } + + // Knuth 4.3.1, Algorithm A. + fn lladd(r: []Limb, a: []const Limb, b: []const Limb) void { + @setRuntimeSafety(false); + debug.assert(a.len != 0 and b.len != 0); + debug.assert(a.len >= b.len); + debug.assert(r.len >= a.len + 1); + + var i: usize = 0; + var carry: Limb = 0; + + while (i < b.len) : (i += 1) { + var c: Limb = 0; + c += @boolToInt(@addWithOverflow(Limb, a[i], b[i], &r[i])); + c += @boolToInt(@addWithOverflow(Limb, r[i], carry, &r[i])); + carry = c; + } + + while (i < a.len) : (i += 1) { + carry = @boolToInt(@addWithOverflow(Limb, a[i], carry, &r[i])); + } + + r[i] = carry; + } + + /// r = a - b + /// + /// r, a and b may be aliases. + /// + /// Returns an error if memory could not be allocated. + pub fn sub(r: *Int, a: Int, b: Int) !void { + r.assertWritable(); + if (a.isPositive() != b.isPositive()) { + if (a.isPositive()) { + // (a) - (-b) => a + b + try r.add(a, readOnlyPositive(b)); + } else { + // (-a) - (b) => -(a + b) + try r.add(readOnlyPositive(a), b); + r.setSign(false); + } + } else { + if (a.isPositive()) { + // (a) - (b) => a - b + if (a.cmp(b) >= 0) { + try r.ensureCapacity(a.len() + 1); + llsub(r.limbs[0..], a.limbs[0..a.len()], b.limbs[0..b.len()]); + r.normalize(a.len()); + r.setSign(true); + } else { + try r.ensureCapacity(b.len() + 1); + llsub(r.limbs[0..], b.limbs[0..b.len()], a.limbs[0..a.len()]); + r.normalize(b.len()); + r.setSign(false); + } + } else { + // (-a) - (-b) => -(a - b) + if (a.cmp(b) < 0) { + try r.ensureCapacity(a.len() + 1); + llsub(r.limbs[0..], a.limbs[0..a.len()], b.limbs[0..b.len()]); + r.normalize(a.len()); + r.setSign(false); + } else { + try r.ensureCapacity(b.len() + 1); + llsub(r.limbs[0..], b.limbs[0..b.len()], a.limbs[0..a.len()]); + r.normalize(b.len()); + r.setSign(true); + } + } + } + } + + // Knuth 4.3.1, Algorithm S. + fn llsub(r: []Limb, a: []const Limb, b: []const Limb) void { + @setRuntimeSafety(false); + debug.assert(a.len != 0 and b.len != 0); + debug.assert(a.len > b.len or (a.len == b.len and a[a.len - 1] >= b[b.len - 1])); + debug.assert(r.len >= a.len); + + var i: usize = 0; + var borrow: Limb = 0; + + while (i < b.len) : (i += 1) { + var c: Limb = 0; + c += @boolToInt(@subWithOverflow(Limb, a[i], b[i], &r[i])); + c += @boolToInt(@subWithOverflow(Limb, r[i], borrow, &r[i])); + borrow = c; + } + + while (i < a.len) : (i += 1) { + borrow = @boolToInt(@subWithOverflow(Limb, a[i], borrow, &r[i])); + } + + debug.assert(borrow == 0); + } + + /// rma = a * b + /// + /// rma, a and b may be aliases. However, it is more efficient if rma does not alias a or b. + /// + /// Returns an error if memory could not be allocated. + pub fn mul(rma: *Int, a: Int, b: Int) !void { + rma.assertWritable(); + + var r = rma; + var aliased = rma.limbs.ptr == a.limbs.ptr or rma.limbs.ptr == b.limbs.ptr; + + var sr: Int = undefined; + if (aliased) { + sr = try Int.initCapacity(rma.allocator.?, a.len() + b.len()); + r = &sr; + aliased = true; + } + defer if (aliased) { + rma.swap(r); + r.deinit(); + }; + + try r.ensureCapacity(a.len() + b.len()); + + if (a.len() >= b.len()) { + llmul(r.limbs, a.limbs[0..a.len()], b.limbs[0..b.len()]); + } else { + llmul(r.limbs, b.limbs[0..b.len()], a.limbs[0..a.len()]); + } + + r.normalize(a.len() + b.len()); + r.setSign(a.isPositive() == b.isPositive()); + } + + // a + b * c + *carry, sets carry to the overflow bits + pub fn addMulLimbWithCarry(a: Limb, b: Limb, c: Limb, carry: *Limb) Limb { + var r1: Limb = undefined; + + // r1 = a + *carry + const c1: Limb = @boolToInt(@addWithOverflow(Limb, a, carry.*, &r1)); + + // r2 = b * c + const bc = DoubleLimb(math.mulWide(Limb, b, c)); + const r2 = @truncate(Limb, bc); + const c2 = @truncate(Limb, bc >> Limb.bit_count); + + // r1 = r1 + r2 + const c3: Limb = @boolToInt(@addWithOverflow(Limb, r1, r2, &r1)); + + // This never overflows, c1, c3 are either 0 or 1 and if both are 1 then + // c2 is at least <= maxInt(Limb) - 2. + carry.* = c1 + c2 + c3; + + return r1; + } + + // Knuth 4.3.1, Algorithm M. + // + // r MUST NOT alias any of a or b. + fn llmul(r: []Limb, a: []const Limb, b: []const Limb) void { + @setRuntimeSafety(false); + debug.assert(a.len >= b.len); + debug.assert(r.len >= a.len + b.len); + + mem.set(Limb, r[0 .. a.len + b.len], 0); + + var i: usize = 0; + while (i < a.len) : (i += 1) { + var carry: Limb = 0; + var j: usize = 0; + while (j < b.len) : (j += 1) { + r[i + j] = @inlineCall(addMulLimbWithCarry, r[i + j], a[i], b[j], &carry); + } + r[i + j] = carry; + } + } + + /// q = a / b (rem r) + /// + /// a / b are floored (rounded towards 0). + pub fn divFloor(q: *Int, r: *Int, a: Int, b: Int) !void { + try div(q, r, a, b); + + // Trunc -> Floor. + if (!q.isPositive()) { + const one = Int.initFixed(([_]Limb{1})[0..]); + try q.sub(q.*, one); + try r.add(q.*, one); + } + r.setSign(b.isPositive()); + } + + /// q = a / b (rem r) + /// + /// a / b are truncated (rounded towards -inf). + pub fn divTrunc(q: *Int, r: *Int, a: Int, b: Int) !void { + try div(q, r, a, b); + r.setSign(a.isPositive()); + } + + // Truncates by default. + fn div(quo: *Int, rem: *Int, a: Int, b: Int) !void { + quo.assertWritable(); + rem.assertWritable(); + + if (b.eqZero()) { + @panic("division by zero"); + } + if (quo == rem) { + @panic("quo and rem cannot be same variable"); + } + + if (a.cmpAbs(b) < 0) { + // quo may alias a so handle rem first + try rem.copy(a); + rem.setSign(a.isPositive() == b.isPositive()); + + quo.metadata = 1; + quo.limbs[0] = 0; + return; + } + + // Handle trailing zero-words of divisor/dividend. These are not handled in the following + // algorithms. + const a_zero_limb_count = blk: { + var i: usize = 0; + while (i < a.len()) : (i += 1) { + if (a.limbs[i] != 0) break; + } + break :blk i; + }; + const b_zero_limb_count = blk: { + var i: usize = 0; + while (i < b.len()) : (i += 1) { + if (b.limbs[i] != 0) break; + } + break :blk i; + }; + + const ab_zero_limb_count = std.math.min(a_zero_limb_count, b_zero_limb_count); + + if (b.len() - ab_zero_limb_count == 1) { + try quo.ensureCapacity(a.len()); + + lldiv1(quo.limbs[0..], &rem.limbs[0], a.limbs[ab_zero_limb_count..a.len()], b.limbs[b.len() - 1]); + quo.normalize(a.len() - ab_zero_limb_count); + quo.setSign(a.isPositive() == b.isPositive()); + + rem.metadata = 1; + } else { + // x and y are modified during division + var x = try Int.initCapacity(quo.allocator.?, a.len()); + defer x.deinit(); + try x.copy(a); + + var y = try Int.initCapacity(quo.allocator.?, b.len()); + defer y.deinit(); + try y.copy(b); + + // x may grow one limb during normalization + try quo.ensureCapacity(a.len() + y.len()); + + // Shrink x, y such that the trailing zero limbs shared between are removed. + if (ab_zero_limb_count != 0) { + std.mem.copy(Limb, x.limbs[0..], x.limbs[ab_zero_limb_count..]); + std.mem.copy(Limb, y.limbs[0..], y.limbs[ab_zero_limb_count..]); + x.metadata -= ab_zero_limb_count; + y.metadata -= ab_zero_limb_count; + } + + try divN(quo.allocator.?, quo, rem, &x, &y); + quo.setSign(a.isPositive() == b.isPositive()); + } + + if (ab_zero_limb_count != 0) { + try rem.shiftLeft(rem.*, ab_zero_limb_count * Limb.bit_count); + } + } + + // Knuth 4.3.1, Exercise 16. + fn lldiv1(quo: []Limb, rem: *Limb, a: []const Limb, b: Limb) void { + @setRuntimeSafety(false); + debug.assert(a.len > 1 or a[0] >= b); + debug.assert(quo.len >= a.len); + + rem.* = 0; + for (a) |_, ri| { + const i = a.len - ri - 1; + const pdiv = ((DoubleLimb(rem.*) << Limb.bit_count) | a[i]); + + if (pdiv == 0) { + quo[i] = 0; + rem.* = 0; + } else if (pdiv < b) { + quo[i] = 0; + rem.* = @truncate(Limb, pdiv); + } else if (pdiv == b) { + quo[i] = 1; + rem.* = 0; + } else { + quo[i] = @truncate(Limb, @divTrunc(pdiv, b)); + rem.* = @truncate(Limb, pdiv - (quo[i] *% b)); + } + } + } + + // Handbook of Applied Cryptography, 14.20 + // + // x = qy + r where 0 <= r < y + fn divN(allocator: *Allocator, q: *Int, r: *Int, x: *Int, y: *Int) !void { + debug.assert(y.len() >= 2); + debug.assert(x.len() >= y.len()); + debug.assert(q.limbs.len >= x.len() + y.len() - 1); + debug.assert(default_capacity >= 3); // see 3.2 + + var tmp = try Int.init(allocator); + defer tmp.deinit(); + + // Normalize so y > Limb.bit_count / 2 (i.e. leading bit is set) and even + var norm_shift = @clz(Limb, y.limbs[y.len() - 1]); + if (norm_shift == 0 and y.isOdd()) { + norm_shift = Limb.bit_count; + } + try x.shiftLeft(x.*, norm_shift); + try y.shiftLeft(y.*, norm_shift); + + const n = x.len() - 1; + const t = y.len() - 1; + + // 1. + q.metadata = n - t + 1; + mem.set(Limb, q.limbs[0..q.len()], 0); + + // 2. + try tmp.shiftLeft(y.*, Limb.bit_count * (n - t)); + while (x.cmp(tmp) >= 0) { + q.limbs[n - t] += 1; + try x.sub(x.*, tmp); + } + + // 3. + var i = n; + while (i > t) : (i -= 1) { + // 3.1 + if (x.limbs[i] == y.limbs[t]) { + q.limbs[i - t - 1] = maxInt(Limb); + } else { + const num = (DoubleLimb(x.limbs[i]) << Limb.bit_count) | DoubleLimb(x.limbs[i - 1]); + const z = @intCast(Limb, num / DoubleLimb(y.limbs[t])); + q.limbs[i - t - 1] = if (z > maxInt(Limb)) maxInt(Limb) else Limb(z); + } + + // 3.2 + tmp.limbs[0] = if (i >= 2) x.limbs[i - 2] else 0; + tmp.limbs[1] = if (i >= 1) x.limbs[i - 1] else 0; + tmp.limbs[2] = x.limbs[i]; + tmp.normalize(3); + + while (true) { + // 2x1 limb multiplication unrolled against single-limb q[i-t-1] + var carry: Limb = 0; + r.limbs[0] = addMulLimbWithCarry(0, if (t >= 1) y.limbs[t - 1] else 0, q.limbs[i - t - 1], &carry); + r.limbs[1] = addMulLimbWithCarry(0, y.limbs[t], q.limbs[i - t - 1], &carry); + r.limbs[2] = carry; + r.normalize(3); + + if (r.cmpAbs(tmp) <= 0) { + break; + } + + q.limbs[i - t - 1] -= 1; + } + + // 3.3 + try tmp.set(q.limbs[i - t - 1]); + try tmp.mul(tmp, y.*); + try tmp.shiftLeft(tmp, Limb.bit_count * (i - t - 1)); + try x.sub(x.*, tmp); + + if (!x.isPositive()) { + try tmp.shiftLeft(y.*, Limb.bit_count * (i - t - 1)); + try x.add(x.*, tmp); + q.limbs[i - t - 1] -= 1; + } + } + + // Denormalize + q.normalize(q.len()); + + try r.shiftRight(x.*, norm_shift); + r.normalize(r.len()); + } + + /// r = a << shift, in other words, r = a * 2^shift + pub fn shiftLeft(r: *Int, a: Int, shift: usize) !void { + r.assertWritable(); + + try r.ensureCapacity(a.len() + (shift / Limb.bit_count) + 1); + llshl(r.limbs[0..], a.limbs[0..a.len()], shift); + r.normalize(a.len() + (shift / Limb.bit_count) + 1); + r.setSign(a.isPositive()); + } + + fn llshl(r: []Limb, a: []const Limb, shift: usize) void { + @setRuntimeSafety(false); + debug.assert(a.len >= 1); + debug.assert(r.len >= a.len + (shift / Limb.bit_count) + 1); + + const limb_shift = shift / Limb.bit_count + 1; + const interior_limb_shift = @intCast(Log2Limb, shift % Limb.bit_count); + + var carry: Limb = 0; + var i: usize = 0; + while (i < a.len) : (i += 1) { + const src_i = a.len - i - 1; + const dst_i = src_i + limb_shift; + + const src_digit = a[src_i]; + r[dst_i] = carry | @inlineCall(math.shr, Limb, src_digit, Limb.bit_count - @intCast(Limb, interior_limb_shift)); + carry = (src_digit << interior_limb_shift); + } + + r[limb_shift - 1] = carry; + mem.set(Limb, r[0 .. limb_shift - 1], 0); + } + + /// r = a >> shift + pub fn shiftRight(r: *Int, a: Int, shift: usize) !void { + r.assertWritable(); + + if (a.len() <= shift / Limb.bit_count) { + r.metadata = 1; + r.limbs[0] = 0; + return; + } + + try r.ensureCapacity(a.len() - (shift / Limb.bit_count)); + const r_len = llshr(r.limbs[0..], a.limbs[0..a.len()], shift); + r.metadata = a.len() - (shift / Limb.bit_count); + r.setSign(a.isPositive()); + } + + fn llshr(r: []Limb, a: []const Limb, shift: usize) void { + @setRuntimeSafety(false); + debug.assert(a.len >= 1); + debug.assert(r.len >= a.len - (shift / Limb.bit_count)); + + const limb_shift = shift / Limb.bit_count; + const interior_limb_shift = @intCast(Log2Limb, shift % Limb.bit_count); + + var carry: Limb = 0; + var i: usize = 0; + while (i < a.len - limb_shift) : (i += 1) { + const src_i = a.len - i - 1; + const dst_i = src_i - limb_shift; + + const src_digit = a[src_i]; + r[dst_i] = carry | (src_digit >> interior_limb_shift); + carry = @inlineCall(math.shl, Limb, src_digit, Limb.bit_count - @intCast(Limb, interior_limb_shift)); + } + } + + /// r = a | b + /// + /// a and b are zero-extended to the longer of a or b. + pub fn bitOr(r: *Int, a: Int, b: Int) !void { + r.assertWritable(); + + if (a.len() > b.len()) { + try r.ensureCapacity(a.len()); + llor(r.limbs[0..], a.limbs[0..a.len()], b.limbs[0..b.len()]); + r.setLen(a.len()); + } else { + try r.ensureCapacity(b.len()); + llor(r.limbs[0..], b.limbs[0..b.len()], a.limbs[0..a.len()]); + r.setLen(b.len()); + } + } + + fn llor(r: []Limb, a: []const Limb, b: []const Limb) void { + @setRuntimeSafety(false); + debug.assert(r.len >= a.len); + debug.assert(a.len >= b.len); + + var i: usize = 0; + while (i < b.len) : (i += 1) { + r[i] = a[i] | b[i]; + } + while (i < a.len) : (i += 1) { + r[i] = a[i]; + } + } + + /// r = a & b + pub fn bitAnd(r: *Int, a: Int, b: Int) !void { + r.assertWritable(); + + if (a.len() > b.len()) { + try r.ensureCapacity(b.len()); + lland(r.limbs[0..], a.limbs[0..a.len()], b.limbs[0..b.len()]); + r.normalize(b.len()); + } else { + try r.ensureCapacity(a.len()); + lland(r.limbs[0..], b.limbs[0..b.len()], a.limbs[0..a.len()]); + r.normalize(a.len()); + } + } + + fn lland(r: []Limb, a: []const Limb, b: []const Limb) void { + @setRuntimeSafety(false); + debug.assert(r.len >= b.len); + debug.assert(a.len >= b.len); + + var i: usize = 0; + while (i < b.len) : (i += 1) { + r[i] = a[i] & b[i]; + } + } + + /// r = a ^ b + pub fn bitXor(r: *Int, a: Int, b: Int) !void { + r.assertWritable(); + + if (a.len() > b.len()) { + try r.ensureCapacity(a.len()); + llxor(r.limbs[0..], a.limbs[0..a.len()], b.limbs[0..b.len()]); + r.normalize(a.len()); + } else { + try r.ensureCapacity(b.len()); + llxor(r.limbs[0..], b.limbs[0..b.len()], a.limbs[0..a.len()]); + r.normalize(b.len()); + } + } + + fn llxor(r: []Limb, a: []const Limb, b: []const Limb) void { + @setRuntimeSafety(false); + debug.assert(r.len >= a.len); + debug.assert(a.len >= b.len); + + var i: usize = 0; + while (i < b.len) : (i += 1) { + r[i] = a[i] ^ b[i]; + } + while (i < a.len) : (i += 1) { + r[i] = a[i]; + } + } +}; + +// NOTE: All the following tests assume the max machine-word will be 64-bit. +// +// They will still run on larger than this and should pass, but the multi-limb code-paths +// may be untested in some cases. + +var buffer: [64 * 8192]u8 = undefined; +var fixed = std.heap.FixedBufferAllocator.init(buffer[0..]); +const al = &fixed.allocator; + +test "big.int comptime_int set" { + comptime var s = 0xefffffff00000001eeeeeeefaaaaaaab; + var a = try Int.initSet(al, s); + + const s_limb_count = 128 / Limb.bit_count; + + comptime var i: usize = 0; + inline while (i < s_limb_count) : (i += 1) { + const result = Limb(s & maxInt(Limb)); + s >>= Limb.bit_count / 2; + s >>= Limb.bit_count / 2; + testing.expect(a.limbs[i] == result); + } +} + +test "big.int comptime_int set negative" { + var a = try Int.initSet(al, -10); + + testing.expect(a.limbs[0] == 10); + testing.expect(a.isPositive() == false); +} + +test "big.int int set unaligned small" { + var a = try Int.initSet(al, u7(45)); + + testing.expect(a.limbs[0] == 45); + testing.expect(a.isPositive() == true); +} + +test "big.int comptime_int to" { + const a = try Int.initSet(al, 0xefffffff00000001eeeeeeefaaaaaaab); + + testing.expect((try a.to(u128)) == 0xefffffff00000001eeeeeeefaaaaaaab); +} + +test "big.int sub-limb to" { + const a = try Int.initSet(al, 10); + + testing.expect((try a.to(u8)) == 10); +} + +test "big.int to target too small error" { + const a = try Int.initSet(al, 0xffffffff); + + testing.expectError(error.TargetTooSmall, a.to(u8)); +} + +test "big.int normalize" { + var a = try Int.init(al); + try a.ensureCapacity(8); + + a.limbs[0] = 1; + a.limbs[1] = 2; + a.limbs[2] = 3; + a.limbs[3] = 0; + a.normalize(4); + testing.expect(a.len() == 3); + + a.limbs[0] = 1; + a.limbs[1] = 2; + a.limbs[2] = 3; + a.normalize(3); + testing.expect(a.len() == 3); + + a.limbs[0] = 0; + a.limbs[1] = 0; + a.normalize(2); + testing.expect(a.len() == 1); + + a.limbs[0] = 0; + a.normalize(1); + testing.expect(a.len() == 1); +} + +test "big.int normalize multi" { + var a = try Int.init(al); + try a.ensureCapacity(8); + + a.limbs[0] = 1; + a.limbs[1] = 2; + a.limbs[2] = 0; + a.limbs[3] = 0; + a.normalize(4); + testing.expect(a.len() == 2); + + a.limbs[0] = 1; + a.limbs[1] = 2; + a.limbs[2] = 3; + a.normalize(3); + testing.expect(a.len() == 3); + + a.limbs[0] = 0; + a.limbs[1] = 0; + a.limbs[2] = 0; + a.limbs[3] = 0; + a.normalize(4); + testing.expect(a.len() == 1); + + a.limbs[0] = 0; + a.normalize(1); + testing.expect(a.len() == 1); +} + +test "big.int parity" { + var a = try Int.init(al); + try a.set(0); + testing.expect(a.isEven()); + testing.expect(!a.isOdd()); + + try a.set(7); + testing.expect(!a.isEven()); + testing.expect(a.isOdd()); +} + +test "big.int bitcount + sizeInBase" { + var a = try Int.init(al); + + try a.set(0b100); + testing.expect(a.bitCountAbs() == 3); + testing.expect(a.sizeInBase(2) >= 3); + testing.expect(a.sizeInBase(10) >= 1); + + a.negate(); + testing.expect(a.bitCountAbs() == 3); + testing.expect(a.sizeInBase(2) >= 4); + testing.expect(a.sizeInBase(10) >= 2); + + try a.set(0xffffffff); + testing.expect(a.bitCountAbs() == 32); + testing.expect(a.sizeInBase(2) >= 32); + testing.expect(a.sizeInBase(10) >= 10); + + try a.shiftLeft(a, 5000); + testing.expect(a.bitCountAbs() == 5032); + testing.expect(a.sizeInBase(2) >= 5032); + a.setSign(false); + + testing.expect(a.bitCountAbs() == 5032); + testing.expect(a.sizeInBase(2) >= 5033); +} + +test "big.int bitcount/to" { + var a = try Int.init(al); + + try a.set(0); + testing.expect(a.bitCountTwosComp() == 0); + + testing.expect((try a.to(u0)) == 0); + testing.expect((try a.to(i0)) == 0); + + try a.set(-1); + testing.expect(a.bitCountTwosComp() == 1); + testing.expect((try a.to(i1)) == -1); + + try a.set(-8); + testing.expect(a.bitCountTwosComp() == 4); + testing.expect((try a.to(i4)) == -8); + + try a.set(127); + testing.expect(a.bitCountTwosComp() == 7); + testing.expect((try a.to(u7)) == 127); + + try a.set(-128); + testing.expect(a.bitCountTwosComp() == 8); + testing.expect((try a.to(i8)) == -128); + + try a.set(-129); + testing.expect(a.bitCountTwosComp() == 9); + testing.expect((try a.to(i9)) == -129); +} + +test "big.int fits" { + var a = try Int.init(al); + + try a.set(0); + testing.expect(a.fits(u0)); + testing.expect(a.fits(i0)); + + try a.set(255); + testing.expect(!a.fits(u0)); + testing.expect(!a.fits(u1)); + testing.expect(!a.fits(i8)); + testing.expect(a.fits(u8)); + testing.expect(a.fits(u9)); + testing.expect(a.fits(i9)); + + try a.set(-128); + testing.expect(!a.fits(i7)); + testing.expect(a.fits(i8)); + testing.expect(a.fits(i9)); + testing.expect(!a.fits(u9)); + + try a.set(0x1ffffffffeeeeeeee); + testing.expect(!a.fits(u32)); + testing.expect(!a.fits(u64)); + testing.expect(a.fits(u65)); +} + +test "big.int string set" { + var a = try Int.init(al); + try a.setString(10, "120317241209124781241290847124"); + + testing.expect((try a.to(u128)) == 120317241209124781241290847124); +} + +test "big.int string negative" { + var a = try Int.init(al); + try a.setString(10, "-1023"); + testing.expect((try a.to(i32)) == -1023); +} + +test "big.int string set bad char error" { + var a = try Int.init(al); + testing.expectError(error.InvalidCharForDigit, a.setString(10, "x")); +} + +test "big.int string set bad base error" { + var a = try Int.init(al); + testing.expectError(error.InvalidBase, a.setString(45, "10")); +} + +test "big.int string to" { + const a = try Int.initSet(al, 120317241209124781241290847124); + + const as = try a.toString(al, 10); + const es = "120317241209124781241290847124"; + + testing.expect(mem.eql(u8, as, es)); +} + +test "big.int string to base base error" { + const a = try Int.initSet(al, 0xffffffff); + + testing.expectError(error.InvalidBase, a.toString(al, 45)); +} + +test "big.int string to base 2" { + const a = try Int.initSet(al, -0b1011); + + const as = try a.toString(al, 2); + const es = "-1011"; + + testing.expect(mem.eql(u8, as, es)); +} + +test "big.int string to base 16" { + const a = try Int.initSet(al, 0xefffffff00000001eeeeeeefaaaaaaab); + + const as = try a.toString(al, 16); + const es = "efffffff00000001eeeeeeefaaaaaaab"; + + testing.expect(mem.eql(u8, as, es)); +} + +test "big.int neg string to" { + const a = try Int.initSet(al, -123907434); + + const as = try a.toString(al, 10); + const es = "-123907434"; + + testing.expect(mem.eql(u8, as, es)); +} + +test "big.int zero string to" { + const a = try Int.initSet(al, 0); + + const as = try a.toString(al, 10); + const es = "0"; + + testing.expect(mem.eql(u8, as, es)); +} + +test "big.int clone" { + var a = try Int.initSet(al, 1234); + const b = try a.clone(); + + testing.expect((try a.to(u32)) == 1234); + testing.expect((try b.to(u32)) == 1234); + + try a.set(77); + testing.expect((try a.to(u32)) == 77); + testing.expect((try b.to(u32)) == 1234); +} + +test "big.int swap" { + var a = try Int.initSet(al, 1234); + var b = try Int.initSet(al, 5678); + + testing.expect((try a.to(u32)) == 1234); + testing.expect((try b.to(u32)) == 5678); + + a.swap(&b); + + testing.expect((try a.to(u32)) == 5678); + testing.expect((try b.to(u32)) == 1234); +} + +test "big.int to negative" { + var a = try Int.initSet(al, -10); + + testing.expect((try a.to(i32)) == -10); +} + +test "big.int compare" { + var a = try Int.initSet(al, -11); + var b = try Int.initSet(al, 10); + + testing.expect(a.cmpAbs(b) == 1); + testing.expect(a.cmp(b) == -1); +} + +test "big.int compare similar" { + var a = try Int.initSet(al, 0xffffffffeeeeeeeeffffffffeeeeeeee); + var b = try Int.initSet(al, 0xffffffffeeeeeeeeffffffffeeeeeeef); + + testing.expect(a.cmpAbs(b) == -1); + testing.expect(b.cmpAbs(a) == 1); +} + +test "big.int compare different limb size" { + var a = try Int.initSet(al, maxInt(Limb) + 1); + var b = try Int.initSet(al, 1); + + testing.expect(a.cmpAbs(b) == 1); + testing.expect(b.cmpAbs(a) == -1); +} + +test "big.int compare multi-limb" { + var a = try Int.initSet(al, -0x7777777799999999ffffeeeeffffeeeeffffeeeef); + var b = try Int.initSet(al, 0x7777777799999999ffffeeeeffffeeeeffffeeeee); + + testing.expect(a.cmpAbs(b) == 1); + testing.expect(a.cmp(b) == -1); +} + +test "big.int equality" { + var a = try Int.initSet(al, 0xffffffff1); + var b = try Int.initSet(al, -0xffffffff1); + + testing.expect(a.eqAbs(b)); + testing.expect(!a.eq(b)); +} + +test "big.int abs" { + var a = try Int.initSet(al, -5); + + a.abs(); + testing.expect((try a.to(u32)) == 5); + + a.abs(); + testing.expect((try a.to(u32)) == 5); +} + +test "big.int negate" { + var a = try Int.initSet(al, 5); + + a.negate(); + testing.expect((try a.to(i32)) == -5); + + a.negate(); + testing.expect((try a.to(i32)) == 5); +} + +test "big.int add single-single" { + var a = try Int.initSet(al, 50); + var b = try Int.initSet(al, 5); + + var c = try Int.init(al); + try c.add(a, b); + + testing.expect((try c.to(u32)) == 55); +} + +test "big.int add multi-single" { + var a = try Int.initSet(al, maxInt(Limb) + 1); + var b = try Int.initSet(al, 1); + + var c = try Int.init(al); + + try c.add(a, b); + testing.expect((try c.to(DoubleLimb)) == maxInt(Limb) + 2); + + try c.add(b, a); + testing.expect((try c.to(DoubleLimb)) == maxInt(Limb) + 2); +} + +test "big.int add multi-multi" { + const op1 = 0xefefefef7f7f7f7f; + const op2 = 0xfefefefe9f9f9f9f; + var a = try Int.initSet(al, op1); + var b = try Int.initSet(al, op2); + + var c = try Int.init(al); + try c.add(a, b); + + testing.expect((try c.to(u128)) == op1 + op2); +} + +test "big.int add zero-zero" { + var a = try Int.initSet(al, 0); + var b = try Int.initSet(al, 0); + + var c = try Int.init(al); + try c.add(a, b); + + testing.expect((try c.to(u32)) == 0); +} + +test "big.int add alias multi-limb nonzero-zero" { + const op1 = 0xffffffff777777771; + var a = try Int.initSet(al, op1); + var b = try Int.initSet(al, 0); + + try a.add(a, b); + + testing.expect((try a.to(u128)) == op1); +} + +test "big.int add sign" { + var a = try Int.init(al); + + const one = try Int.initSet(al, 1); + const two = try Int.initSet(al, 2); + const neg_one = try Int.initSet(al, -1); + const neg_two = try Int.initSet(al, -2); + + try a.add(one, two); + testing.expect((try a.to(i32)) == 3); + + try a.add(neg_one, two); + testing.expect((try a.to(i32)) == 1); + + try a.add(one, neg_two); + testing.expect((try a.to(i32)) == -1); + + try a.add(neg_one, neg_two); + testing.expect((try a.to(i32)) == -3); +} + +test "big.int sub single-single" { + var a = try Int.initSet(al, 50); + var b = try Int.initSet(al, 5); + + var c = try Int.init(al); + try c.sub(a, b); + + testing.expect((try c.to(u32)) == 45); +} + +test "big.int sub multi-single" { + var a = try Int.initSet(al, maxInt(Limb) + 1); + var b = try Int.initSet(al, 1); + + var c = try Int.init(al); + try c.sub(a, b); + + testing.expect((try c.to(Limb)) == maxInt(Limb)); +} + +test "big.int sub multi-multi" { + const op1 = 0xefefefefefefefefefefefef; + const op2 = 0xabababababababababababab; + + var a = try Int.initSet(al, op1); + var b = try Int.initSet(al, op2); + + var c = try Int.init(al); + try c.sub(a, b); + + testing.expect((try c.to(u128)) == op1 - op2); +} + +test "big.int sub equal" { + var a = try Int.initSet(al, 0x11efefefefefefefefefefefef); + var b = try Int.initSet(al, 0x11efefefefefefefefefefefef); + + var c = try Int.init(al); + try c.sub(a, b); + + testing.expect((try c.to(u32)) == 0); +} + +test "big.int sub sign" { + var a = try Int.init(al); + + const one = try Int.initSet(al, 1); + const two = try Int.initSet(al, 2); + const neg_one = try Int.initSet(al, -1); + const neg_two = try Int.initSet(al, -2); + + try a.sub(one, two); + testing.expect((try a.to(i32)) == -1); + + try a.sub(neg_one, two); + testing.expect((try a.to(i32)) == -3); + + try a.sub(one, neg_two); + testing.expect((try a.to(i32)) == 3); + + try a.sub(neg_one, neg_two); + testing.expect((try a.to(i32)) == 1); + + try a.sub(neg_two, neg_one); + testing.expect((try a.to(i32)) == -1); +} + +test "big.int mul single-single" { + var a = try Int.initSet(al, 50); + var b = try Int.initSet(al, 5); + + var c = try Int.init(al); + try c.mul(a, b); + + testing.expect((try c.to(u64)) == 250); +} + +test "big.int mul multi-single" { + var a = try Int.initSet(al, maxInt(Limb)); + var b = try Int.initSet(al, 2); + + var c = try Int.init(al); + try c.mul(a, b); + + testing.expect((try c.to(DoubleLimb)) == 2 * maxInt(Limb)); +} + +test "big.int mul multi-multi" { + const op1 = 0x998888efefefefefefefef; + const op2 = 0x333000abababababababab; + var a = try Int.initSet(al, op1); + var b = try Int.initSet(al, op2); + + var c = try Int.init(al); + try c.mul(a, b); + + testing.expect((try c.to(u256)) == op1 * op2); +} + +test "big.int mul alias r with a" { + var a = try Int.initSet(al, maxInt(Limb)); + var b = try Int.initSet(al, 2); + + try a.mul(a, b); + + testing.expect((try a.to(DoubleLimb)) == 2 * maxInt(Limb)); +} + +test "big.int mul alias r with b" { + var a = try Int.initSet(al, maxInt(Limb)); + var b = try Int.initSet(al, 2); + + try a.mul(b, a); + + testing.expect((try a.to(DoubleLimb)) == 2 * maxInt(Limb)); +} + +test "big.int mul alias r with a and b" { + var a = try Int.initSet(al, maxInt(Limb)); + + try a.mul(a, a); + + testing.expect((try a.to(DoubleLimb)) == maxInt(Limb) * maxInt(Limb)); +} + +test "big.int mul a*0" { + var a = try Int.initSet(al, 0xefefefefefefefef); + var b = try Int.initSet(al, 0); + + var c = try Int.init(al); + try c.mul(a, b); + + testing.expect((try c.to(u32)) == 0); +} + +test "big.int mul 0*0" { + var a = try Int.initSet(al, 0); + var b = try Int.initSet(al, 0); + + var c = try Int.init(al); + try c.mul(a, b); + + testing.expect((try c.to(u32)) == 0); +} + +test "big.int div single-single no rem" { + var a = try Int.initSet(al, 50); + var b = try Int.initSet(al, 5); + + var q = try Int.init(al); + var r = try Int.init(al); + try Int.divTrunc(&q, &r, a, b); + + testing.expect((try q.to(u32)) == 10); + testing.expect((try r.to(u32)) == 0); +} + +test "big.int div single-single with rem" { + var a = try Int.initSet(al, 49); + var b = try Int.initSet(al, 5); + + var q = try Int.init(al); + var r = try Int.init(al); + try Int.divTrunc(&q, &r, a, b); + + testing.expect((try q.to(u32)) == 9); + testing.expect((try r.to(u32)) == 4); +} + +test "big.int div multi-single no rem" { + const op1 = 0xffffeeeeddddcccc; + const op2 = 34; + + var a = try Int.initSet(al, op1); + var b = try Int.initSet(al, op2); + + var q = try Int.init(al); + var r = try Int.init(al); + try Int.divTrunc(&q, &r, a, b); + + testing.expect((try q.to(u64)) == op1 / op2); + testing.expect((try r.to(u64)) == 0); +} + +test "big.int div multi-single with rem" { + const op1 = 0xffffeeeeddddcccf; + const op2 = 34; + + var a = try Int.initSet(al, op1); + var b = try Int.initSet(al, op2); + + var q = try Int.init(al); + var r = try Int.init(al); + try Int.divTrunc(&q, &r, a, b); + + testing.expect((try q.to(u64)) == op1 / op2); + testing.expect((try r.to(u64)) == 3); +} + +test "big.int div multi>2-single" { + const op1 = 0xfefefefefefefefefefefefefefefefe; + const op2 = 0xefab8; + + var a = try Int.initSet(al, op1); + var b = try Int.initSet(al, op2); + + var q = try Int.init(al); + var r = try Int.init(al); + try Int.divTrunc(&q, &r, a, b); + + testing.expect((try q.to(u128)) == op1 / op2); + testing.expect((try r.to(u32)) == 0x3e4e); +} + +test "big.int div single-single q < r" { + var a = try Int.initSet(al, 0x0078f432); + var b = try Int.initSet(al, 0x01000000); + + var q = try Int.init(al); + var r = try Int.init(al); + try Int.divTrunc(&q, &r, a, b); + + testing.expect((try q.to(u64)) == 0); + testing.expect((try r.to(u64)) == 0x0078f432); +} + +test "big.int div single-single q == r" { + var a = try Int.initSet(al, 10); + var b = try Int.initSet(al, 10); + + var q = try Int.init(al); + var r = try Int.init(al); + try Int.divTrunc(&q, &r, a, b); + + testing.expect((try q.to(u64)) == 1); + testing.expect((try r.to(u64)) == 0); +} + +test "big.int div q=0 alias" { + var a = try Int.initSet(al, 3); + var b = try Int.initSet(al, 10); + + try Int.divTrunc(&a, &b, a, b); + + testing.expect((try a.to(u64)) == 0); + testing.expect((try b.to(u64)) == 3); +} + +test "big.int div multi-multi q < r" { + const op1 = 0x1ffffffff0078f432; + const op2 = 0x1ffffffff01000000; + var a = try Int.initSet(al, op1); + var b = try Int.initSet(al, op2); + + var q = try Int.init(al); + var r = try Int.init(al); + try Int.divTrunc(&q, &r, a, b); + + testing.expect((try q.to(u128)) == 0); + testing.expect((try r.to(u128)) == op1); +} + +test "big.int div trunc single-single +/+" { + const u: i32 = 5; + const v: i32 = 3; + + var a = try Int.initSet(al, u); + var b = try Int.initSet(al, v); + + var q = try Int.init(al); + var r = try Int.init(al); + try Int.divTrunc(&q, &r, a, b); + + // n = q * d + r + // 5 = 1 * 3 + 2 + const eq = @divTrunc(u, v); + const er = @mod(u, v); + + testing.expect((try q.to(i32)) == eq); + testing.expect((try r.to(i32)) == er); +} + +test "big.int div trunc single-single -/+" { + const u: i32 = -5; + const v: i32 = 3; + + var a = try Int.initSet(al, u); + var b = try Int.initSet(al, v); + + var q = try Int.init(al); + var r = try Int.init(al); + try Int.divTrunc(&q, &r, a, b); + + // n = q * d + r + // -5 = 1 * -3 - 2 + const eq = -1; + const er = -2; + + testing.expect((try q.to(i32)) == eq); + testing.expect((try r.to(i32)) == er); +} + +test "big.int div trunc single-single +/-" { + const u: i32 = 5; + const v: i32 = -3; + + var a = try Int.initSet(al, u); + var b = try Int.initSet(al, v); + + var q = try Int.init(al); + var r = try Int.init(al); + try Int.divTrunc(&q, &r, a, b); + + // n = q * d + r + // 5 = -1 * -3 + 2 + const eq = -1; + const er = 2; + + testing.expect((try q.to(i32)) == eq); + testing.expect((try r.to(i32)) == er); +} + +test "big.int div trunc single-single -/-" { + const u: i32 = -5; + const v: i32 = -3; + + var a = try Int.initSet(al, u); + var b = try Int.initSet(al, v); + + var q = try Int.init(al); + var r = try Int.init(al); + try Int.divTrunc(&q, &r, a, b); + + // n = q * d + r + // -5 = 1 * -3 - 2 + const eq = 1; + const er = -2; + + testing.expect((try q.to(i32)) == eq); + testing.expect((try r.to(i32)) == er); +} + +test "big.int div floor single-single +/+" { + const u: i32 = 5; + const v: i32 = 3; + + var a = try Int.initSet(al, u); + var b = try Int.initSet(al, v); + + var q = try Int.init(al); + var r = try Int.init(al); + try Int.divFloor(&q, &r, a, b); + + // n = q * d + r + // 5 = 1 * 3 + 2 + const eq = 1; + const er = 2; + + testing.expect((try q.to(i32)) == eq); + testing.expect((try r.to(i32)) == er); +} + +test "big.int div floor single-single -/+" { + const u: i32 = -5; + const v: i32 = 3; + + var a = try Int.initSet(al, u); + var b = try Int.initSet(al, v); + + var q = try Int.init(al); + var r = try Int.init(al); + try Int.divFloor(&q, &r, a, b); + + // n = q * d + r + // -5 = -2 * 3 + 1 + const eq = -2; + const er = 1; + + testing.expect((try q.to(i32)) == eq); + testing.expect((try r.to(i32)) == er); +} + +test "big.int div floor single-single +/-" { + const u: i32 = 5; + const v: i32 = -3; + + var a = try Int.initSet(al, u); + var b = try Int.initSet(al, v); + + var q = try Int.init(al); + var r = try Int.init(al); + try Int.divFloor(&q, &r, a, b); + + // n = q * d + r + // 5 = -2 * -3 - 1 + const eq = -2; + const er = -1; + + testing.expect((try q.to(i32)) == eq); + testing.expect((try r.to(i32)) == er); +} + +test "big.int div floor single-single -/-" { + const u: i32 = -5; + const v: i32 = -3; + + var a = try Int.initSet(al, u); + var b = try Int.initSet(al, v); + + var q = try Int.init(al); + var r = try Int.init(al); + try Int.divFloor(&q, &r, a, b); + + // n = q * d + r + // -5 = 2 * -3 + 1 + const eq = 1; + const er = -2; + + testing.expect((try q.to(i32)) == eq); + testing.expect((try r.to(i32)) == er); +} + +test "big.int div multi-multi with rem" { + var a = try Int.initSet(al, 0x8888999911110000ffffeeeeddddccccbbbbaaaa9999); + var b = try Int.initSet(al, 0x99990000111122223333); + + var q = try Int.init(al); + var r = try Int.init(al); + try Int.divTrunc(&q, &r, a, b); + + testing.expect((try q.to(u128)) == 0xe38f38e39161aaabd03f0f1b); + testing.expect((try r.to(u128)) == 0x28de0acacd806823638); +} + +test "big.int div multi-multi no rem" { + var a = try Int.initSet(al, 0x8888999911110000ffffeeeedb4fec200ee3a4286361); + var b = try Int.initSet(al, 0x99990000111122223333); + + var q = try Int.init(al); + var r = try Int.init(al); + try Int.divTrunc(&q, &r, a, b); + + testing.expect((try q.to(u128)) == 0xe38f38e39161aaabd03f0f1b); + testing.expect((try r.to(u128)) == 0); +} + +test "big.int div multi-multi (2 branch)" { + var a = try Int.initSet(al, 0x866666665555555588888887777777761111111111111111); + var b = try Int.initSet(al, 0x86666666555555554444444433333333); + + var q = try Int.init(al); + var r = try Int.init(al); + try Int.divTrunc(&q, &r, a, b); + + testing.expect((try q.to(u128)) == 0x10000000000000000); + testing.expect((try r.to(u128)) == 0x44444443444444431111111111111111); +} + +test "big.int div multi-multi (3.1/3.3 branch)" { + var a = try Int.initSet(al, 0x11111111111111111111111111111111111111111111111111111111111111); + var b = try Int.initSet(al, 0x1111111111111111111111111111111111111111171); + + var q = try Int.init(al); + var r = try Int.init(al); + try Int.divTrunc(&q, &r, a, b); + + testing.expect((try q.to(u128)) == 0xfffffffffffffffffff); + testing.expect((try r.to(u256)) == 0x1111111111111111111110b12222222222222222282); +} + +test "big.int div multi-single zero-limb trailing" { + var a = try Int.initSet(al, 0x60000000000000000000000000000000000000000000000000000000000000000); + var b = try Int.initSet(al, 0x10000000000000000); + + var q = try Int.init(al); + var r = try Int.init(al); + try Int.divTrunc(&q, &r, a, b); + + var expected = try Int.initSet(al, 0x6000000000000000000000000000000000000000000000000); + testing.expect(q.eq(expected)); + testing.expect(r.eqZero()); +} + +test "big.int div multi-multi zero-limb trailing (with rem)" { + var a = try Int.initSet(al, 0x86666666555555558888888777777776111111111111111100000000000000000000000000000000); + var b = try Int.initSet(al, 0x8666666655555555444444443333333300000000000000000000000000000000); + + var q = try Int.init(al); + var r = try Int.init(al); + try Int.divTrunc(&q, &r, a, b); + + testing.expect((try q.to(u128)) == 0x10000000000000000); + + const rs = try r.toString(al, 16); + testing.expect(std.mem.eql(u8, rs, "4444444344444443111111111111111100000000000000000000000000000000")); +} + +test "big.int div multi-multi zero-limb trailing (with rem) and dividend zero-limb count > divisor zero-limb count" { + var a = try Int.initSet(al, 0x8666666655555555888888877777777611111111111111110000000000000000); + var b = try Int.initSet(al, 0x8666666655555555444444443333333300000000000000000000000000000000); + + var q = try Int.init(al); + var r = try Int.init(al); + try Int.divTrunc(&q, &r, a, b); + + testing.expect((try q.to(u128)) == 0x1); + + const rs = try r.toString(al, 16); + testing.expect(std.mem.eql(u8, rs, "444444434444444311111111111111110000000000000000")); +} + +test "big.int div multi-multi zero-limb trailing (with rem) and dividend zero-limb count < divisor zero-limb count" { + var a = try Int.initSet(al, 0x86666666555555558888888777777776111111111111111100000000000000000000000000000000); + var b = try Int.initSet(al, 0x866666665555555544444444333333330000000000000000); + + var q = try Int.init(al); + var r = try Int.init(al); + try Int.divTrunc(&q, &r, a, b); + + const qs = try q.toString(al, 16); + testing.expect(std.mem.eql(u8, qs, "10000000000000000820820803105186f")); + + const rs = try r.toString(al, 16); + testing.expect(std.mem.eql(u8, rs, "4e11f2baa5896a321d463b543d0104e30000000000000000")); +} + +test "big.int div multi-multi fuzz case #1" { + var a = try Int.init(al); + var b = try Int.init(al); + + try a.setString(16, "ffffffffffffffffffffffffffffc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"); + try b.setString(16, "3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffc000000000000000000000000000000007fffffffffff"); + + var q = try Int.init(al); + var r = try Int.init(al); + try Int.divTrunc(&q, &r, a, b); + + const qs = try q.toString(al, 16); + testing.expect(std.mem.eql(u8, qs, "3ffffffffffffffffffffffffffff0000000000000000000000000000000000001ffffffffffffffffffffffffffff7fffffffe000000000000000000000000000180000000000000000000003fffffbfffffffdfffffffffffffeffff800000100101000000100000000020003fffffdfbfffffe3ffffffffffffeffff7fffc00800a100000017ffe000002000400007efbfff7fe9f00000037ffff3fff7fffa004006100000009ffe00000190038200bf7d2ff7fefe80400060000f7d7f8fbf9401fe38e0403ffc0bdffffa51102c300d7be5ef9df4e5060007b0127ad3fa69f97d0f820b6605ff617ddf7f32ad7a05c0d03f2e7bc78a6000e087a8bbcdc59e07a5a079128a7861f553ddebed7e8e56701756f9ead39b48cd1b0831889ea6ec1fddf643d0565b075ff07e6caea4e2854ec9227fd635ed60a2f5eef2893052ffd54718fa08604acbf6a15e78a467c4a3c53c0278af06c4416573f925491b195e8fd79302cb1aaf7caf4ecfc9aec1254cc969786363ac729f914c6ddcc26738d6b0facd54eba026580aba2eb6482a088b0d224a8852420b91ec1")); + + const rs = try r.toString(al, 16); + testing.expect(std.mem.eql(u8, rs, "310d1d4c414426b4836c2635bad1df3a424e50cbdd167ffccb4dfff57d36b4aae0d6ca0910698220171a0f3373c1060a046c2812f0027e321f72979daa5e7973214170d49e885de0c0ecc167837d44502430674a82522e5df6a0759548052420b91ec1")); +} + +test "big.int div multi-multi fuzz case #2" { + var a = try Int.init(al); + var b = try Int.init(al); + + try a.setString(16, "3ffffffffe00000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffe000000000000000000000000000000000000000000000000000000000000001fffffffffffffffff800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffc000000000000000000000000000000000000000000000000000000000000000"); + try b.setString(16, "ffc0000000000000000000000000000000000000000000000000"); + + var q = try Int.init(al); + var r = try Int.init(al); + try Int.divTrunc(&q, &r, a, b); + + const qs = try q.toString(al, 16); + testing.expect(std.mem.eql(u8, qs, "40100400fe3f8fe3f8fe3f8fe3f8fe3f8fe4f93e4f93e4f93e4f93e4f93e4f93e4f93e4f93e4f93e4f93e4f93e4f91e4791e4791e4791e4791e4791e4791e4791e4791e4791e4791e4791e4791e4992649926499264991e4791e4791e4791e4791e4791e4791e4791e4791e4791e4791e4791e4791e4791e4791e4791e4791e4791e4791e4791e4791e4791e4791e4791e4792e4b92e4b92e4b92e4b92a4a92a4a92a4")); + + const rs = try r.toString(al, 16); + testing.expect(std.mem.eql(u8, rs, "a900000000000000000000000000000000000000000000000000")); +} + +test "big.int shift-right single" { + var a = try Int.initSet(al, 0xffff0000); + try a.shiftRight(a, 16); + + testing.expect((try a.to(u32)) == 0xffff); +} + +test "big.int shift-right multi" { + var a = try Int.initSet(al, 0xffff0000eeee1111dddd2222cccc3333); + try a.shiftRight(a, 67); + + testing.expect((try a.to(u64)) == 0x1fffe0001dddc222); +} + +test "big.int shift-left single" { + var a = try Int.initSet(al, 0xffff); + try a.shiftLeft(a, 16); + + testing.expect((try a.to(u64)) == 0xffff0000); +} + +test "big.int shift-left multi" { + var a = try Int.initSet(al, 0x1fffe0001dddc222); + try a.shiftLeft(a, 67); + + testing.expect((try a.to(u128)) == 0xffff0000eeee11100000000000000000); +} + +test "big.int shift-right negative" { + var a = try Int.init(al); + + try a.shiftRight(try Int.initSet(al, -20), 2); + testing.expect((try a.to(i32)) == -20 >> 2); + + try a.shiftRight(try Int.initSet(al, -5), 10); + testing.expect((try a.to(i32)) == -5 >> 10); +} + +test "big.int shift-left negative" { + var a = try Int.init(al); + + try a.shiftRight(try Int.initSet(al, -10), 1232); + testing.expect((try a.to(i32)) == -10 >> 1232); +} + +test "big.int bitwise and simple" { + var a = try Int.initSet(al, 0xffffffff11111111); + var b = try Int.initSet(al, 0xeeeeeeee22222222); + + try a.bitAnd(a, b); + + testing.expect((try a.to(u64)) == 0xeeeeeeee00000000); +} + +test "big.int bitwise and multi-limb" { + var a = try Int.initSet(al, maxInt(Limb) + 1); + var b = try Int.initSet(al, maxInt(Limb)); + + try a.bitAnd(a, b); + + testing.expect((try a.to(u128)) == 0); +} + +test "big.int bitwise xor simple" { + var a = try Int.initSet(al, 0xffffffff11111111); + var b = try Int.initSet(al, 0xeeeeeeee22222222); + + try a.bitXor(a, b); + + testing.expect((try a.to(u64)) == 0x1111111133333333); +} + +test "big.int bitwise xor multi-limb" { + var a = try Int.initSet(al, maxInt(Limb) + 1); + var b = try Int.initSet(al, maxInt(Limb)); + + try a.bitXor(a, b); + + testing.expect((try a.to(DoubleLimb)) == (maxInt(Limb) + 1) ^ maxInt(Limb)); +} + +test "big.int bitwise or simple" { + var a = try Int.initSet(al, 0xffffffff11111111); + var b = try Int.initSet(al, 0xeeeeeeee22222222); + + try a.bitOr(a, b); + + testing.expect((try a.to(u64)) == 0xffffffff33333333); +} + +test "big.int bitwise or multi-limb" { + var a = try Int.initSet(al, maxInt(Limb) + 1); + var b = try Int.initSet(al, maxInt(Limb)); + + try a.bitOr(a, b); + + // TODO: big.int.cpp or is wrong on multi-limb. + testing.expect((try a.to(DoubleLimb)) == (maxInt(Limb) + 1) + maxInt(Limb)); +} + +test "big.int var args" { + var a = try Int.initSet(al, 5); + + try a.add(a, try Int.initSet(al, 6)); + testing.expect((try a.to(u64)) == 11); + + testing.expect(a.cmp(try Int.initSet(al, 11)) == 0); + testing.expect(a.cmp(try Int.initSet(al, 14)) <= 0); +} diff --git a/lib/std/math/big/rational.zig b/lib/std/math/big/rational.zig new file mode 100644 index 0000000000..6a51931e3c --- /dev/null +++ b/lib/std/math/big/rational.zig @@ -0,0 +1,946 @@ +const std = @import("../../std.zig"); +const builtin = @import("builtin"); +const debug = std.debug; +const math = std.math; +const mem = std.mem; +const testing = std.testing; +const Allocator = mem.Allocator; +const ArrayList = std.ArrayList; + +const TypeId = builtin.TypeId; + +const bn = @import("int.zig"); +const Limb = bn.Limb; +const DoubleLimb = bn.DoubleLimb; +const Int = bn.Int; + +/// An arbitrary-precision rational number. +/// +/// Memory is allocated as needed for operations to ensure full precision is kept. The precision +/// of a Rational is only bounded by memory. +/// +/// Rational's are always normalized. That is, for a Rational r = p/q where p and q are integers, +/// gcd(p, q) = 1 always. +pub const Rational = struct { + /// Numerator. Determines the sign of the Rational. + p: Int, + + /// Denominator. Sign is ignored. + q: Int, + + /// Create a new Rational. A small amount of memory will be allocated on initialization. + /// This will be 2 * Int.default_capacity. + pub fn init(a: *Allocator) !Rational { + return Rational{ + .p = try Int.init(a), + .q = try Int.initSet(a, 1), + }; + } + + /// Frees all memory associated with a Rational. + pub fn deinit(self: *Rational) void { + self.p.deinit(); + self.q.deinit(); + } + + /// Set a Rational from a primitive integer type. + pub fn setInt(self: *Rational, a: var) !void { + try self.p.set(a); + try self.q.set(1); + } + + /// Set a Rational from a string of the form `A/B` where A and B are base-10 integers. + pub fn setFloatString(self: *Rational, str: []const u8) !void { + // TODO: Accept a/b fractions and exponent form + if (str.len == 0) { + return error.InvalidFloatString; + } + + const State = enum { + Integer, + Fractional, + }; + + var state = State.Integer; + var point: ?usize = null; + + var start: usize = 0; + if (str[0] == '-') { + start += 1; + } + + for (str) |c, i| { + switch (state) { + State.Integer => { + switch (c) { + '.' => { + state = State.Fractional; + point = i; + }, + '0'...'9' => { + // okay + }, + else => { + return error.InvalidFloatString; + }, + } + }, + State.Fractional => { + switch (c) { + '0'...'9' => { + // okay + }, + else => { + return error.InvalidFloatString; + }, + } + }, + } + } + + // TODO: batch the multiplies by 10 + if (point) |i| { + try self.p.setString(10, str[0..i]); + + const base = Int.initFixed(([_]Limb{10})[0..]); + + var j: usize = start; + while (j < str.len - i - 1) : (j += 1) { + try self.p.mul(self.p, base); + } + + try self.q.setString(10, str[i + 1 ..]); + try self.p.add(self.p, self.q); + + try self.q.set(1); + var k: usize = i + 1; + while (k < str.len) : (k += 1) { + try self.q.mul(self.q, base); + } + + try self.reduce(); + } else { + try self.p.setString(10, str[0..]); + try self.q.set(1); + } + } + + /// Set a Rational from a floating-point value. The rational will have enough precision to + /// completely represent the provided float. + pub fn setFloat(self: *Rational, comptime T: type, f: T) !void { + // Translated from golang.go/src/math/big/rat.go. + debug.assert(@typeId(T) == builtin.TypeId.Float); + + const UnsignedIntType = @IntType(false, T.bit_count); + const f_bits = @bitCast(UnsignedIntType, f); + + const exponent_bits = math.floatExponentBits(T); + const exponent_bias = (1 << (exponent_bits - 1)) - 1; + const mantissa_bits = math.floatMantissaBits(T); + + const exponent_mask = (1 << exponent_bits) - 1; + const mantissa_mask = (1 << mantissa_bits) - 1; + + var exponent = @intCast(i16, (f_bits >> mantissa_bits) & exponent_mask); + var mantissa = f_bits & mantissa_mask; + + switch (exponent) { + exponent_mask => { + return error.NonFiniteFloat; + }, + 0 => { + // denormal + exponent -= exponent_bias - 1; + }, + else => { + // normal + mantissa |= 1 << mantissa_bits; + exponent -= exponent_bias; + }, + } + + var shift: i16 = mantissa_bits - exponent; + + // factor out powers of two early from rational + while (mantissa & 1 == 0 and shift > 0) { + mantissa >>= 1; + shift -= 1; + } + + try self.p.set(mantissa); + self.p.setSign(f >= 0); + + try self.q.set(1); + if (shift >= 0) { + try self.q.shiftLeft(self.q, @intCast(usize, shift)); + } else { + try self.p.shiftLeft(self.p, @intCast(usize, -shift)); + } + + try self.reduce(); + } + + /// Return a floating-point value that is the closest value to a Rational. + /// + /// The result may not be exact if the Rational is too precise or too large for the + /// target type. + pub fn toFloat(self: Rational, comptime T: type) !T { + // Translated from golang.go/src/math/big/rat.go. + // TODO: Indicate whether the result is not exact. + debug.assert(@typeId(T) == builtin.TypeId.Float); + + const fsize = T.bit_count; + const BitReprType = @IntType(false, T.bit_count); + + const msize = math.floatMantissaBits(T); + const msize1 = msize + 1; + const msize2 = msize1 + 1; + + const esize = math.floatExponentBits(T); + const ebias = (1 << (esize - 1)) - 1; + const emin = 1 - ebias; + const emax = ebias; + + if (self.p.eqZero()) { + return 0; + } + + // 1. left-shift a or sub so that a/b is in [1 << msize1, 1 << (msize2 + 1)] + var exp = @intCast(isize, self.p.bitCountTwosComp()) - @intCast(isize, self.q.bitCountTwosComp()); + + var a2 = try self.p.clone(); + defer a2.deinit(); + + var b2 = try self.q.clone(); + defer b2.deinit(); + + const shift = msize2 - exp; + if (shift >= 0) { + try a2.shiftLeft(a2, @intCast(usize, shift)); + } else { + try b2.shiftLeft(b2, @intCast(usize, -shift)); + } + + // 2. compute quotient and remainder + var q = try Int.init(self.p.allocator.?); + defer q.deinit(); + + // unused + var r = try Int.init(self.p.allocator.?); + defer r.deinit(); + + try Int.divTrunc(&q, &r, a2, b2); + + var mantissa = extractLowBits(q, BitReprType); + var have_rem = r.len() > 0; + + // 3. q didn't fit in msize2 bits, redo division b2 << 1 + if (mantissa >> msize2 == 1) { + if (mantissa & 1 == 1) { + have_rem = true; + } + mantissa >>= 1; + exp += 1; + } + if (mantissa >> msize1 != 1) { + // NOTE: This can be hit if the limb size is small (u8/16). + @panic("unexpected bits in result"); + } + + // 4. Rounding + if (emin - msize <= exp and exp <= emin) { + // denormal + const shift1 = @intCast(math.Log2Int(BitReprType), emin - (exp - 1)); + const lost_bits = mantissa & ((@intCast(BitReprType, 1) << shift1) - 1); + have_rem = have_rem or lost_bits != 0; + mantissa >>= shift1; + exp = 2 - ebias; + } + + // round q using round-half-to-even + var exact = !have_rem; + if (mantissa & 1 != 0) { + exact = false; + if (have_rem or (mantissa & 2 != 0)) { + mantissa += 1; + if (mantissa >= 1 << msize2) { + // 11...1 => 100...0 + mantissa >>= 1; + exp += 1; + } + } + } + mantissa >>= 1; + + const f = math.scalbn(@intToFloat(T, mantissa), @intCast(i32, exp - msize1)); + if (math.isInf(f)) { + exact = false; + } + + return if (self.p.isPositive()) f else -f; + } + + /// Set a rational from an integer ratio. + pub fn setRatio(self: *Rational, p: var, q: var) !void { + try self.p.set(p); + try self.q.set(q); + + self.p.setSign(@boolToInt(self.p.isPositive()) ^ @boolToInt(self.q.isPositive()) == 0); + self.q.setSign(true); + + try self.reduce(); + + if (self.q.eqZero()) { + @panic("cannot set rational with denominator = 0"); + } + } + + /// Set a Rational directly from an Int. + pub fn copyInt(self: *Rational, a: Int) !void { + try self.p.copy(a); + try self.q.set(1); + } + + /// Set a Rational directly from a ratio of two Int's. + pub fn copyRatio(self: *Rational, a: Int, b: Int) !void { + try self.p.copy(a); + try self.q.copy(b); + + self.p.setSign(@boolToInt(self.p.isPositive()) ^ @boolToInt(self.q.isPositive()) == 0); + self.q.setSign(true); + + try self.reduce(); + } + + /// Make a Rational positive. + pub fn abs(r: *Rational) void { + r.p.abs(); + } + + /// Negate the sign of a Rational. + pub fn negate(r: *Rational) void { + r.p.negate(); + } + + /// Efficiently swap a Rational with another. This swaps the limb pointers and a full copy is not + /// performed. The address of the limbs field will not be the same after this function. + pub fn swap(r: *Rational, other: *Rational) void { + r.p.swap(&other.p); + r.q.swap(&other.q); + } + + /// Returns -1, 0, 1 if a < b, a == b or a > b respectively. + pub fn cmp(a: Rational, b: Rational) !i8 { + return cmpInternal(a, b, true); + } + + /// Returns -1, 0, 1 if |a| < |b|, |a| == |b| or |a| > |b| respectively. + pub fn cmpAbs(a: Rational, b: Rational) !i8 { + return cmpInternal(a, b, false); + } + + // p/q > x/y iff p*y > x*q + fn cmpInternal(a: Rational, b: Rational, is_abs: bool) !i8 { + // TODO: Would a div compare algorithm of sorts be viable and quicker? Can we avoid + // the memory allocations here? + var q = try Int.init(a.p.allocator.?); + defer q.deinit(); + + var p = try Int.init(b.p.allocator.?); + defer p.deinit(); + + try q.mul(a.p, b.q); + try p.mul(b.p, a.q); + + return if (is_abs) q.cmpAbs(p) else q.cmp(p); + } + + /// rma = a + b. + /// + /// rma, a and b may be aliases. However, it is more efficient if rma does not alias a or b. + /// + /// Returns an error if memory could not be allocated. + pub fn add(rma: *Rational, a: Rational, b: Rational) !void { + var r = rma; + var aliased = rma.p.limbs.ptr == a.p.limbs.ptr or rma.p.limbs.ptr == b.p.limbs.ptr; + + var sr: Rational = undefined; + if (aliased) { + sr = try Rational.init(rma.p.allocator.?); + r = &sr; + aliased = true; + } + defer if (aliased) { + rma.swap(r); + r.deinit(); + }; + + try r.p.mul(a.p, b.q); + try r.q.mul(b.p, a.q); + try r.p.add(r.p, r.q); + + try r.q.mul(a.q, b.q); + try r.reduce(); + } + + /// rma = a - b. + /// + /// rma, a and b may be aliases. However, it is more efficient if rma does not alias a or b. + /// + /// Returns an error if memory could not be allocated. + pub fn sub(rma: *Rational, a: Rational, b: Rational) !void { + var r = rma; + var aliased = rma.p.limbs.ptr == a.p.limbs.ptr or rma.p.limbs.ptr == b.p.limbs.ptr; + + var sr: Rational = undefined; + if (aliased) { + sr = try Rational.init(rma.p.allocator.?); + r = &sr; + aliased = true; + } + defer if (aliased) { + rma.swap(r); + r.deinit(); + }; + + try r.p.mul(a.p, b.q); + try r.q.mul(b.p, a.q); + try r.p.sub(r.p, r.q); + + try r.q.mul(a.q, b.q); + try r.reduce(); + } + + /// rma = a * b. + /// + /// rma, a and b may be aliases. However, it is more efficient if rma does not alias a or b. + /// + /// Returns an error if memory could not be allocated. + pub fn mul(r: *Rational, a: Rational, b: Rational) !void { + try r.p.mul(a.p, b.p); + try r.q.mul(a.q, b.q); + try r.reduce(); + } + + /// rma = a / b. + /// + /// rma, a and b may be aliases. However, it is more efficient if rma does not alias a or b. + /// + /// Returns an error if memory could not be allocated. + pub fn div(r: *Rational, a: Rational, b: Rational) !void { + if (b.p.eqZero()) { + @panic("division by zero"); + } + + try r.p.mul(a.p, b.q); + try r.q.mul(b.p, a.q); + try r.reduce(); + } + + /// Invert the numerator and denominator fields of a Rational. p/q => q/p. + pub fn invert(r: *Rational) void { + Int.swap(&r.p, &r.q); + } + + // reduce r/q such that gcd(r, q) = 1 + fn reduce(r: *Rational) !void { + var a = try Int.init(r.p.allocator.?); + defer a.deinit(); + + const sign = r.p.isPositive(); + r.p.abs(); + try gcd(&a, r.p, r.q); + r.p.setSign(sign); + + const one = Int.initFixed(([_]Limb{1})[0..]); + if (a.cmp(one) != 0) { + var unused = try Int.init(r.p.allocator.?); + defer unused.deinit(); + + // TODO: divexact would be useful here + // TODO: don't copy r.q for div + try Int.divTrunc(&r.p, &unused, r.p, a); + try Int.divTrunc(&r.q, &unused, r.q, a); + } + } +}; + +const SignedDoubleLimb = @IntType(true, DoubleLimb.bit_count); + +fn gcd(rma: *Int, x: Int, y: Int) !void { + rma.assertWritable(); + var r = rma; + var aliased = rma.limbs.ptr == x.limbs.ptr or rma.limbs.ptr == y.limbs.ptr; + + var sr: Int = undefined; + if (aliased) { + sr = try Int.initCapacity(rma.allocator.?, math.max(x.len(), y.len())); + r = &sr; + aliased = true; + } + defer if (aliased) { + rma.swap(r); + r.deinit(); + }; + + try gcdLehmer(r, x, y); +} + +// Storage must live for the lifetime of the returned value +fn FixedIntFromSignedDoubleLimb(A: SignedDoubleLimb, storage: []Limb) Int { + std.debug.assert(storage.len >= 2); + + var A_is_positive = A >= 0; + const Au = @intCast(DoubleLimb, if (A < 0) -A else A); + storage[0] = @truncate(Limb, Au); + storage[1] = @truncate(Limb, Au >> Limb.bit_count); + var Ap = Int.initFixed(storage[0..2]); + Ap.setSign(A_is_positive); + return Ap; +} + +fn gcdLehmer(r: *Int, xa: Int, ya: Int) !void { + var x = try xa.clone(); + x.abs(); + defer x.deinit(); + + var y = try ya.clone(); + y.abs(); + defer y.deinit(); + + if (x.cmp(y) < 0) { + x.swap(&y); + } + + var T = try Int.init(r.allocator.?); + defer T.deinit(); + + while (y.len() > 1) { + debug.assert(x.isPositive() and y.isPositive()); + debug.assert(x.len() >= y.len()); + + var xh: SignedDoubleLimb = x.limbs[x.len() - 1]; + var yh: SignedDoubleLimb = if (x.len() > y.len()) 0 else y.limbs[x.len() - 1]; + + var A: SignedDoubleLimb = 1; + var B: SignedDoubleLimb = 0; + var C: SignedDoubleLimb = 0; + var D: SignedDoubleLimb = 1; + + while (yh + C != 0 and yh + D != 0) { + const q = @divFloor(xh + A, yh + C); + const qp = @divFloor(xh + B, yh + D); + if (q != qp) { + break; + } + + var t = A - q * C; + A = C; + C = t; + t = B - q * D; + B = D; + D = t; + + t = xh - q * yh; + xh = yh; + yh = t; + } + + if (B == 0) { + // T = x % y, r is unused + try Int.divTrunc(r, &T, x, y); + debug.assert(T.isPositive()); + + x.swap(&y); + y.swap(&T); + } else { + var storage: [8]Limb = undefined; + const Ap = FixedIntFromSignedDoubleLimb(A, storage[0..2]); + const Bp = FixedIntFromSignedDoubleLimb(B, storage[2..4]); + const Cp = FixedIntFromSignedDoubleLimb(C, storage[4..6]); + const Dp = FixedIntFromSignedDoubleLimb(D, storage[6..8]); + + // T = Ax + By + try r.mul(x, Ap); + try T.mul(y, Bp); + try T.add(r.*, T); + + // u = Cx + Dy, r as u + try x.mul(x, Cp); + try r.mul(y, Dp); + try r.add(x, r.*); + + x.swap(&T); + y.swap(r); + } + } + + // euclidean algorithm + debug.assert(x.cmp(y) >= 0); + + while (!y.eqZero()) { + try Int.divTrunc(&T, r, x, y); + x.swap(&y); + y.swap(r); + } + + r.swap(&x); +} + +var buffer: [64 * 8192]u8 = undefined; +var fixed = std.heap.FixedBufferAllocator.init(buffer[0..]); +var al = &fixed.allocator; + +test "big.rational gcd non-one small" { + var a = try Int.initSet(al, 17); + var b = try Int.initSet(al, 97); + var r = try Int.init(al); + + try gcd(&r, a, b); + + testing.expect((try r.to(u32)) == 1); +} + +test "big.rational gcd non-one small" { + var a = try Int.initSet(al, 4864); + var b = try Int.initSet(al, 3458); + var r = try Int.init(al); + + try gcd(&r, a, b); + + testing.expect((try r.to(u32)) == 38); +} + +test "big.rational gcd non-one large" { + var a = try Int.initSet(al, 0xffffffffffffffff); + var b = try Int.initSet(al, 0xffffffffffffffff7777); + var r = try Int.init(al); + + try gcd(&r, a, b); + + testing.expect((try r.to(u32)) == 4369); +} + +test "big.rational gcd large multi-limb result" { + var a = try Int.initSet(al, 0x12345678123456781234567812345678123456781234567812345678); + var b = try Int.initSet(al, 0x12345671234567123456712345671234567123456712345671234567); + var r = try Int.init(al); + + try gcd(&r, a, b); + + testing.expect((try r.to(u256)) == 0xf000000ff00000fff0000ffff000fffff00ffffff1); +} + +test "big.rational gcd one large" { + var a = try Int.initSet(al, 1897056385327307); + var b = try Int.initSet(al, 2251799813685248); + var r = try Int.init(al); + + try gcd(&r, a, b); + + testing.expect((try r.to(u64)) == 1); +} + +fn extractLowBits(a: Int, comptime T: type) T { + testing.expect(@typeId(T) == builtin.TypeId.Int); + + if (T.bit_count <= Limb.bit_count) { + return @truncate(T, a.limbs[0]); + } else { + var r: T = 0; + comptime var i: usize = 0; + + // Remainder is always 0 since if T.bit_count >= Limb.bit_count -> Limb | T and both + // are powers of two. + inline while (i < T.bit_count / Limb.bit_count) : (i += 1) { + r |= math.shl(T, a.limbs[i], i * Limb.bit_count); + } + + return r; + } +} + +test "big.rational extractLowBits" { + var a = try Int.initSet(al, 0x11112222333344441234567887654321); + + const a1 = extractLowBits(a, u8); + testing.expect(a1 == 0x21); + + const a2 = extractLowBits(a, u16); + testing.expect(a2 == 0x4321); + + const a3 = extractLowBits(a, u32); + testing.expect(a3 == 0x87654321); + + const a4 = extractLowBits(a, u64); + testing.expect(a4 == 0x1234567887654321); + + const a5 = extractLowBits(a, u128); + testing.expect(a5 == 0x11112222333344441234567887654321); +} + +test "big.rational set" { + var a = try Rational.init(al); + + try a.setInt(5); + testing.expect((try a.p.to(u32)) == 5); + testing.expect((try a.q.to(u32)) == 1); + + try a.setRatio(7, 3); + testing.expect((try a.p.to(u32)) == 7); + testing.expect((try a.q.to(u32)) == 3); + + try a.setRatio(9, 3); + testing.expect((try a.p.to(i32)) == 3); + testing.expect((try a.q.to(i32)) == 1); + + try a.setRatio(-9, 3); + testing.expect((try a.p.to(i32)) == -3); + testing.expect((try a.q.to(i32)) == 1); + + try a.setRatio(9, -3); + testing.expect((try a.p.to(i32)) == -3); + testing.expect((try a.q.to(i32)) == 1); + + try a.setRatio(-9, -3); + testing.expect((try a.p.to(i32)) == 3); + testing.expect((try a.q.to(i32)) == 1); +} + +test "big.rational setFloat" { + var a = try Rational.init(al); + + try a.setFloat(f64, 2.5); + testing.expect((try a.p.to(i32)) == 5); + testing.expect((try a.q.to(i32)) == 2); + + try a.setFloat(f32, -2.5); + testing.expect((try a.p.to(i32)) == -5); + testing.expect((try a.q.to(i32)) == 2); + + try a.setFloat(f32, 3.141593); + + // = 3.14159297943115234375 + testing.expect((try a.p.to(u32)) == 3294199); + testing.expect((try a.q.to(u32)) == 1048576); + + try a.setFloat(f64, 72.141593120712409172417410926841290461290467124); + + // = 72.1415931207124145885245525278151035308837890625 + testing.expect((try a.p.to(u128)) == 5076513310880537); + testing.expect((try a.q.to(u128)) == 70368744177664); +} + +test "big.rational setFloatString" { + var a = try Rational.init(al); + + try a.setFloatString("72.14159312071241458852455252781510353"); + + // = 72.1415931207124145885245525278151035308837890625 + testing.expect((try a.p.to(u128)) == 7214159312071241458852455252781510353); + testing.expect((try a.q.to(u128)) == 100000000000000000000000000000000000); +} + +test "big.rational toFloat" { + if (builtin.os == .linux and builtin.arch == .arm and builtin.abi == .musleabihf) { + // TODO https://github.com/ziglang/zig/issues/3289 + return error.SkipZigTest; + } + var a = try Rational.init(al); + + // = 3.14159297943115234375 + try a.setRatio(3294199, 1048576); + testing.expect((try a.toFloat(f64)) == 3.14159297943115234375); + + // = 72.1415931207124145885245525278151035308837890625 + try a.setRatio(5076513310880537, 70368744177664); + testing.expect((try a.toFloat(f64)) == 72.141593120712409172417410926841290461290467124); +} + +test "big.rational set/to Float round-trip" { + if (builtin.os == .linux and builtin.arch == .arm and builtin.abi == .musleabihf) { + // TODO https://github.com/ziglang/zig/issues/3289 + return error.SkipZigTest; + } + var a = try Rational.init(al); + var prng = std.rand.DefaultPrng.init(0x5EED); + var i: usize = 0; + while (i < 512) : (i += 1) { + const r = prng.random.float(f64); + try a.setFloat(f64, r); + testing.expect((try a.toFloat(f64)) == r); + } +} + +test "big.rational copy" { + var a = try Rational.init(al); + + const b = try Int.initSet(al, 5); + + try a.copyInt(b); + testing.expect((try a.p.to(u32)) == 5); + testing.expect((try a.q.to(u32)) == 1); + + const c = try Int.initSet(al, 7); + const d = try Int.initSet(al, 3); + + try a.copyRatio(c, d); + testing.expect((try a.p.to(u32)) == 7); + testing.expect((try a.q.to(u32)) == 3); + + const e = try Int.initSet(al, 9); + const f = try Int.initSet(al, 3); + + try a.copyRatio(e, f); + testing.expect((try a.p.to(u32)) == 3); + testing.expect((try a.q.to(u32)) == 1); +} + +test "big.rational negate" { + var a = try Rational.init(al); + + try a.setInt(-50); + testing.expect((try a.p.to(i32)) == -50); + testing.expect((try a.q.to(i32)) == 1); + + a.negate(); + testing.expect((try a.p.to(i32)) == 50); + testing.expect((try a.q.to(i32)) == 1); + + a.negate(); + testing.expect((try a.p.to(i32)) == -50); + testing.expect((try a.q.to(i32)) == 1); +} + +test "big.rational abs" { + var a = try Rational.init(al); + + try a.setInt(-50); + testing.expect((try a.p.to(i32)) == -50); + testing.expect((try a.q.to(i32)) == 1); + + a.abs(); + testing.expect((try a.p.to(i32)) == 50); + testing.expect((try a.q.to(i32)) == 1); + + a.abs(); + testing.expect((try a.p.to(i32)) == 50); + testing.expect((try a.q.to(i32)) == 1); +} + +test "big.rational swap" { + var a = try Rational.init(al); + var b = try Rational.init(al); + + try a.setRatio(50, 23); + try b.setRatio(17, 3); + + testing.expect((try a.p.to(u32)) == 50); + testing.expect((try a.q.to(u32)) == 23); + + testing.expect((try b.p.to(u32)) == 17); + testing.expect((try b.q.to(u32)) == 3); + + a.swap(&b); + + testing.expect((try a.p.to(u32)) == 17); + testing.expect((try a.q.to(u32)) == 3); + + testing.expect((try b.p.to(u32)) == 50); + testing.expect((try b.q.to(u32)) == 23); +} + +test "big.rational cmp" { + var a = try Rational.init(al); + var b = try Rational.init(al); + + try a.setRatio(500, 231); + try b.setRatio(18903, 8584); + testing.expect((try a.cmp(b)) < 0); + + try a.setRatio(890, 10); + try b.setRatio(89, 1); + testing.expect((try a.cmp(b)) == 0); +} + +test "big.rational add single-limb" { + var a = try Rational.init(al); + var b = try Rational.init(al); + + try a.setRatio(500, 231); + try b.setRatio(18903, 8584); + testing.expect((try a.cmp(b)) < 0); + + try a.setRatio(890, 10); + try b.setRatio(89, 1); + testing.expect((try a.cmp(b)) == 0); +} + +test "big.rational add" { + var a = try Rational.init(al); + var b = try Rational.init(al); + var r = try Rational.init(al); + + try a.setRatio(78923, 23341); + try b.setRatio(123097, 12441414); + try a.add(a, b); + + try r.setRatio(984786924199, 290395044174); + testing.expect((try a.cmp(r)) == 0); +} + +test "big.rational sub" { + var a = try Rational.init(al); + var b = try Rational.init(al); + var r = try Rational.init(al); + + try a.setRatio(78923, 23341); + try b.setRatio(123097, 12441414); + try a.sub(a, b); + + try r.setRatio(979040510045, 290395044174); + testing.expect((try a.cmp(r)) == 0); +} + +test "big.rational mul" { + var a = try Rational.init(al); + var b = try Rational.init(al); + var r = try Rational.init(al); + + try a.setRatio(78923, 23341); + try b.setRatio(123097, 12441414); + try a.mul(a, b); + + try r.setRatio(571481443, 17082061422); + testing.expect((try a.cmp(r)) == 0); +} + +test "big.rational div" { + var a = try Rational.init(al); + var b = try Rational.init(al); + var r = try Rational.init(al); + + try a.setRatio(78923, 23341); + try b.setRatio(123097, 12441414); + try a.div(a, b); + + try r.setRatio(75531824394, 221015929); + testing.expect((try a.cmp(r)) == 0); +} + +test "big.rational div" { + var a = try Rational.init(al); + var r = try Rational.init(al); + + try a.setRatio(78923, 23341); + a.invert(); + + try r.setRatio(23341, 78923); + testing.expect((try a.cmp(r)) == 0); + + try a.setRatio(-78923, 23341); + a.invert(); + + try r.setRatio(-23341, 78923); + testing.expect((try a.cmp(r)) == 0); +} diff --git a/lib/std/math/cbrt.zig b/lib/std/math/cbrt.zig new file mode 100644 index 0000000000..5241e31323 --- /dev/null +++ b/lib/std/math/cbrt.zig @@ -0,0 +1,163 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/cbrtf.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/cbrt.c + +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; + +/// Returns the cube root of x. +/// +/// Special Cases: +/// - cbrt(+-0) = +-0 +/// - cbrt(+-inf) = +-inf +/// - cbrt(nan) = nan +pub fn cbrt(x: var) @typeOf(x) { + const T = @typeOf(x); + return switch (T) { + f32 => cbrt32(x), + f64 => cbrt64(x), + else => @compileError("cbrt not implemented for " ++ @typeName(T)), + }; +} + +fn cbrt32(x: f32) f32 { + const B1: u32 = 709958130; // (127 - 127.0 / 3 - 0.03306235651) * 2^23 + const B2: u32 = 642849266; // (127 - 127.0 / 3 - 24 / 3 - 0.03306235651) * 2^23 + + var u = @bitCast(u32, x); + var hx = u & 0x7FFFFFFF; + + // cbrt(nan, inf) = itself + if (hx >= 0x7F800000) { + return x + x; + } + + // cbrt to ~5bits + if (hx < 0x00800000) { + // cbrt(+-0) = itself + if (hx == 0) { + return x; + } + u = @bitCast(u32, x * 0x1.0p24); + hx = u & 0x7FFFFFFF; + hx = hx / 3 + B2; + } else { + hx = hx / 3 + B1; + } + + u &= 0x80000000; + u |= hx; + + // first step newton to 16 bits + var t: f64 = @bitCast(f32, u); + var r: f64 = t * t * t; + t = t * (f64(x) + x + r) / (x + r + r); + + // second step newton to 47 bits + r = t * t * t; + t = t * (f64(x) + x + r) / (x + r + r); + + return @floatCast(f32, t); +} + +fn cbrt64(x: f64) f64 { + const B1: u32 = 715094163; // (1023 - 1023 / 3 - 0.03306235651 * 2^20 + const B2: u32 = 696219795; // (1023 - 1023 / 3 - 54 / 3 - 0.03306235651 * 2^20 + + // |1 / cbrt(x) - p(x)| < 2^(23.5) + const P0: f64 = 1.87595182427177009643; + const P1: f64 = -1.88497979543377169875; + const P2: f64 = 1.621429720105354466140; + const P3: f64 = -0.758397934778766047437; + const P4: f64 = 0.145996192886612446982; + + var u = @bitCast(u64, x); + var hx = @intCast(u32, u >> 32) & 0x7FFFFFFF; + + // cbrt(nan, inf) = itself + if (hx >= 0x7FF00000) { + return x + x; + } + + // cbrt to ~5bits + if (hx < 0x00100000) { + u = @bitCast(u64, x * 0x1.0p54); + hx = @intCast(u32, u >> 32) & 0x7FFFFFFF; + + // cbrt(0) is itself + if (hx == 0) { + return 0; + } + hx = hx / 3 + B2; + } else { + hx = hx / 3 + B1; + } + + u &= 1 << 63; + u |= u64(hx) << 32; + var t = @bitCast(f64, u); + + // cbrt to 23 bits + // cbrt(x) = t * cbrt(x / t^3) ~= t * P(t^3 / x) + var r = (t * t) * (t / x); + t = t * ((P0 + r * (P1 + r * P2)) + ((r * r) * r) * (P3 + r * P4)); + + // Round t away from 0 to 23 bits + u = @bitCast(u64, t); + u = (u + 0x80000000) & 0xFFFFFFFFC0000000; + t = @bitCast(f64, u); + + // one step newton to 53 bits + const s = t * t; + var q = x / s; + var w = t + t; + q = (q - t) / (w + q); + + return t + t * q; +} + +test "math.cbrt" { + expect(cbrt(f32(0.0)) == cbrt32(0.0)); + expect(cbrt(f64(0.0)) == cbrt64(0.0)); +} + +test "math.cbrt32" { + const epsilon = 0.000001; + + expect(cbrt32(0.0) == 0.0); + expect(math.approxEq(f32, cbrt32(0.2), 0.584804, epsilon)); + expect(math.approxEq(f32, cbrt32(0.8923), 0.962728, epsilon)); + expect(math.approxEq(f32, cbrt32(1.5), 1.144714, epsilon)); + expect(math.approxEq(f32, cbrt32(37.45), 3.345676, epsilon)); + expect(math.approxEq(f32, cbrt32(123123.234375), 49.748501, epsilon)); +} + +test "math.cbrt64" { + const epsilon = 0.000001; + + expect(cbrt64(0.0) == 0.0); + expect(math.approxEq(f64, cbrt64(0.2), 0.584804, epsilon)); + expect(math.approxEq(f64, cbrt64(0.8923), 0.962728, epsilon)); + expect(math.approxEq(f64, cbrt64(1.5), 1.144714, epsilon)); + expect(math.approxEq(f64, cbrt64(37.45), 3.345676, epsilon)); + expect(math.approxEq(f64, cbrt64(123123.234375), 49.748501, epsilon)); +} + +test "math.cbrt.special" { + expect(cbrt32(0.0) == 0.0); + expect(cbrt32(-0.0) == -0.0); + expect(math.isPositiveInf(cbrt32(math.inf(f32)))); + expect(math.isNegativeInf(cbrt32(-math.inf(f32)))); + expect(math.isNan(cbrt32(math.nan(f32)))); +} + +test "math.cbrt64.special" { + expect(cbrt64(0.0) == 0.0); + expect(cbrt64(-0.0) == -0.0); + expect(math.isPositiveInf(cbrt64(math.inf(f64)))); + expect(math.isNegativeInf(cbrt64(-math.inf(f64)))); + expect(math.isNan(cbrt64(math.nan(f64)))); +} diff --git a/lib/std/math/ceil.zig b/lib/std/math/ceil.zig new file mode 100644 index 0000000000..5f86093a6d --- /dev/null +++ b/lib/std/math/ceil.zig @@ -0,0 +1,120 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/ceilf.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/ceil.c + +const builtin = @import("builtin"); +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; + +/// Returns the least integer value greater than of equal to x. +/// +/// Special Cases: +/// - ceil(+-0) = +-0 +/// - ceil(+-inf) = +-inf +/// - ceil(nan) = nan +pub fn ceil(x: var) @typeOf(x) { + const T = @typeOf(x); + return switch (T) { + f32 => ceil32(x), + f64 => ceil64(x), + else => @compileError("ceil not implemented for " ++ @typeName(T)), + }; +} + +fn ceil32(x: f32) f32 { + var u = @bitCast(u32, x); + var e = @intCast(i32, (u >> 23) & 0xFF) - 0x7F; + var m: u32 = undefined; + + // TODO: Shouldn't need this explicit check. + if (x == 0.0) { + return x; + } + + if (e >= 23) { + return x; + } else if (e >= 0) { + m = u32(0x007FFFFF) >> @intCast(u5, e); + if (u & m == 0) { + return x; + } + math.forceEval(x + 0x1.0p120); + if (u >> 31 == 0) { + u += m; + } + u &= ~m; + return @bitCast(f32, u); + } else { + math.forceEval(x + 0x1.0p120); + if (u >> 31 != 0) { + return -0.0; + } else { + return 1.0; + } + } +} + +fn ceil64(x: f64) f64 { + const u = @bitCast(u64, x); + const e = (u >> 52) & 0x7FF; + var y: f64 = undefined; + + if (e >= 0x3FF + 52 or x == 0) { + return x; + } + + if (u >> 63 != 0) { + y = x - math.f64_toint + math.f64_toint - x; + } else { + y = x + math.f64_toint - math.f64_toint - x; + } + + if (e <= 0x3FF - 1) { + math.forceEval(y); + if (u >> 63 != 0) { + return -0.0; + } else { + return 1.0; + } + } else if (y < 0) { + return x + y + 1; + } else { + return x + y; + } +} + +test "math.ceil" { + expect(ceil(f32(0.0)) == ceil32(0.0)); + expect(ceil(f64(0.0)) == ceil64(0.0)); +} + +test "math.ceil32" { + expect(ceil32(1.3) == 2.0); + expect(ceil32(-1.3) == -1.0); + expect(ceil32(0.2) == 1.0); +} + +test "math.ceil64" { + expect(ceil64(1.3) == 2.0); + expect(ceil64(-1.3) == -1.0); + expect(ceil64(0.2) == 1.0); +} + +test "math.ceil32.special" { + expect(ceil32(0.0) == 0.0); + expect(ceil32(-0.0) == -0.0); + expect(math.isPositiveInf(ceil32(math.inf(f32)))); + expect(math.isNegativeInf(ceil32(-math.inf(f32)))); + expect(math.isNan(ceil32(math.nan(f32)))); +} + +test "math.ceil64.special" { + expect(ceil64(0.0) == 0.0); + expect(ceil64(-0.0) == -0.0); + expect(math.isPositiveInf(ceil64(math.inf(f64)))); + expect(math.isNegativeInf(ceil64(-math.inf(f64)))); + expect(math.isNan(ceil64(math.nan(f64)))); +} diff --git a/lib/std/math/complex.zig b/lib/std/math/complex.zig new file mode 100644 index 0000000000..e5574f9cee --- /dev/null +++ b/lib/std/math/complex.zig @@ -0,0 +1,183 @@ +const std = @import("../std.zig"); +const testing = std.testing; +const math = std.math; + +pub const abs = @import("complex/abs.zig").abs; +pub const acosh = @import("complex/acosh.zig").acosh; +pub const acos = @import("complex/acos.zig").acos; +pub const arg = @import("complex/arg.zig").arg; +pub const asinh = @import("complex/asinh.zig").asinh; +pub const asin = @import("complex/asin.zig").asin; +pub const atanh = @import("complex/atanh.zig").atanh; +pub const atan = @import("complex/atan.zig").atan; +pub const conj = @import("complex/conj.zig").conj; +pub const cosh = @import("complex/cosh.zig").cosh; +pub const cos = @import("complex/cos.zig").cos; +pub const exp = @import("complex/exp.zig").exp; +pub const log = @import("complex/log.zig").log; +pub const pow = @import("complex/pow.zig").pow; +pub const proj = @import("complex/proj.zig").proj; +pub const sinh = @import("complex/sinh.zig").sinh; +pub const sin = @import("complex/sin.zig").sin; +pub const sqrt = @import("complex/sqrt.zig").sqrt; +pub const tanh = @import("complex/tanh.zig").tanh; +pub const tan = @import("complex/tan.zig").tan; + +/// A complex number consisting of a real an imaginary part. T must be a floating-point value. +pub fn Complex(comptime T: type) type { + return struct { + const Self = @This(); + + /// Real part. + re: T, + + /// Imaginary part. + im: T, + + /// Create a new Complex number from the given real and imaginary parts. + pub fn new(re: T, im: T) Self { + return Self{ + .re = re, + .im = im, + }; + } + + /// Returns the sum of two complex numbers. + pub fn add(self: Self, other: Self) Self { + return Self{ + .re = self.re + other.re, + .im = self.im + other.im, + }; + } + + /// Returns the subtraction of two complex numbers. + pub fn sub(self: Self, other: Self) Self { + return Self{ + .re = self.re - other.re, + .im = self.im - other.im, + }; + } + + /// Returns the product of two complex numbers. + pub fn mul(self: Self, other: Self) Self { + return Self{ + .re = self.re * other.re - self.im * other.im, + .im = self.im * other.re + self.re * other.im, + }; + } + + /// Returns the quotient of two complex numbers. + pub fn div(self: Self, other: Self) Self { + const re_num = self.re * other.re + self.im * other.im; + const im_num = self.im * other.re - self.re * other.im; + const den = other.re * other.re + other.im * other.im; + + return Self{ + .re = re_num / den, + .im = im_num / den, + }; + } + + /// Returns the complex conjugate of a number. + pub fn conjugate(self: Self) Self { + return Self{ + .re = self.re, + .im = -self.im, + }; + } + + /// Returns the reciprocal of a complex number. + pub fn reciprocal(self: Self) Self { + const m = self.re * self.re + self.im * self.im; + return Self{ + .re = self.re / m, + .im = -self.im / m, + }; + } + + /// Returns the magnitude of a complex number. + pub fn magnitude(self: Self) T { + return math.sqrt(self.re * self.re + self.im * self.im); + } + }; +} + +const epsilon = 0.0001; + +test "complex.add" { + const a = Complex(f32).new(5, 3); + const b = Complex(f32).new(2, 7); + const c = a.add(b); + + testing.expect(c.re == 7 and c.im == 10); +} + +test "complex.sub" { + const a = Complex(f32).new(5, 3); + const b = Complex(f32).new(2, 7); + const c = a.sub(b); + + testing.expect(c.re == 3 and c.im == -4); +} + +test "complex.mul" { + const a = Complex(f32).new(5, 3); + const b = Complex(f32).new(2, 7); + const c = a.mul(b); + + testing.expect(c.re == -11 and c.im == 41); +} + +test "complex.div" { + const a = Complex(f32).new(5, 3); + const b = Complex(f32).new(2, 7); + const c = a.div(b); + + testing.expect(math.approxEq(f32, c.re, f32(31) / 53, epsilon) and + math.approxEq(f32, c.im, f32(-29) / 53, epsilon)); +} + +test "complex.conjugate" { + const a = Complex(f32).new(5, 3); + const c = a.conjugate(); + + testing.expect(c.re == 5 and c.im == -3); +} + +test "complex.reciprocal" { + const a = Complex(f32).new(5, 3); + const c = a.reciprocal(); + + testing.expect(math.approxEq(f32, c.re, f32(5) / 34, epsilon) and + math.approxEq(f32, c.im, f32(-3) / 34, epsilon)); +} + +test "complex.magnitude" { + const a = Complex(f32).new(5, 3); + const c = a.magnitude(); + + testing.expect(math.approxEq(f32, c, 5.83095, epsilon)); +} + +test "complex.cmath" { + _ = @import("complex/abs.zig"); + _ = @import("complex/acosh.zig"); + _ = @import("complex/acos.zig"); + _ = @import("complex/arg.zig"); + _ = @import("complex/asinh.zig"); + _ = @import("complex/asin.zig"); + _ = @import("complex/atanh.zig"); + _ = @import("complex/atan.zig"); + _ = @import("complex/conj.zig"); + _ = @import("complex/cosh.zig"); + _ = @import("complex/cos.zig"); + _ = @import("complex/exp.zig"); + _ = @import("complex/log.zig"); + _ = @import("complex/pow.zig"); + _ = @import("complex/proj.zig"); + _ = @import("complex/sinh.zig"); + _ = @import("complex/sin.zig"); + _ = @import("complex/sqrt.zig"); + _ = @import("complex/tanh.zig"); + _ = @import("complex/tan.zig"); +} diff --git a/lib/std/math/complex/abs.zig b/lib/std/math/complex/abs.zig new file mode 100644 index 0000000000..8105f57218 --- /dev/null +++ b/lib/std/math/complex/abs.zig @@ -0,0 +1,19 @@ +const std = @import("../../std.zig"); +const testing = std.testing; +const math = std.math; +const cmath = math.complex; +const Complex = cmath.Complex; + +/// Returns the absolute value (modulus) of z. +pub fn abs(z: var) @typeOf(z.re) { + const T = @typeOf(z.re); + return math.hypot(T, z.re, z.im); +} + +const epsilon = 0.0001; + +test "complex.cabs" { + const a = Complex(f32).new(5, 3); + const c = abs(a); + testing.expect(math.approxEq(f32, c, 5.83095, epsilon)); +} diff --git a/lib/std/math/complex/acos.zig b/lib/std/math/complex/acos.zig new file mode 100644 index 0000000000..f3526cc9ff --- /dev/null +++ b/lib/std/math/complex/acos.zig @@ -0,0 +1,22 @@ +const std = @import("../../std.zig"); +const testing = std.testing; +const math = std.math; +const cmath = math.complex; +const Complex = cmath.Complex; + +/// Returns the arc-cosine of z. +pub fn acos(z: var) Complex(@typeOf(z.re)) { + const T = @typeOf(z.re); + const q = cmath.asin(z); + return Complex(T).new(T(math.pi) / 2 - q.re, -q.im); +} + +const epsilon = 0.0001; + +test "complex.cacos" { + const a = Complex(f32).new(5, 3); + const c = acos(a); + + testing.expect(math.approxEq(f32, c.re, 0.546975, epsilon)); + testing.expect(math.approxEq(f32, c.im, -2.452914, epsilon)); +} diff --git a/lib/std/math/complex/acosh.zig b/lib/std/math/complex/acosh.zig new file mode 100644 index 0000000000..6f0fd2e36c --- /dev/null +++ b/lib/std/math/complex/acosh.zig @@ -0,0 +1,22 @@ +const std = @import("../../std.zig"); +const testing = std.testing; +const math = std.math; +const cmath = math.complex; +const Complex = cmath.Complex; + +/// Returns the hyperbolic arc-cosine of z. +pub fn acosh(z: var) Complex(@typeOf(z.re)) { + const T = @typeOf(z.re); + const q = cmath.acos(z); + return Complex(T).new(-q.im, q.re); +} + +const epsilon = 0.0001; + +test "complex.cacosh" { + const a = Complex(f32).new(5, 3); + const c = acosh(a); + + testing.expect(math.approxEq(f32, c.re, 2.452914, epsilon)); + testing.expect(math.approxEq(f32, c.im, 0.546975, epsilon)); +} diff --git a/lib/std/math/complex/arg.zig b/lib/std/math/complex/arg.zig new file mode 100644 index 0000000000..d0c9588b8d --- /dev/null +++ b/lib/std/math/complex/arg.zig @@ -0,0 +1,19 @@ +const std = @import("../../std.zig"); +const testing = std.testing; +const math = std.math; +const cmath = math.complex; +const Complex = cmath.Complex; + +/// Returns the angular component (in radians) of z. +pub fn arg(z: var) @typeOf(z.re) { + const T = @typeOf(z.re); + return math.atan2(T, z.im, z.re); +} + +const epsilon = 0.0001; + +test "complex.carg" { + const a = Complex(f32).new(5, 3); + const c = arg(a); + testing.expect(math.approxEq(f32, c, 0.540420, epsilon)); +} diff --git a/lib/std/math/complex/asin.zig b/lib/std/math/complex/asin.zig new file mode 100644 index 0000000000..76f94a286c --- /dev/null +++ b/lib/std/math/complex/asin.zig @@ -0,0 +1,28 @@ +const std = @import("../../std.zig"); +const testing = std.testing; +const math = std.math; +const cmath = math.complex; +const Complex = cmath.Complex; + +// Returns the arc-sine of z. +pub fn asin(z: var) Complex(@typeOf(z.re)) { + const T = @typeOf(z.re); + const x = z.re; + const y = z.im; + + const p = Complex(T).new(1.0 - (x - y) * (x + y), -2.0 * x * y); + const q = Complex(T).new(-y, x); + const r = cmath.log(q.add(cmath.sqrt(p))); + + return Complex(T).new(r.im, -r.re); +} + +const epsilon = 0.0001; + +test "complex.casin" { + const a = Complex(f32).new(5, 3); + const c = asin(a); + + testing.expect(math.approxEq(f32, c.re, 1.023822, epsilon)); + testing.expect(math.approxEq(f32, c.im, 2.452914, epsilon)); +} diff --git a/lib/std/math/complex/asinh.zig b/lib/std/math/complex/asinh.zig new file mode 100644 index 0000000000..da065aad01 --- /dev/null +++ b/lib/std/math/complex/asinh.zig @@ -0,0 +1,23 @@ +const std = @import("../../std.zig"); +const testing = std.testing; +const math = std.math; +const cmath = math.complex; +const Complex = cmath.Complex; + +/// Returns the hyperbolic arc-sine of z. +pub fn asinh(z: var) Complex(@typeOf(z.re)) { + const T = @typeOf(z.re); + const q = Complex(T).new(-z.im, z.re); + const r = cmath.asin(q); + return Complex(T).new(r.im, -r.re); +} + +const epsilon = 0.0001; + +test "complex.casinh" { + const a = Complex(f32).new(5, 3); + const c = asinh(a); + + testing.expect(math.approxEq(f32, c.re, 2.459831, epsilon)); + testing.expect(math.approxEq(f32, c.im, 0.533999, epsilon)); +} diff --git a/lib/std/math/complex/atan.zig b/lib/std/math/complex/atan.zig new file mode 100644 index 0000000000..3cd19961c8 --- /dev/null +++ b/lib/std/math/complex/atan.zig @@ -0,0 +1,142 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/complex/catanf.c +// https://git.musl-libc.org/cgit/musl/tree/src/complex/catan.c + +const std = @import("../../std.zig"); +const builtin = @import("builtin"); +const testing = std.testing; +const math = std.math; +const cmath = math.complex; +const Complex = cmath.Complex; + +/// Returns the arc-tangent of z. +pub fn atan(z: var) @typeOf(z) { + const T = @typeOf(z.re); + return switch (T) { + f32 => atan32(z), + f64 => atan64(z), + else => @compileError("atan not implemented for " ++ @typeName(z)), + }; +} + +fn redupif32(x: f32) f32 { + const DP1 = 3.140625; + const DP2 = 9.67502593994140625e-4; + const DP3 = 1.509957990978376432e-7; + + var t = x / math.pi; + if (t >= 0.0) { + t += 0.5; + } else { + t -= 0.5; + } + + const u = @intToFloat(f32, @floatToInt(i32, t)); + return ((x - u * DP1) - u * DP2) - t * DP3; +} + +fn atan32(z: Complex(f32)) Complex(f32) { + const maxnum = 1.0e38; + + const x = z.re; + const y = z.im; + + if ((x == 0.0) and (y > 1.0)) { + // overflow + return Complex(f32).new(maxnum, maxnum); + } + + const x2 = x * x; + var a = 1.0 - x2 - (y * y); + if (a == 0.0) { + // overflow + return Complex(f32).new(maxnum, maxnum); + } + + var t = 0.5 * math.atan2(f32, 2.0 * x, a); + var w = redupif32(t); + + t = y - 1.0; + a = x2 + t * t; + if (a == 0.0) { + // overflow + return Complex(f32).new(maxnum, maxnum); + } + + t = y + 1.0; + a = (x2 + (t * t)) / a; + return Complex(f32).new(w, 0.25 * math.ln(a)); +} + +fn redupif64(x: f64) f64 { + const DP1 = 3.14159265160560607910; + const DP2 = 1.98418714791870343106e-9; + const DP3 = 1.14423774522196636802e-17; + + var t = x / math.pi; + if (t >= 0.0) { + t += 0.5; + } else { + t -= 0.5; + } + + const u = @intToFloat(f64, @floatToInt(i64, t)); + return ((x - u * DP1) - u * DP2) - t * DP3; +} + +fn atan64(z: Complex(f64)) Complex(f64) { + const maxnum = 1.0e308; + + const x = z.re; + const y = z.im; + + if ((x == 0.0) and (y > 1.0)) { + // overflow + return Complex(f64).new(maxnum, maxnum); + } + + const x2 = x * x; + var a = 1.0 - x2 - (y * y); + if (a == 0.0) { + // overflow + return Complex(f64).new(maxnum, maxnum); + } + + var t = 0.5 * math.atan2(f64, 2.0 * x, a); + var w = redupif64(t); + + t = y - 1.0; + a = x2 + t * t; + if (a == 0.0) { + // overflow + return Complex(f64).new(maxnum, maxnum); + } + + t = y + 1.0; + a = (x2 + (t * t)) / a; + return Complex(f64).new(w, 0.25 * math.ln(a)); +} + +const epsilon = 0.0001; + +test "complex.catan32" { + const a = Complex(f32).new(5, 3); + const c = atan(a); + + testing.expect(math.approxEq(f32, c.re, 1.423679, epsilon)); + testing.expect(math.approxEq(f32, c.im, 0.086569, epsilon)); +} + +test "complex.catan64" { + if (builtin.os == .linux and builtin.arch == .arm and builtin.abi == .musleabihf) { + // TODO https://github.com/ziglang/zig/issues/3289 + return error.SkipZigTest; + } + const a = Complex(f64).new(5, 3); + const c = atan(a); + + testing.expect(math.approxEq(f64, c.re, 1.423679, epsilon)); + testing.expect(math.approxEq(f64, c.im, 0.086569, epsilon)); +} diff --git a/lib/std/math/complex/atanh.zig b/lib/std/math/complex/atanh.zig new file mode 100644 index 0000000000..225e7c61de --- /dev/null +++ b/lib/std/math/complex/atanh.zig @@ -0,0 +1,23 @@ +const std = @import("../../std.zig"); +const testing = std.testing; +const math = std.math; +const cmath = math.complex; +const Complex = cmath.Complex; + +/// Returns the hyperbolic arc-tangent of z. +pub fn atanh(z: var) Complex(@typeOf(z.re)) { + const T = @typeOf(z.re); + const q = Complex(T).new(-z.im, z.re); + const r = cmath.atan(q); + return Complex(T).new(r.im, -r.re); +} + +const epsilon = 0.0001; + +test "complex.catanh" { + const a = Complex(f32).new(5, 3); + const c = atanh(a); + + testing.expect(math.approxEq(f32, c.re, 0.146947, epsilon)); + testing.expect(math.approxEq(f32, c.im, 1.480870, epsilon)); +} diff --git a/lib/std/math/complex/conj.zig b/lib/std/math/complex/conj.zig new file mode 100644 index 0000000000..bd71ca3c06 --- /dev/null +++ b/lib/std/math/complex/conj.zig @@ -0,0 +1,18 @@ +const std = @import("../../std.zig"); +const testing = std.testing; +const math = std.math; +const cmath = math.complex; +const Complex = cmath.Complex; + +/// Returns the complex conjugate of z. +pub fn conj(z: var) Complex(@typeOf(z.re)) { + const T = @typeOf(z.re); + return Complex(T).new(z.re, -z.im); +} + +test "complex.conj" { + const a = Complex(f32).new(5, 3); + const c = a.conjugate(); + + testing.expect(c.re == 5 and c.im == -3); +} diff --git a/lib/std/math/complex/cos.zig b/lib/std/math/complex/cos.zig new file mode 100644 index 0000000000..332009ffe5 --- /dev/null +++ b/lib/std/math/complex/cos.zig @@ -0,0 +1,22 @@ +const std = @import("../../std.zig"); +const testing = std.testing; +const math = std.math; +const cmath = math.complex; +const Complex = cmath.Complex; + +/// Returns the cosine of z. +pub fn cos(z: var) Complex(@typeOf(z.re)) { + const T = @typeOf(z.re); + const p = Complex(T).new(-z.im, z.re); + return cmath.cosh(p); +} + +const epsilon = 0.0001; + +test "complex.ccos" { + const a = Complex(f32).new(5, 3); + const c = cos(a); + + testing.expect(math.approxEq(f32, c.re, 2.855815, epsilon)); + testing.expect(math.approxEq(f32, c.im, 9.606383, epsilon)); +} diff --git a/lib/std/math/complex/cosh.zig b/lib/std/math/complex/cosh.zig new file mode 100644 index 0000000000..89afcac42e --- /dev/null +++ b/lib/std/math/complex/cosh.zig @@ -0,0 +1,177 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/complex/ccoshf.c +// https://git.musl-libc.org/cgit/musl/tree/src/complex/ccosh.c + +const builtin = @import("builtin"); +const std = @import("../../std.zig"); +const testing = std.testing; +const math = std.math; +const cmath = math.complex; +const Complex = cmath.Complex; + +const ldexp_cexp = @import("ldexp.zig").ldexp_cexp; + +/// Returns the hyperbolic arc-cosine of z. +pub fn cosh(z: var) Complex(@typeOf(z.re)) { + const T = @typeOf(z.re); + return switch (T) { + f32 => cosh32(z), + f64 => cosh64(z), + else => @compileError("cosh not implemented for " ++ @typeName(z)), + }; +} + +fn cosh32(z: Complex(f32)) Complex(f32) { + const x = z.re; + const y = z.im; + + const hx = @bitCast(u32, x); + const ix = hx & 0x7fffffff; + + const hy = @bitCast(u32, y); + const iy = hy & 0x7fffffff; + + if (ix < 0x7f800000 and iy < 0x7f800000) { + if (iy == 0) { + return Complex(f32).new(math.cosh(x), y); + } + // small x: normal case + if (ix < 0x41100000) { + return Complex(f32).new(math.cosh(x) * math.cos(y), math.sinh(x) * math.sin(y)); + } + + // |x|>= 9, so cosh(x) ~= exp(|x|) + if (ix < 0x42b17218) { + // x < 88.7: exp(|x|) won't overflow + const h = math.exp(math.fabs(x)) * 0.5; + return Complex(f32).new(math.copysign(f32, h, x) * math.cos(y), h * math.sin(y)); + } + // x < 192.7: scale to avoid overflow + else if (ix < 0x4340b1e7) { + const v = Complex(f32).new(math.fabs(x), y); + const r = ldexp_cexp(v, -1); + return Complex(f32).new(r.re, r.im * math.copysign(f32, 1, x)); + } + // x >= 192.7: result always overflows + else { + const h = 0x1p127 * x; + return Complex(f32).new(h * h * math.cos(y), h * math.sin(y)); + } + } + + if (ix == 0 and iy >= 0x7f800000) { + return Complex(f32).new(y - y, math.copysign(f32, 0, x * (y - y))); + } + + if (iy == 0 and ix >= 0x7f800000) { + if (hx & 0x7fffff == 0) { + return Complex(f32).new(x * x, math.copysign(f32, 0, x) * y); + } + return Complex(f32).new(x, math.copysign(f32, 0, (x + x) * y)); + } + + if (ix < 0x7f800000 and iy >= 0x7f800000) { + return Complex(f32).new(y - y, x * (y - y)); + } + + if (ix >= 0x7f800000 and (hx & 0x7fffff) == 0) { + if (iy >= 0x7f800000) { + return Complex(f32).new(x * x, x * (y - y)); + } + return Complex(f32).new((x * x) * math.cos(y), x * math.sin(y)); + } + + return Complex(f32).new((x * x) * (y - y), (x + x) * (y - y)); +} + +fn cosh64(z: Complex(f64)) Complex(f64) { + const x = z.re; + const y = z.im; + + const fx = @bitCast(u64, x); + const hx = @intCast(u32, fx >> 32); + const lx = @truncate(u32, fx); + const ix = hx & 0x7fffffff; + + const fy = @bitCast(u64, y); + const hy = @intCast(u32, fy >> 32); + const ly = @truncate(u32, fy); + const iy = hy & 0x7fffffff; + + // nearly non-exceptional case where x, y are finite + if (ix < 0x7ff00000 and iy < 0x7ff00000) { + if (iy | ly == 0) { + return Complex(f64).new(math.cosh(x), x * y); + } + // small x: normal case + if (ix < 0x40360000) { + return Complex(f64).new(math.cosh(x) * math.cos(y), math.sinh(x) * math.sin(y)); + } + + // |x|>= 22, so cosh(x) ~= exp(|x|) + if (ix < 0x40862e42) { + // x < 710: exp(|x|) won't overflow + const h = math.exp(math.fabs(x)) * 0.5; + return Complex(f64).new(h * math.cos(y), math.copysign(f64, h, x) * math.sin(y)); + } + // x < 1455: scale to avoid overflow + else if (ix < 0x4096bbaa) { + const v = Complex(f64).new(math.fabs(x), y); + const r = ldexp_cexp(v, -1); + return Complex(f64).new(r.re, r.im * math.copysign(f64, 1, x)); + } + // x >= 1455: result always overflows + else { + const h = 0x1p1023; + return Complex(f64).new(h * h * math.cos(y), h * math.sin(y)); + } + } + + if (ix | lx == 0 and iy >= 0x7ff00000) { + return Complex(f64).new(y - y, math.copysign(f64, 0, x * (y - y))); + } + + if (iy | ly == 0 and ix >= 0x7ff00000) { + if ((hx & 0xfffff) | lx == 0) { + return Complex(f64).new(x * x, math.copysign(f64, 0, x) * y); + } + return Complex(f64).new(x * x, math.copysign(f64, 0, (x + x) * y)); + } + + if (ix < 0x7ff00000 and iy >= 0x7ff00000) { + return Complex(f64).new(y - y, x * (y - y)); + } + + if (ix >= 0x7ff00000 and (hx & 0xfffff) | lx == 0) { + if (iy >= 0x7ff00000) { + return Complex(f64).new(x * x, x * (y - y)); + } + return Complex(f64).new(x * x * math.cos(y), x * math.sin(y)); + } + + return Complex(f64).new((x * x) * (y - y), (x + x) * (y - y)); +} + +const epsilon = 0.0001; + +test "complex.ccosh32" { + const a = Complex(f32).new(5, 3); + const c = cosh(a); + + testing.expect(math.approxEq(f32, c.re, -73.467300, epsilon)); + testing.expect(math.approxEq(f32, c.im, 10.471557, epsilon)); +} + +test "complex.ccosh64" { + if (builtin.os == .linux and builtin.arch == .arm and builtin.abi == .musleabihf) { + // TODO https://github.com/ziglang/zig/issues/3289 + return error.SkipZigTest; + } + const a = Complex(f64).new(5, 3); + const c = cosh(a); + + testing.expect(math.approxEq(f64, c.re, -73.467300, epsilon)); + testing.expect(math.approxEq(f64, c.im, 10.471557, epsilon)); +} diff --git a/lib/std/math/complex/exp.zig b/lib/std/math/complex/exp.zig new file mode 100644 index 0000000000..5cd1cb4ed6 --- /dev/null +++ b/lib/std/math/complex/exp.zig @@ -0,0 +1,143 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/complex/cexpf.c +// https://git.musl-libc.org/cgit/musl/tree/src/complex/cexp.c + +const builtin = @import("builtin"); +const std = @import("../../std.zig"); +const testing = std.testing; +const math = std.math; +const cmath = math.complex; +const Complex = cmath.Complex; + +const ldexp_cexp = @import("ldexp.zig").ldexp_cexp; + +/// Returns e raised to the power of z (e^z). +pub fn exp(z: var) @typeOf(z) { + const T = @typeOf(z.re); + + return switch (T) { + f32 => exp32(z), + f64 => exp64(z), + else => @compileError("exp not implemented for " ++ @typeName(z)), + }; +} + +fn exp32(z: Complex(f32)) Complex(f32) { + const exp_overflow = 0x42b17218; // max_exp * ln2 ~= 88.72283955 + const cexp_overflow = 0x43400074; // (max_exp - min_denom_exp) * ln2 + + const x = z.re; + const y = z.im; + + const hy = @bitCast(u32, y) & 0x7fffffff; + // cexp(x + i0) = exp(x) + i0 + if (hy == 0) { + return Complex(f32).new(math.exp(x), y); + } + + const hx = @bitCast(u32, x); + // cexp(0 + iy) = cos(y) + isin(y) + if ((hx & 0x7fffffff) == 0) { + return Complex(f32).new(math.cos(y), math.sin(y)); + } + + if (hy >= 0x7f800000) { + // cexp(finite|nan +- i inf|nan) = nan + i nan + if ((hx & 0x7fffffff) != 0x7f800000) { + return Complex(f32).new(y - y, y - y); + } // cexp(-inf +- i inf|nan) = 0 + i0 + else if (hx & 0x80000000 != 0) { + return Complex(f32).new(0, 0); + } // cexp(+inf +- i inf|nan) = inf + i nan + else { + return Complex(f32).new(x, y - y); + } + } + + // 88.7 <= x <= 192 so must scale + if (hx >= exp_overflow and hx <= cexp_overflow) { + return ldexp_cexp(z, 0); + } // - x < exp_overflow => exp(x) won't overflow (common) + // - x > cexp_overflow, so exp(x) * s overflows for s > 0 + // - x = +-inf + // - x = nan + else { + const exp_x = math.exp(x); + return Complex(f32).new(exp_x * math.cos(y), exp_x * math.sin(y)); + } +} + +fn exp64(z: Complex(f64)) Complex(f64) { + const exp_overflow = 0x40862e42; // high bits of max_exp * ln2 ~= 710 + const cexp_overflow = 0x4096b8e4; // (max_exp - min_denorm_exp) * ln2 + + const x = z.re; + const y = z.im; + + const fy = @bitCast(u64, y); + const hy = @intCast(u32, (fy >> 32) & 0x7fffffff); + const ly = @truncate(u32, fy); + + // cexp(x + i0) = exp(x) + i0 + if (hy | ly == 0) { + return Complex(f64).new(math.exp(x), y); + } + + const fx = @bitCast(u64, x); + const hx = @intCast(u32, fx >> 32); + const lx = @truncate(u32, fx); + + // cexp(0 + iy) = cos(y) + isin(y) + if ((hx & 0x7fffffff) | lx == 0) { + return Complex(f64).new(math.cos(y), math.sin(y)); + } + + if (hy >= 0x7ff00000) { + // cexp(finite|nan +- i inf|nan) = nan + i nan + if (lx != 0 or (hx & 0x7fffffff) != 0x7ff00000) { + return Complex(f64).new(y - y, y - y); + } // cexp(-inf +- i inf|nan) = 0 + i0 + else if (hx & 0x80000000 != 0) { + return Complex(f64).new(0, 0); + } // cexp(+inf +- i inf|nan) = inf + i nan + else { + return Complex(f64).new(x, y - y); + } + } + + // 709.7 <= x <= 1454.3 so must scale + if (hx >= exp_overflow and hx <= cexp_overflow) { + return ldexp_cexp(z, 0); + } // - x < exp_overflow => exp(x) won't overflow (common) + // - x > cexp_overflow, so exp(x) * s overflows for s > 0 + // - x = +-inf + // - x = nan + else { + const exp_x = math.exp(x); + return Complex(f64).new(exp_x * math.cos(y), exp_x * math.sin(y)); + } +} + +const epsilon = 0.0001; + +test "complex.cexp32" { + const a = Complex(f32).new(5, 3); + const c = exp(a); + + testing.expect(math.approxEq(f32, c.re, -146.927917, epsilon)); + testing.expect(math.approxEq(f32, c.im, 20.944065, epsilon)); +} + +test "complex.cexp64" { + if (builtin.os == .linux and builtin.arch == .arm and builtin.abi == .musleabihf) { + // TODO https://github.com/ziglang/zig/issues/3289 + return error.SkipZigTest; + } + const a = Complex(f64).new(5, 3); + const c = exp(a); + + testing.expect(math.approxEq(f64, c.re, -146.927917, epsilon)); + testing.expect(math.approxEq(f64, c.im, 20.944065, epsilon)); +} diff --git a/lib/std/math/complex/ldexp.zig b/lib/std/math/complex/ldexp.zig new file mode 100644 index 0000000000..d6f810793f --- /dev/null +++ b/lib/std/math/complex/ldexp.zig @@ -0,0 +1,80 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/complex/__cexpf.c +// https://git.musl-libc.org/cgit/musl/tree/src/complex/__cexp.c + +const std = @import("../../std.zig"); +const debug = std.debug; +const math = std.math; +const cmath = math.complex; +const Complex = cmath.Complex; + +/// Returns exp(z) scaled to avoid overflow. +pub fn ldexp_cexp(z: var, expt: i32) @typeOf(z) { + const T = @typeOf(z.re); + + return switch (T) { + f32 => ldexp_cexp32(z, expt), + f64 => ldexp_cexp64(z, expt), + else => unreachable, + }; +} + +fn frexp_exp32(x: f32, expt: *i32) f32 { + const k = 235; // reduction constant + const kln2 = 162.88958740; // k * ln2 + + const exp_x = math.exp(x - kln2); + const hx = @bitCast(u32, exp_x); + // TODO zig should allow this cast implicitly because it should know the value is in range + expt.* = @intCast(i32, hx >> 23) - (0x7f + 127) + k; + return @bitCast(f32, (hx & 0x7fffff) | ((0x7f + 127) << 23)); +} + +fn ldexp_cexp32(z: Complex(f32), expt: i32) Complex(f32) { + var ex_expt: i32 = undefined; + const exp_x = frexp_exp32(z.re, &ex_expt); + const exptf = expt + ex_expt; + + const half_expt1 = @divTrunc(exptf, 2); + const scale1 = @bitCast(f32, (0x7f + half_expt1) << 23); + + const half_expt2 = exptf - half_expt1; + const scale2 = @bitCast(f32, (0x7f + half_expt2) << 23); + + return Complex(f32).new(math.cos(z.im) * exp_x * scale1 * scale2, math.sin(z.im) * exp_x * scale1 * scale2); +} + +fn frexp_exp64(x: f64, expt: *i32) f64 { + const k = 1799; // reduction constant + const kln2 = 1246.97177782734161156; // k * ln2 + + const exp_x = math.exp(x - kln2); + + const fx = @bitCast(u64, x); + const hx = @intCast(u32, fx >> 32); + const lx = @truncate(u32, fx); + + expt.* = @intCast(i32, hx >> 20) - (0x3ff + 1023) + k; + + const high_word = (hx & 0xfffff) | ((0x3ff + 1023) << 20); + return @bitCast(f64, (u64(high_word) << 32) | lx); +} + +fn ldexp_cexp64(z: Complex(f64), expt: i32) Complex(f64) { + var ex_expt: i32 = undefined; + const exp_x = frexp_exp64(z.re, &ex_expt); + const exptf = i64(expt + ex_expt); + + const half_expt1 = @divTrunc(exptf, 2); + const scale1 = @bitCast(f64, (0x3ff + half_expt1) << 20); + + const half_expt2 = exptf - half_expt1; + const scale2 = @bitCast(f64, (0x3ff + half_expt2) << 20); + + return Complex(f64).new( + math.cos(z.im) * exp_x * scale1 * scale2, + math.sin(z.im) * exp_x * scale1 * scale2, + ); +} diff --git a/lib/std/math/complex/log.zig b/lib/std/math/complex/log.zig new file mode 100644 index 0000000000..762b4fde9a --- /dev/null +++ b/lib/std/math/complex/log.zig @@ -0,0 +1,24 @@ +const std = @import("../../std.zig"); +const testing = std.testing; +const math = std.math; +const cmath = math.complex; +const Complex = cmath.Complex; + +/// Returns the natural logarithm of z. +pub fn log(z: var) Complex(@typeOf(z.re)) { + const T = @typeOf(z.re); + const r = cmath.abs(z); + const phi = cmath.arg(z); + + return Complex(T).new(math.ln(r), phi); +} + +const epsilon = 0.0001; + +test "complex.clog" { + const a = Complex(f32).new(5, 3); + const c = log(a); + + testing.expect(math.approxEq(f32, c.re, 1.763180, epsilon)); + testing.expect(math.approxEq(f32, c.im, 0.540419, epsilon)); +} diff --git a/lib/std/math/complex/pow.zig b/lib/std/math/complex/pow.zig new file mode 100644 index 0000000000..a2480453fc --- /dev/null +++ b/lib/std/math/complex/pow.zig @@ -0,0 +1,23 @@ +const std = @import("../../std.zig"); +const testing = std.testing; +const math = std.math; +const cmath = math.complex; +const Complex = cmath.Complex; + +/// Returns z raised to the complex power of c. +pub fn pow(comptime T: type, z: T, c: T) T { + const p = cmath.log(z); + const q = c.mul(p); + return cmath.exp(q); +} + +const epsilon = 0.0001; + +test "complex.cpow" { + const a = Complex(f32).new(5, 3); + const b = Complex(f32).new(2.3, -1.3); + const c = pow(Complex(f32), a, b); + + testing.expect(math.approxEq(f32, c.re, 58.049110, epsilon)); + testing.expect(math.approxEq(f32, c.im, -101.003433, epsilon)); +} diff --git a/lib/std/math/complex/proj.zig b/lib/std/math/complex/proj.zig new file mode 100644 index 0000000000..c8f2d9fc6d --- /dev/null +++ b/lib/std/math/complex/proj.zig @@ -0,0 +1,25 @@ +const std = @import("../../std.zig"); +const testing = std.testing; +const math = std.math; +const cmath = math.complex; +const Complex = cmath.Complex; + +/// Returns the projection of z onto the riemann sphere. +pub fn proj(z: var) Complex(@typeOf(z.re)) { + const T = @typeOf(z.re); + + if (math.isInf(z.re) or math.isInf(z.im)) { + return Complex(T).new(math.inf(T), math.copysign(T, 0, z.re)); + } + + return Complex(T).new(z.re, z.im); +} + +const epsilon = 0.0001; + +test "complex.cproj" { + const a = Complex(f32).new(5, 3); + const c = proj(a); + + testing.expect(c.re == 5 and c.im == 3); +} diff --git a/lib/std/math/complex/sin.zig b/lib/std/math/complex/sin.zig new file mode 100644 index 0000000000..9ddc3a7a80 --- /dev/null +++ b/lib/std/math/complex/sin.zig @@ -0,0 +1,23 @@ +const std = @import("../../std.zig"); +const testing = std.testing; +const math = std.math; +const cmath = math.complex; +const Complex = cmath.Complex; + +/// Returns the sine of z. +pub fn sin(z: var) Complex(@typeOf(z.re)) { + const T = @typeOf(z.re); + const p = Complex(T).new(-z.im, z.re); + const q = cmath.sinh(p); + return Complex(T).new(q.im, -q.re); +} + +const epsilon = 0.0001; + +test "complex.csin" { + const a = Complex(f32).new(5, 3); + const c = sin(a); + + testing.expect(math.approxEq(f32, c.re, -9.654126, epsilon)); + testing.expect(math.approxEq(f32, c.im, 2.841692, epsilon)); +} diff --git a/lib/std/math/complex/sinh.zig b/lib/std/math/complex/sinh.zig new file mode 100644 index 0000000000..0b1294bb6a --- /dev/null +++ b/lib/std/math/complex/sinh.zig @@ -0,0 +1,176 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/complex/csinhf.c +// https://git.musl-libc.org/cgit/musl/tree/src/complex/csinh.c + +const builtin = @import("builtin"); +const std = @import("../../std.zig"); +const testing = std.testing; +const math = std.math; +const cmath = math.complex; +const Complex = cmath.Complex; + +const ldexp_cexp = @import("ldexp.zig").ldexp_cexp; + +/// Returns the hyperbolic sine of z. +pub fn sinh(z: var) @typeOf(z) { + const T = @typeOf(z.re); + return switch (T) { + f32 => sinh32(z), + f64 => sinh64(z), + else => @compileError("tan not implemented for " ++ @typeName(z)), + }; +} + +fn sinh32(z: Complex(f32)) Complex(f32) { + const x = z.re; + const y = z.im; + + const hx = @bitCast(u32, x); + const ix = hx & 0x7fffffff; + + const hy = @bitCast(u32, y); + const iy = hy & 0x7fffffff; + + if (ix < 0x7f800000 and iy < 0x7f800000) { + if (iy == 0) { + return Complex(f32).new(math.sinh(x), y); + } + // small x: normal case + if (ix < 0x41100000) { + return Complex(f32).new(math.sinh(x) * math.cos(y), math.cosh(x) * math.sin(y)); + } + + // |x|>= 9, so cosh(x) ~= exp(|x|) + if (ix < 0x42b17218) { + // x < 88.7: exp(|x|) won't overflow + const h = math.exp(math.fabs(x)) * 0.5; + return Complex(f32).new(math.copysign(f32, h, x) * math.cos(y), h * math.sin(y)); + } + // x < 192.7: scale to avoid overflow + else if (ix < 0x4340b1e7) { + const v = Complex(f32).new(math.fabs(x), y); + const r = ldexp_cexp(v, -1); + return Complex(f32).new(r.re * math.copysign(f32, 1, x), r.im); + } + // x >= 192.7: result always overflows + else { + const h = 0x1p127 * x; + return Complex(f32).new(h * math.cos(y), h * h * math.sin(y)); + } + } + + if (ix == 0 and iy >= 0x7f800000) { + return Complex(f32).new(math.copysign(f32, 0, x * (y - y)), y - y); + } + + if (iy == 0 and ix >= 0x7f800000) { + if (hx & 0x7fffff == 0) { + return Complex(f32).new(x, y); + } + return Complex(f32).new(x, math.copysign(f32, 0, y)); + } + + if (ix < 0x7f800000 and iy >= 0x7f800000) { + return Complex(f32).new(y - y, x * (y - y)); + } + + if (ix >= 0x7f800000 and (hx & 0x7fffff) == 0) { + if (iy >= 0x7f800000) { + return Complex(f32).new(x * x, x * (y - y)); + } + return Complex(f32).new(x * math.cos(y), math.inf_f32 * math.sin(y)); + } + + return Complex(f32).new((x * x) * (y - y), (x + x) * (y - y)); +} + +fn sinh64(z: Complex(f64)) Complex(f64) { + const x = z.re; + const y = z.im; + + const fx = @bitCast(u64, x); + const hx = @intCast(u32, fx >> 32); + const lx = @truncate(u32, fx); + const ix = hx & 0x7fffffff; + + const fy = @bitCast(u64, y); + const hy = @intCast(u32, fy >> 32); + const ly = @truncate(u32, fy); + const iy = hy & 0x7fffffff; + + if (ix < 0x7ff00000 and iy < 0x7ff00000) { + if (iy | ly == 0) { + return Complex(f64).new(math.sinh(x), y); + } + // small x: normal case + if (ix < 0x40360000) { + return Complex(f64).new(math.sinh(x) * math.cos(y), math.cosh(x) * math.sin(y)); + } + + // |x|>= 22, so cosh(x) ~= exp(|x|) + if (ix < 0x40862e42) { + // x < 710: exp(|x|) won't overflow + const h = math.exp(math.fabs(x)) * 0.5; + return Complex(f64).new(math.copysign(f64, h, x) * math.cos(y), h * math.sin(y)); + } + // x < 1455: scale to avoid overflow + else if (ix < 0x4096bbaa) { + const v = Complex(f64).new(math.fabs(x), y); + const r = ldexp_cexp(v, -1); + return Complex(f64).new(r.re * math.copysign(f64, 1, x), r.im); + } + // x >= 1455: result always overflows + else { + const h = 0x1p1023 * x; + return Complex(f64).new(h * math.cos(y), h * h * math.sin(y)); + } + } + + if (ix | lx == 0 and iy >= 0x7ff00000) { + return Complex(f64).new(math.copysign(f64, 0, x * (y - y)), y - y); + } + + if (iy | ly == 0 and ix >= 0x7ff00000) { + if ((hx & 0xfffff) | lx == 0) { + return Complex(f64).new(x, y); + } + return Complex(f64).new(x, math.copysign(f64, 0, y)); + } + + if (ix < 0x7ff00000 and iy >= 0x7ff00000) { + return Complex(f64).new(y - y, x * (y - y)); + } + + if (ix >= 0x7ff00000 and (hx & 0xfffff) | lx == 0) { + if (iy >= 0x7ff00000) { + return Complex(f64).new(x * x, x * (y - y)); + } + return Complex(f64).new(x * math.cos(y), math.inf_f64 * math.sin(y)); + } + + return Complex(f64).new((x * x) * (y - y), (x + x) * (y - y)); +} + +const epsilon = 0.0001; + +test "complex.csinh32" { + const a = Complex(f32).new(5, 3); + const c = sinh(a); + + testing.expect(math.approxEq(f32, c.re, -73.460617, epsilon)); + testing.expect(math.approxEq(f32, c.im, 10.472508, epsilon)); +} + +test "complex.csinh64" { + if (builtin.os == .linux and builtin.arch == .arm and builtin.abi == .musleabihf) { + // TODO https://github.com/ziglang/zig/issues/3289 + return error.SkipZigTest; + } + const a = Complex(f64).new(5, 3); + const c = sinh(a); + + testing.expect(math.approxEq(f64, c.re, -73.460617, epsilon)); + testing.expect(math.approxEq(f64, c.im, 10.472508, epsilon)); +} diff --git a/lib/std/math/complex/sqrt.zig b/lib/std/math/complex/sqrt.zig new file mode 100644 index 0000000000..36f4c28e29 --- /dev/null +++ b/lib/std/math/complex/sqrt.zig @@ -0,0 +1,146 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/complex/csqrtf.c +// https://git.musl-libc.org/cgit/musl/tree/src/complex/csqrt.c + +const std = @import("../../std.zig"); +const testing = std.testing; +const math = std.math; +const cmath = math.complex; +const Complex = cmath.Complex; + +/// Returns the square root of z. The real and imaginary parts of the result have the same sign +/// as the imaginary part of z. +pub fn sqrt(z: var) @typeOf(z) { + const T = @typeOf(z.re); + + return switch (T) { + f32 => sqrt32(z), + f64 => sqrt64(z), + else => @compileError("sqrt not implemented for " ++ @typeName(T)), + }; +} + +fn sqrt32(z: Complex(f32)) Complex(f32) { + const x = z.re; + const y = z.im; + + if (x == 0 and y == 0) { + return Complex(f32).new(0, y); + } + if (math.isInf(y)) { + return Complex(f32).new(math.inf(f32), y); + } + if (math.isNan(x)) { + // raise invalid if y is not nan + const t = (y - y) / (y - y); + return Complex(f32).new(x, t); + } + if (math.isInf(x)) { + // sqrt(inf + i nan) = inf + nan i + // sqrt(inf + iy) = inf + i0 + // sqrt(-inf + i nan) = nan +- inf i + // sqrt(-inf + iy) = 0 + inf i + if (math.signbit(x)) { + return Complex(f32).new(math.fabs(x - y), math.copysign(f32, x, y)); + } else { + return Complex(f32).new(x, math.copysign(f32, y - y, y)); + } + } + + // y = nan special case is handled fine below + + // double-precision avoids overflow with correct rounding. + const dx = f64(x); + const dy = f64(y); + + if (dx >= 0) { + const t = math.sqrt((dx + math.hypot(f64, dx, dy)) * 0.5); + return Complex(f32).new( + @floatCast(f32, t), + @floatCast(f32, dy / (2.0 * t)), + ); + } else { + const t = math.sqrt((-dx + math.hypot(f64, dx, dy)) * 0.5); + return Complex(f32).new( + @floatCast(f32, math.fabs(y) / (2.0 * t)), + @floatCast(f32, math.copysign(f64, t, y)), + ); + } +} + +fn sqrt64(z: Complex(f64)) Complex(f64) { + // may encounter overflow for im,re >= DBL_MAX / (1 + sqrt(2)) + const threshold = 0x1.a827999fcef32p+1022; + + var x = z.re; + var y = z.im; + + if (x == 0 and y == 0) { + return Complex(f64).new(0, y); + } + if (math.isInf(y)) { + return Complex(f64).new(math.inf(f64), y); + } + if (math.isNan(x)) { + // raise invalid if y is not nan + const t = (y - y) / (y - y); + return Complex(f64).new(x, t); + } + if (math.isInf(x)) { + // sqrt(inf + i nan) = inf + nan i + // sqrt(inf + iy) = inf + i0 + // sqrt(-inf + i nan) = nan +- inf i + // sqrt(-inf + iy) = 0 + inf i + if (math.signbit(x)) { + return Complex(f64).new(math.fabs(x - y), math.copysign(f64, x, y)); + } else { + return Complex(f64).new(x, math.copysign(f64, y - y, y)); + } + } + + // y = nan special case is handled fine below + + // scale to avoid overflow + var scale = false; + if (math.fabs(x) >= threshold or math.fabs(y) >= threshold) { + x *= 0.25; + y *= 0.25; + scale = true; + } + + var result: Complex(f64) = undefined; + if (x >= 0) { + const t = math.sqrt((x + math.hypot(f64, x, y)) * 0.5); + result = Complex(f64).new(t, y / (2.0 * t)); + } else { + const t = math.sqrt((-x + math.hypot(f64, x, y)) * 0.5); + result = Complex(f64).new(math.fabs(y) / (2.0 * t), math.copysign(f64, t, y)); + } + + if (scale) { + result.re *= 2; + result.im *= 2; + } + + return result; +} + +const epsilon = 0.0001; + +test "complex.csqrt32" { + const a = Complex(f32).new(5, 3); + const c = sqrt(a); + + testing.expect(math.approxEq(f32, c.re, 2.327117, epsilon)); + testing.expect(math.approxEq(f32, c.im, 0.644574, epsilon)); +} + +test "complex.csqrt64" { + const a = Complex(f64).new(5, 3); + const c = sqrt(a); + + testing.expect(math.approxEq(f64, c.re, 2.3271175190399496, epsilon)); + testing.expect(math.approxEq(f64, c.im, 0.6445742373246469, epsilon)); +} diff --git a/lib/std/math/complex/tan.zig b/lib/std/math/complex/tan.zig new file mode 100644 index 0000000000..398b8295ca --- /dev/null +++ b/lib/std/math/complex/tan.zig @@ -0,0 +1,23 @@ +const std = @import("../../std.zig"); +const testing = std.testing; +const math = std.math; +const cmath = math.complex; +const Complex = cmath.Complex; + +/// Returns the tanget of z. +pub fn tan(z: var) Complex(@typeOf(z.re)) { + const T = @typeOf(z.re); + const q = Complex(T).new(-z.im, z.re); + const r = cmath.tanh(q); + return Complex(T).new(r.im, -r.re); +} + +const epsilon = 0.0001; + +test "complex.ctan" { + const a = Complex(f32).new(5, 3); + const c = tan(a); + + testing.expect(math.approxEq(f32, c.re, -0.002708233, epsilon)); + testing.expect(math.approxEq(f32, c.im, 1.004165, epsilon)); +} diff --git a/lib/std/math/complex/tanh.zig b/lib/std/math/complex/tanh.zig new file mode 100644 index 0000000000..6895e8a769 --- /dev/null +++ b/lib/std/math/complex/tanh.zig @@ -0,0 +1,125 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/complex/ctanhf.c +// https://git.musl-libc.org/cgit/musl/tree/src/complex/ctanh.c + +const builtin = @import("builtin"); +const std = @import("../../std.zig"); +const testing = std.testing; +const math = std.math; +const cmath = math.complex; +const Complex = cmath.Complex; + +/// Returns the hyperbolic tangent of z. +pub fn tanh(z: var) @typeOf(z) { + const T = @typeOf(z.re); + return switch (T) { + f32 => tanh32(z), + f64 => tanh64(z), + else => @compileError("tan not implemented for " ++ @typeName(z)), + }; +} + +fn tanh32(z: Complex(f32)) Complex(f32) { + const x = z.re; + const y = z.im; + + const hx = @bitCast(u32, x); + const ix = hx & 0x7fffffff; + + if (ix >= 0x7f800000) { + if (ix & 0x7fffff != 0) { + const r = if (y == 0) y else x * y; + return Complex(f32).new(x, r); + } + const xx = @bitCast(f32, hx - 0x40000000); + const r = if (math.isInf(y)) y else math.sin(y) * math.cos(y); + return Complex(f32).new(xx, math.copysign(f32, 0, r)); + } + + if (!math.isFinite(y)) { + const r = if (ix != 0) y - y else x; + return Complex(f32).new(r, y - y); + } + + // x >= 11 + if (ix >= 0x41300000) { + const exp_mx = math.exp(-math.fabs(x)); + return Complex(f32).new(math.copysign(f32, 1, x), 4 * math.sin(y) * math.cos(y) * exp_mx * exp_mx); + } + + // Kahan's algorithm + const t = math.tan(y); + const beta = 1.0 + t * t; + const s = math.sinh(x); + const rho = math.sqrt(1 + s * s); + const den = 1 + beta * s * s; + + return Complex(f32).new((beta * rho * s) / den, t / den); +} + +fn tanh64(z: Complex(f64)) Complex(f64) { + const x = z.re; + const y = z.im; + + const fx = @bitCast(u64, x); + // TODO: zig should allow this conversion implicitly because it can notice that the value necessarily + // fits in range. + const hx = @intCast(u32, fx >> 32); + const lx = @truncate(u32, fx); + const ix = hx & 0x7fffffff; + + if (ix >= 0x7ff00000) { + if ((ix & 0x7fffff) | lx != 0) { + const r = if (y == 0) y else x * y; + return Complex(f64).new(x, r); + } + + const xx = @bitCast(f64, (u64(hx - 0x40000000) << 32) | lx); + const r = if (math.isInf(y)) y else math.sin(y) * math.cos(y); + return Complex(f64).new(xx, math.copysign(f64, 0, r)); + } + + if (!math.isFinite(y)) { + const r = if (ix != 0) y - y else x; + return Complex(f64).new(r, y - y); + } + + // x >= 22 + if (ix >= 0x40360000) { + const exp_mx = math.exp(-math.fabs(x)); + return Complex(f64).new(math.copysign(f64, 1, x), 4 * math.sin(y) * math.cos(y) * exp_mx * exp_mx); + } + + // Kahan's algorithm + const t = math.tan(y); + const beta = 1.0 + t * t; + const s = math.sinh(x); + const rho = math.sqrt(1 + s * s); + const den = 1 + beta * s * s; + + return Complex(f64).new((beta * rho * s) / den, t / den); +} + +const epsilon = 0.0001; + +test "complex.ctanh32" { + const a = Complex(f32).new(5, 3); + const c = tanh(a); + + testing.expect(math.approxEq(f32, c.re, 0.999913, epsilon)); + testing.expect(math.approxEq(f32, c.im, -0.000025, epsilon)); +} + +test "complex.ctanh64" { + if (builtin.os == .linux and builtin.arch == .arm and builtin.abi == .musleabihf) { + // TODO https://github.com/ziglang/zig/issues/3289 + return error.SkipZigTest; + } + const a = Complex(f64).new(5, 3); + const c = tanh(a); + + testing.expect(math.approxEq(f64, c.re, 0.999913, epsilon)); + testing.expect(math.approxEq(f64, c.im, -0.000025, epsilon)); +} diff --git a/lib/std/math/copysign.zig b/lib/std/math/copysign.zig new file mode 100644 index 0000000000..e4d90c395e --- /dev/null +++ b/lib/std/math/copysign.zig @@ -0,0 +1,74 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/copysignf.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/copysign.c + +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; +const maxInt = std.math.maxInt; + +/// Returns a value with the magnitude of x and the sign of y. +pub fn copysign(comptime T: type, x: T, y: T) T { + return switch (T) { + f16 => copysign16(x, y), + f32 => copysign32(x, y), + f64 => copysign64(x, y), + else => @compileError("copysign not implemented for " ++ @typeName(T)), + }; +} + +fn copysign16(x: f16, y: f16) f16 { + const ux = @bitCast(u16, x); + const uy = @bitCast(u16, y); + + const h1 = ux & (maxInt(u16) / 2); + const h2 = uy & (u16(1) << 15); + return @bitCast(f16, h1 | h2); +} + +fn copysign32(x: f32, y: f32) f32 { + const ux = @bitCast(u32, x); + const uy = @bitCast(u32, y); + + const h1 = ux & (maxInt(u32) / 2); + const h2 = uy & (u32(1) << 31); + return @bitCast(f32, h1 | h2); +} + +fn copysign64(x: f64, y: f64) f64 { + const ux = @bitCast(u64, x); + const uy = @bitCast(u64, y); + + const h1 = ux & (maxInt(u64) / 2); + const h2 = uy & (u64(1) << 63); + return @bitCast(f64, h1 | h2); +} + +test "math.copysign" { + expect(copysign(f16, 1.0, 1.0) == copysign16(1.0, 1.0)); + expect(copysign(f32, 1.0, 1.0) == copysign32(1.0, 1.0)); + expect(copysign(f64, 1.0, 1.0) == copysign64(1.0, 1.0)); +} + +test "math.copysign16" { + expect(copysign16(5.0, 1.0) == 5.0); + expect(copysign16(5.0, -1.0) == -5.0); + expect(copysign16(-5.0, -1.0) == -5.0); + expect(copysign16(-5.0, 1.0) == 5.0); +} + +test "math.copysign32" { + expect(copysign32(5.0, 1.0) == 5.0); + expect(copysign32(5.0, -1.0) == -5.0); + expect(copysign32(-5.0, -1.0) == -5.0); + expect(copysign32(-5.0, 1.0) == 5.0); +} + +test "math.copysign64" { + expect(copysign64(5.0, 1.0) == 5.0); + expect(copysign64(5.0, -1.0) == -5.0); + expect(copysign64(-5.0, -1.0) == -5.0); + expect(copysign64(-5.0, 1.0) == 5.0); +} diff --git a/lib/std/math/cos.zig b/lib/std/math/cos.zig new file mode 100644 index 0000000000..5261a25f80 --- /dev/null +++ b/lib/std/math/cos.zig @@ -0,0 +1,128 @@ +// Ported from go, which is licensed under a BSD-3 license. +// https://golang.org/LICENSE +// +// https://golang.org/src/math/sin.go + +const builtin = @import("builtin"); +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; + +/// Returns the cosine of the radian value x. +/// +/// Special Cases: +/// - cos(+-inf) = nan +/// - cos(nan) = nan +pub fn cos(x: var) @typeOf(x) { + const T = @typeOf(x); + return switch (T) { + f32 => cos_(f32, x), + f64 => cos_(f64, x), + else => @compileError("cos not implemented for " ++ @typeName(T)), + }; +} + +// sin polynomial coefficients +const S0 = 1.58962301576546568060E-10; +const S1 = -2.50507477628578072866E-8; +const S2 = 2.75573136213857245213E-6; +const S3 = -1.98412698295895385996E-4; +const S4 = 8.33333333332211858878E-3; +const S5 = -1.66666666666666307295E-1; + +// cos polynomial coeffiecients +const C0 = -1.13585365213876817300E-11; +const C1 = 2.08757008419747316778E-9; +const C2 = -2.75573141792967388112E-7; +const C3 = 2.48015872888517045348E-5; +const C4 = -1.38888888888730564116E-3; +const C5 = 4.16666666666665929218E-2; + +const pi4a = 7.85398125648498535156e-1; +const pi4b = 3.77489470793079817668E-8; +const pi4c = 2.69515142907905952645E-15; +const m4pi = 1.273239544735162542821171882678754627704620361328125; + +fn cos_(comptime T: type, x_: T) T { + const I = @IntType(true, T.bit_count); + + var x = x_; + if (math.isNan(x) or math.isInf(x)) { + return math.nan(T); + } + + var sign = false; + x = math.fabs(x); + + var y = math.floor(x * m4pi); + var j = @floatToInt(I, y); + + if (j & 1 == 1) { + j += 1; + y += 1; + } + + j &= 7; + if (j > 3) { + j -= 4; + sign = !sign; + } + if (j > 1) { + sign = !sign; + } + + const z = ((x - y * pi4a) - y * pi4b) - y * pi4c; + const w = z * z; + + const r = if (j == 1 or j == 2) + z + z * w * (S5 + w * (S4 + w * (S3 + w * (S2 + w * (S1 + w * S0))))) + else + 1.0 - 0.5 * w + w * w * (C5 + w * (C4 + w * (C3 + w * (C2 + w * (C1 + w * C0))))); + + return if (sign) -r else r; +} + +test "math.cos" { + expect(cos(f32(0.0)) == cos_(f32, 0.0)); + expect(cos(f64(0.0)) == cos_(f64, 0.0)); +} + +test "math.cos32" { + const epsilon = 0.000001; + + expect(math.approxEq(f32, cos_(f32, 0.0), 1.0, epsilon)); + expect(math.approxEq(f32, cos_(f32, 0.2), 0.980067, epsilon)); + expect(math.approxEq(f32, cos_(f32, 0.8923), 0.627623, epsilon)); + expect(math.approxEq(f32, cos_(f32, 1.5), 0.070737, epsilon)); + expect(math.approxEq(f32, cos_(f32, -1.5), 0.070737, epsilon)); + expect(math.approxEq(f32, cos_(f32, 37.45), 0.969132, epsilon)); + expect(math.approxEq(f32, cos_(f32, 89.123), 0.400798, epsilon)); +} + +test "math.cos64" { + if (builtin.os == .linux and builtin.arch == .arm and builtin.abi == .musleabihf) { + // TODO https://github.com/ziglang/zig/issues/3289 + return error.SkipZigTest; + } + const epsilon = 0.000001; + + expect(math.approxEq(f64, cos_(f64, 0.0), 1.0, epsilon)); + expect(math.approxEq(f64, cos_(f64, 0.2), 0.980067, epsilon)); + expect(math.approxEq(f64, cos_(f64, 0.8923), 0.627623, epsilon)); + expect(math.approxEq(f64, cos_(f64, 1.5), 0.070737, epsilon)); + expect(math.approxEq(f64, cos_(f64, -1.5), 0.070737, epsilon)); + expect(math.approxEq(f64, cos_(f64, 37.45), 0.969132, epsilon)); + expect(math.approxEq(f64, cos_(f64, 89.123), 0.40080, epsilon)); +} + +test "math.cos32.special" { + expect(math.isNan(cos_(f32, math.inf(f32)))); + expect(math.isNan(cos_(f32, -math.inf(f32)))); + expect(math.isNan(cos_(f32, math.nan(f32)))); +} + +test "math.cos64.special" { + expect(math.isNan(cos_(f64, math.inf(f64)))); + expect(math.isNan(cos_(f64, -math.inf(f64)))); + expect(math.isNan(cos_(f64, math.nan(f64)))); +} diff --git a/lib/std/math/cosh.zig b/lib/std/math/cosh.zig new file mode 100644 index 0000000000..75c5c15ec1 --- /dev/null +++ b/lib/std/math/cosh.zig @@ -0,0 +1,127 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/coshf.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/cosh.c + +const builtin = @import("builtin"); +const std = @import("../std.zig"); +const math = std.math; +const expo2 = @import("expo2.zig").expo2; +const expect = std.testing.expect; +const maxInt = std.math.maxInt; + +/// Returns the hyperbolic cosine of x. +/// +/// Special Cases: +/// - cosh(+-0) = 1 +/// - cosh(+-inf) = +inf +/// - cosh(nan) = nan +pub fn cosh(x: var) @typeOf(x) { + const T = @typeOf(x); + return switch (T) { + f32 => cosh32(x), + f64 => cosh64(x), + else => @compileError("cosh not implemented for " ++ @typeName(T)), + }; +} + +// cosh(x) = (exp(x) + 1 / exp(x)) / 2 +// = 1 + 0.5 * (exp(x) - 1) * (exp(x) - 1) / exp(x) +// = 1 + (x * x) / 2 + o(x^4) +fn cosh32(x: f32) f32 { + const u = @bitCast(u32, x); + const ux = u & 0x7FFFFFFF; + const ax = @bitCast(f32, ux); + + // |x| < log(2) + if (ux < 0x3F317217) { + if (ux < 0x3F800000 - (12 << 23)) { + math.raiseOverflow(); + return 1.0; + } + const t = math.expm1(ax); + return 1 + t * t / (2 * (1 + t)); + } + + // |x| < log(FLT_MAX) + if (ux < 0x42B17217) { + const t = math.exp(ax); + return 0.5 * (t + 1 / t); + } + + // |x| > log(FLT_MAX) or nan + return expo2(ax); +} + +fn cosh64(x: f64) f64 { + const u = @bitCast(u64, x); + const w = @intCast(u32, u >> 32); + const ax = @bitCast(f64, u & (maxInt(u64) >> 1)); + + // TODO: Shouldn't need this explicit check. + if (x == 0.0) { + return 1.0; + } + + // |x| < log(2) + if (w < 0x3FE62E42) { + if (w < 0x3FF00000 - (26 << 20)) { + if (x != 0) { + math.raiseInexact(); + } + return 1.0; + } + const t = math.expm1(ax); + return 1 + t * t / (2 * (1 + t)); + } + + // |x| < log(DBL_MAX) + if (w < 0x40862E42) { + const t = math.exp(ax); + // NOTE: If x > log(0x1p26) then 1/t is not required. + return 0.5 * (t + 1 / t); + } + + // |x| > log(CBL_MAX) or nan + return expo2(ax); +} + +test "math.cosh" { + expect(cosh(f32(1.5)) == cosh32(1.5)); + expect(cosh(f64(1.5)) == cosh64(1.5)); +} + +test "math.cosh32" { + const epsilon = 0.000001; + + expect(math.approxEq(f32, cosh32(0.0), 1.0, epsilon)); + expect(math.approxEq(f32, cosh32(0.2), 1.020067, epsilon)); + expect(math.approxEq(f32, cosh32(0.8923), 1.425225, epsilon)); + expect(math.approxEq(f32, cosh32(1.5), 2.352410, epsilon)); +} + +test "math.cosh64" { + const epsilon = 0.000001; + + expect(math.approxEq(f64, cosh64(0.0), 1.0, epsilon)); + expect(math.approxEq(f64, cosh64(0.2), 1.020067, epsilon)); + expect(math.approxEq(f64, cosh64(0.8923), 1.425225, epsilon)); + expect(math.approxEq(f64, cosh64(1.5), 2.352410, epsilon)); +} + +test "math.cosh32.special" { + expect(cosh32(0.0) == 1.0); + expect(cosh32(-0.0) == 1.0); + expect(math.isPositiveInf(cosh32(math.inf(f32)))); + expect(math.isPositiveInf(cosh32(-math.inf(f32)))); + expect(math.isNan(cosh32(math.nan(f32)))); +} + +test "math.cosh64.special" { + expect(cosh64(0.0) == 1.0); + expect(cosh64(-0.0) == 1.0); + expect(math.isPositiveInf(cosh64(math.inf(f64)))); + expect(math.isPositiveInf(cosh64(-math.inf(f64)))); + expect(math.isNan(cosh64(math.nan(f64)))); +} diff --git a/lib/std/math/exp.zig b/lib/std/math/exp.zig new file mode 100644 index 0000000000..718bbcd476 --- /dev/null +++ b/lib/std/math/exp.zig @@ -0,0 +1,218 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/expf.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/exp.c + +const std = @import("../std.zig"); +const math = std.math; +const assert = std.debug.assert; +const builtin = @import("builtin"); + +/// Returns e raised to the power of x (e^x). +/// +/// Special Cases: +/// - exp(+inf) = +inf +/// - exp(nan) = nan +pub fn exp(x: var) @typeOf(x) { + const T = @typeOf(x); + return switch (T) { + f32 => exp32(x), + f64 => exp64(x), + else => @compileError("exp not implemented for " ++ @typeName(T)), + }; +} + +fn exp32(x_: f32) f32 { + const half = [_]f32{ 0.5, -0.5 }; + const ln2hi = 6.9314575195e-1; + const ln2lo = 1.4286067653e-6; + const invln2 = 1.4426950216e+0; + const P1 = 1.6666625440e-1; + const P2 = -2.7667332906e-3; + + var x = x_; + var hx = @bitCast(u32, x); + const sign = @intCast(i32, hx >> 31); + hx &= 0x7FFFFFFF; + + if (math.isNan(x)) { + return x; + } + + // |x| >= -87.33655 or nan + if (hx >= 0x42AEAC50) { + // nan + if (hx > 0x7F800000) { + return x; + } + // x >= 88.722839 + if (hx >= 0x42b17218 and sign == 0) { + return x * 0x1.0p127; + } + if (sign != 0) { + math.forceEval(-0x1.0p-149 / x); // overflow + // x <= -103.972084 + if (hx >= 0x42CFF1B5) { + return 0; + } + } + } + + var k: i32 = undefined; + var hi: f32 = undefined; + var lo: f32 = undefined; + + // |x| > 0.5 * ln2 + if (hx > 0x3EB17218) { + // |x| > 1.5 * ln2 + if (hx > 0x3F851592) { + k = @floatToInt(i32, invln2 * x + half[@intCast(usize, sign)]); + } else { + k = 1 - sign - sign; + } + + const fk = @intToFloat(f32, k); + hi = x - fk * ln2hi; + lo = fk * ln2lo; + x = hi - lo; + } + // |x| > 2^(-14) + else if (hx > 0x39000000) { + k = 0; + hi = x; + lo = 0; + } else { + math.forceEval(0x1.0p127 + x); // inexact + return 1 + x; + } + + const xx = x * x; + const c = x - xx * (P1 + xx * P2); + const y = 1 + (x * c / (2 - c) - lo + hi); + + if (k == 0) { + return y; + } else { + return math.scalbn(y, k); + } +} + +fn exp64(x_: f64) f64 { + const half = [_]f64{ 0.5, -0.5 }; + const ln2hi: f64 = 6.93147180369123816490e-01; + const ln2lo: f64 = 1.90821492927058770002e-10; + const invln2: f64 = 1.44269504088896338700e+00; + const P1: f64 = 1.66666666666666019037e-01; + const P2: f64 = -2.77777777770155933842e-03; + const P3: f64 = 6.61375632143793436117e-05; + const P4: f64 = -1.65339022054652515390e-06; + const P5: f64 = 4.13813679705723846039e-08; + + var x = x_; + var ux = @bitCast(u64, x); + var hx = ux >> 32; + const sign = @intCast(i32, hx >> 31); + hx &= 0x7FFFFFFF; + + if (math.isNan(x)) { + return x; + } + + // |x| >= 708.39 or nan + if (hx >= 0x4086232B) { + // nan + if (hx > 0x7FF00000) { + return x; + } + if (x > 709.782712893383973096) { + // overflow if x != inf + if (!math.isInf(x)) { + math.raiseOverflow(); + } + return math.inf(f64); + } + if (x < -708.39641853226410622) { + // underflow if x != -inf + // math.forceEval(f32(-0x1.0p-149 / x)); + if (x < -745.13321910194110842) { + return 0; + } + } + } + + // argument reduction + var k: i32 = undefined; + var hi: f64 = undefined; + var lo: f64 = undefined; + + // |x| > 0.5 * ln2 + if (hx > 0x3EB17218) { + // |x| >= 1.5 * ln2 + if (hx > 0x3FF0A2B2) { + k = @floatToInt(i32, invln2 * x + half[@intCast(usize, sign)]); + } else { + k = 1 - sign - sign; + } + + const dk = @intToFloat(f64, k); + hi = x - dk * ln2hi; + lo = dk * ln2lo; + x = hi - lo; + } + // |x| > 2^(-28) + else if (hx > 0x3E300000) { + k = 0; + hi = x; + lo = 0; + } else { + // inexact if x != 0 + // math.forceEval(0x1.0p1023 + x); + return 1 + x; + } + + const xx = x * x; + const c = x - xx * (P1 + xx * (P2 + xx * (P3 + xx * (P4 + xx * P5)))); + const y = 1 + (x * c / (2 - c) - lo + hi); + + if (k == 0) { + return y; + } else { + return math.scalbn(y, k); + } +} + +test "math.exp" { + assert(exp(f32(0.0)) == exp32(0.0)); + assert(exp(f64(0.0)) == exp64(0.0)); +} + +test "math.exp32" { + const epsilon = 0.000001; + + assert(exp32(0.0) == 1.0); + assert(math.approxEq(f32, exp32(0.0), 1.0, epsilon)); + assert(math.approxEq(f32, exp32(0.2), 1.221403, epsilon)); + assert(math.approxEq(f32, exp32(0.8923), 2.440737, epsilon)); + assert(math.approxEq(f32, exp32(1.5), 4.481689, epsilon)); +} + +test "math.exp64" { + const epsilon = 0.000001; + + assert(exp64(0.0) == 1.0); + assert(math.approxEq(f64, exp64(0.0), 1.0, epsilon)); + assert(math.approxEq(f64, exp64(0.2), 1.221403, epsilon)); + assert(math.approxEq(f64, exp64(0.8923), 2.440737, epsilon)); + assert(math.approxEq(f64, exp64(1.5), 4.481689, epsilon)); +} + +test "math.exp32.special" { + assert(math.isPositiveInf(exp32(math.inf(f32)))); + assert(math.isNan(exp32(math.nan(f32)))); +} + +test "math.exp64.special" { + assert(math.isPositiveInf(exp64(math.inf(f64)))); + assert(math.isNan(exp64(math.nan(f64)))); +} diff --git a/lib/std/math/exp2.zig b/lib/std/math/exp2.zig new file mode 100644 index 0000000000..57f6620d77 --- /dev/null +++ b/lib/std/math/exp2.zig @@ -0,0 +1,455 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/exp2f.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/exp2.c + +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; + +/// Returns 2 raised to the power of x (2^x). +/// +/// Special Cases: +/// - exp2(+inf) = +inf +/// - exp2(nan) = nan +pub fn exp2(x: var) @typeOf(x) { + const T = @typeOf(x); + return switch (T) { + f32 => exp2_32(x), + f64 => exp2_64(x), + else => @compileError("exp2 not implemented for " ++ @typeName(T)), + }; +} + +const exp2ft = [_]f64{ + 0x1.6a09e667f3bcdp-1, + 0x1.7a11473eb0187p-1, + 0x1.8ace5422aa0dbp-1, + 0x1.9c49182a3f090p-1, + 0x1.ae89f995ad3adp-1, + 0x1.c199bdd85529cp-1, + 0x1.d5818dcfba487p-1, + 0x1.ea4afa2a490dap-1, + 0x1.0000000000000p+0, + 0x1.0b5586cf9890fp+0, + 0x1.172b83c7d517bp+0, + 0x1.2387a6e756238p+0, + 0x1.306fe0a31b715p+0, + 0x1.3dea64c123422p+0, + 0x1.4bfdad5362a27p+0, + 0x1.5ab07dd485429p+0, +}; + +fn exp2_32(x: f32) f32 { + const tblsiz = @intCast(u32, exp2ft.len); + const redux: f32 = 0x1.8p23 / @intToFloat(f32, tblsiz); + const P1: f32 = 0x1.62e430p-1; + const P2: f32 = 0x1.ebfbe0p-3; + const P3: f32 = 0x1.c6b348p-5; + const P4: f32 = 0x1.3b2c9cp-7; + + var u = @bitCast(u32, x); + const ix = u & 0x7FFFFFFF; + + // |x| > 126 + if (ix > 0x42FC0000) { + // nan + if (ix > 0x7F800000) { + return x; + } + // x >= 128 + if (u >= 0x43000000 and u < 0x80000000) { + return x * 0x1.0p127; + } + // x < -126 + if (u >= 0x80000000) { + if (u >= 0xC3160000 or u & 0x000FFFF != 0) { + math.forceEval(-0x1.0p-149 / x); + } + // x <= -150 + if (u >= 0x3160000) { + return 0; + } + } + } + // |x| <= 0x1p-25 + else if (ix <= 0x33000000) { + return 1.0 + x; + } + + var uf = x + redux; + var i_0 = @bitCast(u32, uf); + i_0 += tblsiz / 2; + + const k = i_0 / tblsiz; + // NOTE: musl relies on undefined overflow shift behaviour. Appears that this produces the + // intended result but should confirm how GCC/Clang handle this to ensure. + const uk = @bitCast(f64, u64(0x3FF + k) << 52); + i_0 &= tblsiz - 1; + uf -= redux; + + const z: f64 = x - uf; + var r: f64 = exp2ft[i_0]; + const t: f64 = r * z; + r = r + t * (P1 + z * P2) + t * (z * z) * (P3 + z * P4); + return @floatCast(f32, r * uk); +} + +const exp2dt = [_]f64{ + // exp2(z + eps) eps + 0x1.6a09e667f3d5dp-1, 0x1.9880p-44, + 0x1.6b052fa751744p-1, 0x1.8000p-50, + 0x1.6c012750bd9fep-1, -0x1.8780p-45, + 0x1.6cfdcddd476bfp-1, 0x1.ec00p-46, + 0x1.6dfb23c651a29p-1, -0x1.8000p-50, + 0x1.6ef9298593ae3p-1, -0x1.c000p-52, + 0x1.6ff7df9519386p-1, -0x1.fd80p-45, + 0x1.70f7466f42da3p-1, -0x1.c880p-45, + 0x1.71f75e8ec5fc3p-1, 0x1.3c00p-46, + 0x1.72f8286eacf05p-1, -0x1.8300p-44, + 0x1.73f9a48a58152p-1, -0x1.0c00p-47, + 0x1.74fbd35d7ccfcp-1, 0x1.f880p-45, + 0x1.75feb564267f1p-1, 0x1.3e00p-47, + 0x1.77024b1ab6d48p-1, -0x1.7d00p-45, + 0x1.780694fde5d38p-1, -0x1.d000p-50, + 0x1.790b938ac1d00p-1, 0x1.3000p-49, + 0x1.7a11473eb0178p-1, -0x1.d000p-49, + 0x1.7b17b0976d060p-1, 0x1.0400p-45, + 0x1.7c1ed0130c133p-1, 0x1.0000p-53, + 0x1.7d26a62ff8636p-1, -0x1.6900p-45, + 0x1.7e2f336cf4e3bp-1, -0x1.2e00p-47, + 0x1.7f3878491c3e8p-1, -0x1.4580p-45, + 0x1.80427543e1b4ep-1, 0x1.3000p-44, + 0x1.814d2add1071ap-1, 0x1.f000p-47, + 0x1.82589994ccd7ep-1, -0x1.1c00p-45, + 0x1.8364c1eb942d0p-1, 0x1.9d00p-45, + 0x1.8471a4623cab5p-1, 0x1.7100p-43, + 0x1.857f4179f5bbcp-1, 0x1.2600p-45, + 0x1.868d99b4491afp-1, -0x1.2c40p-44, + 0x1.879cad931a395p-1, -0x1.3000p-45, + 0x1.88ac7d98a65b8p-1, -0x1.a800p-45, + 0x1.89bd0a4785800p-1, -0x1.d000p-49, + 0x1.8ace5422aa223p-1, 0x1.3280p-44, + 0x1.8be05bad619fap-1, 0x1.2b40p-43, + 0x1.8cf3216b54383p-1, -0x1.ed00p-45, + 0x1.8e06a5e08664cp-1, -0x1.0500p-45, + 0x1.8f1ae99157807p-1, 0x1.8280p-45, + 0x1.902fed0282c0ep-1, -0x1.cb00p-46, + 0x1.9145b0b91ff96p-1, -0x1.5e00p-47, + 0x1.925c353aa2ff9p-1, 0x1.5400p-48, + 0x1.93737b0cdc64ap-1, 0x1.7200p-46, + 0x1.948b82b5f98aep-1, -0x1.9000p-47, + 0x1.95a44cbc852cbp-1, 0x1.5680p-45, + 0x1.96bdd9a766f21p-1, -0x1.6d00p-44, + 0x1.97d829fde4e2ap-1, -0x1.1000p-47, + 0x1.98f33e47a23a3p-1, 0x1.d000p-45, + 0x1.9a0f170ca0604p-1, -0x1.8a40p-44, + 0x1.9b2bb4d53ff89p-1, 0x1.55c0p-44, + 0x1.9c49182a3f15bp-1, 0x1.6b80p-45, + 0x1.9d674194bb8c5p-1, -0x1.c000p-49, + 0x1.9e86319e3238ep-1, 0x1.7d00p-46, + 0x1.9fa5e8d07f302p-1, 0x1.6400p-46, + 0x1.a0c667b5de54dp-1, -0x1.5000p-48, + 0x1.a1e7aed8eb8f6p-1, 0x1.9e00p-47, + 0x1.a309bec4a2e27p-1, 0x1.ad80p-45, + 0x1.a42c980460a5dp-1, -0x1.af00p-46, + 0x1.a5503b23e259bp-1, 0x1.b600p-47, + 0x1.a674a8af46213p-1, 0x1.8880p-44, + 0x1.a799e1330b3a7p-1, 0x1.1200p-46, + 0x1.a8bfe53c12e8dp-1, 0x1.6c00p-47, + 0x1.a9e6b5579fcd2p-1, -0x1.9b80p-45, + 0x1.ab0e521356fb8p-1, 0x1.b700p-45, + 0x1.ac36bbfd3f381p-1, 0x1.9000p-50, + 0x1.ad5ff3a3c2780p-1, 0x1.4000p-49, + 0x1.ae89f995ad2a3p-1, -0x1.c900p-45, + 0x1.afb4ce622f367p-1, 0x1.6500p-46, + 0x1.b0e07298db790p-1, 0x1.fd40p-45, + 0x1.b20ce6c9a89a9p-1, 0x1.2700p-46, + 0x1.b33a2b84f1a4bp-1, 0x1.d470p-43, + 0x1.b468415b747e7p-1, -0x1.8380p-44, + 0x1.b59728de5593ap-1, 0x1.8000p-54, + 0x1.b6c6e29f1c56ap-1, 0x1.ad00p-47, + 0x1.b7f76f2fb5e50p-1, 0x1.e800p-50, + 0x1.b928cf22749b2p-1, -0x1.4c00p-47, + 0x1.ba5b030a10603p-1, -0x1.d700p-47, + 0x1.bb8e0b79a6f66p-1, 0x1.d900p-47, + 0x1.bcc1e904bc1ffp-1, 0x1.2a00p-47, + 0x1.bdf69c3f3a16fp-1, -0x1.f780p-46, + 0x1.bf2c25bd71db8p-1, -0x1.0a00p-46, + 0x1.c06286141b2e9p-1, -0x1.1400p-46, + 0x1.c199bdd8552e0p-1, 0x1.be00p-47, + 0x1.c2d1cd9fa64eep-1, -0x1.9400p-47, + 0x1.c40ab5fffd02fp-1, -0x1.ed00p-47, + 0x1.c544778fafd15p-1, 0x1.9660p-44, + 0x1.c67f12e57d0cbp-1, -0x1.a100p-46, + 0x1.c7ba88988c1b6p-1, -0x1.8458p-42, + 0x1.c8f6d9406e733p-1, -0x1.a480p-46, + 0x1.ca3405751c4dfp-1, 0x1.b000p-51, + 0x1.cb720dcef9094p-1, 0x1.1400p-47, + 0x1.ccb0f2e6d1689p-1, 0x1.0200p-48, + 0x1.cdf0b555dc412p-1, 0x1.3600p-48, + 0x1.cf3155b5bab3bp-1, -0x1.6900p-47, + 0x1.d072d4a0789bcp-1, 0x1.9a00p-47, + 0x1.d1b532b08c8fap-1, -0x1.5e00p-46, + 0x1.d2f87080d8a85p-1, 0x1.d280p-46, + 0x1.d43c8eacaa203p-1, 0x1.1a00p-47, + 0x1.d5818dcfba491p-1, 0x1.f000p-50, + 0x1.d6c76e862e6a1p-1, -0x1.3a00p-47, + 0x1.d80e316c9834ep-1, -0x1.cd80p-47, + 0x1.d955d71ff6090p-1, 0x1.4c00p-48, + 0x1.da9e603db32aep-1, 0x1.f900p-48, + 0x1.dbe7cd63a8325p-1, 0x1.9800p-49, + 0x1.dd321f301b445p-1, -0x1.5200p-48, + 0x1.de7d5641c05bfp-1, -0x1.d700p-46, + 0x1.dfc97337b9aecp-1, -0x1.6140p-46, + 0x1.e11676b197d5ep-1, 0x1.b480p-47, + 0x1.e264614f5a3e7p-1, 0x1.0ce0p-43, + 0x1.e3b333b16ee5cp-1, 0x1.c680p-47, + 0x1.e502ee78b3fb4p-1, -0x1.9300p-47, + 0x1.e653924676d68p-1, -0x1.5000p-49, + 0x1.e7a51fbc74c44p-1, -0x1.7f80p-47, + 0x1.e8f7977cdb726p-1, -0x1.3700p-48, + 0x1.ea4afa2a490e8p-1, 0x1.5d00p-49, + 0x1.eb9f4867ccae4p-1, 0x1.61a0p-46, + 0x1.ecf482d8e680dp-1, 0x1.5500p-48, + 0x1.ee4aaa2188514p-1, 0x1.6400p-51, + 0x1.efa1bee615a13p-1, -0x1.e800p-49, + 0x1.f0f9c1cb64106p-1, -0x1.a880p-48, + 0x1.f252b376bb963p-1, -0x1.c900p-45, + 0x1.f3ac948dd7275p-1, 0x1.a000p-53, + 0x1.f50765b6e4524p-1, -0x1.4f00p-48, + 0x1.f6632798844fdp-1, 0x1.a800p-51, + 0x1.f7bfdad9cbe38p-1, 0x1.abc0p-48, + 0x1.f91d802243c82p-1, -0x1.4600p-50, + 0x1.fa7c1819e908ep-1, -0x1.b0c0p-47, + 0x1.fbdba3692d511p-1, -0x1.0e00p-51, + 0x1.fd3c22b8f7194p-1, -0x1.0de8p-46, + 0x1.fe9d96b2a23eep-1, 0x1.e430p-49, + 0x1.0000000000000p+0, 0x0.0000p+0, + 0x1.00b1afa5abcbep+0, -0x1.3400p-52, + 0x1.0163da9fb3303p+0, -0x1.2170p-46, + 0x1.02168143b0282p+0, 0x1.a400p-52, + 0x1.02c9a3e77806cp+0, 0x1.f980p-49, + 0x1.037d42e11bbcap+0, -0x1.7400p-51, + 0x1.04315e86e7f89p+0, 0x1.8300p-50, + 0x1.04e5f72f65467p+0, -0x1.a3f0p-46, + 0x1.059b0d315855ap+0, -0x1.2840p-47, + 0x1.0650a0e3c1f95p+0, 0x1.1600p-48, + 0x1.0706b29ddf71ap+0, 0x1.5240p-46, + 0x1.07bd42b72a82dp+0, -0x1.9a00p-49, + 0x1.0874518759bd0p+0, 0x1.6400p-49, + 0x1.092bdf66607c8p+0, -0x1.0780p-47, + 0x1.09e3ecac6f383p+0, -0x1.8000p-54, + 0x1.0a9c79b1f3930p+0, 0x1.fa00p-48, + 0x1.0b5586cf988fcp+0, -0x1.ac80p-48, + 0x1.0c0f145e46c8ap+0, 0x1.9c00p-50, + 0x1.0cc922b724816p+0, 0x1.5200p-47, + 0x1.0d83b23395dd8p+0, -0x1.ad00p-48, + 0x1.0e3ec32d3d1f3p+0, 0x1.bac0p-46, + 0x1.0efa55fdfa9a6p+0, -0x1.4e80p-47, + 0x1.0fb66affed2f0p+0, -0x1.d300p-47, + 0x1.1073028d7234bp+0, 0x1.1500p-48, + 0x1.11301d0125b5bp+0, 0x1.c000p-49, + 0x1.11edbab5e2af9p+0, 0x1.6bc0p-46, + 0x1.12abdc06c31d5p+0, 0x1.8400p-49, + 0x1.136a814f2047dp+0, -0x1.ed00p-47, + 0x1.1429aaea92de9p+0, 0x1.8e00p-49, + 0x1.14e95934f3138p+0, 0x1.b400p-49, + 0x1.15a98c8a58e71p+0, 0x1.5300p-47, + 0x1.166a45471c3dfp+0, 0x1.3380p-47, + 0x1.172b83c7d5211p+0, 0x1.8d40p-45, + 0x1.17ed48695bb9fp+0, -0x1.5d00p-47, + 0x1.18af9388c8d93p+0, -0x1.c880p-46, + 0x1.1972658375d66p+0, 0x1.1f00p-46, + 0x1.1a35beb6fcba7p+0, 0x1.0480p-46, + 0x1.1af99f81387e3p+0, -0x1.7390p-43, + 0x1.1bbe084045d54p+0, 0x1.4e40p-45, + 0x1.1c82f95281c43p+0, -0x1.a200p-47, + 0x1.1d4873168b9b2p+0, 0x1.3800p-49, + 0x1.1e0e75eb44031p+0, 0x1.ac00p-49, + 0x1.1ed5022fcd938p+0, 0x1.1900p-47, + 0x1.1f9c18438cdf7p+0, -0x1.b780p-46, + 0x1.2063b88628d8fp+0, 0x1.d940p-45, + 0x1.212be3578a81ep+0, 0x1.8000p-50, + 0x1.21f49917ddd41p+0, 0x1.b340p-45, + 0x1.22bdda2791323p+0, 0x1.9f80p-46, + 0x1.2387a6e7561e7p+0, -0x1.9c80p-46, + 0x1.2451ffb821427p+0, 0x1.2300p-47, + 0x1.251ce4fb2a602p+0, -0x1.3480p-46, + 0x1.25e85711eceb0p+0, 0x1.2700p-46, + 0x1.26b4565e27d16p+0, 0x1.1d00p-46, + 0x1.2780e341de00fp+0, 0x1.1ee0p-44, + 0x1.284dfe1f5633ep+0, -0x1.4c00p-46, + 0x1.291ba7591bb30p+0, -0x1.3d80p-46, + 0x1.29e9df51fdf09p+0, 0x1.8b00p-47, + 0x1.2ab8a66d10e9bp+0, -0x1.27c0p-45, + 0x1.2b87fd0dada3ap+0, 0x1.a340p-45, + 0x1.2c57e39771af9p+0, -0x1.0800p-46, + 0x1.2d285a6e402d9p+0, -0x1.ed00p-47, + 0x1.2df961f641579p+0, -0x1.4200p-48, + 0x1.2ecafa93e2ecfp+0, -0x1.4980p-45, + 0x1.2f9d24abd8822p+0, -0x1.6300p-46, + 0x1.306fe0a31b625p+0, -0x1.2360p-44, + 0x1.31432edeea50bp+0, -0x1.0df8p-40, + 0x1.32170fc4cd7b8p+0, -0x1.2480p-45, + 0x1.32eb83ba8e9a2p+0, -0x1.5980p-45, + 0x1.33c08b2641766p+0, 0x1.ed00p-46, + 0x1.3496266e3fa27p+0, -0x1.c000p-50, + 0x1.356c55f929f0fp+0, -0x1.0d80p-44, + 0x1.36431a2de88b9p+0, 0x1.2c80p-45, + 0x1.371a7373aaa39p+0, 0x1.0600p-45, + 0x1.37f26231e74fep+0, -0x1.6600p-46, + 0x1.38cae6d05d838p+0, -0x1.ae00p-47, + 0x1.39a401b713ec3p+0, -0x1.4720p-43, + 0x1.3a7db34e5a020p+0, 0x1.8200p-47, + 0x1.3b57fbfec6e95p+0, 0x1.e800p-44, + 0x1.3c32dc313a8f2p+0, 0x1.f800p-49, + 0x1.3d0e544ede122p+0, -0x1.7a00p-46, + 0x1.3dea64c1234bbp+0, 0x1.6300p-45, + 0x1.3ec70df1c4eccp+0, -0x1.8a60p-43, + 0x1.3fa4504ac7e8cp+0, -0x1.cdc0p-44, + 0x1.40822c367a0bbp+0, 0x1.5b80p-45, + 0x1.4160a21f72e95p+0, 0x1.ec00p-46, + 0x1.423fb27094646p+0, -0x1.3600p-46, + 0x1.431f5d950a920p+0, 0x1.3980p-45, + 0x1.43ffa3f84b9ebp+0, 0x1.a000p-48, + 0x1.44e0860618919p+0, -0x1.6c00p-48, + 0x1.45c2042a7d201p+0, -0x1.bc00p-47, + 0x1.46a41ed1d0016p+0, -0x1.2800p-46, + 0x1.4786d668b3326p+0, 0x1.0e00p-44, + 0x1.486a2b5c13c00p+0, -0x1.d400p-45, + 0x1.494e1e192af04p+0, 0x1.c200p-47, + 0x1.4a32af0d7d372p+0, -0x1.e500p-46, + 0x1.4b17dea6db801p+0, 0x1.7800p-47, + 0x1.4bfdad53629e1p+0, -0x1.3800p-46, + 0x1.4ce41b817c132p+0, 0x1.0800p-47, + 0x1.4dcb299fddddbp+0, 0x1.c700p-45, + 0x1.4eb2d81d8ab96p+0, -0x1.ce00p-46, + 0x1.4f9b2769d2d02p+0, 0x1.9200p-46, + 0x1.508417f4531c1p+0, -0x1.8c00p-47, + 0x1.516daa2cf662ap+0, -0x1.a000p-48, + 0x1.5257de83f51eap+0, 0x1.a080p-43, + 0x1.5342b569d4edap+0, -0x1.6d80p-45, + 0x1.542e2f4f6ac1ap+0, -0x1.2440p-44, + 0x1.551a4ca5d94dbp+0, 0x1.83c0p-43, + 0x1.56070dde9116bp+0, 0x1.4b00p-45, + 0x1.56f4736b529dep+0, 0x1.15a0p-43, + 0x1.57e27dbe2c40ep+0, -0x1.9e00p-45, + 0x1.58d12d497c76fp+0, -0x1.3080p-45, + 0x1.59c0827ff0b4cp+0, 0x1.dec0p-43, + 0x1.5ab07dd485427p+0, -0x1.4000p-51, + 0x1.5ba11fba87af4p+0, 0x1.0080p-44, + 0x1.5c9268a59460bp+0, -0x1.6c80p-45, + 0x1.5d84590998e3fp+0, 0x1.69a0p-43, + 0x1.5e76f15ad20e1p+0, -0x1.b400p-46, + 0x1.5f6a320dcebcap+0, 0x1.7700p-46, + 0x1.605e1b976dcb8p+0, 0x1.6f80p-45, + 0x1.6152ae6cdf715p+0, 0x1.1000p-47, + 0x1.6247eb03a5531p+0, -0x1.5d00p-46, + 0x1.633dd1d1929b5p+0, -0x1.2d00p-46, + 0x1.6434634ccc313p+0, -0x1.a800p-49, + 0x1.652b9febc8efap+0, -0x1.8600p-45, + 0x1.6623882553397p+0, 0x1.1fe0p-40, + 0x1.671c1c708328ep+0, -0x1.7200p-44, + 0x1.68155d44ca97ep+0, 0x1.6800p-49, + 0x1.690f4b19e9471p+0, -0x1.9780p-45, +}; + +fn exp2_64(x: f64) f64 { + const tblsiz = @intCast(u32, exp2dt.len / 2); + const redux: f64 = 0x1.8p52 / @intToFloat(f64, tblsiz); + const P1: f64 = 0x1.62e42fefa39efp-1; + const P2: f64 = 0x1.ebfbdff82c575p-3; + const P3: f64 = 0x1.c6b08d704a0a6p-5; + const P4: f64 = 0x1.3b2ab88f70400p-7; + const P5: f64 = 0x1.5d88003875c74p-10; + + const ux = @bitCast(u64, x); + const ix = @intCast(u32, ux >> 32) & 0x7FFFFFFF; + + // TODO: This should be handled beneath. + if (math.isNan(x)) { + return math.nan(f64); + } + + // |x| >= 1022 or nan + if (ix >= 0x408FF000) { + // x >= 1024 or nan + if (ix >= 0x40900000 and ux >> 63 == 0) { + math.raiseOverflow(); + return math.inf(f64); + } + // -inf or -nan + if (ix >= 0x7FF00000) { + return -1 / x; + } + // x <= -1022 + if (ux >> 63 != 0) { + // underflow + if (x <= -1075 or x - 0x1.0p52 + 0x1.0p52 != x) { + math.forceEval(@floatCast(f32, -0x1.0p-149 / x)); + } + if (x <= -1075) { + return 0; + } + } + } + // |x| < 0x1p-54 + else if (ix < 0x3C900000) { + return 1.0 + x; + } + + // reduce x + var uf = x + redux; + // NOTE: musl performs an implicit 64-bit to 32-bit u32 truncation here + var i_0 = @truncate(u32, @bitCast(u64, uf)); + i_0 += tblsiz / 2; + + const k: u32 = i_0 / tblsiz * tblsiz; + const ik = @bitCast(i32, k / tblsiz); + i_0 %= tblsiz; + uf -= redux; + + // r = exp2(y) = exp2t[i_0] * p(z - eps[i]) + var z = x - uf; + const t = exp2dt[2 * i_0]; + z -= exp2dt[2 * i_0 + 1]; + const r = t + t * z * (P1 + z * (P2 + z * (P3 + z * (P4 + z * P5)))); + + return math.scalbn(r, ik); +} + +test "math.exp2" { + expect(exp2(f32(0.8923)) == exp2_32(0.8923)); + expect(exp2(f64(0.8923)) == exp2_64(0.8923)); +} + +test "math.exp2_32" { + const epsilon = 0.000001; + + expect(exp2_32(0.0) == 1.0); + expect(math.approxEq(f32, exp2_32(0.2), 1.148698, epsilon)); + expect(math.approxEq(f32, exp2_32(0.8923), 1.856133, epsilon)); + expect(math.approxEq(f32, exp2_32(1.5), 2.828427, epsilon)); + expect(math.approxEq(f32, exp2_32(37.45), 187747237888, epsilon)); +} + +test "math.exp2_64" { + const epsilon = 0.000001; + + expect(exp2_64(0.0) == 1.0); + expect(math.approxEq(f64, exp2_64(0.2), 1.148698, epsilon)); + expect(math.approxEq(f64, exp2_64(0.8923), 1.856133, epsilon)); + expect(math.approxEq(f64, exp2_64(1.5), 2.828427, epsilon)); +} + +test "math.exp2_32.special" { + expect(math.isPositiveInf(exp2_32(math.inf(f32)))); + expect(math.isNan(exp2_32(math.nan(f32)))); +} + +test "math.exp2_64.special" { + expect(math.isPositiveInf(exp2_64(math.inf(f64)))); + expect(math.isNan(exp2_64(math.nan(f64)))); +} diff --git a/lib/std/math/expm1.zig b/lib/std/math/expm1.zig new file mode 100644 index 0000000000..5e347f86f6 --- /dev/null +++ b/lib/std/math/expm1.zig @@ -0,0 +1,328 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/expmf.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/expm.c + +// TODO: Updated recently. + +const builtin = @import("builtin"); +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; + +/// Returns e raised to the power of x, minus 1 (e^x - 1). This is more accurate than exp(e, x) - 1 +/// when x is near 0. +/// +/// Special Cases: +/// - expm1(+inf) = +inf +/// - expm1(-inf) = -1 +/// - expm1(nan) = nan +pub fn expm1(x: var) @typeOf(x) { + const T = @typeOf(x); + return switch (T) { + f32 => expm1_32(x), + f64 => expm1_64(x), + else => @compileError("exp1m not implemented for " ++ @typeName(T)), + }; +} + +fn expm1_32(x_: f32) f32 { + if (math.isNan(x_)) + return math.nan(f32); + + const o_threshold: f32 = 8.8721679688e+01; + const ln2_hi: f32 = 6.9313812256e-01; + const ln2_lo: f32 = 9.0580006145e-06; + const invln2: f32 = 1.4426950216e+00; + const Q1: f32 = -3.3333212137e-2; + const Q2: f32 = 1.5807170421e-3; + + var x = x_; + const ux = @bitCast(u32, x); + const hx = ux & 0x7FFFFFFF; + const sign = hx >> 31; + + // TODO: Shouldn't need this check explicitly. + if (math.isNegativeInf(x)) { + return -1.0; + } + + // |x| >= 27 * ln2 + if (hx >= 0x4195B844) { + // nan + if (hx > 0x7F800000) { + return x; + } + if (sign != 0) { + return -1; + } + if (x > o_threshold) { + x *= 0x1.0p127; + return x; + } + } + + var hi: f32 = undefined; + var lo: f32 = undefined; + var c: f32 = undefined; + var k: i32 = undefined; + + // |x| > 0.5 * ln2 + if (hx > 0x3EB17218) { + // |x| < 1.5 * ln2 + if (hx < 0x3F851592) { + if (sign == 0) { + hi = x - ln2_hi; + lo = ln2_lo; + k = 1; + } else { + hi = x + ln2_hi; + lo = -ln2_lo; + k = -1; + } + } else { + var kf = invln2 * x; + if (sign != 0) { + kf -= 0.5; + } else { + kf += 0.5; + } + + k = @floatToInt(i32, kf); + const t = @intToFloat(f32, k); + hi = x - t * ln2_hi; + lo = t * ln2_lo; + } + + x = hi - lo; + c = (hi - x) - lo; + } + // |x| < 2^(-25) + else if (hx < 0x33000000) { + if (hx < 0x00800000) { + math.forceEval(x * x); + } + return x; + } else { + k = 0; + } + + const hfx = 0.5 * x; + const hxs = x * hfx; + const r1 = 1.0 + hxs * (Q1 + hxs * Q2); + const t = 3.0 - r1 * hfx; + var e = hxs * ((r1 - t) / (6.0 - x * t)); + + // c is 0 + if (k == 0) { + return x - (x * e - hxs); + } + + e = x * (e - c) - c; + e -= hxs; + + // exp(x) ~ 2^k (x_reduced - e + 1) + if (k == -1) { + return 0.5 * (x - e) - 0.5; + } + if (k == 1) { + if (x < -0.25) { + return -2.0 * (e - (x + 0.5)); + } else { + return 1.0 + 2.0 * (x - e); + } + } + + const twopk = @bitCast(f32, @intCast(u32, (0x7F +% k) << 23)); + + if (k < 0 or k > 56) { + var y = x - e + 1.0; + if (k == 128) { + y = y * 2.0 * 0x1.0p127; + } else { + y = y * twopk; + } + + return y - 1.0; + } + + const uf = @bitCast(f32, @intCast(u32, 0x7F -% k) << 23); + if (k < 23) { + return (x - e + (1 - uf)) * twopk; + } else { + return (x - (e + uf) + 1) * twopk; + } +} + +fn expm1_64(x_: f64) f64 { + if (math.isNan(x_)) + return math.nan(f64); + + const o_threshold: f64 = 7.09782712893383973096e+02; + const ln2_hi: f64 = 6.93147180369123816490e-01; + const ln2_lo: f64 = 1.90821492927058770002e-10; + const invln2: f64 = 1.44269504088896338700e+00; + const Q1: f64 = -3.33333333333331316428e-02; + const Q2: f64 = 1.58730158725481460165e-03; + const Q3: f64 = -7.93650757867487942473e-05; + const Q4: f64 = 4.00821782732936239552e-06; + const Q5: f64 = -2.01099218183624371326e-07; + + var x = x_; + const ux = @bitCast(u64, x); + const hx = @intCast(u32, ux >> 32) & 0x7FFFFFFF; + const sign = ux >> 63; + + if (math.isNegativeInf(x)) { + return -1.0; + } + + // |x| >= 56 * ln2 + if (hx >= 0x4043687A) { + // exp1md(nan) = nan + if (hx > 0x7FF00000) { + return x; + } + // exp1md(-ve) = -1 + if (sign != 0) { + return -1; + } + if (x > o_threshold) { + math.raiseOverflow(); + return math.inf(f64); + } + } + + var hi: f64 = undefined; + var lo: f64 = undefined; + var c: f64 = undefined; + var k: i32 = undefined; + + // |x| > 0.5 * ln2 + if (hx > 0x3FD62E42) { + // |x| < 1.5 * ln2 + if (hx < 0x3FF0A2B2) { + if (sign == 0) { + hi = x - ln2_hi; + lo = ln2_lo; + k = 1; + } else { + hi = x + ln2_hi; + lo = -ln2_lo; + k = -1; + } + } else { + var kf = invln2 * x; + if (sign != 0) { + kf -= 0.5; + } else { + kf += 0.5; + } + + k = @floatToInt(i32, kf); + const t = @intToFloat(f64, k); + hi = x - t * ln2_hi; + lo = t * ln2_lo; + } + + x = hi - lo; + c = (hi - x) - lo; + } + // |x| < 2^(-54) + else if (hx < 0x3C900000) { + if (hx < 0x00100000) { + math.forceEval(@floatCast(f32, x)); + } + return x; + } else { + k = 0; + } + + const hfx = 0.5 * x; + const hxs = x * hfx; + const r1 = 1.0 + hxs * (Q1 + hxs * (Q2 + hxs * (Q3 + hxs * (Q4 + hxs * Q5)))); + const t = 3.0 - r1 * hfx; + var e = hxs * ((r1 - t) / (6.0 - x * t)); + + // c is 0 + if (k == 0) { + return x - (x * e - hxs); + } + + e = x * (e - c) - c; + e -= hxs; + + // exp(x) ~ 2^k (x_reduced - e + 1) + if (k == -1) { + return 0.5 * (x - e) - 0.5; + } + if (k == 1) { + if (x < -0.25) { + return -2.0 * (e - (x + 0.5)); + } else { + return 1.0 + 2.0 * (x - e); + } + } + + const twopk = @bitCast(f64, @intCast(u64, 0x3FF +% k) << 52); + + if (k < 0 or k > 56) { + var y = x - e + 1.0; + if (k == 1024) { + y = y * 2.0 * 0x1.0p1023; + } else { + y = y * twopk; + } + + return y - 1.0; + } + + const uf = @bitCast(f64, @intCast(u64, 0x3FF -% k) << 52); + if (k < 20) { + return (x - e + (1 - uf)) * twopk; + } else { + return (x - (e + uf) + 1) * twopk; + } +} + +test "math.exp1m" { + expect(expm1(f32(0.0)) == expm1_32(0.0)); + expect(expm1(f64(0.0)) == expm1_64(0.0)); +} + +test "math.expm1_32" { + const epsilon = 0.000001; + + expect(expm1_32(0.0) == 0.0); + expect(math.approxEq(f32, expm1_32(0.0), 0.0, epsilon)); + expect(math.approxEq(f32, expm1_32(0.2), 0.221403, epsilon)); + expect(math.approxEq(f32, expm1_32(0.8923), 1.440737, epsilon)); + expect(math.approxEq(f32, expm1_32(1.5), 3.481689, epsilon)); +} + +test "math.expm1_64" { + const epsilon = 0.000001; + + expect(expm1_64(0.0) == 0.0); + expect(math.approxEq(f64, expm1_64(0.0), 0.0, epsilon)); + expect(math.approxEq(f64, expm1_64(0.2), 0.221403, epsilon)); + expect(math.approxEq(f64, expm1_64(0.8923), 1.440737, epsilon)); + expect(math.approxEq(f64, expm1_64(1.5), 3.481689, epsilon)); +} + +test "math.expm1_32.special" { + const epsilon = 0.000001; + + expect(math.isPositiveInf(expm1_32(math.inf(f32)))); + expect(expm1_32(-math.inf(f32)) == -1.0); + expect(math.isNan(expm1_32(math.nan(f32)))); +} + +test "math.expm1_64.special" { + const epsilon = 0.000001; + + expect(math.isPositiveInf(expm1_64(math.inf(f64)))); + expect(expm1_64(-math.inf(f64)) == -1.0); + expect(math.isNan(expm1_64(math.nan(f64)))); +} diff --git a/lib/std/math/expo2.zig b/lib/std/math/expo2.zig new file mode 100644 index 0000000000..c00098a5a7 --- /dev/null +++ b/lib/std/math/expo2.zig @@ -0,0 +1,35 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/__expo2f.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/__expo2.c + +const math = @import("../math.zig"); + +/// Returns exp(x) / 2 for x >= log(maxFloat(T)). +pub fn expo2(x: var) @typeOf(x) { + const T = @typeOf(x); + return switch (T) { + f32 => expo2f(x), + f64 => expo2d(x), + else => @compileError("expo2 not implemented for " ++ @typeName(T)), + }; +} + +fn expo2f(x: f32) f32 { + const k: u32 = 235; + const kln2 = 0x1.45C778p+7; + + const u = (0x7F + k / 2) << 23; + const scale = @bitCast(f32, u); + return math.exp(x - kln2) * scale * scale; +} + +fn expo2d(x: f64) f64 { + const k: u32 = 2043; + const kln2 = 0x1.62066151ADD8BP+10; + + const u = (0x3FF + k / 2) << 20; + const scale = @bitCast(f64, u64(u) << 32); + return math.exp(x - kln2) * scale * scale; +} diff --git a/lib/std/math/fabs.zig b/lib/std/math/fabs.zig new file mode 100644 index 0000000000..6469f38835 --- /dev/null +++ b/lib/std/math/fabs.zig @@ -0,0 +1,101 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/fabsf.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/fabs.c + +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; +const maxInt = std.math.maxInt; + +/// Returns the absolute value of x. +/// +/// Special Cases: +/// - fabs(+-inf) = +inf +/// - fabs(nan) = nan +pub fn fabs(x: var) @typeOf(x) { + const T = @typeOf(x); + return switch (T) { + f16 => fabs16(x), + f32 => fabs32(x), + f64 => fabs64(x), + f128 => fabs128(x), + else => @compileError("fabs not implemented for " ++ @typeName(T)), + }; +} + +fn fabs16(x: f16) f16 { + var u = @bitCast(u16, x); + u &= 0x7FFF; + return @bitCast(f16, u); +} + +fn fabs32(x: f32) f32 { + var u = @bitCast(u32, x); + u &= 0x7FFFFFFF; + return @bitCast(f32, u); +} + +fn fabs64(x: f64) f64 { + var u = @bitCast(u64, x); + u &= maxInt(u64) >> 1; + return @bitCast(f64, u); +} + +fn fabs128(x: f128) f128 { + var u = @bitCast(u128, x); + u &= maxInt(u128) >> 1; + return @bitCast(f128, u); +} + +test "math.fabs" { + expect(fabs(f16(1.0)) == fabs16(1.0)); + expect(fabs(f32(1.0)) == fabs32(1.0)); + expect(fabs(f64(1.0)) == fabs64(1.0)); + expect(fabs(f128(1.0)) == fabs128(1.0)); +} + +test "math.fabs16" { + expect(fabs16(1.0) == 1.0); + expect(fabs16(-1.0) == 1.0); +} + +test "math.fabs32" { + expect(fabs32(1.0) == 1.0); + expect(fabs32(-1.0) == 1.0); +} + +test "math.fabs64" { + expect(fabs64(1.0) == 1.0); + expect(fabs64(-1.0) == 1.0); +} + +test "math.fabs128" { + expect(fabs128(1.0) == 1.0); + expect(fabs128(-1.0) == 1.0); +} + +test "math.fabs16.special" { + expect(math.isPositiveInf(fabs(math.inf(f16)))); + expect(math.isPositiveInf(fabs(-math.inf(f16)))); + expect(math.isNan(fabs(math.nan(f16)))); +} + +test "math.fabs32.special" { + expect(math.isPositiveInf(fabs(math.inf(f32)))); + expect(math.isPositiveInf(fabs(-math.inf(f32)))); + expect(math.isNan(fabs(math.nan(f32)))); +} + +test "math.fabs64.special" { + expect(math.isPositiveInf(fabs(math.inf(f64)))); + expect(math.isPositiveInf(fabs(-math.inf(f64)))); + expect(math.isNan(fabs(math.nan(f64)))); +} + +test "math.fabs128.special" { + expect(math.isPositiveInf(fabs(math.inf(f128)))); + expect(math.isPositiveInf(fabs(-math.inf(f128)))); + expect(math.isNan(fabs(math.nan(f128)))); +} diff --git a/lib/std/math/floor.zig b/lib/std/math/floor.zig new file mode 100644 index 0000000000..e5ff2b1fc1 --- /dev/null +++ b/lib/std/math/floor.zig @@ -0,0 +1,171 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/floorf.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/floor.c + +const builtin = @import("builtin"); +const expect = std.testing.expect; +const std = @import("../std.zig"); +const math = std.math; + +/// Returns the greatest integer value less than or equal to x. +/// +/// Special Cases: +/// - floor(+-0) = +-0 +/// - floor(+-inf) = +-inf +/// - floor(nan) = nan +pub fn floor(x: var) @typeOf(x) { + const T = @typeOf(x); + return switch (T) { + f16 => floor16(x), + f32 => floor32(x), + f64 => floor64(x), + else => @compileError("floor not implemented for " ++ @typeName(T)), + }; +} + +fn floor16(x: f16) f16 { + var u = @bitCast(u16, x); + const e = @intCast(i16, (u >> 10) & 31) - 15; + var m: u16 = undefined; + + // TODO: Shouldn't need this explicit check. + if (x == 0.0) { + return x; + } + + if (e >= 10) { + return x; + } + + if (e >= 0) { + m = u16(1023) >> @intCast(u4, e); + if (u & m == 0) { + return x; + } + math.forceEval(x + 0x1.0p120); + if (u >> 15 != 0) { + u += m; + } + return @bitCast(f16, u & ~m); + } else { + math.forceEval(x + 0x1.0p120); + if (u >> 15 == 0) { + return 0.0; + } else { + return -1.0; + } + } +} + +fn floor32(x: f32) f32 { + var u = @bitCast(u32, x); + const e = @intCast(i32, (u >> 23) & 0xFF) - 0x7F; + var m: u32 = undefined; + + // TODO: Shouldn't need this explicit check. + if (x == 0.0) { + return x; + } + + if (e >= 23) { + return x; + } + + if (e >= 0) { + m = u32(0x007FFFFF) >> @intCast(u5, e); + if (u & m == 0) { + return x; + } + math.forceEval(x + 0x1.0p120); + if (u >> 31 != 0) { + u += m; + } + return @bitCast(f32, u & ~m); + } else { + math.forceEval(x + 0x1.0p120); + if (u >> 31 == 0) { + return 0.0; + } else { + return -1.0; + } + } +} + +fn floor64(x: f64) f64 { + const u = @bitCast(u64, x); + const e = (u >> 52) & 0x7FF; + var y: f64 = undefined; + + if (e >= 0x3FF + 52 or x == 0) { + return x; + } + + if (u >> 63 != 0) { + y = x - math.f64_toint + math.f64_toint - x; + } else { + y = x + math.f64_toint - math.f64_toint - x; + } + + if (e <= 0x3FF - 1) { + math.forceEval(y); + if (u >> 63 != 0) { + return -1.0; + } else { + return 0.0; + } + } else if (y > 0) { + return x + y - 1; + } else { + return x + y; + } +} + +test "math.floor" { + expect(floor(f16(1.3)) == floor16(1.3)); + expect(floor(f32(1.3)) == floor32(1.3)); + expect(floor(f64(1.3)) == floor64(1.3)); +} + +test "math.floor16" { + expect(floor16(1.3) == 1.0); + expect(floor16(-1.3) == -2.0); + expect(floor16(0.2) == 0.0); +} + +test "math.floor32" { + expect(floor32(1.3) == 1.0); + expect(floor32(-1.3) == -2.0); + expect(floor32(0.2) == 0.0); +} + +test "math.floor64" { + expect(floor64(1.3) == 1.0); + expect(floor64(-1.3) == -2.0); + expect(floor64(0.2) == 0.0); +} + +test "math.floor16.special" { + expect(floor16(0.0) == 0.0); + expect(floor16(-0.0) == -0.0); + expect(math.isPositiveInf(floor16(math.inf(f16)))); + expect(math.isNegativeInf(floor16(-math.inf(f16)))); + expect(math.isNan(floor16(math.nan(f16)))); +} + +test "math.floor32.special" { + expect(floor32(0.0) == 0.0); + expect(floor32(-0.0) == -0.0); + expect(math.isPositiveInf(floor32(math.inf(f32)))); + expect(math.isNegativeInf(floor32(-math.inf(f32)))); + expect(math.isNan(floor32(math.nan(f32)))); +} + +test "math.floor64.special" { + expect(floor64(0.0) == 0.0); + expect(floor64(-0.0) == -0.0); + expect(math.isPositiveInf(floor64(math.inf(f64)))); + expect(math.isNegativeInf(floor64(-math.inf(f64)))); + expect(math.isNan(floor64(math.nan(f64)))); +} diff --git a/lib/std/math/fma.zig b/lib/std/math/fma.zig new file mode 100644 index 0000000000..19c306fa2a --- /dev/null +++ b/lib/std/math/fma.zig @@ -0,0 +1,172 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/fmaf.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/fma.c + +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; + +/// Returns x * y + z with a single rounding error. +pub fn fma(comptime T: type, x: T, y: T, z: T) T { + return switch (T) { + f32 => fma32(x, y, z), + f64 => fma64(x, y, z), + else => @compileError("fma not implemented for " ++ @typeName(T)), + }; +} + +fn fma32(x: f32, y: f32, z: f32) f32 { + const xy = f64(x) * y; + const xy_z = xy + z; + const u = @bitCast(u64, xy_z); + const e = (u >> 52) & 0x7FF; + + if ((u & 0x1FFFFFFF) != 0x10000000 or e == 0x7FF or (xy_z - xy == z and xy_z - z == xy)) { + return @floatCast(f32, xy_z); + } else { + // TODO: Handle inexact case with double-rounding + return @floatCast(f32, xy_z); + } +} + +// NOTE: Upstream fma.c has been rewritten completely to raise fp exceptions more accurately. +fn fma64(x: f64, y: f64, z: f64) f64 { + if (!math.isFinite(x) or !math.isFinite(y)) { + return x * y + z; + } + if (!math.isFinite(z)) { + return z; + } + if (x == 0.0 or y == 0.0) { + return x * y + z; + } + if (z == 0.0) { + return x * y; + } + + const x1 = math.frexp(x); + var ex = x1.exponent; + var xs = x1.significand; + const x2 = math.frexp(y); + var ey = x2.exponent; + var ys = x2.significand; + const x3 = math.frexp(z); + var ez = x3.exponent; + var zs = x3.significand; + + var spread = ex + ey - ez; + if (spread <= 53 * 2) { + zs = math.scalbn(zs, -spread); + } else { + zs = math.copysign(f64, math.f64_min, zs); + } + + const xy = dd_mul(xs, ys); + const r = dd_add(xy.hi, zs); + spread = ex + ey; + + if (r.hi == 0.0) { + return xy.hi + zs + math.scalbn(xy.lo, spread); + } + + const adj = add_adjusted(r.lo, xy.lo); + if (spread + math.ilogb(r.hi) > -1023) { + return math.scalbn(r.hi + adj, spread); + } else { + return add_and_denorm(r.hi, adj, spread); + } +} + +const dd = struct { + hi: f64, + lo: f64, +}; + +fn dd_add(a: f64, b: f64) dd { + var ret: dd = undefined; + ret.hi = a + b; + const s = ret.hi - a; + ret.lo = (a - (ret.hi - s)) + (b - s); + return ret; +} + +fn dd_mul(a: f64, b: f64) dd { + var ret: dd = undefined; + const split: f64 = 0x1.0p27 + 1.0; + + var p = a * split; + var ha = a - p; + ha += p; + var la = a - ha; + + p = b * split; + var hb = b - p; + hb += p; + var lb = b - hb; + + p = ha * hb; + var q = ha * lb + la * hb; + + ret.hi = p + q; + ret.lo = p - ret.hi + q + la * lb; + return ret; +} + +fn add_adjusted(a: f64, b: f64) f64 { + var sum = dd_add(a, b); + if (sum.lo != 0) { + var uhii = @bitCast(u64, sum.hi); + if (uhii & 1 == 0) { + // hibits += copysign(1.0, sum.hi, sum.lo) + const uloi = @bitCast(u64, sum.lo); + uhii += 1 - ((uhii ^ uloi) >> 62); + sum.hi = @bitCast(f64, uhii); + } + } + return sum.hi; +} + +fn add_and_denorm(a: f64, b: f64, scale: i32) f64 { + var sum = dd_add(a, b); + if (sum.lo != 0) { + var uhii = @bitCast(u64, sum.hi); + const bits_lost = -@intCast(i32, (uhii >> 52) & 0x7FF) - scale + 1; + if ((bits_lost != 1) == (uhii & 1 != 0)) { + const uloi = @bitCast(u64, sum.lo); + uhii += 1 - (((uhii ^ uloi) >> 62) & 2); + sum.hi = @bitCast(f64, uhii); + } + } + return math.scalbn(sum.hi, scale); +} + +test "math.fma" { + expect(fma(f32, 0.0, 1.0, 1.0) == fma32(0.0, 1.0, 1.0)); + expect(fma(f64, 0.0, 1.0, 1.0) == fma64(0.0, 1.0, 1.0)); +} + +test "math.fma32" { + const epsilon = 0.000001; + + expect(math.approxEq(f32, fma32(0.0, 5.0, 9.124), 9.124, epsilon)); + expect(math.approxEq(f32, fma32(0.2, 5.0, 9.124), 10.124, epsilon)); + expect(math.approxEq(f32, fma32(0.8923, 5.0, 9.124), 13.5855, epsilon)); + expect(math.approxEq(f32, fma32(1.5, 5.0, 9.124), 16.624, epsilon)); + expect(math.approxEq(f32, fma32(37.45, 5.0, 9.124), 196.374004, epsilon)); + expect(math.approxEq(f32, fma32(89.123, 5.0, 9.124), 454.739005, epsilon)); + expect(math.approxEq(f32, fma32(123123.234375, 5.0, 9.124), 615625.295875, epsilon)); +} + +test "math.fma64" { + const epsilon = 0.000001; + + expect(math.approxEq(f64, fma64(0.0, 5.0, 9.124), 9.124, epsilon)); + expect(math.approxEq(f64, fma64(0.2, 5.0, 9.124), 10.124, epsilon)); + expect(math.approxEq(f64, fma64(0.8923, 5.0, 9.124), 13.5855, epsilon)); + expect(math.approxEq(f64, fma64(1.5, 5.0, 9.124), 16.624, epsilon)); + expect(math.approxEq(f64, fma64(37.45, 5.0, 9.124), 196.374, epsilon)); + expect(math.approxEq(f64, fma64(89.123, 5.0, 9.124), 454.739, epsilon)); + expect(math.approxEq(f64, fma64(123123.234375, 5.0, 9.124), 615625.295875, epsilon)); +} diff --git a/lib/std/math/frexp.zig b/lib/std/math/frexp.zig new file mode 100644 index 0000000000..2759cd6492 --- /dev/null +++ b/lib/std/math/frexp.zig @@ -0,0 +1,178 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/frexpf.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/frexp.c + +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; + +fn frexp_result(comptime T: type) type { + return struct { + significand: T, + exponent: i32, + }; +} +pub const frexp32_result = frexp_result(f32); +pub const frexp64_result = frexp_result(f64); + +/// Breaks x into a normalized fraction and an integral power of two. +/// f == frac * 2^exp, with |frac| in the interval [0.5, 1). +/// +/// Special Cases: +/// - frexp(+-0) = +-0, 0 +/// - frexp(+-inf) = +-inf, 0 +/// - frexp(nan) = nan, undefined +pub fn frexp(x: var) frexp_result(@typeOf(x)) { + const T = @typeOf(x); + return switch (T) { + f32 => frexp32(x), + f64 => frexp64(x), + else => @compileError("frexp not implemented for " ++ @typeName(T)), + }; +} + +fn frexp32(x: f32) frexp32_result { + var result: frexp32_result = undefined; + + var y = @bitCast(u32, x); + const e = @intCast(i32, y >> 23) & 0xFF; + + if (e == 0) { + if (x != 0) { + // subnormal + result = frexp32(x * 0x1.0p64); + result.exponent -= 64; + } else { + // frexp(+-0) = (+-0, 0) + result.significand = x; + result.exponent = 0; + } + return result; + } else if (e == 0xFF) { + // frexp(nan) = (nan, undefined) + result.significand = x; + result.exponent = undefined; + + // frexp(+-inf) = (+-inf, 0) + if (math.isInf(x)) { + result.exponent = 0; + } + + return result; + } + + result.exponent = e - 0x7E; + y &= 0x807FFFFF; + y |= 0x3F000000; + result.significand = @bitCast(f32, y); + return result; +} + +fn frexp64(x: f64) frexp64_result { + var result: frexp64_result = undefined; + + var y = @bitCast(u64, x); + const e = @intCast(i32, y >> 52) & 0x7FF; + + if (e == 0) { + if (x != 0) { + // subnormal + result = frexp64(x * 0x1.0p64); + result.exponent -= 64; + } else { + // frexp(+-0) = (+-0, 0) + result.significand = x; + result.exponent = 0; + } + return result; + } else if (e == 0x7FF) { + // frexp(nan) = (nan, undefined) + result.significand = x; + result.exponent = undefined; + + // frexp(+-inf) = (+-inf, 0) + if (math.isInf(x)) { + result.exponent = 0; + } + + return result; + } + + result.exponent = e - 0x3FE; + y &= 0x800FFFFFFFFFFFFF; + y |= 0x3FE0000000000000; + result.significand = @bitCast(f64, y); + return result; +} + +test "math.frexp" { + const a = frexp(f32(1.3)); + const b = frexp32(1.3); + expect(a.significand == b.significand and a.exponent == b.exponent); + + const c = frexp(f64(1.3)); + const d = frexp64(1.3); + expect(c.significand == d.significand and c.exponent == d.exponent); +} + +test "math.frexp32" { + const epsilon = 0.000001; + var r: frexp32_result = undefined; + + r = frexp32(1.3); + expect(math.approxEq(f32, r.significand, 0.65, epsilon) and r.exponent == 1); + + r = frexp32(78.0234); + expect(math.approxEq(f32, r.significand, 0.609558, epsilon) and r.exponent == 7); +} + +test "math.frexp64" { + const epsilon = 0.000001; + var r: frexp64_result = undefined; + + r = frexp64(1.3); + expect(math.approxEq(f64, r.significand, 0.65, epsilon) and r.exponent == 1); + + r = frexp64(78.0234); + expect(math.approxEq(f64, r.significand, 0.609558, epsilon) and r.exponent == 7); +} + +test "math.frexp32.special" { + var r: frexp32_result = undefined; + + r = frexp32(0.0); + expect(r.significand == 0.0 and r.exponent == 0); + + r = frexp32(-0.0); + expect(r.significand == -0.0 and r.exponent == 0); + + r = frexp32(math.inf(f32)); + expect(math.isPositiveInf(r.significand) and r.exponent == 0); + + r = frexp32(-math.inf(f32)); + expect(math.isNegativeInf(r.significand) and r.exponent == 0); + + r = frexp32(math.nan(f32)); + expect(math.isNan(r.significand)); +} + +test "math.frexp64.special" { + var r: frexp64_result = undefined; + + r = frexp64(0.0); + expect(r.significand == 0.0 and r.exponent == 0); + + r = frexp64(-0.0); + expect(r.significand == -0.0 and r.exponent == 0); + + r = frexp64(math.inf(f64)); + expect(math.isPositiveInf(r.significand) and r.exponent == 0); + + r = frexp64(-math.inf(f64)); + expect(math.isNegativeInf(r.significand) and r.exponent == 0); + + r = frexp64(math.nan(f64)); + expect(math.isNan(r.significand)); +} diff --git a/lib/std/math/hypot.zig b/lib/std/math/hypot.zig new file mode 100644 index 0000000000..c15da1495e --- /dev/null +++ b/lib/std/math/hypot.zig @@ -0,0 +1,168 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/hypotf.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/hypot.c + +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; +const maxInt = std.math.maxInt; + +/// Returns sqrt(x * x + y * y), avoiding unncessary overflow and underflow. +/// +/// Special Cases: +/// - hypot(+-inf, y) = +inf +/// - hypot(x, +-inf) = +inf +/// - hypot(nan, y) = nan +/// - hypot(x, nan) = nan +pub fn hypot(comptime T: type, x: T, y: T) T { + return switch (T) { + f32 => hypot32(x, y), + f64 => hypot64(x, y), + else => @compileError("hypot not implemented for " ++ @typeName(T)), + }; +} + +fn hypot32(x: f32, y: f32) f32 { + var ux = @bitCast(u32, x); + var uy = @bitCast(u32, y); + + ux &= maxInt(u32) >> 1; + uy &= maxInt(u32) >> 1; + if (ux < uy) { + const tmp = ux; + ux = uy; + uy = tmp; + } + + var xx = @bitCast(f32, ux); + var yy = @bitCast(f32, uy); + if (uy == 0xFF << 23) { + return yy; + } + if (ux >= 0xFF << 23 or uy == 0 or ux - uy >= (25 << 23)) { + return xx + yy; + } + + var z: f32 = 1.0; + if (ux >= (0x7F + 60) << 23) { + z = 0x1.0p90; + xx *= 0x1.0p-90; + yy *= 0x1.0p-90; + } else if (uy < (0x7F - 60) << 23) { + z = 0x1.0p-90; + xx *= 0x1.0p-90; + yy *= 0x1.0p-90; + } + + return z * math.sqrt(@floatCast(f32, f64(x) * x + f64(y) * y)); +} + +fn sq(hi: *f64, lo: *f64, x: f64) void { + const split: f64 = 0x1.0p27 + 1.0; + const xc = x * split; + const xh = x - xc + xc; + const xl = x - xh; + hi.* = x * x; + lo.* = xh * xh - hi.* + 2 * xh * xl + xl * xl; +} + +fn hypot64(x: f64, y: f64) f64 { + var ux = @bitCast(u64, x); + var uy = @bitCast(u64, y); + + ux &= maxInt(u64) >> 1; + uy &= maxInt(u64) >> 1; + if (ux < uy) { + const tmp = ux; + ux = uy; + uy = tmp; + } + + const ex = ux >> 52; + const ey = uy >> 52; + var xx = @bitCast(f64, ux); + var yy = @bitCast(f64, uy); + + // hypot(inf, nan) == inf + if (ey == 0x7FF) { + return yy; + } + if (ex == 0x7FF or uy == 0) { + return xx; + } + + // hypot(x, y) ~= x + y * y / x / 2 with inexact for small y/x + if (ex - ey > 64) { + return xx + yy; + } + + var z: f64 = 1; + if (ex > 0x3FF + 510) { + z = 0x1.0p700; + xx *= 0x1.0p-700; + yy *= 0x1.0p-700; + } else if (ey < 0x3FF - 450) { + z = 0x1.0p-700; + xx *= 0x1.0p700; + yy *= 0x1.0p700; + } + + var hx: f64 = undefined; + var lx: f64 = undefined; + var hy: f64 = undefined; + var ly: f64 = undefined; + + sq(&hx, &lx, x); + sq(&hy, &ly, y); + + return z * math.sqrt(ly + lx + hy + hx); +} + +test "math.hypot" { + expect(hypot(f32, 0.0, -1.2) == hypot32(0.0, -1.2)); + expect(hypot(f64, 0.0, -1.2) == hypot64(0.0, -1.2)); +} + +test "math.hypot32" { + const epsilon = 0.000001; + + expect(math.approxEq(f32, hypot32(0.0, -1.2), 1.2, epsilon)); + expect(math.approxEq(f32, hypot32(0.2, -0.34), 0.394462, epsilon)); + expect(math.approxEq(f32, hypot32(0.8923, 2.636890), 2.783772, epsilon)); + expect(math.approxEq(f32, hypot32(1.5, 5.25), 5.460083, epsilon)); + expect(math.approxEq(f32, hypot32(37.45, 159.835), 164.163742, epsilon)); + expect(math.approxEq(f32, hypot32(89.123, 382.028905), 392.286865, epsilon)); + expect(math.approxEq(f32, hypot32(123123.234375, 529428.707813), 543556.875, epsilon)); +} + +test "math.hypot64" { + const epsilon = 0.000001; + + expect(math.approxEq(f64, hypot64(0.0, -1.2), 1.2, epsilon)); + expect(math.approxEq(f64, hypot64(0.2, -0.34), 0.394462, epsilon)); + expect(math.approxEq(f64, hypot64(0.8923, 2.636890), 2.783772, epsilon)); + expect(math.approxEq(f64, hypot64(1.5, 5.25), 5.460082, epsilon)); + expect(math.approxEq(f64, hypot64(37.45, 159.835), 164.163728, epsilon)); + expect(math.approxEq(f64, hypot64(89.123, 382.028905), 392.286876, epsilon)); + expect(math.approxEq(f64, hypot64(123123.234375, 529428.707813), 543556.885247, epsilon)); +} + +test "math.hypot32.special" { + expect(math.isPositiveInf(hypot32(math.inf(f32), 0.0))); + expect(math.isPositiveInf(hypot32(-math.inf(f32), 0.0))); + expect(math.isPositiveInf(hypot32(0.0, math.inf(f32)))); + expect(math.isPositiveInf(hypot32(0.0, -math.inf(f32)))); + expect(math.isNan(hypot32(math.nan(f32), 0.0))); + expect(math.isNan(hypot32(0.0, math.nan(f32)))); +} + +test "math.hypot64.special" { + expect(math.isPositiveInf(hypot64(math.inf(f64), 0.0))); + expect(math.isPositiveInf(hypot64(-math.inf(f64), 0.0))); + expect(math.isPositiveInf(hypot64(0.0, math.inf(f64)))); + expect(math.isPositiveInf(hypot64(0.0, -math.inf(f64)))); + expect(math.isNan(hypot64(math.nan(f64), 0.0))); + expect(math.isNan(hypot64(0.0, math.nan(f64)))); +} diff --git a/lib/std/math/ilogb.zig b/lib/std/math/ilogb.zig new file mode 100644 index 0000000000..fe4158a6dd --- /dev/null +++ b/lib/std/math/ilogb.zig @@ -0,0 +1,138 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/ilogbf.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/ilogb.c + +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; +const maxInt = std.math.maxInt; +const minInt = std.math.minInt; + +/// Returns the binary exponent of x as an integer. +/// +/// Special Cases: +/// - ilogb(+-inf) = maxInt(i32) +/// - ilogb(0) = maxInt(i32) +/// - ilogb(nan) = maxInt(i32) +pub fn ilogb(x: var) i32 { + const T = @typeOf(x); + return switch (T) { + f32 => ilogb32(x), + f64 => ilogb64(x), + else => @compileError("ilogb not implemented for " ++ @typeName(T)), + }; +} + +// NOTE: Should these be exposed publicly? +const fp_ilogbnan = -1 - i32(maxInt(u32) >> 1); +const fp_ilogb0 = fp_ilogbnan; + +fn ilogb32(x: f32) i32 { + var u = @bitCast(u32, x); + var e = @intCast(i32, (u >> 23) & 0xFF); + + // TODO: We should be able to merge this with the lower check. + if (math.isNan(x)) { + return maxInt(i32); + } + + if (e == 0) { + u <<= 9; + if (u == 0) { + math.raiseInvalid(); + return fp_ilogb0; + } + + // subnormal + e = -0x7F; + while (u >> 31 == 0) : (u <<= 1) { + e -= 1; + } + return e; + } + + if (e == 0xFF) { + math.raiseInvalid(); + if (u << 9 != 0) { + return fp_ilogbnan; + } else { + return maxInt(i32); + } + } + + return e - 0x7F; +} + +fn ilogb64(x: f64) i32 { + var u = @bitCast(u64, x); + var e = @intCast(i32, (u >> 52) & 0x7FF); + + if (math.isNan(x)) { + return maxInt(i32); + } + + if (e == 0) { + u <<= 12; + if (u == 0) { + math.raiseInvalid(); + return fp_ilogb0; + } + + // subnormal + e = -0x3FF; + while (u >> 63 == 0) : (u <<= 1) { + e -= 1; + } + return e; + } + + if (e == 0x7FF) { + math.raiseInvalid(); + if (u << 12 != 0) { + return fp_ilogbnan; + } else { + return maxInt(i32); + } + } + + return e - 0x3FF; +} + +test "math.ilogb" { + expect(ilogb(f32(0.2)) == ilogb32(0.2)); + expect(ilogb(f64(0.2)) == ilogb64(0.2)); +} + +test "math.ilogb32" { + expect(ilogb32(0.0) == fp_ilogb0); + expect(ilogb32(0.5) == -1); + expect(ilogb32(0.8923) == -1); + expect(ilogb32(10.0) == 3); + expect(ilogb32(-123984) == 16); + expect(ilogb32(2398.23) == 11); +} + +test "math.ilogb64" { + expect(ilogb64(0.0) == fp_ilogb0); + expect(ilogb64(0.5) == -1); + expect(ilogb64(0.8923) == -1); + expect(ilogb64(10.0) == 3); + expect(ilogb64(-123984) == 16); + expect(ilogb64(2398.23) == 11); +} + +test "math.ilogb32.special" { + expect(ilogb32(math.inf(f32)) == maxInt(i32)); + expect(ilogb32(-math.inf(f32)) == maxInt(i32)); + expect(ilogb32(0.0) == minInt(i32)); + expect(ilogb32(math.nan(f32)) == maxInt(i32)); +} + +test "math.ilogb64.special" { + expect(ilogb64(math.inf(f64)) == maxInt(i32)); + expect(ilogb64(-math.inf(f64)) == maxInt(i32)); + expect(ilogb64(0.0) == minInt(i32)); + expect(ilogb64(math.nan(f64)) == maxInt(i32)); +} diff --git a/lib/std/math/inf.zig b/lib/std/math/inf.zig new file mode 100644 index 0000000000..86ff245533 --- /dev/null +++ b/lib/std/math/inf.zig @@ -0,0 +1,13 @@ +const std = @import("../std.zig"); +const math = std.math; + +/// Returns value inf for the type T. +pub fn inf(comptime T: type) T { + return switch (T) { + f16 => math.inf_f16, + f32 => math.inf_f32, + f64 => math.inf_f64, + f128 => math.inf_f128, + else => @compileError("inf not implemented for " ++ @typeName(T)), + }; +} diff --git a/lib/std/math/isfinite.zig b/lib/std/math/isfinite.zig new file mode 100644 index 0000000000..99eba668f9 --- /dev/null +++ b/lib/std/math/isfinite.zig @@ -0,0 +1,41 @@ +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; +const maxInt = std.math.maxInt; + +/// Returns whether x is a finite value. +pub fn isFinite(x: var) bool { + const T = @typeOf(x); + switch (T) { + f16 => { + const bits = @bitCast(u16, x); + return bits & 0x7FFF < 0x7C00; + }, + f32 => { + const bits = @bitCast(u32, x); + return bits & 0x7FFFFFFF < 0x7F800000; + }, + f64 => { + const bits = @bitCast(u64, x); + return bits & (maxInt(u64) >> 1) < (0x7FF << 52); + }, + else => { + @compileError("isFinite not implemented for " ++ @typeName(T)); + }, + } +} + +test "math.isFinite" { + expect(isFinite(f16(0.0))); + expect(isFinite(f16(-0.0))); + expect(isFinite(f32(0.0))); + expect(isFinite(f32(-0.0))); + expect(isFinite(f64(0.0))); + expect(isFinite(f64(-0.0))); + expect(!isFinite(math.inf(f16))); + expect(!isFinite(-math.inf(f16))); + expect(!isFinite(math.inf(f32))); + expect(!isFinite(-math.inf(f32))); + expect(!isFinite(math.inf(f64))); + expect(!isFinite(-math.inf(f64))); +} diff --git a/lib/std/math/isinf.zig b/lib/std/math/isinf.zig new file mode 100644 index 0000000000..37934f4cf4 --- /dev/null +++ b/lib/std/math/isinf.zig @@ -0,0 +1,131 @@ +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; +const maxInt = std.math.maxInt; + +/// Returns whether x is an infinity, ignoring sign. +pub fn isInf(x: var) bool { + const T = @typeOf(x); + switch (T) { + f16 => { + const bits = @bitCast(u16, x); + return bits & 0x7FFF == 0x7C00; + }, + f32 => { + const bits = @bitCast(u32, x); + return bits & 0x7FFFFFFF == 0x7F800000; + }, + f64 => { + const bits = @bitCast(u64, x); + return bits & (maxInt(u64) >> 1) == (0x7FF << 52); + }, + f128 => { + const bits = @bitCast(u128, x); + return bits & (maxInt(u128) >> 1) == (0x7FFF << 112); + }, + else => { + @compileError("isInf not implemented for " ++ @typeName(T)); + }, + } +} + +/// Returns whether x is an infinity with a positive sign. +pub fn isPositiveInf(x: var) bool { + const T = @typeOf(x); + switch (T) { + f16 => { + return @bitCast(u16, x) == 0x7C00; + }, + f32 => { + return @bitCast(u32, x) == 0x7F800000; + }, + f64 => { + return @bitCast(u64, x) == 0x7FF << 52; + }, + f128 => { + return @bitCast(u128, x) == 0x7FFF << 112; + }, + else => { + @compileError("isPositiveInf not implemented for " ++ @typeName(T)); + }, + } +} + +/// Returns whether x is an infinity with a negative sign. +pub fn isNegativeInf(x: var) bool { + const T = @typeOf(x); + switch (T) { + f16 => { + return @bitCast(u16, x) == 0xFC00; + }, + f32 => { + return @bitCast(u32, x) == 0xFF800000; + }, + f64 => { + return @bitCast(u64, x) == 0xFFF << 52; + }, + f128 => { + return @bitCast(u128, x) == 0xFFFF << 112; + }, + else => { + @compileError("isNegativeInf not implemented for " ++ @typeName(T)); + }, + } +} + +test "math.isInf" { + expect(!isInf(f16(0.0))); + expect(!isInf(f16(-0.0))); + expect(!isInf(f32(0.0))); + expect(!isInf(f32(-0.0))); + expect(!isInf(f64(0.0))); + expect(!isInf(f64(-0.0))); + expect(!isInf(f128(0.0))); + expect(!isInf(f128(-0.0))); + expect(isInf(math.inf(f16))); + expect(isInf(-math.inf(f16))); + expect(isInf(math.inf(f32))); + expect(isInf(-math.inf(f32))); + expect(isInf(math.inf(f64))); + expect(isInf(-math.inf(f64))); + expect(isInf(math.inf(f128))); + expect(isInf(-math.inf(f128))); +} + +test "math.isPositiveInf" { + expect(!isPositiveInf(f16(0.0))); + expect(!isPositiveInf(f16(-0.0))); + expect(!isPositiveInf(f32(0.0))); + expect(!isPositiveInf(f32(-0.0))); + expect(!isPositiveInf(f64(0.0))); + expect(!isPositiveInf(f64(-0.0))); + expect(!isPositiveInf(f128(0.0))); + expect(!isPositiveInf(f128(-0.0))); + expect(isPositiveInf(math.inf(f16))); + expect(!isPositiveInf(-math.inf(f16))); + expect(isPositiveInf(math.inf(f32))); + expect(!isPositiveInf(-math.inf(f32))); + expect(isPositiveInf(math.inf(f64))); + expect(!isPositiveInf(-math.inf(f64))); + expect(isPositiveInf(math.inf(f128))); + expect(!isPositiveInf(-math.inf(f128))); +} + +test "math.isNegativeInf" { + expect(!isNegativeInf(f16(0.0))); + expect(!isNegativeInf(f16(-0.0))); + expect(!isNegativeInf(f32(0.0))); + expect(!isNegativeInf(f32(-0.0))); + expect(!isNegativeInf(f64(0.0))); + expect(!isNegativeInf(f64(-0.0))); + expect(!isNegativeInf(f128(0.0))); + expect(!isNegativeInf(f128(-0.0))); + expect(!isNegativeInf(math.inf(f16))); + expect(isNegativeInf(-math.inf(f16))); + expect(!isNegativeInf(math.inf(f32))); + expect(isNegativeInf(-math.inf(f32))); + expect(!isNegativeInf(math.inf(f64))); + expect(isNegativeInf(-math.inf(f64))); + expect(!isNegativeInf(math.inf(f128))); + expect(isNegativeInf(-math.inf(f128))); +} diff --git a/lib/std/math/isnan.zig b/lib/std/math/isnan.zig new file mode 100644 index 0000000000..cf8cd2e1c2 --- /dev/null +++ b/lib/std/math/isnan.zig @@ -0,0 +1,27 @@ +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; +const maxInt = std.math.maxInt; + +/// Returns whether x is a nan. +pub fn isNan(x: var) bool { + return x != x; +} + +/// Returns whether x is a signalling nan. +pub fn isSignalNan(x: var) bool { + // Note: A signalling nan is identical to a standard nan right now but may have a different bit + // representation in the future when required. + return isNan(x); +} + +test "math.isNan" { + expect(isNan(math.nan(f16))); + expect(isNan(math.nan(f32))); + expect(isNan(math.nan(f64))); + expect(isNan(math.nan(f128))); + expect(!isNan(f16(1.0))); + expect(!isNan(f32(1.0))); + expect(!isNan(f64(1.0))); + expect(!isNan(f128(1.0))); +} diff --git a/lib/std/math/isnormal.zig b/lib/std/math/isnormal.zig new file mode 100644 index 0000000000..f8611ef805 --- /dev/null +++ b/lib/std/math/isnormal.zig @@ -0,0 +1,38 @@ +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; +const maxInt = std.math.maxInt; + +// Returns whether x has a normalized representation (i.e. integer part of mantissa is 1). +pub fn isNormal(x: var) bool { + const T = @typeOf(x); + switch (T) { + f16 => { + const bits = @bitCast(u16, x); + return (bits + 1024) & 0x7FFF >= 2048; + }, + f32 => { + const bits = @bitCast(u32, x); + return (bits + 0x00800000) & 0x7FFFFFFF >= 0x01000000; + }, + f64 => { + const bits = @bitCast(u64, x); + return (bits + (1 << 52)) & (maxInt(u64) >> 1) >= (1 << 53); + }, + else => { + @compileError("isNormal not implemented for " ++ @typeName(T)); + }, + } +} + +test "math.isNormal" { + expect(!isNormal(math.nan(f16))); + expect(!isNormal(math.nan(f32))); + expect(!isNormal(math.nan(f64))); + expect(!isNormal(f16(0))); + expect(!isNormal(f32(0))); + expect(!isNormal(f64(0))); + expect(isNormal(f16(1.0))); + expect(isNormal(f32(1.0))); + expect(isNormal(f64(1.0))); +} diff --git a/lib/std/math/ln.zig b/lib/std/math/ln.zig new file mode 100644 index 0000000000..c5d4c9ff25 --- /dev/null +++ b/lib/std/math/ln.zig @@ -0,0 +1,190 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/lnf.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/ln.c + +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; +const builtin = @import("builtin"); +const TypeId = builtin.TypeId; + +/// Returns the natural logarithm of x. +/// +/// Special Cases: +/// - ln(+inf) = +inf +/// - ln(0) = -inf +/// - ln(x) = nan if x < 0 +/// - ln(nan) = nan +pub fn ln(x: var) @typeOf(x) { + const T = @typeOf(x); + switch (@typeId(T)) { + TypeId.ComptimeFloat => { + return @typeOf(1.0)(ln_64(x)); + }, + TypeId.Float => { + return switch (T) { + f32 => ln_32(x), + f64 => ln_64(x), + else => @compileError("ln not implemented for " ++ @typeName(T)), + }; + }, + TypeId.ComptimeInt => { + return @typeOf(1)(math.floor(ln_64(f64(x)))); + }, + TypeId.Int => { + return T(math.floor(ln_64(f64(x)))); + }, + else => @compileError("ln not implemented for " ++ @typeName(T)), + } +} + +pub fn ln_32(x_: f32) f32 { + const ln2_hi: f32 = 6.9313812256e-01; + const ln2_lo: f32 = 9.0580006145e-06; + const Lg1: f32 = 0xaaaaaa.0p-24; + const Lg2: f32 = 0xccce13.0p-25; + const Lg3: f32 = 0x91e9ee.0p-25; + const Lg4: f32 = 0xf89e26.0p-26; + + var x = x_; + var ix = @bitCast(u32, x); + var k: i32 = 0; + + // x < 2^(-126) + if (ix < 0x00800000 or ix >> 31 != 0) { + // log(+-0) = -inf + if (ix << 1 == 0) { + return -math.inf(f32); + } + // log(-#) = nan + if (ix >> 31 != 0) { + return math.nan(f32); + } + + // subnormal, scale x + k -= 25; + x *= 0x1.0p25; + ix = @bitCast(u32, x); + } else if (ix >= 0x7F800000) { + return x; + } else if (ix == 0x3F800000) { + return 0; + } + + // x into [sqrt(2) / 2, sqrt(2)] + ix += 0x3F800000 - 0x3F3504F3; + k += @intCast(i32, ix >> 23) - 0x7F; + ix = (ix & 0x007FFFFF) + 0x3F3504F3; + x = @bitCast(f32, ix); + + const f = x - 1.0; + const s = f / (2.0 + f); + const z = s * s; + const w = z * z; + const t1 = w * (Lg2 + w * Lg4); + const t2 = z * (Lg1 + w * Lg3); + const R = t2 + t1; + const hfsq = 0.5 * f * f; + const dk = @intToFloat(f32, k); + + return s * (hfsq + R) + dk * ln2_lo - hfsq + f + dk * ln2_hi; +} + +pub fn ln_64(x_: f64) f64 { + const ln2_hi: f64 = 6.93147180369123816490e-01; + const ln2_lo: f64 = 1.90821492927058770002e-10; + const Lg1: f64 = 6.666666666666735130e-01; + const Lg2: f64 = 3.999999999940941908e-01; + const Lg3: f64 = 2.857142874366239149e-01; + const Lg4: f64 = 2.222219843214978396e-01; + const Lg5: f64 = 1.818357216161805012e-01; + const Lg6: f64 = 1.531383769920937332e-01; + const Lg7: f64 = 1.479819860511658591e-01; + + var x = x_; + var ix = @bitCast(u64, x); + var hx = @intCast(u32, ix >> 32); + var k: i32 = 0; + + if (hx < 0x00100000 or hx >> 31 != 0) { + // log(+-0) = -inf + if (ix << 1 == 0) { + return -math.inf(f64); + } + // log(-#) = nan + if (hx >> 31 != 0) { + return math.nan(f64); + } + + // subnormal, scale x + k -= 54; + x *= 0x1.0p54; + hx = @intCast(u32, @bitCast(u64, ix) >> 32); + } else if (hx >= 0x7FF00000) { + return x; + } else if (hx == 0x3FF00000 and ix << 32 == 0) { + return 0; + } + + // x into [sqrt(2) / 2, sqrt(2)] + hx += 0x3FF00000 - 0x3FE6A09E; + k += @intCast(i32, hx >> 20) - 0x3FF; + hx = (hx & 0x000FFFFF) + 0x3FE6A09E; + ix = (u64(hx) << 32) | (ix & 0xFFFFFFFF); + x = @bitCast(f64, ix); + + const f = x - 1.0; + const hfsq = 0.5 * f * f; + const s = f / (2.0 + f); + const z = s * s; + const w = z * z; + const t1 = w * (Lg2 + w * (Lg4 + w * Lg6)); + const t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7))); + const R = t2 + t1; + const dk = @intToFloat(f64, k); + + return s * (hfsq + R) + dk * ln2_lo - hfsq + f + dk * ln2_hi; +} + +test "math.ln" { + expect(ln(f32(0.2)) == ln_32(0.2)); + expect(ln(f64(0.2)) == ln_64(0.2)); +} + +test "math.ln32" { + const epsilon = 0.000001; + + expect(math.approxEq(f32, ln_32(0.2), -1.609438, epsilon)); + expect(math.approxEq(f32, ln_32(0.8923), -0.113953, epsilon)); + expect(math.approxEq(f32, ln_32(1.5), 0.405465, epsilon)); + expect(math.approxEq(f32, ln_32(37.45), 3.623007, epsilon)); + expect(math.approxEq(f32, ln_32(89.123), 4.490017, epsilon)); + expect(math.approxEq(f32, ln_32(123123.234375), 11.720941, epsilon)); +} + +test "math.ln64" { + const epsilon = 0.000001; + + expect(math.approxEq(f64, ln_64(0.2), -1.609438, epsilon)); + expect(math.approxEq(f64, ln_64(0.8923), -0.113953, epsilon)); + expect(math.approxEq(f64, ln_64(1.5), 0.405465, epsilon)); + expect(math.approxEq(f64, ln_64(37.45), 3.623007, epsilon)); + expect(math.approxEq(f64, ln_64(89.123), 4.490017, epsilon)); + expect(math.approxEq(f64, ln_64(123123.234375), 11.720941, epsilon)); +} + +test "math.ln32.special" { + expect(math.isPositiveInf(ln_32(math.inf(f32)))); + expect(math.isNegativeInf(ln_32(0.0))); + expect(math.isNan(ln_32(-1.0))); + expect(math.isNan(ln_32(math.nan(f32)))); +} + +test "math.ln64.special" { + expect(math.isPositiveInf(ln_64(math.inf(f64)))); + expect(math.isNegativeInf(ln_64(0.0))); + expect(math.isNan(ln_64(-1.0))); + expect(math.isNan(ln_64(math.nan(f64)))); +} diff --git a/lib/std/math/log.zig b/lib/std/math/log.zig new file mode 100644 index 0000000000..77f3639fd2 --- /dev/null +++ b/lib/std/math/log.zig @@ -0,0 +1,72 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/logf.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/log.c + +const std = @import("../std.zig"); +const math = std.math; +const builtin = @import("builtin"); +const TypeId = builtin.TypeId; +const expect = std.testing.expect; + +/// Returns the logarithm of x for the provided base. +pub fn log(comptime T: type, base: T, x: T) T { + if (base == 2) { + return math.log2(x); + } else if (base == 10) { + return math.log10(x); + } else if ((@typeId(T) == TypeId.Float or @typeId(T) == TypeId.ComptimeFloat) and base == math.e) { + return math.ln(x); + } + + const float_base = math.lossyCast(f64, base); + switch (@typeId(T)) { + TypeId.ComptimeFloat => { + return @typeOf(1.0)(math.ln(f64(x)) / math.ln(float_base)); + }, + TypeId.ComptimeInt => { + return @typeOf(1)(math.floor(math.ln(f64(x)) / math.ln(float_base))); + }, + builtin.TypeId.Int => { + // TODO implement integer log without using float math + return @floatToInt(T, math.floor(math.ln(@intToFloat(f64, x)) / math.ln(float_base))); + }, + + builtin.TypeId.Float => { + switch (T) { + f32 => return @floatCast(f32, math.ln(f64(x)) / math.ln(float_base)), + f64 => return math.ln(x) / math.ln(float_base), + else => @compileError("log not implemented for " ++ @typeName(T)), + } + }, + + else => { + @compileError("log expects integer or float, found '" ++ @typeName(T) ++ "'"); + }, + } +} + +test "math.log integer" { + expect(log(u8, 2, 0x1) == 0); + expect(log(u8, 2, 0x2) == 1); + expect(log(i16, 2, 0x72) == 6); + expect(log(u32, 2, 0xFFFFFF) == 23); + expect(log(u64, 2, 0x7FF0123456789ABC) == 62); +} + +test "math.log float" { + const epsilon = 0.000001; + + expect(math.approxEq(f32, log(f32, 6, 0.23947), -0.797723, epsilon)); + expect(math.approxEq(f32, log(f32, 89, 0.23947), -0.318432, epsilon)); + expect(math.approxEq(f64, log(f64, 123897, 12389216414), 1.981724596, epsilon)); +} + +test "math.log float_special" { + expect(log(f32, 2, 0.2301974) == math.log2(f32(0.2301974))); + expect(log(f32, 10, 0.2301974) == math.log10(f32(0.2301974))); + + expect(log(f64, 2, 213.23019799993) == math.log2(f64(213.23019799993))); + expect(log(f64, 10, 213.23019799993) == math.log10(f64(213.23019799993))); +} diff --git a/lib/std/math/log10.zig b/lib/std/math/log10.zig new file mode 100644 index 0000000000..9b0bc3ac52 --- /dev/null +++ b/lib/std/math/log10.zig @@ -0,0 +1,218 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/log10f.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/log10.c + +const std = @import("../std.zig"); +const math = std.math; +const testing = std.testing; +const builtin = @import("builtin"); +const TypeId = builtin.TypeId; +const maxInt = std.math.maxInt; + +/// Returns the base-10 logarithm of x. +/// +/// Special Cases: +/// - log10(+inf) = +inf +/// - log10(0) = -inf +/// - log10(x) = nan if x < 0 +/// - log10(nan) = nan +pub fn log10(x: var) @typeOf(x) { + const T = @typeOf(x); + switch (@typeId(T)) { + TypeId.ComptimeFloat => { + return @typeOf(1.0)(log10_64(x)); + }, + TypeId.Float => { + return switch (T) { + f32 => log10_32(x), + f64 => log10_64(x), + else => @compileError("log10 not implemented for " ++ @typeName(T)), + }; + }, + TypeId.ComptimeInt => { + return @typeOf(1)(math.floor(log10_64(f64(x)))); + }, + TypeId.Int => { + return @floatToInt(T, math.floor(log10_64(@intToFloat(f64, x)))); + }, + else => @compileError("log10 not implemented for " ++ @typeName(T)), + } +} + +pub fn log10_32(x_: f32) f32 { + const ivln10hi: f32 = 4.3432617188e-01; + const ivln10lo: f32 = -3.1689971365e-05; + const log10_2hi: f32 = 3.0102920532e-01; + const log10_2lo: f32 = 7.9034151668e-07; + const Lg1: f32 = 0xaaaaaa.0p-24; + const Lg2: f32 = 0xccce13.0p-25; + const Lg3: f32 = 0x91e9ee.0p-25; + const Lg4: f32 = 0xf89e26.0p-26; + + var x = x_; + var u = @bitCast(u32, x); + var ix = u; + var k: i32 = 0; + + // x < 2^(-126) + if (ix < 0x00800000 or ix >> 31 != 0) { + // log(+-0) = -inf + if (ix << 1 == 0) { + return -math.inf(f32); + } + // log(-#) = nan + if (ix >> 31 != 0) { + return math.nan(f32); + } + + k -= 25; + x *= 0x1.0p25; + ix = @bitCast(u32, x); + } else if (ix >= 0x7F800000) { + return x; + } else if (ix == 0x3F800000) { + return 0; + } + + // x into [sqrt(2) / 2, sqrt(2)] + ix += 0x3F800000 - 0x3F3504F3; + k += @intCast(i32, ix >> 23) - 0x7F; + ix = (ix & 0x007FFFFF) + 0x3F3504F3; + x = @bitCast(f32, ix); + + const f = x - 1.0; + const s = f / (2.0 + f); + const z = s * s; + const w = z * z; + const t1 = w * (Lg2 + w * Lg4); + const t2 = z * (Lg1 + w * Lg3); + const R = t2 + t1; + const hfsq = 0.5 * f * f; + + var hi = f - hfsq; + u = @bitCast(u32, hi); + u &= 0xFFFFF000; + hi = @bitCast(f32, u); + const lo = f - hi - hfsq + s * (hfsq + R); + const dk = @intToFloat(f32, k); + + return dk * log10_2lo + (lo + hi) * ivln10lo + lo * ivln10hi + hi * ivln10hi + dk * log10_2hi; +} + +pub fn log10_64(x_: f64) f64 { + const ivln10hi: f64 = 4.34294481878168880939e-01; + const ivln10lo: f64 = 2.50829467116452752298e-11; + const log10_2hi: f64 = 3.01029995663611771306e-01; + const log10_2lo: f64 = 3.69423907715893078616e-13; + const Lg1: f64 = 6.666666666666735130e-01; + const Lg2: f64 = 3.999999999940941908e-01; + const Lg3: f64 = 2.857142874366239149e-01; + const Lg4: f64 = 2.222219843214978396e-01; + const Lg5: f64 = 1.818357216161805012e-01; + const Lg6: f64 = 1.531383769920937332e-01; + const Lg7: f64 = 1.479819860511658591e-01; + + var x = x_; + var ix = @bitCast(u64, x); + var hx = @intCast(u32, ix >> 32); + var k: i32 = 0; + + if (hx < 0x00100000 or hx >> 31 != 0) { + // log(+-0) = -inf + if (ix << 1 == 0) { + return -math.inf(f32); + } + // log(-#) = nan + if (hx >> 31 != 0) { + return math.nan(f32); + } + + // subnormal, scale x + k -= 54; + x *= 0x1.0p54; + hx = @intCast(u32, @bitCast(u64, x) >> 32); + } else if (hx >= 0x7FF00000) { + return x; + } else if (hx == 0x3FF00000 and ix << 32 == 0) { + return 0; + } + + // x into [sqrt(2) / 2, sqrt(2)] + hx += 0x3FF00000 - 0x3FE6A09E; + k += @intCast(i32, hx >> 20) - 0x3FF; + hx = (hx & 0x000FFFFF) + 0x3FE6A09E; + ix = (u64(hx) << 32) | (ix & 0xFFFFFFFF); + x = @bitCast(f64, ix); + + const f = x - 1.0; + const hfsq = 0.5 * f * f; + const s = f / (2.0 + f); + const z = s * s; + const w = z * z; + const t1 = w * (Lg2 + w * (Lg4 + w * Lg6)); + const t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7))); + const R = t2 + t1; + + // hi + lo = f - hfsq + s * (hfsq + R) ~ log(1 + f) + var hi = f - hfsq; + var hii = @bitCast(u64, hi); + hii &= u64(maxInt(u64)) << 32; + hi = @bitCast(f64, hii); + const lo = f - hi - hfsq + s * (hfsq + R); + + // val_hi + val_lo ~ log10(1 + f) + k * log10(2) + var val_hi = hi * ivln10hi; + const dk = @intToFloat(f64, k); + const y = dk * log10_2hi; + var val_lo = dk * log10_2lo + (lo + hi) * ivln10lo + lo * ivln10hi; + + // Extra precision multiplication + const ww = y + val_hi; + val_lo += (y - ww) + val_hi; + val_hi = ww; + + return val_lo + val_hi; +} + +test "math.log10" { + testing.expect(log10(f32(0.2)) == log10_32(0.2)); + testing.expect(log10(f64(0.2)) == log10_64(0.2)); +} + +test "math.log10_32" { + const epsilon = 0.000001; + + testing.expect(math.approxEq(f32, log10_32(0.2), -0.698970, epsilon)); + testing.expect(math.approxEq(f32, log10_32(0.8923), -0.049489, epsilon)); + testing.expect(math.approxEq(f32, log10_32(1.5), 0.176091, epsilon)); + testing.expect(math.approxEq(f32, log10_32(37.45), 1.573452, epsilon)); + testing.expect(math.approxEq(f32, log10_32(89.123), 1.94999, epsilon)); + testing.expect(math.approxEq(f32, log10_32(123123.234375), 5.09034, epsilon)); +} + +test "math.log10_64" { + const epsilon = 0.000001; + + testing.expect(math.approxEq(f64, log10_64(0.2), -0.698970, epsilon)); + testing.expect(math.approxEq(f64, log10_64(0.8923), -0.049489, epsilon)); + testing.expect(math.approxEq(f64, log10_64(1.5), 0.176091, epsilon)); + testing.expect(math.approxEq(f64, log10_64(37.45), 1.573452, epsilon)); + testing.expect(math.approxEq(f64, log10_64(89.123), 1.94999, epsilon)); + testing.expect(math.approxEq(f64, log10_64(123123.234375), 5.09034, epsilon)); +} + +test "math.log10_32.special" { + testing.expect(math.isPositiveInf(log10_32(math.inf(f32)))); + testing.expect(math.isNegativeInf(log10_32(0.0))); + testing.expect(math.isNan(log10_32(-1.0))); + testing.expect(math.isNan(log10_32(math.nan(f32)))); +} + +test "math.log10_64.special" { + testing.expect(math.isPositiveInf(log10_64(math.inf(f64)))); + testing.expect(math.isNegativeInf(log10_64(0.0))); + testing.expect(math.isNan(log10_64(-1.0))); + testing.expect(math.isNan(log10_64(math.nan(f64)))); +} diff --git a/lib/std/math/log1p.zig b/lib/std/math/log1p.zig new file mode 100644 index 0000000000..bae6deb536 --- /dev/null +++ b/lib/std/math/log1p.zig @@ -0,0 +1,230 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/log1pf.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/log1p.c + +const builtin = @import("builtin"); +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; + +/// Returns the natural logarithm of 1 + x with greater accuracy when x is near zero. +/// +/// Special Cases: +/// - log1p(+inf) = +inf +/// - log1p(+-0) = +-0 +/// - log1p(-1) = -inf +/// - log1p(x) = nan if x < -1 +/// - log1p(nan) = nan +pub fn log1p(x: var) @typeOf(x) { + const T = @typeOf(x); + return switch (T) { + f32 => log1p_32(x), + f64 => log1p_64(x), + else => @compileError("log1p not implemented for " ++ @typeName(T)), + }; +} + +fn log1p_32(x: f32) f32 { + const ln2_hi = 6.9313812256e-01; + const ln2_lo = 9.0580006145e-06; + const Lg1: f32 = 0xaaaaaa.0p-24; + const Lg2: f32 = 0xccce13.0p-25; + const Lg3: f32 = 0x91e9ee.0p-25; + const Lg4: f32 = 0xf89e26.0p-26; + + const u = @bitCast(u32, x); + var ix = u; + var k: i32 = 1; + var f: f32 = undefined; + var c: f32 = undefined; + + // 1 + x < sqrt(2)+ + if (ix < 0x3ED413D0 or ix >> 31 != 0) { + // x <= -1.0 + if (ix >= 0xBF800000) { + // log1p(-1) = -inf + if (x == -1.0) { + return -math.inf(f32); + } + // log1p(x < -1) = nan + else { + return math.nan(f32); + } + } + // |x| < 2^(-24) + if ((ix << 1) < (0x33800000 << 1)) { + // underflow if subnormal + if (ix & 0x7F800000 == 0) { + math.forceEval(x * x); + } + return x; + } + // sqrt(2) / 2- <= 1 + x < sqrt(2)+ + if (ix <= 0xBE95F619) { + k = 0; + c = 0; + f = x; + } + } else if (ix >= 0x7F800000) { + return x; + } + + if (k != 0) { + const uf = 1 + x; + var iu = @bitCast(u32, uf); + iu += 0x3F800000 - 0x3F3504F3; + k = @intCast(i32, iu >> 23) - 0x7F; + + // correction to avoid underflow in c / u + if (k < 25) { + c = if (k >= 2) 1 - (uf - x) else x - (uf - 1); + c /= uf; + } else { + c = 0; + } + + // u into [sqrt(2)/2, sqrt(2)] + iu = (iu & 0x007FFFFF) + 0x3F3504F3; + f = @bitCast(f32, iu) - 1; + } + + const s = f / (2.0 + f); + const z = s * s; + const w = z * z; + const t1 = w * (Lg2 + w * Lg4); + const t2 = z * (Lg1 + w * Lg3); + const R = t2 + t1; + const hfsq = 0.5 * f * f; + const dk = @intToFloat(f32, k); + + return s * (hfsq + R) + (dk * ln2_lo + c) - hfsq + f + dk * ln2_hi; +} + +fn log1p_64(x: f64) f64 { + const ln2_hi: f64 = 6.93147180369123816490e-01; + const ln2_lo: f64 = 1.90821492927058770002e-10; + const Lg1: f64 = 6.666666666666735130e-01; + const Lg2: f64 = 3.999999999940941908e-01; + const Lg3: f64 = 2.857142874366239149e-01; + const Lg4: f64 = 2.222219843214978396e-01; + const Lg5: f64 = 1.818357216161805012e-01; + const Lg6: f64 = 1.531383769920937332e-01; + const Lg7: f64 = 1.479819860511658591e-01; + + var ix = @bitCast(u64, x); + var hx = @intCast(u32, ix >> 32); + var k: i32 = 1; + var c: f64 = undefined; + var f: f64 = undefined; + + // 1 + x < sqrt(2) + if (hx < 0x3FDA827A or hx >> 31 != 0) { + // x <= -1.0 + if (hx >= 0xBFF00000) { + // log1p(-1) = -inf + if (x == -1.0) { + return -math.inf(f64); + } + // log1p(x < -1) = nan + else { + return math.nan(f64); + } + } + // |x| < 2^(-53) + if ((hx << 1) < (0x3CA00000 << 1)) { + if ((hx & 0x7FF00000) == 0) { + math.raiseUnderflow(); + } + return x; + } + // sqrt(2) / 2- <= 1 + x < sqrt(2)+ + if (hx <= 0xBFD2BEC4) { + k = 0; + c = 0; + f = x; + } + } else if (hx >= 0x7FF00000) { + return x; + } + + if (k != 0) { + const uf = 1 + x; + const hu = @bitCast(u64, uf); + var iu = @intCast(u32, hu >> 32); + iu += 0x3FF00000 - 0x3FE6A09E; + k = @intCast(i32, iu >> 20) - 0x3FF; + + // correction to avoid underflow in c / u + if (k < 54) { + c = if (k >= 2) 1 - (uf - x) else x - (uf - 1); + c /= uf; + } else { + c = 0; + } + + // u into [sqrt(2)/2, sqrt(2)] + iu = (iu & 0x000FFFFF) + 0x3FE6A09E; + const iq = (u64(iu) << 32) | (hu & 0xFFFFFFFF); + f = @bitCast(f64, iq) - 1; + } + + const hfsq = 0.5 * f * f; + const s = f / (2.0 + f); + const z = s * s; + const w = z * z; + const t1 = w * (Lg2 + w * (Lg4 + w * Lg6)); + const t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7))); + const R = t2 + t1; + const dk = @intToFloat(f64, k); + + return s * (hfsq + R) + (dk * ln2_lo + c) - hfsq + f + dk * ln2_hi; +} + +test "math.log1p" { + expect(log1p(f32(0.0)) == log1p_32(0.0)); + expect(log1p(f64(0.0)) == log1p_64(0.0)); +} + +test "math.log1p_32" { + const epsilon = 0.000001; + + expect(math.approxEq(f32, log1p_32(0.0), 0.0, epsilon)); + expect(math.approxEq(f32, log1p_32(0.2), 0.182322, epsilon)); + expect(math.approxEq(f32, log1p_32(0.8923), 0.637793, epsilon)); + expect(math.approxEq(f32, log1p_32(1.5), 0.916291, epsilon)); + expect(math.approxEq(f32, log1p_32(37.45), 3.649359, epsilon)); + expect(math.approxEq(f32, log1p_32(89.123), 4.501175, epsilon)); + expect(math.approxEq(f32, log1p_32(123123.234375), 11.720949, epsilon)); +} + +test "math.log1p_64" { + const epsilon = 0.000001; + + expect(math.approxEq(f64, log1p_64(0.0), 0.0, epsilon)); + expect(math.approxEq(f64, log1p_64(0.2), 0.182322, epsilon)); + expect(math.approxEq(f64, log1p_64(0.8923), 0.637793, epsilon)); + expect(math.approxEq(f64, log1p_64(1.5), 0.916291, epsilon)); + expect(math.approxEq(f64, log1p_64(37.45), 3.649359, epsilon)); + expect(math.approxEq(f64, log1p_64(89.123), 4.501175, epsilon)); + expect(math.approxEq(f64, log1p_64(123123.234375), 11.720949, epsilon)); +} + +test "math.log1p_32.special" { + expect(math.isPositiveInf(log1p_32(math.inf(f32)))); + expect(log1p_32(0.0) == 0.0); + expect(log1p_32(-0.0) == -0.0); + expect(math.isNegativeInf(log1p_32(-1.0))); + expect(math.isNan(log1p_32(-2.0))); + expect(math.isNan(log1p_32(math.nan(f32)))); +} + +test "math.log1p_64.special" { + expect(math.isPositiveInf(log1p_64(math.inf(f64)))); + expect(log1p_64(0.0) == 0.0); + expect(log1p_64(-0.0) == -0.0); + expect(math.isNegativeInf(log1p_64(-1.0))); + expect(math.isNan(log1p_64(-2.0))); + expect(math.isNan(log1p_64(math.nan(f64)))); +} diff --git a/lib/std/math/log2.zig b/lib/std/math/log2.zig new file mode 100644 index 0000000000..88450a7ffd --- /dev/null +++ b/lib/std/math/log2.zig @@ -0,0 +1,214 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/log2f.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/log2.c + +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; +const builtin = @import("builtin"); +const TypeId = builtin.TypeId; +const maxInt = std.math.maxInt; + +/// Returns the base-2 logarithm of x. +/// +/// Special Cases: +/// - log2(+inf) = +inf +/// - log2(0) = -inf +/// - log2(x) = nan if x < 0 +/// - log2(nan) = nan +pub fn log2(x: var) @typeOf(x) { + const T = @typeOf(x); + switch (@typeId(T)) { + TypeId.ComptimeFloat => { + return @typeOf(1.0)(log2_64(x)); + }, + TypeId.Float => { + return switch (T) { + f32 => log2_32(x), + f64 => log2_64(x), + else => @compileError("log2 not implemented for " ++ @typeName(T)), + }; + }, + TypeId.ComptimeInt => comptime { + var result = 0; + var x_shifted = x; + while (b: { + x_shifted >>= 1; + break :b x_shifted != 0; + }) : (result += 1) {} + return result; + }, + TypeId.Int => { + return math.log2_int(T, x); + }, + else => @compileError("log2 not implemented for " ++ @typeName(T)), + } +} + +pub fn log2_32(x_: f32) f32 { + const ivln2hi: f32 = 1.4428710938e+00; + const ivln2lo: f32 = -1.7605285393e-04; + const Lg1: f32 = 0xaaaaaa.0p-24; + const Lg2: f32 = 0xccce13.0p-25; + const Lg3: f32 = 0x91e9ee.0p-25; + const Lg4: f32 = 0xf89e26.0p-26; + + var x = x_; + var u = @bitCast(u32, x); + var ix = u; + var k: i32 = 0; + + // x < 2^(-126) + if (ix < 0x00800000 or ix >> 31 != 0) { + // log(+-0) = -inf + if (ix << 1 == 0) { + return -math.inf(f32); + } + // log(-#) = nan + if (ix >> 31 != 0) { + return math.nan(f32); + } + + k -= 25; + x *= 0x1.0p25; + ix = @bitCast(u32, x); + } else if (ix >= 0x7F800000) { + return x; + } else if (ix == 0x3F800000) { + return 0; + } + + // x into [sqrt(2) / 2, sqrt(2)] + ix += 0x3F800000 - 0x3F3504F3; + k += @intCast(i32, ix >> 23) - 0x7F; + ix = (ix & 0x007FFFFF) + 0x3F3504F3; + x = @bitCast(f32, ix); + + const f = x - 1.0; + const s = f / (2.0 + f); + const z = s * s; + const w = z * z; + const t1 = w * (Lg2 + w * Lg4); + const t2 = z * (Lg1 + w * Lg3); + const R = t2 + t1; + const hfsq = 0.5 * f * f; + + var hi = f - hfsq; + u = @bitCast(u32, hi); + u &= 0xFFFFF000; + hi = @bitCast(f32, u); + const lo = f - hi - hfsq + s * (hfsq + R); + return (lo + hi) * ivln2lo + lo * ivln2hi + hi * ivln2hi + @intToFloat(f32, k); +} + +pub fn log2_64(x_: f64) f64 { + const ivln2hi: f64 = 1.44269504072144627571e+00; + const ivln2lo: f64 = 1.67517131648865118353e-10; + const Lg1: f64 = 6.666666666666735130e-01; + const Lg2: f64 = 3.999999999940941908e-01; + const Lg3: f64 = 2.857142874366239149e-01; + const Lg4: f64 = 2.222219843214978396e-01; + const Lg5: f64 = 1.818357216161805012e-01; + const Lg6: f64 = 1.531383769920937332e-01; + const Lg7: f64 = 1.479819860511658591e-01; + + var x = x_; + var ix = @bitCast(u64, x); + var hx = @intCast(u32, ix >> 32); + var k: i32 = 0; + + if (hx < 0x00100000 or hx >> 31 != 0) { + // log(+-0) = -inf + if (ix << 1 == 0) { + return -math.inf(f64); + } + // log(-#) = nan + if (hx >> 31 != 0) { + return math.nan(f64); + } + + // subnormal, scale x + k -= 54; + x *= 0x1.0p54; + hx = @intCast(u32, @bitCast(u64, x) >> 32); + } else if (hx >= 0x7FF00000) { + return x; + } else if (hx == 0x3FF00000 and ix << 32 == 0) { + return 0; + } + + // x into [sqrt(2) / 2, sqrt(2)] + hx += 0x3FF00000 - 0x3FE6A09E; + k += @intCast(i32, hx >> 20) - 0x3FF; + hx = (hx & 0x000FFFFF) + 0x3FE6A09E; + ix = (u64(hx) << 32) | (ix & 0xFFFFFFFF); + x = @bitCast(f64, ix); + + const f = x - 1.0; + const hfsq = 0.5 * f * f; + const s = f / (2.0 + f); + const z = s * s; + const w = z * z; + const t1 = w * (Lg2 + w * (Lg4 + w * Lg6)); + const t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7))); + const R = t2 + t1; + + // hi + lo = f - hfsq + s * (hfsq + R) ~ log(1 + f) + var hi = f - hfsq; + var hii = @bitCast(u64, hi); + hii &= u64(maxInt(u64)) << 32; + hi = @bitCast(f64, hii); + const lo = f - hi - hfsq + s * (hfsq + R); + + var val_hi = hi * ivln2hi; + var val_lo = (lo + hi) * ivln2lo + lo * ivln2hi; + + // spadd(val_hi, val_lo, y) + const y = @intToFloat(f64, k); + const ww = y + val_hi; + val_lo += (y - ww) + val_hi; + val_hi = ww; + + return val_lo + val_hi; +} + +test "math.log2" { + expect(log2(f32(0.2)) == log2_32(0.2)); + expect(log2(f64(0.2)) == log2_64(0.2)); +} + +test "math.log2_32" { + const epsilon = 0.000001; + + expect(math.approxEq(f32, log2_32(0.2), -2.321928, epsilon)); + expect(math.approxEq(f32, log2_32(0.8923), -0.164399, epsilon)); + expect(math.approxEq(f32, log2_32(1.5), 0.584962, epsilon)); + expect(math.approxEq(f32, log2_32(37.45), 5.226894, epsilon)); + expect(math.approxEq(f32, log2_32(123123.234375), 16.909744, epsilon)); +} + +test "math.log2_64" { + const epsilon = 0.000001; + + expect(math.approxEq(f64, log2_64(0.2), -2.321928, epsilon)); + expect(math.approxEq(f64, log2_64(0.8923), -0.164399, epsilon)); + expect(math.approxEq(f64, log2_64(1.5), 0.584962, epsilon)); + expect(math.approxEq(f64, log2_64(37.45), 5.226894, epsilon)); + expect(math.approxEq(f64, log2_64(123123.234375), 16.909744, epsilon)); +} + +test "math.log2_32.special" { + expect(math.isPositiveInf(log2_32(math.inf(f32)))); + expect(math.isNegativeInf(log2_32(0.0))); + expect(math.isNan(log2_32(-1.0))); + expect(math.isNan(log2_32(math.nan(f32)))); +} + +test "math.log2_64.special" { + expect(math.isPositiveInf(log2_64(math.inf(f64)))); + expect(math.isNegativeInf(log2_64(0.0))); + expect(math.isNan(log2_64(-1.0))); + expect(math.isNan(log2_64(math.nan(f64)))); +} diff --git a/lib/std/math/modf.zig b/lib/std/math/modf.zig new file mode 100644 index 0000000000..92194d4c75 --- /dev/null +++ b/lib/std/math/modf.zig @@ -0,0 +1,210 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/modff.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/modf.c + +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; +const maxInt = std.math.maxInt; + +fn modf_result(comptime T: type) type { + return struct { + fpart: T, + ipart: T, + }; +} +pub const modf32_result = modf_result(f32); +pub const modf64_result = modf_result(f64); + +/// Returns the integer and fractional floating-point numbers that sum to x. The sign of each +/// result is the same as the sign of x. +/// +/// Special Cases: +/// - modf(+-inf) = +-inf, nan +/// - modf(nan) = nan, nan +pub fn modf(x: var) modf_result(@typeOf(x)) { + const T = @typeOf(x); + return switch (T) { + f32 => modf32(x), + f64 => modf64(x), + else => @compileError("modf not implemented for " ++ @typeName(T)), + }; +} + +fn modf32(x: f32) modf32_result { + var result: modf32_result = undefined; + + const u = @bitCast(u32, x); + const e = @intCast(i32, (u >> 23) & 0xFF) - 0x7F; + const us = u & 0x80000000; + + // TODO: Shouldn't need this. + if (math.isInf(x)) { + result.ipart = x; + result.fpart = math.nan(f32); + return result; + } + + // no fractional part + if (e >= 23) { + result.ipart = x; + if (e == 0x80 and u << 9 != 0) { // nan + result.fpart = x; + } else { + result.fpart = @bitCast(f32, us); + } + return result; + } + + // no integral part + if (e < 0) { + result.ipart = @bitCast(f32, us); + result.fpart = x; + return result; + } + + const mask = u32(0x007FFFFF) >> @intCast(u5, e); + if (u & mask == 0) { + result.ipart = x; + result.fpart = @bitCast(f32, us); + return result; + } + + const uf = @bitCast(f32, u & ~mask); + result.ipart = uf; + result.fpart = x - uf; + return result; +} + +fn modf64(x: f64) modf64_result { + var result: modf64_result = undefined; + + const u = @bitCast(u64, x); + const e = @intCast(i32, (u >> 52) & 0x7FF) - 0x3FF; + const us = u & (1 << 63); + + if (math.isInf(x)) { + result.ipart = x; + result.fpart = math.nan(f64); + return result; + } + + // no fractional part + if (e >= 52) { + result.ipart = x; + if (e == 0x400 and u << 12 != 0) { // nan + result.fpart = x; + } else { + result.fpart = @bitCast(f64, us); + } + return result; + } + + // no integral part + if (e < 0) { + result.ipart = @bitCast(f64, us); + result.fpart = x; + return result; + } + + const mask = u64(maxInt(u64) >> 12) >> @intCast(u6, e); + if (u & mask == 0) { + result.ipart = x; + result.fpart = @bitCast(f64, us); + return result; + } + + const uf = @bitCast(f64, u & ~mask); + result.ipart = uf; + result.fpart = x - uf; + return result; +} + +test "math.modf" { + const a = modf(f32(1.0)); + const b = modf32(1.0); + // NOTE: No struct comparison on generic return type function? non-named, makes sense, but still. + expect(a.ipart == b.ipart and a.fpart == b.fpart); + + const c = modf(f64(1.0)); + const d = modf64(1.0); + expect(a.ipart == b.ipart and a.fpart == b.fpart); +} + +test "math.modf32" { + const epsilon = 0.000001; + var r: modf32_result = undefined; + + r = modf32(1.0); + expect(math.approxEq(f32, r.ipart, 1.0, epsilon)); + expect(math.approxEq(f32, r.fpart, 0.0, epsilon)); + + r = modf32(2.545); + expect(math.approxEq(f32, r.ipart, 2.0, epsilon)); + expect(math.approxEq(f32, r.fpart, 0.545, epsilon)); + + r = modf32(3.978123); + expect(math.approxEq(f32, r.ipart, 3.0, epsilon)); + expect(math.approxEq(f32, r.fpart, 0.978123, epsilon)); + + r = modf32(43874.3); + expect(math.approxEq(f32, r.ipart, 43874, epsilon)); + expect(math.approxEq(f32, r.fpart, 0.300781, epsilon)); + + r = modf32(1234.340780); + expect(math.approxEq(f32, r.ipart, 1234, epsilon)); + expect(math.approxEq(f32, r.fpart, 0.340820, epsilon)); +} + +test "math.modf64" { + const epsilon = 0.000001; + var r: modf64_result = undefined; + + r = modf64(1.0); + expect(math.approxEq(f64, r.ipart, 1.0, epsilon)); + expect(math.approxEq(f64, r.fpart, 0.0, epsilon)); + + r = modf64(2.545); + expect(math.approxEq(f64, r.ipart, 2.0, epsilon)); + expect(math.approxEq(f64, r.fpart, 0.545, epsilon)); + + r = modf64(3.978123); + expect(math.approxEq(f64, r.ipart, 3.0, epsilon)); + expect(math.approxEq(f64, r.fpart, 0.978123, epsilon)); + + r = modf64(43874.3); + expect(math.approxEq(f64, r.ipart, 43874, epsilon)); + expect(math.approxEq(f64, r.fpart, 0.3, epsilon)); + + r = modf64(1234.340780); + expect(math.approxEq(f64, r.ipart, 1234, epsilon)); + expect(math.approxEq(f64, r.fpart, 0.340780, epsilon)); +} + +test "math.modf32.special" { + var r: modf32_result = undefined; + + r = modf32(math.inf(f32)); + expect(math.isPositiveInf(r.ipart) and math.isNan(r.fpart)); + + r = modf32(-math.inf(f32)); + expect(math.isNegativeInf(r.ipart) and math.isNan(r.fpart)); + + r = modf32(math.nan(f32)); + expect(math.isNan(r.ipart) and math.isNan(r.fpart)); +} + +test "math.modf64.special" { + var r: modf64_result = undefined; + + r = modf64(math.inf(f64)); + expect(math.isPositiveInf(r.ipart) and math.isNan(r.fpart)); + + r = modf64(-math.inf(f64)); + expect(math.isNegativeInf(r.ipart) and math.isNan(r.fpart)); + + r = modf64(math.nan(f64)); + expect(math.isNan(r.ipart) and math.isNan(r.fpart)); +} diff --git a/lib/std/math/nan.zig b/lib/std/math/nan.zig new file mode 100644 index 0000000000..5a01a5b3bd --- /dev/null +++ b/lib/std/math/nan.zig @@ -0,0 +1,24 @@ +const math = @import("../math.zig"); + +/// Returns the nan representation for type T. +pub fn nan(comptime T: type) T { + return switch (T) { + f16 => math.nan_f16, + f32 => math.nan_f32, + f64 => math.nan_f64, + f128 => math.nan_f128, + else => @compileError("nan not implemented for " ++ @typeName(T)), + }; +} + +/// Returns the signalling nan representation for type T. +pub fn snan(comptime T: type) T { + // Note: A signalling nan is identical to a standard right now by may have a different bit + // representation in the future when required. + return switch (T) { + f16 => @bitCast(f16, math.nan_u16), + f32 => @bitCast(f32, math.nan_u32), + f64 => @bitCast(f64, math.nan_u64), + else => @compileError("snan not implemented for " ++ @typeName(T)), + }; +} diff --git a/lib/std/math/pow.zig b/lib/std/math/pow.zig new file mode 100644 index 0000000000..c3a7792137 --- /dev/null +++ b/lib/std/math/pow.zig @@ -0,0 +1,264 @@ +// Ported from go, which is licensed under a BSD-3 license. +// https://golang.org/LICENSE +// +// https://golang.org/src/math/pow.go + +const builtin = @import("builtin"); +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; + +/// Returns x raised to the power of y (x^y). +/// +/// Special Cases: +/// - pow(x, +-0) = 1 for any x +/// - pow(1, y) = 1 for any y +/// - pow(x, 1) = x for any x +/// - pow(nan, y) = nan +/// - pow(x, nan) = nan +/// - pow(+-0, y) = +-inf for y an odd integer < 0 +/// - pow(+-0, -inf) = +inf +/// - pow(+-0, +inf) = +0 +/// - pow(+-0, y) = +inf for finite y < 0 and not an odd integer +/// - pow(+-0, y) = +-0 for y an odd integer > 0 +/// - pow(+-0, y) = +0 for finite y > 0 and not an odd integer +/// - pow(-1, +-inf) = 1 +/// - pow(x, +inf) = +inf for |x| > 1 +/// - pow(x, -inf) = +0 for |x| > 1 +/// - pow(x, +inf) = +0 for |x| < 1 +/// - pow(x, -inf) = +inf for |x| < 1 +/// - pow(+inf, y) = +inf for y > 0 +/// - pow(+inf, y) = +0 for y < 0 +/// - pow(-inf, y) = pow(-0, -y) +/// - pow(x, y) = nan for finite x < 0 and finite non-integer y +pub fn pow(comptime T: type, x: T, y: T) T { + if (@typeInfo(T) == builtin.TypeId.Int) { + return math.powi(T, x, y) catch unreachable; + } + + if (T != f32 and T != f64) { + @compileError("pow not implemented for " ++ @typeName(T)); + } + + // pow(x, +-0) = 1 for all x + // pow(1, y) = 1 for all y + if (y == 0 or x == 1) { + return 1; + } + + // pow(nan, y) = nan for all y + // pow(x, nan) = nan for all x + if (math.isNan(x) or math.isNan(y)) { + return math.nan(T); + } + + // pow(x, 1) = x for all x + if (y == 1) { + return x; + } + + if (x == 0) { + if (y < 0) { + // pow(+-0, y) = +- 0 for y an odd integer + if (isOddInteger(y)) { + return math.copysign(T, math.inf(T), x); + } + // pow(+-0, y) = +inf for y an even integer + else { + return math.inf(T); + } + } else { + if (isOddInteger(y)) { + return x; + } else { + return 0; + } + } + } + + if (math.isInf(y)) { + // pow(-1, inf) = 1 for all x + if (x == -1) { + return 1.0; + } + // pow(x, +inf) = +0 for |x| < 1 + // pow(x, -inf) = +0 for |x| > 1 + else if ((math.fabs(x) < 1) == math.isPositiveInf(y)) { + return 0; + } + // pow(x, -inf) = +inf for |x| < 1 + // pow(x, +inf) = +inf for |x| > 1 + else { + return math.inf(T); + } + } + + if (math.isInf(x)) { + if (math.isNegativeInf(x)) { + return pow(T, 1 / x, -y); + } + // pow(+inf, y) = +0 for y < 0 + else if (y < 0) { + return 0; + } + // pow(+inf, y) = +0 for y > 0 + else if (y > 0) { + return math.inf(T); + } + } + + // special case sqrt + if (y == 0.5) { + return math.sqrt(x); + } + + if (y == -0.5) { + return 1 / math.sqrt(x); + } + + const r1 = math.modf(math.fabs(y)); + var yi = r1.ipart; + var yf = r1.fpart; + + if (yf != 0 and x < 0) { + return math.nan(T); + } + if (yi >= 1 << (T.bit_count - 1)) { + return math.exp(y * math.ln(x)); + } + + // a = a1 * 2^ae + var a1: T = 1.0; + var ae: i32 = 0; + + // a *= x^yf + if (yf != 0) { + if (yf > 0.5) { + yf -= 1; + yi += 1; + } + a1 = math.exp(yf * math.ln(x)); + } + + // a *= x^yi + const r2 = math.frexp(x); + var xe = r2.exponent; + var x1 = r2.significand; + + var i = @floatToInt(@IntType(true, T.bit_count), yi); + while (i != 0) : (i >>= 1) { + const overflow_shift = math.floatExponentBits(T) + 1; + if (xe < -(1 << overflow_shift) or (1 << overflow_shift) < xe) { + // catch xe before it overflows the left shift below + // Since i != 0 it has at least one bit still set, so ae will accumulate xe + // on at least one more iteration, ae += xe is a lower bound on ae + // the lower bound on ae exceeds the size of a float exp + // so the final call to Ldexp will produce under/overflow (0/Inf) + ae += xe; + break; + } + if (i & 1 == 1) { + a1 *= x1; + ae += xe; + } + x1 *= x1; + xe <<= 1; + if (x1 < 0.5) { + x1 += x1; + xe -= 1; + } + } + + // a *= a1 * 2^ae + if (y < 0) { + a1 = 1 / a1; + ae = -ae; + } + + return math.scalbn(a1, ae); +} + +fn isOddInteger(x: f64) bool { + const r = math.modf(x); + return r.fpart == 0.0 and @floatToInt(i64, r.ipart) & 1 == 1; +} + +test "math.pow" { + if (builtin.os == .linux and builtin.arch == .arm and builtin.abi == .musleabihf) { + // TODO https://github.com/ziglang/zig/issues/3289 + return error.SkipZigTest; + } + const epsilon = 0.000001; + + expect(math.approxEq(f32, pow(f32, 0.0, 3.3), 0.0, epsilon)); + expect(math.approxEq(f32, pow(f32, 0.8923, 3.3), 0.686572, epsilon)); + expect(math.approxEq(f32, pow(f32, 0.2, 3.3), 0.004936, epsilon)); + expect(math.approxEq(f32, pow(f32, 1.5, 3.3), 3.811546, epsilon)); + expect(math.approxEq(f32, pow(f32, 37.45, 3.3), 155736.703125, epsilon)); + expect(math.approxEq(f32, pow(f32, 89.123, 3.3), 2722489.5, epsilon)); + + expect(math.approxEq(f64, pow(f64, 0.0, 3.3), 0.0, epsilon)); + expect(math.approxEq(f64, pow(f64, 0.8923, 3.3), 0.686572, epsilon)); + expect(math.approxEq(f64, pow(f64, 0.2, 3.3), 0.004936, epsilon)); + expect(math.approxEq(f64, pow(f64, 1.5, 3.3), 3.811546, epsilon)); + expect(math.approxEq(f64, pow(f64, 37.45, 3.3), 155736.7160616, epsilon)); + expect(math.approxEq(f64, pow(f64, 89.123, 3.3), 2722490.231436, epsilon)); +} + +test "math.pow.special" { + if (builtin.os == .linux and builtin.arch == .arm and builtin.abi == .musleabihf) { + // TODO https://github.com/ziglang/zig/issues/3289 + return error.SkipZigTest; + } + const epsilon = 0.000001; + + expect(pow(f32, 4, 0.0) == 1.0); + expect(pow(f32, 7, -0.0) == 1.0); + expect(pow(f32, 45, 1.0) == 45); + expect(pow(f32, -45, 1.0) == -45); + expect(math.isNan(pow(f32, math.nan(f32), 5.0))); + expect(math.isPositiveInf(pow(f32, -math.inf(f32), 0.5))); + expect(math.isPositiveInf(pow(f32, -0, -0.5))); + expect(pow(f32, -0, 0.5) == 0); + expect(math.isNan(pow(f32, 5.0, math.nan(f32)))); + expect(math.isPositiveInf(pow(f32, 0.0, -1.0))); + //expect(math.isNegativeInf(pow(f32, -0.0, -3.0))); TODO is this required? + expect(math.isPositiveInf(pow(f32, 0.0, -math.inf(f32)))); + expect(math.isPositiveInf(pow(f32, -0.0, -math.inf(f32)))); + expect(pow(f32, 0.0, math.inf(f32)) == 0.0); + expect(pow(f32, -0.0, math.inf(f32)) == 0.0); + expect(math.isPositiveInf(pow(f32, 0.0, -2.0))); + expect(math.isPositiveInf(pow(f32, -0.0, -2.0))); + expect(pow(f32, 0.0, 1.0) == 0.0); + expect(pow(f32, -0.0, 1.0) == -0.0); + expect(pow(f32, 0.0, 2.0) == 0.0); + expect(pow(f32, -0.0, 2.0) == 0.0); + expect(math.approxEq(f32, pow(f32, -1.0, math.inf(f32)), 1.0, epsilon)); + expect(math.approxEq(f32, pow(f32, -1.0, -math.inf(f32)), 1.0, epsilon)); + expect(math.isPositiveInf(pow(f32, 1.2, math.inf(f32)))); + expect(math.isPositiveInf(pow(f32, -1.2, math.inf(f32)))); + expect(pow(f32, 1.2, -math.inf(f32)) == 0.0); + expect(pow(f32, -1.2, -math.inf(f32)) == 0.0); + expect(pow(f32, 0.2, math.inf(f32)) == 0.0); + expect(pow(f32, -0.2, math.inf(f32)) == 0.0); + expect(math.isPositiveInf(pow(f32, 0.2, -math.inf(f32)))); + expect(math.isPositiveInf(pow(f32, -0.2, -math.inf(f32)))); + expect(math.isPositiveInf(pow(f32, math.inf(f32), 1.0))); + expect(pow(f32, math.inf(f32), -1.0) == 0.0); + //expect(pow(f32, -math.inf(f32), 5.0) == pow(f32, -0.0, -5.0)); TODO support negative 0? + expect(pow(f32, -math.inf(f32), -5.2) == pow(f32, -0.0, 5.2)); + expect(math.isNan(pow(f32, -1.0, 1.2))); + expect(math.isNan(pow(f32, -12.4, 78.5))); +} + +test "math.pow.overflow" { + if (builtin.os == .linux and builtin.arch == .arm and builtin.abi == .musleabihf) { + // TODO https://github.com/ziglang/zig/issues/3289 + return error.SkipZigTest; + } + expect(math.isPositiveInf(pow(f64, 2, 1 << 32))); + expect(pow(f64, 2, -(1 << 32)) == 0); + expect(math.isNegativeInf(pow(f64, -2, (1 << 32) + 1))); + expect(pow(f64, 0.5, 1 << 45) == 0); + expect(math.isPositiveInf(pow(f64, 0.5, -(1 << 45)))); +} diff --git a/lib/std/math/powi.zig b/lib/std/math/powi.zig new file mode 100644 index 0000000000..d80700e5cd --- /dev/null +++ b/lib/std/math/powi.zig @@ -0,0 +1,188 @@ +// Based on Rust, which is licensed under the MIT license. +// https://github.com/rust-lang/rust/blob/360432f1e8794de58cd94f34c9c17ad65871e5b5/LICENSE-MIT +// +// https://github.com/rust-lang/rust/blob/360432f1e8794de58cd94f34c9c17ad65871e5b5/src/libcore/num/mod.rs#L3423 + +const builtin = @import("builtin"); +const std = @import("../std.zig"); +const math = std.math; +const assert = std.debug.assert; +const testing = std.testing; + +/// Returns the power of x raised by the integer y (x^y). +/// +/// Special Cases: +/// - powi(x, +-0) = 1 for any x +/// - powi(0, y) = 0 for any y +/// - powi(1, y) = 1 for any y +/// - powi(-1, y) = -1 for y an odd integer +/// - powi(-1, y) = 1 for y an even integer +/// - powi(x, y) = Overflow for y >= @sizeOf(x) - 1 or y > 0 +/// - powi(x, y) = Underflow for y > @sizeOf(x) - 1 or y < 0 +pub fn powi(comptime T: type, x: T, y: T) (error{ + Overflow, + Underflow, +}!T) { + const info = @typeInfo(T); + + comptime assert(@typeInfo(T) == builtin.TypeId.Int); + + // powi(x, +-0) = 1 for any x + if (y == 0 or y == -0) { + return 1; + } + + switch (x) { + // powi(0, y) = 0 for any y + 0 => return 0, + + // powi(1, y) = 1 for any y + 1 => return 1, + + else => { + // powi(x, y) = Overflow for for y >= @sizeOf(x) - 1 y > 0 + // powi(x, y) = Underflow for for y > @sizeOf(x) - 1 y < 0 + const bit_size = @sizeOf(T) * 8; + if (info.Int.is_signed) { + if (x == -1) { + // powi(-1, y) = -1 for for y an odd integer + // powi(-1, y) = 1 for for y an even integer + if (@mod(y, 2) == 0) { + return 1; + } else { + return -1; + } + } + + if (x > 0 and y >= bit_size - 1) { + return error.Overflow; + } else if (x < 0 and y > bit_size - 1) { + return error.Underflow; + } + } else { + if (y >= bit_size) { + return error.Overflow; + } + } + + var base = x; + var exp = y; + var acc: T = 1; + + while (exp > 1) { + if (exp & 1 == 1) { + if (@mulWithOverflow(T, acc, base, &acc)) { + if (x > 0) { + return error.Overflow; + } else { + return error.Underflow; + } + } + } + + exp >>= 1; + + if (@mulWithOverflow(T, base, base, &base)) { + if (x > 0) { + return error.Overflow; + } else { + return error.Underflow; + } + } + } + + if (exp == 1) { + if (@mulWithOverflow(T, acc, base, &acc)) { + if (x > 0) { + return error.Overflow; + } else { + return error.Underflow; + } + } + } + + return acc; + }, + } +} + +test "math.powi" { + testing.expectError(error.Underflow, powi(i8, -66, 6)); + testing.expectError(error.Underflow, powi(i16, -13, 13)); + testing.expectError(error.Underflow, powi(i32, -32, 21)); + testing.expectError(error.Underflow, powi(i64, -24, 61)); + testing.expectError(error.Underflow, powi(i17, -15, 15)); + testing.expectError(error.Underflow, powi(i42, -6, 40)); + + testing.expect((try powi(i8, -5, 3)) == -125); + testing.expect((try powi(i16, -16, 3)) == -4096); + testing.expect((try powi(i32, -91, 3)) == -753571); + testing.expect((try powi(i64, -36, 6)) == 2176782336); + testing.expect((try powi(i17, -2, 15)) == -32768); + testing.expect((try powi(i42, -5, 7)) == -78125); + + testing.expect((try powi(u8, 6, 2)) == 36); + testing.expect((try powi(u16, 5, 4)) == 625); + testing.expect((try powi(u32, 12, 6)) == 2985984); + testing.expect((try powi(u64, 34, 2)) == 1156); + testing.expect((try powi(u17, 16, 3)) == 4096); + testing.expect((try powi(u42, 34, 6)) == 1544804416); + + testing.expectError(error.Overflow, powi(i8, 120, 7)); + testing.expectError(error.Overflow, powi(i16, 73, 15)); + testing.expectError(error.Overflow, powi(i32, 23, 31)); + testing.expectError(error.Overflow, powi(i64, 68, 61)); + testing.expectError(error.Overflow, powi(i17, 15, 15)); + testing.expectError(error.Overflow, powi(i42, 121312, 41)); + + testing.expectError(error.Overflow, powi(u8, 123, 7)); + testing.expectError(error.Overflow, powi(u16, 2313, 15)); + testing.expectError(error.Overflow, powi(u32, 8968, 31)); + testing.expectError(error.Overflow, powi(u64, 2342, 63)); + testing.expectError(error.Overflow, powi(u17, 2723, 16)); + testing.expectError(error.Overflow, powi(u42, 8234, 41)); +} + +test "math.powi.special" { + testing.expectError(error.Underflow, powi(i8, -2, 8)); + testing.expectError(error.Underflow, powi(i16, -2, 16)); + testing.expectError(error.Underflow, powi(i32, -2, 32)); + testing.expectError(error.Underflow, powi(i64, -2, 64)); + testing.expectError(error.Underflow, powi(i17, -2, 17)); + testing.expectError(error.Underflow, powi(i42, -2, 42)); + + testing.expect((try powi(i8, -1, 3)) == -1); + testing.expect((try powi(i16, -1, 2)) == 1); + testing.expect((try powi(i32, -1, 16)) == 1); + testing.expect((try powi(i64, -1, 6)) == 1); + testing.expect((try powi(i17, -1, 15)) == -1); + testing.expect((try powi(i42, -1, 7)) == -1); + + testing.expect((try powi(u8, 1, 2)) == 1); + testing.expect((try powi(u16, 1, 4)) == 1); + testing.expect((try powi(u32, 1, 6)) == 1); + testing.expect((try powi(u64, 1, 2)) == 1); + testing.expect((try powi(u17, 1, 3)) == 1); + testing.expect((try powi(u42, 1, 6)) == 1); + + testing.expectError(error.Overflow, powi(i8, 2, 7)); + testing.expectError(error.Overflow, powi(i16, 2, 15)); + testing.expectError(error.Overflow, powi(i32, 2, 31)); + testing.expectError(error.Overflow, powi(i64, 2, 63)); + testing.expectError(error.Overflow, powi(i17, 2, 16)); + testing.expectError(error.Overflow, powi(i42, 2, 41)); + + testing.expectError(error.Overflow, powi(u8, 2, 8)); + testing.expectError(error.Overflow, powi(u16, 2, 16)); + testing.expectError(error.Overflow, powi(u32, 2, 32)); + testing.expectError(error.Overflow, powi(u64, 2, 64)); + testing.expectError(error.Overflow, powi(u17, 2, 17)); + testing.expectError(error.Overflow, powi(u42, 2, 42)); + + testing.expect((try powi(u8, 6, 0)) == 1); + testing.expect((try powi(u16, 5, 0)) == 1); + testing.expect((try powi(u32, 12, 0)) == 1); + testing.expect((try powi(u64, 34, 0)) == 1); + testing.expect((try powi(u17, 16, 0)) == 1); + testing.expect((try powi(u42, 34, 0)) == 1); +} diff --git a/lib/std/math/round.zig b/lib/std/math/round.zig new file mode 100644 index 0000000000..0b80a46ce5 --- /dev/null +++ b/lib/std/math/round.zig @@ -0,0 +1,126 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/roundf.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/round.c + +const builtin = @import("builtin"); +const expect = std.testing.expect; +const std = @import("../std.zig"); +const math = std.math; + +/// Returns x rounded to the nearest integer, rounding half away from zero. +/// +/// Special Cases: +/// - round(+-0) = +-0 +/// - round(+-inf) = +-inf +/// - round(nan) = nan +pub fn round(x: var) @typeOf(x) { + const T = @typeOf(x); + return switch (T) { + f32 => round32(x), + f64 => round64(x), + else => @compileError("round not implemented for " ++ @typeName(T)), + }; +} + +fn round32(x_: f32) f32 { + var x = x_; + const u = @bitCast(u32, x); + const e = (u >> 23) & 0xFF; + var y: f32 = undefined; + + if (e >= 0x7F + 23) { + return x; + } + if (u >> 31 != 0) { + x = -x; + } + if (e < 0x7F - 1) { + math.forceEval(x + math.f32_toint); + return 0 * @bitCast(f32, u); + } + + y = x + math.f32_toint - math.f32_toint - x; + if (y > 0.5) { + y = y + x - 1; + } else if (y <= -0.5) { + y = y + x + 1; + } else { + y = y + x; + } + + if (u >> 31 != 0) { + return -y; + } else { + return y; + } +} + +fn round64(x_: f64) f64 { + var x = x_; + const u = @bitCast(u64, x); + const e = (u >> 52) & 0x7FF; + var y: f64 = undefined; + + if (e >= 0x3FF + 52) { + return x; + } + if (u >> 63 != 0) { + x = -x; + } + if (e < 0x3ff - 1) { + math.forceEval(x + math.f64_toint); + return 0 * @bitCast(f64, u); + } + + y = x + math.f64_toint - math.f64_toint - x; + if (y > 0.5) { + y = y + x - 1; + } else if (y <= -0.5) { + y = y + x + 1; + } else { + y = y + x; + } + + if (u >> 63 != 0) { + return -y; + } else { + return y; + } +} + +test "math.round" { + expect(round(f32(1.3)) == round32(1.3)); + expect(round(f64(1.3)) == round64(1.3)); +} + +test "math.round32" { + expect(round32(1.3) == 1.0); + expect(round32(-1.3) == -1.0); + expect(round32(0.2) == 0.0); + expect(round32(1.8) == 2.0); +} + +test "math.round64" { + expect(round64(1.3) == 1.0); + expect(round64(-1.3) == -1.0); + expect(round64(0.2) == 0.0); + expect(round64(1.8) == 2.0); +} + +test "math.round32.special" { + expect(round32(0.0) == 0.0); + expect(round32(-0.0) == -0.0); + expect(math.isPositiveInf(round32(math.inf(f32)))); + expect(math.isNegativeInf(round32(-math.inf(f32)))); + expect(math.isNan(round32(math.nan(f32)))); +} + +test "math.round64.special" { + expect(round64(0.0) == 0.0); + expect(round64(-0.0) == -0.0); + expect(math.isPositiveInf(round64(math.inf(f64)))); + expect(math.isNegativeInf(round64(-math.inf(f64)))); + expect(math.isNan(round64(math.nan(f64)))); +} diff --git a/lib/std/math/scalbn.zig b/lib/std/math/scalbn.zig new file mode 100644 index 0000000000..d5716d621c --- /dev/null +++ b/lib/std/math/scalbn.zig @@ -0,0 +1,92 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/scalbnf.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/scalbn.c + +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; + +/// Returns x * 2^n. +pub fn scalbn(x: var, n: i32) @typeOf(x) { + const T = @typeOf(x); + return switch (T) { + f32 => scalbn32(x, n), + f64 => scalbn64(x, n), + else => @compileError("scalbn not implemented for " ++ @typeName(T)), + }; +} + +fn scalbn32(x: f32, n_: i32) f32 { + var y = x; + var n = n_; + + if (n > 127) { + y *= 0x1.0p127; + n -= 127; + if (n > 1023) { + y *= 0x1.0p127; + n -= 127; + if (n > 127) { + n = 127; + } + } + } else if (n < -126) { + y *= 0x1.0p-126 * 0x1.0p24; + n += 126 - 24; + if (n < -126) { + y *= 0x1.0p-126 * 0x1.0p24; + n += 126 - 24; + if (n < -126) { + n = -126; + } + } + } + + const u = @intCast(u32, n +% 0x7F) << 23; + return y * @bitCast(f32, u); +} + +fn scalbn64(x: f64, n_: i32) f64 { + var y = x; + var n = n_; + + if (n > 1023) { + y *= 0x1.0p1023; + n -= 1023; + if (n > 1023) { + y *= 0x1.0p1023; + n -= 1023; + if (n > 1023) { + n = 1023; + } + } + } else if (n < -1022) { + y *= 0x1.0p-1022 * 0x1.0p53; + n += 1022 - 53; + if (n < -1022) { + y *= 0x1.0p-1022 * 0x1.0p53; + n += 1022 - 53; + if (n < -1022) { + n = -1022; + } + } + } + + const u = @intCast(u64, n +% 0x3FF) << 52; + return y * @bitCast(f64, u); +} + +test "math.scalbn" { + expect(scalbn(f32(1.5), 4) == scalbn32(1.5, 4)); + expect(scalbn(f64(1.5), 4) == scalbn64(1.5, 4)); +} + +test "math.scalbn32" { + expect(scalbn32(1.5, 4) == 24.0); +} + +test "math.scalbn64" { + expect(scalbn64(1.5, 4) == 24.0); +} diff --git a/lib/std/math/signbit.zig b/lib/std/math/signbit.zig new file mode 100644 index 0000000000..e5c5909292 --- /dev/null +++ b/lib/std/math/signbit.zig @@ -0,0 +1,50 @@ +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; + +/// Returns whether x is negative or negative 0. +pub fn signbit(x: var) bool { + const T = @typeOf(x); + return switch (T) { + f16 => signbit16(x), + f32 => signbit32(x), + f64 => signbit64(x), + else => @compileError("signbit not implemented for " ++ @typeName(T)), + }; +} + +fn signbit16(x: f16) bool { + const bits = @bitCast(u16, x); + return bits >> 15 != 0; +} + +fn signbit32(x: f32) bool { + const bits = @bitCast(u32, x); + return bits >> 31 != 0; +} + +fn signbit64(x: f64) bool { + const bits = @bitCast(u64, x); + return bits >> 63 != 0; +} + +test "math.signbit" { + expect(signbit(f16(4.0)) == signbit16(4.0)); + expect(signbit(f32(4.0)) == signbit32(4.0)); + expect(signbit(f64(4.0)) == signbit64(4.0)); +} + +test "math.signbit16" { + expect(!signbit16(4.0)); + expect(signbit16(-3.0)); +} + +test "math.signbit32" { + expect(!signbit32(4.0)); + expect(signbit32(-3.0)); +} + +test "math.signbit64" { + expect(!signbit64(4.0)); + expect(signbit64(-3.0)); +} diff --git a/lib/std/math/sin.zig b/lib/std/math/sin.zig new file mode 100644 index 0000000000..ee07b4f85e --- /dev/null +++ b/lib/std/math/sin.zig @@ -0,0 +1,150 @@ +// Ported from go, which is licensed under a BSD-3 license. +// https://golang.org/LICENSE +// +// https://golang.org/src/math/sin.go + +const builtin = @import("builtin"); +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; + +/// Returns the sine of the radian value x. +/// +/// Special Cases: +/// - sin(+-0) = +-0 +/// - sin(+-inf) = nan +/// - sin(nan) = nan +pub fn sin(x: var) @typeOf(x) { + const T = @typeOf(x); + return switch (T) { + f32 => sin_(T, x), + f64 => sin_(T, x), + else => @compileError("sin not implemented for " ++ @typeName(T)), + }; +} + +// sin polynomial coefficients +const S0 = 1.58962301576546568060E-10; +const S1 = -2.50507477628578072866E-8; +const S2 = 2.75573136213857245213E-6; +const S3 = -1.98412698295895385996E-4; +const S4 = 8.33333333332211858878E-3; +const S5 = -1.66666666666666307295E-1; + +// cos polynomial coeffiecients +const C0 = -1.13585365213876817300E-11; +const C1 = 2.08757008419747316778E-9; +const C2 = -2.75573141792967388112E-7; +const C3 = 2.48015872888517045348E-5; +const C4 = -1.38888888888730564116E-3; +const C5 = 4.16666666666665929218E-2; + +const pi4a = 7.85398125648498535156e-1; +const pi4b = 3.77489470793079817668E-8; +const pi4c = 2.69515142907905952645E-15; +const m4pi = 1.273239544735162542821171882678754627704620361328125; + +fn sin_(comptime T: type, x_: T) T { + const I = @IntType(true, T.bit_count); + + var x = x_; + if (x == 0 or math.isNan(x)) { + return x; + } + if (math.isInf(x)) { + return math.nan(T); + } + + var sign = x < 0; + x = math.fabs(x); + + var y = math.floor(x * m4pi); + var j = @floatToInt(I, y); + + if (j & 1 == 1) { + j += 1; + y += 1; + } + + j &= 7; + if (j > 3) { + j -= 4; + sign = !sign; + } + + const z = ((x - y * pi4a) - y * pi4b) - y * pi4c; + const w = z * z; + + const r = if (j == 1 or j == 2) + 1.0 - 0.5 * w + w * w * (C5 + w * (C4 + w * (C3 + w * (C2 + w * (C1 + w * C0))))) + else + z + z * w * (S5 + w * (S4 + w * (S3 + w * (S2 + w * (S1 + w * S0))))); + + return if (sign) -r else r; +} + +test "math.sin" { + if (builtin.os == .linux and builtin.arch == .arm and builtin.abi == .musleabihf) { + // TODO https://github.com/ziglang/zig/issues/3289 + return error.SkipZigTest; + } + expect(sin(f32(0.0)) == sin_(f32, 0.0)); + expect(sin(f64(0.0)) == sin_(f64, 0.0)); + expect(comptime (math.sin(f64(2))) == math.sin(f64(2))); +} + +test "math.sin32" { + if (builtin.os == .linux and builtin.arch == .arm and builtin.abi == .musleabihf) { + // TODO https://github.com/ziglang/zig/issues/3289 + return error.SkipZigTest; + } + const epsilon = 0.000001; + + expect(math.approxEq(f32, sin_(f32, 0.0), 0.0, epsilon)); + expect(math.approxEq(f32, sin_(f32, 0.2), 0.198669, epsilon)); + expect(math.approxEq(f32, sin_(f32, 0.8923), 0.778517, epsilon)); + expect(math.approxEq(f32, sin_(f32, 1.5), 0.997495, epsilon)); + expect(math.approxEq(f32, sin_(f32, -1.5), -0.997495, epsilon)); + expect(math.approxEq(f32, sin_(f32, 37.45), -0.246544, epsilon)); + expect(math.approxEq(f32, sin_(f32, 89.123), 0.916166, epsilon)); +} + +test "math.sin64" { + if (builtin.os == .linux and builtin.arch == .arm and builtin.abi == .musleabihf) { + // TODO https://github.com/ziglang/zig/issues/3289 + return error.SkipZigTest; + } + const epsilon = 0.000001; + + expect(math.approxEq(f64, sin_(f64, 0.0), 0.0, epsilon)); + expect(math.approxEq(f64, sin_(f64, 0.2), 0.198669, epsilon)); + expect(math.approxEq(f64, sin_(f64, 0.8923), 0.778517, epsilon)); + expect(math.approxEq(f64, sin_(f64, 1.5), 0.997495, epsilon)); + expect(math.approxEq(f64, sin_(f64, -1.5), -0.997495, epsilon)); + expect(math.approxEq(f64, sin_(f64, 37.45), -0.246543, epsilon)); + expect(math.approxEq(f64, sin_(f64, 89.123), 0.916166, epsilon)); +} + +test "math.sin32.special" { + if (builtin.os == .linux and builtin.arch == .arm and builtin.abi == .musleabihf) { + // TODO https://github.com/ziglang/zig/issues/3289 + return error.SkipZigTest; + } + expect(sin_(f32, 0.0) == 0.0); + expect(sin_(f32, -0.0) == -0.0); + expect(math.isNan(sin_(f32, math.inf(f32)))); + expect(math.isNan(sin_(f32, -math.inf(f32)))); + expect(math.isNan(sin_(f32, math.nan(f32)))); +} + +test "math.sin64.special" { + if (builtin.os == .linux and builtin.arch == .arm and builtin.abi == .musleabihf) { + // TODO https://github.com/ziglang/zig/issues/3289 + return error.SkipZigTest; + } + expect(sin_(f64, 0.0) == 0.0); + expect(sin_(f64, -0.0) == -0.0); + expect(math.isNan(sin_(f64, math.inf(f64)))); + expect(math.isNan(sin_(f64, -math.inf(f64)))); + expect(math.isNan(sin_(f64, math.nan(f64)))); +} diff --git a/lib/std/math/sinh.zig b/lib/std/math/sinh.zig new file mode 100644 index 0000000000..73ee65ea6f --- /dev/null +++ b/lib/std/math/sinh.zig @@ -0,0 +1,132 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/sinhf.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/sinh.c + +const builtin = @import("builtin"); +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; +const expo2 = @import("expo2.zig").expo2; +const maxInt = std.math.maxInt; + +/// Returns the hyperbolic sine of x. +/// +/// Special Cases: +/// - sinh(+-0) = +-0 +/// - sinh(+-inf) = +-inf +/// - sinh(nan) = nan +pub fn sinh(x: var) @typeOf(x) { + const T = @typeOf(x); + return switch (T) { + f32 => sinh32(x), + f64 => sinh64(x), + else => @compileError("sinh not implemented for " ++ @typeName(T)), + }; +} + +// sinh(x) = (exp(x) - 1 / exp(x)) / 2 +// = (exp(x) - 1 + (exp(x) - 1) / exp(x)) / 2 +// = x + x^3 / 6 + o(x^5) +fn sinh32(x: f32) f32 { + const u = @bitCast(u32, x); + const ux = u & 0x7FFFFFFF; + const ax = @bitCast(f32, ux); + + if (x == 0.0 or math.isNan(x)) { + return x; + } + + var h: f32 = 0.5; + if (u >> 31 != 0) { + h = -h; + } + + // |x| < log(FLT_MAX) + if (ux < 0x42B17217) { + const t = math.expm1(ax); + if (ux < 0x3F800000) { + if (ux < 0x3F800000 - (12 << 23)) { + return x; + } else { + return h * (2 * t - t * t / (t + 1)); + } + } + return h * (t + t / (t + 1)); + } + + // |x| > log(FLT_MAX) or nan + return 2 * h * expo2(ax); +} + +fn sinh64(x: f64) f64 { + const u = @bitCast(u64, x); + const w = @intCast(u32, u >> 32); + const ax = @bitCast(f64, u & (maxInt(u64) >> 1)); + + if (x == 0.0 or math.isNan(x)) { + return x; + } + + var h: f32 = 0.5; + if (u >> 63 != 0) { + h = -h; + } + + // |x| < log(FLT_MAX) + if (w < 0x40862E42) { + const t = math.expm1(ax); + if (w < 0x3FF00000) { + if (w < 0x3FF00000 - (26 << 20)) { + return x; + } else { + return h * (2 * t - t * t / (t + 1)); + } + } + // NOTE: |x| > log(0x1p26) + eps could be h * exp(x) + return h * (t + t / (t + 1)); + } + + // |x| > log(DBL_MAX) or nan + return 2 * h * expo2(ax); +} + +test "math.sinh" { + expect(sinh(f32(1.5)) == sinh32(1.5)); + expect(sinh(f64(1.5)) == sinh64(1.5)); +} + +test "math.sinh32" { + const epsilon = 0.000001; + + expect(math.approxEq(f32, sinh32(0.0), 0.0, epsilon)); + expect(math.approxEq(f32, sinh32(0.2), 0.201336, epsilon)); + expect(math.approxEq(f32, sinh32(0.8923), 1.015512, epsilon)); + expect(math.approxEq(f32, sinh32(1.5), 2.129279, epsilon)); +} + +test "math.sinh64" { + const epsilon = 0.000001; + + expect(math.approxEq(f64, sinh64(0.0), 0.0, epsilon)); + expect(math.approxEq(f64, sinh64(0.2), 0.201336, epsilon)); + expect(math.approxEq(f64, sinh64(0.8923), 1.015512, epsilon)); + expect(math.approxEq(f64, sinh64(1.5), 2.129279, epsilon)); +} + +test "math.sinh32.special" { + expect(sinh32(0.0) == 0.0); + expect(sinh32(-0.0) == -0.0); + expect(math.isPositiveInf(sinh32(math.inf(f32)))); + expect(math.isNegativeInf(sinh32(-math.inf(f32)))); + expect(math.isNan(sinh32(math.nan(f32)))); +} + +test "math.sinh64.special" { + expect(sinh64(0.0) == 0.0); + expect(sinh64(-0.0) == -0.0); + expect(math.isPositiveInf(sinh64(math.inf(f64)))); + expect(math.isNegativeInf(sinh64(-math.inf(f64)))); + expect(math.isNan(sinh64(math.nan(f64)))); +} diff --git a/lib/std/math/sqrt.zig b/lib/std/math/sqrt.zig new file mode 100644 index 0000000000..30af5915d4 --- /dev/null +++ b/lib/std/math/sqrt.zig @@ -0,0 +1,136 @@ +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; +const builtin = @import("builtin"); +const TypeId = builtin.TypeId; +const maxInt = std.math.maxInt; + +/// Returns the square root of x. +/// +/// Special Cases: +/// - sqrt(+inf) = +inf +/// - sqrt(+-0) = +-0 +/// - sqrt(x) = nan if x < 0 +/// - sqrt(nan) = nan +pub fn sqrt(x: var) (if (@typeId(@typeOf(x)) == TypeId.Int) @IntType(false, @typeOf(x).bit_count / 2) else @typeOf(x)) { + const T = @typeOf(x); + switch (@typeId(T)) { + TypeId.ComptimeFloat => return T(@sqrt(f64, x)), // TODO upgrade to f128 + TypeId.Float => return @sqrt(T, x), + TypeId.ComptimeInt => comptime { + if (x > maxInt(u128)) { + @compileError("sqrt not implemented for comptime_int greater than 128 bits"); + } + if (x < 0) { + @compileError("sqrt on negative number"); + } + return T(sqrt_int(u128, x)); + }, + TypeId.Int => return sqrt_int(T, x), + else => @compileError("sqrt not implemented for " ++ @typeName(T)), + } +} + +test "math.sqrt" { + expect(sqrt(f16(0.0)) == @sqrt(f16, 0.0)); + expect(sqrt(f32(0.0)) == @sqrt(f32, 0.0)); + expect(sqrt(f64(0.0)) == @sqrt(f64, 0.0)); +} + +test "math.sqrt16" { + const epsilon = 0.000001; + + expect(@sqrt(f16, 0.0) == 0.0); + expect(math.approxEq(f16, @sqrt(f16, 2.0), 1.414214, epsilon)); + expect(math.approxEq(f16, @sqrt(f16, 3.6), 1.897367, epsilon)); + expect(@sqrt(f16, 4.0) == 2.0); + expect(math.approxEq(f16, @sqrt(f16, 7.539840), 2.745877, epsilon)); + expect(math.approxEq(f16, @sqrt(f16, 19.230934), 4.385309, epsilon)); + expect(@sqrt(f16, 64.0) == 8.0); + expect(math.approxEq(f16, @sqrt(f16, 64.1), 8.006248, epsilon)); + expect(math.approxEq(f16, @sqrt(f16, 8942.230469), 94.563370, epsilon)); +} + +test "math.sqrt32" { + const epsilon = 0.000001; + + expect(@sqrt(f32, 0.0) == 0.0); + expect(math.approxEq(f32, @sqrt(f32, 2.0), 1.414214, epsilon)); + expect(math.approxEq(f32, @sqrt(f32, 3.6), 1.897367, epsilon)); + expect(@sqrt(f32, 4.0) == 2.0); + expect(math.approxEq(f32, @sqrt(f32, 7.539840), 2.745877, epsilon)); + expect(math.approxEq(f32, @sqrt(f32, 19.230934), 4.385309, epsilon)); + expect(@sqrt(f32, 64.0) == 8.0); + expect(math.approxEq(f32, @sqrt(f32, 64.1), 8.006248, epsilon)); + expect(math.approxEq(f32, @sqrt(f32, 8942.230469), 94.563370, epsilon)); +} + +test "math.sqrt64" { + const epsilon = 0.000001; + + expect(@sqrt(f64, 0.0) == 0.0); + expect(math.approxEq(f64, @sqrt(f64, 2.0), 1.414214, epsilon)); + expect(math.approxEq(f64, @sqrt(f64, 3.6), 1.897367, epsilon)); + expect(@sqrt(f64, 4.0) == 2.0); + expect(math.approxEq(f64, @sqrt(f64, 7.539840), 2.745877, epsilon)); + expect(math.approxEq(f64, @sqrt(f64, 19.230934), 4.385309, epsilon)); + expect(@sqrt(f64, 64.0) == 8.0); + expect(math.approxEq(f64, @sqrt(f64, 64.1), 8.006248, epsilon)); + expect(math.approxEq(f64, @sqrt(f64, 8942.230469), 94.563367, epsilon)); +} + +test "math.sqrt16.special" { + expect(math.isPositiveInf(@sqrt(f16, math.inf(f16)))); + expect(@sqrt(f16, 0.0) == 0.0); + expect(@sqrt(f16, -0.0) == -0.0); + expect(math.isNan(@sqrt(f16, -1.0))); + expect(math.isNan(@sqrt(f16, math.nan(f16)))); +} + +test "math.sqrt32.special" { + expect(math.isPositiveInf(@sqrt(f32, math.inf(f32)))); + expect(@sqrt(f32, 0.0) == 0.0); + expect(@sqrt(f32, -0.0) == -0.0); + expect(math.isNan(@sqrt(f32, -1.0))); + expect(math.isNan(@sqrt(f32, math.nan(f32)))); +} + +test "math.sqrt64.special" { + expect(math.isPositiveInf(@sqrt(f64, math.inf(f64)))); + expect(@sqrt(f64, 0.0) == 0.0); + expect(@sqrt(f64, -0.0) == -0.0); + expect(math.isNan(@sqrt(f64, -1.0))); + expect(math.isNan(@sqrt(f64, math.nan(f64)))); +} + +fn sqrt_int(comptime T: type, value: T) @IntType(false, T.bit_count / 2) { + var op = value; + var res: T = 0; + var one: T = 1 << (T.bit_count - 2); + + // "one" starts at the highest power of four <= than the argument. + while (one > op) { + one >>= 2; + } + + while (one != 0) { + if (op >= res + one) { + op -= res + one; + res += 2 * one; + } + res >>= 1; + one >>= 2; + } + + const ResultType = @IntType(false, T.bit_count / 2); + return @intCast(ResultType, res); +} + +test "math.sqrt_int" { + expect(sqrt_int(u32, 3) == 1); + expect(sqrt_int(u32, 4) == 2); + expect(sqrt_int(u32, 5) == 2); + expect(sqrt_int(u32, 8) == 2); + expect(sqrt_int(u32, 9) == 3); + expect(sqrt_int(u32, 10) == 3); +} diff --git a/lib/std/math/tan.zig b/lib/std/math/tan.zig new file mode 100644 index 0000000000..049c85df12 --- /dev/null +++ b/lib/std/math/tan.zig @@ -0,0 +1,122 @@ +// Ported from go, which is licensed under a BSD-3 license. +// https://golang.org/LICENSE +// +// https://golang.org/src/math/tan.go + +const builtin = @import("builtin"); +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; + +/// Returns the tangent of the radian value x. +/// +/// Special Cases: +/// - tan(+-0) = +-0 +/// - tan(+-inf) = nan +/// - tan(nan) = nan +pub fn tan(x: var) @typeOf(x) { + const T = @typeOf(x); + return switch (T) { + f32 => tan_(f32, x), + f64 => tan_(f64, x), + else => @compileError("tan not implemented for " ++ @typeName(T)), + }; +} + +const Tp0 = -1.30936939181383777646E4; +const Tp1 = 1.15351664838587416140E6; +const Tp2 = -1.79565251976484877988E7; + +const Tq1 = 1.36812963470692954678E4; +const Tq2 = -1.32089234440210967447E6; +const Tq3 = 2.50083801823357915839E7; +const Tq4 = -5.38695755929454629881E7; + +const pi4a = 7.85398125648498535156e-1; +const pi4b = 3.77489470793079817668E-8; +const pi4c = 2.69515142907905952645E-15; +const m4pi = 1.273239544735162542821171882678754627704620361328125; + +fn tan_(comptime T: type, x_: T) T { + const I = @IntType(true, T.bit_count); + + var x = x_; + if (x == 0 or math.isNan(x)) { + return x; + } + if (math.isInf(x)) { + return math.nan(T); + } + + var sign = x < 0; + x = math.fabs(x); + + var y = math.floor(x * m4pi); + var j = @floatToInt(I, y); + + if (j & 1 == 1) { + j += 1; + y += 1; + } + + const z = ((x - y * pi4a) - y * pi4b) - y * pi4c; + const w = z * z; + + var r = if (w > 1e-14) + z + z * (w * ((Tp0 * w + Tp1) * w + Tp2) / ((((w + Tq1) * w + Tq2) * w + Tq3) * w + Tq4)) + else + z; + + if (j & 2 == 2) { + r = -1 / r; + } + + return if (sign) -r else r; +} + +test "math.tan" { + expect(tan(f32(0.0)) == tan_(f32, 0.0)); + expect(tan(f64(0.0)) == tan_(f64, 0.0)); +} + +test "math.tan32" { + const epsilon = 0.000001; + + expect(math.approxEq(f32, tan_(f32, 0.0), 0.0, epsilon)); + expect(math.approxEq(f32, tan_(f32, 0.2), 0.202710, epsilon)); + expect(math.approxEq(f32, tan_(f32, 0.8923), 1.240422, epsilon)); + expect(math.approxEq(f32, tan_(f32, 1.5), 14.101420, epsilon)); + expect(math.approxEq(f32, tan_(f32, 37.45), -0.254397, epsilon)); + expect(math.approxEq(f32, tan_(f32, 89.123), 2.285852, epsilon)); +} + +test "math.tan64" { + if (builtin.os == .linux and builtin.arch == .arm and builtin.abi == .musleabihf) { + // TODO https://github.com/ziglang/zig/issues/3289 + return error.SkipZigTest; + } + const epsilon = 0.000001; + + expect(math.approxEq(f64, tan_(f64, 0.0), 0.0, epsilon)); + expect(math.approxEq(f64, tan_(f64, 0.2), 0.202710, epsilon)); + expect(math.approxEq(f64, tan_(f64, 0.8923), 1.240422, epsilon)); + expect(math.approxEq(f64, tan_(f64, 1.5), 14.101420, epsilon)); + expect(math.approxEq(f64, tan_(f64, 37.45), -0.254397, epsilon)); + expect(math.approxEq(f64, tan_(f64, 89.123), 2.2858376, epsilon)); +} + +test "math.tan32.special" { + expect(tan_(f32, 0.0) == 0.0); + expect(tan_(f32, -0.0) == -0.0); + expect(math.isNan(tan_(f32, math.inf(f32)))); + expect(math.isNan(tan_(f32, -math.inf(f32)))); + expect(math.isNan(tan_(f32, math.nan(f32)))); +} + +test "math.tan64.special" { + expect(tan_(f64, 0.0) == 0.0); + expect(tan_(f64, -0.0) == -0.0); + expect(math.isNan(tan_(f64, math.inf(f64)))); + expect(math.isNan(tan_(f64, -math.inf(f64)))); + expect(math.isNan(tan_(f64, math.nan(f64)))); +} diff --git a/lib/std/math/tanh.zig b/lib/std/math/tanh.zig new file mode 100644 index 0000000000..48d26d091e --- /dev/null +++ b/lib/std/math/tanh.zig @@ -0,0 +1,160 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/tanhf.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/tanh.c + +const builtin = @import("builtin"); +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; +const expo2 = @import("expo2.zig").expo2; +const maxInt = std.math.maxInt; + +/// Returns the hyperbolic tangent of x. +/// +/// Special Cases: +/// - sinh(+-0) = +-0 +/// - sinh(+-inf) = +-1 +/// - sinh(nan) = nan +pub fn tanh(x: var) @typeOf(x) { + const T = @typeOf(x); + return switch (T) { + f32 => tanh32(x), + f64 => tanh64(x), + else => @compileError("tanh not implemented for " ++ @typeName(T)), + }; +} + +// tanh(x) = (exp(x) - exp(-x)) / (exp(x) + exp(-x)) +// = (exp(2x) - 1) / (exp(2x) - 1 + 2) +// = (1 - exp(-2x)) / (exp(-2x) - 1 + 2) +fn tanh32(x: f32) f32 { + const u = @bitCast(u32, x); + const ux = u & 0x7FFFFFFF; + const ax = @bitCast(f32, ux); + + var t: f32 = undefined; + + if (x == 0.0 or math.isNan(x)) { + return x; + } + + // |x| < log(3) / 2 ~= 0.5493 or nan + if (ux > 0x3F0C9F54) { + // |x| > 10 + if (ux > 0x41200000) { + t = 1.0; + } else { + t = math.expm1(2 * x); + t = 1 - 2 / (t + 2); + } + } + // |x| > log(5 / 3) / 2 ~= 0.2554 + else if (ux > 0x3E82C578) { + t = math.expm1(2 * x); + t = t / (t + 2); + } + // |x| >= 0x1.0p-126 + else if (ux >= 0x00800000) { + t = math.expm1(-2 * x); + t = -t / (t + 2); + } + // |x| is subnormal + else { + math.forceEval(x * x); + t = x; + } + + if (u >> 31 != 0) { + return -t; + } else { + return t; + } +} + +fn tanh64(x: f64) f64 { + const u = @bitCast(u64, x); + const w = @intCast(u32, u >> 32); + const ax = @bitCast(f64, u & (maxInt(u64) >> 1)); + + var t: f64 = undefined; + + // TODO: Shouldn't need these checks. + if (x == 0.0 or math.isNan(x)) { + return x; + } + + // |x| < log(3) / 2 ~= 0.5493 or nan + if (w > 0x3FE193EA) { + // |x| > 20 or nan + if (w > 0x40340000) { + t = 1.0; + } else { + t = math.expm1(2 * x); + t = 1 - 2 / (t + 2); + } + } + // |x| > log(5 / 3) / 2 ~= 0.2554 + else if (w > 0x3FD058AE) { + t = math.expm1(2 * x); + t = t / (t + 2); + } + // |x| >= 0x1.0p-1022 + else if (w >= 0x00100000) { + t = math.expm1(-2 * x); + t = -t / (t + 2); + } + // |x| is subnormal + else { + math.forceEval(@floatCast(f32, x)); + t = x; + } + + if (u >> 63 != 0) { + return -t; + } else { + return t; + } +} + +test "math.tanh" { + expect(tanh(f32(1.5)) == tanh32(1.5)); + expect(tanh(f64(1.5)) == tanh64(1.5)); +} + +test "math.tanh32" { + const epsilon = 0.000001; + + expect(math.approxEq(f32, tanh32(0.0), 0.0, epsilon)); + expect(math.approxEq(f32, tanh32(0.2), 0.197375, epsilon)); + expect(math.approxEq(f32, tanh32(0.8923), 0.712528, epsilon)); + expect(math.approxEq(f32, tanh32(1.5), 0.905148, epsilon)); + expect(math.approxEq(f32, tanh32(37.45), 1.0, epsilon)); +} + +test "math.tanh64" { + const epsilon = 0.000001; + + expect(math.approxEq(f64, tanh64(0.0), 0.0, epsilon)); + expect(math.approxEq(f64, tanh64(0.2), 0.197375, epsilon)); + expect(math.approxEq(f64, tanh64(0.8923), 0.712528, epsilon)); + expect(math.approxEq(f64, tanh64(1.5), 0.905148, epsilon)); + expect(math.approxEq(f64, tanh64(37.45), 1.0, epsilon)); +} + +test "math.tanh32.special" { + expect(tanh32(0.0) == 0.0); + expect(tanh32(-0.0) == -0.0); + expect(tanh32(math.inf(f32)) == 1.0); + expect(tanh32(-math.inf(f32)) == -1.0); + expect(math.isNan(tanh32(math.nan(f32)))); +} + +test "math.tanh64.special" { + expect(tanh64(0.0) == 0.0); + expect(tanh64(-0.0) == -0.0); + expect(tanh64(math.inf(f64)) == 1.0); + expect(tanh64(-math.inf(f64)) == -1.0); + expect(math.isNan(tanh64(math.nan(f64)))); +} diff --git a/lib/std/math/trunc.zig b/lib/std/math/trunc.zig new file mode 100644 index 0000000000..219bcd4914 --- /dev/null +++ b/lib/std/math/trunc.zig @@ -0,0 +1,100 @@ +// Ported from musl, which is licensed under the MIT license: +// https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT +// +// https://git.musl-libc.org/cgit/musl/tree/src/math/truncf.c +// https://git.musl-libc.org/cgit/musl/tree/src/math/trunc.c + +const std = @import("../std.zig"); +const math = std.math; +const expect = std.testing.expect; +const maxInt = std.math.maxInt; + +/// Returns the integer value of x. +/// +/// Special Cases: +/// - trunc(+-0) = +-0 +/// - trunc(+-inf) = +-inf +/// - trunc(nan) = nan +pub fn trunc(x: var) @typeOf(x) { + const T = @typeOf(x); + return switch (T) { + f32 => trunc32(x), + f64 => trunc64(x), + else => @compileError("trunc not implemented for " ++ @typeName(T)), + }; +} + +fn trunc32(x: f32) f32 { + const u = @bitCast(u32, x); + var e = @intCast(i32, ((u >> 23) & 0xFF)) - 0x7F + 9; + var m: u32 = undefined; + + if (e >= 23 + 9) { + return x; + } + if (e < 9) { + e = 1; + } + + m = u32(maxInt(u32)) >> @intCast(u5, e); + if (u & m == 0) { + return x; + } else { + math.forceEval(x + 0x1p120); + return @bitCast(f32, u & ~m); + } +} + +fn trunc64(x: f64) f64 { + const u = @bitCast(u64, x); + var e = @intCast(i32, ((u >> 52) & 0x7FF)) - 0x3FF + 12; + var m: u64 = undefined; + + if (e >= 52 + 12) { + return x; + } + if (e < 12) { + e = 1; + } + + m = u64(maxInt(u64)) >> @intCast(u6, e); + if (u & m == 0) { + return x; + } else { + math.forceEval(x + 0x1p120); + return @bitCast(f64, u & ~m); + } +} + +test "math.trunc" { + expect(trunc(f32(1.3)) == trunc32(1.3)); + expect(trunc(f64(1.3)) == trunc64(1.3)); +} + +test "math.trunc32" { + expect(trunc32(1.3) == 1.0); + expect(trunc32(-1.3) == -1.0); + expect(trunc32(0.2) == 0.0); +} + +test "math.trunc64" { + expect(trunc64(1.3) == 1.0); + expect(trunc64(-1.3) == -1.0); + expect(trunc64(0.2) == 0.0); +} + +test "math.trunc32.special" { + expect(trunc32(0.0) == 0.0); // 0x3F800000 + expect(trunc32(-0.0) == -0.0); + expect(math.isPositiveInf(trunc32(math.inf(f32)))); + expect(math.isNegativeInf(trunc32(-math.inf(f32)))); + expect(math.isNan(trunc32(math.nan(f32)))); +} + +test "math.trunc64.special" { + expect(trunc64(0.0) == 0.0); + expect(trunc64(-0.0) == -0.0); + expect(math.isPositiveInf(trunc64(math.inf(f64)))); + expect(math.isNegativeInf(trunc64(-math.inf(f64)))); + expect(math.isNan(trunc64(math.nan(f64)))); +} diff --git a/lib/std/mem.zig b/lib/std/mem.zig new file mode 100644 index 0000000000..2091eb4804 --- /dev/null +++ b/lib/std/mem.zig @@ -0,0 +1,1537 @@ +const std = @import("std.zig"); +const debug = std.debug; +const assert = debug.assert; +const math = std.math; +const builtin = @import("builtin"); +const mem = @This(); +const meta = std.meta; +const trait = meta.trait; +const testing = std.testing; + +pub const page_size = switch (builtin.arch) { + .wasm32, .wasm64 => 64 * 1024, + else => 4 * 1024, +}; + +pub const Allocator = struct { + pub const Error = error{OutOfMemory}; + + /// Realloc is used to modify the size or alignment of an existing allocation, + /// as well as to provide the allocator with an opportunity to move an allocation + /// to a better location. + /// When the size/alignment is greater than the previous allocation, this function + /// returns `error.OutOfMemory` when the requested new allocation could not be granted. + /// When the size/alignment is less than or equal to the previous allocation, + /// this function returns `error.OutOfMemory` when the allocator decides the client + /// would be better off keeping the extra alignment/size. Clients will call + /// `shrinkFn` when they require the allocator to track a new alignment/size, + /// and so this function should only return success when the allocator considers + /// the reallocation desirable from the allocator's perspective. + /// As an example, `std.ArrayList` tracks a "capacity", and therefore can handle + /// reallocation failure, even when `new_n` <= `old_mem.len`. A `FixedBufferAllocator` + /// would always return `error.OutOfMemory` for `reallocFn` when the size/alignment + /// is less than or equal to the old allocation, because it cannot reclaim the memory, + /// and thus the `std.ArrayList` would be better off retaining its capacity. + /// When `reallocFn` returns, + /// `return_value[0..min(old_mem.len, new_byte_count)]` must be the same + /// as `old_mem` was when `reallocFn` is called. The bytes of + /// `return_value[old_mem.len..]` have undefined values. + /// The returned slice must have its pointer aligned at least to `new_alignment` bytes. + reallocFn: fn ( + self: *Allocator, + /// Guaranteed to be the same as what was returned from most recent call to + /// `reallocFn` or `shrinkFn`. + /// If `old_mem.len == 0` then this is a new allocation and `new_byte_count` + /// is guaranteed to be >= 1. + old_mem: []u8, + /// If `old_mem.len == 0` then this is `undefined`, otherwise: + /// Guaranteed to be the same as what was returned from most recent call to + /// `reallocFn` or `shrinkFn`. + /// Guaranteed to be >= 1. + /// Guaranteed to be a power of 2. + old_alignment: u29, + /// If `new_byte_count` is 0 then this is a free and it is guaranteed that + /// `old_mem.len != 0`. + new_byte_count: usize, + /// Guaranteed to be >= 1. + /// Guaranteed to be a power of 2. + /// Returned slice's pointer must have this alignment. + new_alignment: u29, + ) Error![]u8, + + /// This function deallocates memory. It must succeed. + shrinkFn: fn ( + self: *Allocator, + /// Guaranteed to be the same as what was returned from most recent call to + /// `reallocFn` or `shrinkFn`. + old_mem: []u8, + /// Guaranteed to be the same as what was returned from most recent call to + /// `reallocFn` or `shrinkFn`. + old_alignment: u29, + /// Guaranteed to be less than or equal to `old_mem.len`. + new_byte_count: usize, + /// If `new_byte_count == 0` then this is `undefined`, otherwise: + /// Guaranteed to be less than or equal to `old_alignment`. + new_alignment: u29, + ) []u8, + + /// Returns a pointer to undefined memory. + /// Call `destroy` with the result to free the memory. + pub fn create(self: *Allocator, comptime T: type) Error!*T { + if (@sizeOf(T) == 0) return &(T{}); + const slice = try self.alloc(T, 1); + return &slice[0]; + } + + /// `ptr` should be the return value of `create`, or otherwise + /// have the same address and alignment property. + pub fn destroy(self: *Allocator, ptr: var) void { + const T = @typeOf(ptr).Child; + if (@sizeOf(T) == 0) return; + const non_const_ptr = @intToPtr([*]u8, @ptrToInt(ptr)); + const shrink_result = self.shrinkFn(self, non_const_ptr[0..@sizeOf(T)], @alignOf(T), 0, 1); + assert(shrink_result.len == 0); + } + + pub fn alloc(self: *Allocator, comptime T: type, n: usize) Error![]T { + return self.alignedAlloc(T, null, n); + } + + pub fn alignedAlloc( + self: *Allocator, + comptime T: type, + /// null means naturally aligned + comptime alignment: ?u29, + n: usize, + ) Error![]align(alignment orelse @alignOf(T)) T { + const a = if (alignment) |a| blk: { + if (a == @alignOf(T)) return alignedAlloc(self, T, null, n); + break :blk a; + } else @alignOf(T); + + if (n == 0) { + return ([*]align(a) T)(undefined)[0..0]; + } + + const byte_count = math.mul(usize, @sizeOf(T), n) catch return Error.OutOfMemory; + const byte_slice = try self.reallocFn(self, ([*]u8)(undefined)[0..0], undefined, byte_count, a); + assert(byte_slice.len == byte_count); + @memset(byte_slice.ptr, undefined, byte_slice.len); + if (alignment == null) { + // TODO This is a workaround for zig not being able to successfully do + // @bytesToSlice(T, @alignCast(a, byte_slice)) without resolving alignment of T, + // which causes a circular dependency in async functions which try to heap-allocate + // their own frame with @Frame(func). + return @intToPtr([*]T, @ptrToInt(byte_slice.ptr))[0..n]; + } else { + return @bytesToSlice(T, @alignCast(a, byte_slice)); + } + } + + /// This function requests a new byte size for an existing allocation, + /// which can be larger, smaller, or the same size as the old memory + /// allocation. + /// This function is preferred over `shrink`, because it can fail, even + /// when shrinking. This gives the allocator a chance to perform a + /// cheap shrink operation if possible, or otherwise return OutOfMemory, + /// indicating that the caller should keep their capacity, for example + /// in `std.ArrayList.shrink`. + /// If you need guaranteed success, call `shrink`. + /// If `new_n` is 0, this is the same as `free` and it always succeeds. + pub fn realloc(self: *Allocator, old_mem: var, new_n: usize) t: { + const Slice = @typeInfo(@typeOf(old_mem)).Pointer; + break :t Error![]align(Slice.alignment) Slice.child; + } { + const old_alignment = @typeInfo(@typeOf(old_mem)).Pointer.alignment; + return self.alignedRealloc(old_mem, old_alignment, new_n); + } + + /// This is the same as `realloc`, except caller may additionally request + /// a new alignment, which can be larger, smaller, or the same as the old + /// allocation. + pub fn alignedRealloc( + self: *Allocator, + old_mem: var, + comptime new_alignment: u29, + new_n: usize, + ) Error![]align(new_alignment) @typeInfo(@typeOf(old_mem)).Pointer.child { + const Slice = @typeInfo(@typeOf(old_mem)).Pointer; + const T = Slice.child; + if (old_mem.len == 0) { + return self.alignedAlloc(T, new_alignment, new_n); + } + if (new_n == 0) { + self.free(old_mem); + return ([*]align(new_alignment) T)(undefined)[0..0]; + } + + const old_byte_slice = @sliceToBytes(old_mem); + const byte_count = math.mul(usize, @sizeOf(T), new_n) catch return Error.OutOfMemory; + const byte_slice = try self.reallocFn(self, old_byte_slice, Slice.alignment, byte_count, new_alignment); + assert(byte_slice.len == byte_count); + if (new_n > old_mem.len) { + @memset(byte_slice.ptr + old_byte_slice.len, undefined, byte_slice.len - old_byte_slice.len); + } + return @bytesToSlice(T, @alignCast(new_alignment, byte_slice)); + } + + /// Prefer calling realloc to shrink if you can tolerate failure, such as + /// in an ArrayList data structure with a storage capacity. + /// Shrink always succeeds, and `new_n` must be <= `old_mem.len`. + /// Returned slice has same alignment as old_mem. + /// Shrinking to 0 is the same as calling `free`. + pub fn shrink(self: *Allocator, old_mem: var, new_n: usize) t: { + const Slice = @typeInfo(@typeOf(old_mem)).Pointer; + break :t []align(Slice.alignment) Slice.child; + } { + const old_alignment = @typeInfo(@typeOf(old_mem)).Pointer.alignment; + return self.alignedShrink(old_mem, old_alignment, new_n); + } + + /// This is the same as `shrink`, except caller may additionally request + /// a new alignment, which must be smaller or the same as the old + /// allocation. + pub fn alignedShrink( + self: *Allocator, + old_mem: var, + comptime new_alignment: u29, + new_n: usize, + ) []align(new_alignment) @typeInfo(@typeOf(old_mem)).Pointer.child { + const Slice = @typeInfo(@typeOf(old_mem)).Pointer; + const T = Slice.child; + + if (new_n == 0) { + self.free(old_mem); + return old_mem[0..0]; + } + + assert(new_n <= old_mem.len); + assert(new_alignment <= Slice.alignment); + + // Here we skip the overflow checking on the multiplication because + // new_n <= old_mem.len and the multiplication didn't overflow for that operation. + const byte_count = @sizeOf(T) * new_n; + + const old_byte_slice = @sliceToBytes(old_mem); + const byte_slice = self.shrinkFn(self, old_byte_slice, Slice.alignment, byte_count, new_alignment); + assert(byte_slice.len == byte_count); + return @bytesToSlice(T, @alignCast(new_alignment, byte_slice)); + } + + pub fn free(self: *Allocator, memory: var) void { + const Slice = @typeInfo(@typeOf(memory)).Pointer; + const bytes = @sliceToBytes(memory); + if (bytes.len == 0) return; + const non_const_ptr = @intToPtr([*]u8, @ptrToInt(bytes.ptr)); + const shrink_result = self.shrinkFn(self, non_const_ptr[0..bytes.len], Slice.alignment, 0, 1); + assert(shrink_result.len == 0); + } +}; + +pub const Compare = enum { + LessThan, + Equal, + GreaterThan, +}; + +/// Copy all of source into dest at position 0. +/// dest.len must be >= source.len. +/// dest.ptr must be <= src.ptr. +pub fn copy(comptime T: type, dest: []T, source: []const T) void { + // TODO instead of manually doing this check for the whole array + // and turning off runtime safety, the compiler should detect loops like + // this and automatically omit safety checks for loops + @setRuntimeSafety(false); + assert(dest.len >= source.len); + for (source) |s, i| + dest[i] = s; +} + +/// Copy all of source into dest at position 0. +/// dest.len must be >= source.len. +/// dest.ptr must be >= src.ptr. +pub fn copyBackwards(comptime T: type, dest: []T, source: []const T) void { + // TODO instead of manually doing this check for the whole array + // and turning off runtime safety, the compiler should detect loops like + // this and automatically omit safety checks for loops + @setRuntimeSafety(false); + assert(dest.len >= source.len); + var i = source.len; + while (i > 0) { + i -= 1; + dest[i] = source[i]; + } +} + +pub fn set(comptime T: type, dest: []T, value: T) void { + for (dest) |*d| + d.* = value; +} + +pub fn secureZero(comptime T: type, s: []T) void { + // NOTE: We do not use a volatile slice cast here since LLVM cannot + // see that it can be replaced by a memset. + const ptr = @ptrCast([*]volatile u8, s.ptr); + const length = s.len * @sizeOf(T); + @memset(ptr, 0, length); +} + +test "mem.secureZero" { + var a = [_]u8{0xfe} ** 8; + var b = [_]u8{0xfe} ** 8; + + set(u8, a[0..], 0); + secureZero(u8, b[0..]); + + testing.expectEqualSlices(u8, a[0..], b[0..]); +} + +pub fn compare(comptime T: type, lhs: []const T, rhs: []const T) Compare { + const n = math.min(lhs.len, rhs.len); + var i: usize = 0; + while (i < n) : (i += 1) { + if (lhs[i] == rhs[i]) { + continue; + } else if (lhs[i] < rhs[i]) { + return Compare.LessThan; + } else if (lhs[i] > rhs[i]) { + return Compare.GreaterThan; + } else { + unreachable; + } + } + + if (lhs.len == rhs.len) { + return Compare.Equal; + } else if (lhs.len < rhs.len) { + return Compare.LessThan; + } else if (lhs.len > rhs.len) { + return Compare.GreaterThan; + } + unreachable; +} + +test "mem.compare" { + testing.expect(compare(u8, "abcd", "bee") == Compare.LessThan); + testing.expect(compare(u8, "abc", "abc") == Compare.Equal); + testing.expect(compare(u8, "abc", "abc0") == Compare.LessThan); + testing.expect(compare(u8, "", "") == Compare.Equal); + testing.expect(compare(u8, "", "a") == Compare.LessThan); +} + +/// Returns true if lhs < rhs, false otherwise +pub fn lessThan(comptime T: type, lhs: []const T, rhs: []const T) bool { + var result = compare(T, lhs, rhs); + if (result == Compare.LessThan) { + return true; + } else + return false; +} + +test "mem.lessThan" { + testing.expect(lessThan(u8, "abcd", "bee")); + testing.expect(!lessThan(u8, "abc", "abc")); + testing.expect(lessThan(u8, "abc", "abc0")); + testing.expect(!lessThan(u8, "", "")); + testing.expect(lessThan(u8, "", "a")); +} + +/// Compares two slices and returns whether they are equal. +pub fn eql(comptime T: type, a: []const T, b: []const T) bool { + if (a.len != b.len) return false; + if (a.ptr == b.ptr) return true; + for (a) |item, index| { + if (b[index] != item) return false; + } + return true; +} + +pub fn len(comptime T: type, ptr: [*]const T) usize { + var count: usize = 0; + while (ptr[count] != 0) : (count += 1) {} + return count; +} + +pub fn toSliceConst(comptime T: type, ptr: [*]const T) []const T { + return ptr[0..len(T, ptr)]; +} + +pub fn toSlice(comptime T: type, ptr: [*]T) []T { + return ptr[0..len(T, ptr)]; +} + +/// Returns true if all elements in a slice are equal to the scalar value provided +pub fn allEqual(comptime T: type, slice: []const T, scalar: T) bool { + for (slice) |item| { + if (item != scalar) return false; + } + return true; +} + +/// Copies ::m to newly allocated memory. Caller is responsible to free it. +pub fn dupe(allocator: *Allocator, comptime T: type, m: []const T) ![]T { + const new_buf = try allocator.alloc(T, m.len); + copy(T, new_buf, m); + return new_buf; +} + +/// Remove values from the beginning of a slice. +pub fn trimLeft(comptime T: type, slice: []const T, values_to_strip: []const T) []const T { + var begin: usize = 0; + while (begin < slice.len and indexOfScalar(T, values_to_strip, slice[begin]) != null) : (begin += 1) {} + return slice[begin..]; +} + +/// Remove values from the end of a slice. +pub fn trimRight(comptime T: type, slice: []const T, values_to_strip: []const T) []const T { + var end: usize = slice.len; + while (end > 0 and indexOfScalar(T, values_to_strip, slice[end - 1]) != null) : (end -= 1) {} + return slice[0..end]; +} + +/// Remove values from the beginning and end of a slice. +pub fn trim(comptime T: type, slice: []const T, values_to_strip: []const T) []const T { + var begin: usize = 0; + var end: usize = slice.len; + while (begin < end and indexOfScalar(T, values_to_strip, slice[begin]) != null) : (begin += 1) {} + while (end > begin and indexOfScalar(T, values_to_strip, slice[end - 1]) != null) : (end -= 1) {} + return slice[begin..end]; +} + +test "mem.trim" { + testing.expectEqualSlices(u8, "foo\n ", trimLeft(u8, " foo\n ", " \n")); + testing.expectEqualSlices(u8, " foo", trimRight(u8, " foo\n ", " \n")); + testing.expectEqualSlices(u8, "foo", trim(u8, " foo\n ", " \n")); + testing.expectEqualSlices(u8, "foo", trim(u8, "foo", " \n")); +} + +/// Linear search for the index of a scalar value inside a slice. +pub fn indexOfScalar(comptime T: type, slice: []const T, value: T) ?usize { + return indexOfScalarPos(T, slice, 0, value); +} + +/// Linear search for the last index of a scalar value inside a slice. +pub fn lastIndexOfScalar(comptime T: type, slice: []const T, value: T) ?usize { + var i: usize = slice.len; + while (i != 0) { + i -= 1; + if (slice[i] == value) return i; + } + return null; +} + +pub fn indexOfScalarPos(comptime T: type, slice: []const T, start_index: usize, value: T) ?usize { + var i: usize = start_index; + while (i < slice.len) : (i += 1) { + if (slice[i] == value) return i; + } + return null; +} + +pub fn indexOfAny(comptime T: type, slice: []const T, values: []const T) ?usize { + return indexOfAnyPos(T, slice, 0, values); +} + +pub fn lastIndexOfAny(comptime T: type, slice: []const T, values: []const T) ?usize { + var i: usize = slice.len; + while (i != 0) { + i -= 1; + for (values) |value| { + if (slice[i] == value) return i; + } + } + return null; +} + +pub fn indexOfAnyPos(comptime T: type, slice: []const T, start_index: usize, values: []const T) ?usize { + var i: usize = start_index; + while (i < slice.len) : (i += 1) { + for (values) |value| { + if (slice[i] == value) return i; + } + } + return null; +} + +pub fn indexOf(comptime T: type, haystack: []const T, needle: []const T) ?usize { + return indexOfPos(T, haystack, 0, needle); +} + +/// Find the index in a slice of a sub-slice, searching from the end backwards. +/// To start looking at a different index, slice the haystack first. +/// TODO is there even a better algorithm for this? +pub fn lastIndexOf(comptime T: type, haystack: []const T, needle: []const T) ?usize { + if (needle.len > haystack.len) return null; + + var i: usize = haystack.len - needle.len; + while (true) : (i -= 1) { + if (mem.eql(T, haystack[i .. i + needle.len], needle)) return i; + if (i == 0) return null; + } +} + +// TODO boyer-moore algorithm +pub fn indexOfPos(comptime T: type, haystack: []const T, start_index: usize, needle: []const T) ?usize { + if (needle.len > haystack.len) return null; + + var i: usize = start_index; + const end = haystack.len - needle.len; + while (i <= end) : (i += 1) { + if (eql(T, haystack[i .. i + needle.len], needle)) return i; + } + return null; +} + +test "mem.indexOf" { + testing.expect(indexOf(u8, "one two three four", "four").? == 14); + testing.expect(lastIndexOf(u8, "one two three two four", "two").? == 14); + testing.expect(indexOf(u8, "one two three four", "gour") == null); + testing.expect(lastIndexOf(u8, "one two three four", "gour") == null); + testing.expect(indexOf(u8, "foo", "foo").? == 0); + testing.expect(lastIndexOf(u8, "foo", "foo").? == 0); + testing.expect(indexOf(u8, "foo", "fool") == null); + testing.expect(lastIndexOf(u8, "foo", "lfoo") == null); + testing.expect(lastIndexOf(u8, "foo", "fool") == null); + + testing.expect(indexOf(u8, "foo foo", "foo").? == 0); + testing.expect(lastIndexOf(u8, "foo foo", "foo").? == 4); + testing.expect(lastIndexOfAny(u8, "boo, cat", "abo").? == 6); + testing.expect(lastIndexOfScalar(u8, "boo", 'o').? == 2); +} + +/// Reads an integer from memory with size equal to bytes.len. +/// T specifies the return type, which must be large enough to store +/// the result. +pub fn readVarInt(comptime ReturnType: type, bytes: []const u8, endian: builtin.Endian) ReturnType { + var result: ReturnType = 0; + switch (endian) { + builtin.Endian.Big => { + for (bytes) |b| { + result = (result << 8) | b; + } + }, + builtin.Endian.Little => { + const ShiftType = math.Log2Int(ReturnType); + for (bytes) |b, index| { + result = result | (ReturnType(b) << @intCast(ShiftType, index * 8)); + } + }, + } + return result; +} + +/// Reads an integer from memory with bit count specified by T. +/// The bit count of T must be evenly divisible by 8. +/// This function cannot fail and cannot cause undefined behavior. +/// Assumes the endianness of memory is native. This means the function can +/// simply pointer cast memory. +pub fn readIntNative(comptime T: type, bytes: *const [@divExact(T.bit_count, 8)]u8) T { + return @ptrCast(*align(1) const T, bytes).*; +} + +/// Reads an integer from memory with bit count specified by T. +/// The bit count of T must be evenly divisible by 8. +/// This function cannot fail and cannot cause undefined behavior. +/// Assumes the endianness of memory is foreign, so it must byte-swap. +pub fn readIntForeign(comptime T: type, bytes: *const [@divExact(T.bit_count, 8)]u8) T { + return @byteSwap(T, readIntNative(T, bytes)); +} + +pub const readIntLittle = switch (builtin.endian) { + builtin.Endian.Little => readIntNative, + builtin.Endian.Big => readIntForeign, +}; + +pub const readIntBig = switch (builtin.endian) { + builtin.Endian.Little => readIntForeign, + builtin.Endian.Big => readIntNative, +}; + +/// Asserts that bytes.len >= T.bit_count / 8. Reads the integer starting from index 0 +/// and ignores extra bytes. +/// The bit count of T must be evenly divisible by 8. +/// Assumes the endianness of memory is native. This means the function can +/// simply pointer cast memory. +pub fn readIntSliceNative(comptime T: type, bytes: []const u8) T { + const n = @divExact(T.bit_count, 8); + assert(bytes.len >= n); + // TODO https://github.com/ziglang/zig/issues/863 + return readIntNative(T, @ptrCast(*const [n]u8, bytes.ptr)); +} + +/// Asserts that bytes.len >= T.bit_count / 8. Reads the integer starting from index 0 +/// and ignores extra bytes. +/// The bit count of T must be evenly divisible by 8. +/// Assumes the endianness of memory is foreign, so it must byte-swap. +pub fn readIntSliceForeign(comptime T: type, bytes: []const u8) T { + return @byteSwap(T, readIntSliceNative(T, bytes)); +} + +pub const readIntSliceLittle = switch (builtin.endian) { + builtin.Endian.Little => readIntSliceNative, + builtin.Endian.Big => readIntSliceForeign, +}; + +pub const readIntSliceBig = switch (builtin.endian) { + builtin.Endian.Little => readIntSliceForeign, + builtin.Endian.Big => readIntSliceNative, +}; + +/// Reads an integer from memory with bit count specified by T. +/// The bit count of T must be evenly divisible by 8. +/// This function cannot fail and cannot cause undefined behavior. +pub fn readInt(comptime T: type, bytes: *const [@divExact(T.bit_count, 8)]u8, endian: builtin.Endian) T { + if (endian == builtin.endian) { + return readIntNative(T, bytes); + } else { + return readIntForeign(T, bytes); + } +} + +/// Asserts that bytes.len >= T.bit_count / 8. Reads the integer starting from index 0 +/// and ignores extra bytes. +/// The bit count of T must be evenly divisible by 8. +pub fn readIntSlice(comptime T: type, bytes: []const u8, endian: builtin.Endian) T { + const n = @divExact(T.bit_count, 8); + assert(bytes.len >= n); + // TODO https://github.com/ziglang/zig/issues/863 + return readInt(T, @ptrCast(*const [n]u8, bytes.ptr), endian); +} + +test "comptime read/write int" { + comptime { + var bytes: [2]u8 = undefined; + writeIntLittle(u16, &bytes, 0x1234); + const result = readIntBig(u16, &bytes); + testing.expect(result == 0x3412); + } + comptime { + var bytes: [2]u8 = undefined; + writeIntBig(u16, &bytes, 0x1234); + const result = readIntLittle(u16, &bytes); + testing.expect(result == 0x3412); + } +} + +test "readIntBig and readIntLittle" { + testing.expect(readIntSliceBig(u0, [_]u8{}) == 0x0); + testing.expect(readIntSliceLittle(u0, [_]u8{}) == 0x0); + + testing.expect(readIntSliceBig(u8, [_]u8{0x32}) == 0x32); + testing.expect(readIntSliceLittle(u8, [_]u8{0x12}) == 0x12); + + testing.expect(readIntSliceBig(u16, [_]u8{ 0x12, 0x34 }) == 0x1234); + testing.expect(readIntSliceLittle(u16, [_]u8{ 0x12, 0x34 }) == 0x3412); + + testing.expect(readIntSliceBig(u72, [_]u8{ 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x24 }) == 0x123456789abcdef024); + testing.expect(readIntSliceLittle(u72, [_]u8{ 0xec, 0x10, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe }) == 0xfedcba9876543210ec); + + testing.expect(readIntSliceBig(i8, [_]u8{0xff}) == -1); + testing.expect(readIntSliceLittle(i8, [_]u8{0xfe}) == -2); + + testing.expect(readIntSliceBig(i16, [_]u8{ 0xff, 0xfd }) == -3); + testing.expect(readIntSliceLittle(i16, [_]u8{ 0xfc, 0xff }) == -4); +} + +/// Writes an integer to memory, storing it in twos-complement. +/// This function always succeeds, has defined behavior for all inputs, and +/// accepts any integer bit width. +/// This function stores in native endian, which means it is implemented as a simple +/// memory store. +pub fn writeIntNative(comptime T: type, buf: *[(T.bit_count + 7) / 8]u8, value: T) void { + @ptrCast(*align(1) T, buf).* = value; +} + +/// Writes an integer to memory, storing it in twos-complement. +/// This function always succeeds, has defined behavior for all inputs, but +/// the integer bit width must be divisible by 8. +/// This function stores in foreign endian, which means it does a @byteSwap first. +pub fn writeIntForeign(comptime T: type, buf: *[@divExact(T.bit_count, 8)]u8, value: T) void { + writeIntNative(T, buf, @byteSwap(T, value)); +} + +pub const writeIntLittle = switch (builtin.endian) { + builtin.Endian.Little => writeIntNative, + builtin.Endian.Big => writeIntForeign, +}; + +pub const writeIntBig = switch (builtin.endian) { + builtin.Endian.Little => writeIntForeign, + builtin.Endian.Big => writeIntNative, +}; + +/// Writes an integer to memory, storing it in twos-complement. +/// This function always succeeds, has defined behavior for all inputs, but +/// the integer bit width must be divisible by 8. +pub fn writeInt(comptime T: type, buffer: *[@divExact(T.bit_count, 8)]u8, value: T, endian: builtin.Endian) void { + if (endian == builtin.endian) { + return writeIntNative(T, buffer, value); + } else { + return writeIntForeign(T, buffer, value); + } +} + +/// Writes a twos-complement little-endian integer to memory. +/// Asserts that buf.len >= T.bit_count / 8. +/// The bit count of T must be divisible by 8. +/// Any extra bytes in buffer after writing the integer are set to zero. To +/// avoid the branch to check for extra buffer bytes, use writeIntLittle +/// instead. +pub fn writeIntSliceLittle(comptime T: type, buffer: []u8, value: T) void { + assert(buffer.len >= @divExact(T.bit_count, 8)); + + // TODO I want to call writeIntLittle here but comptime eval facilities aren't good enough + const uint = @IntType(false, T.bit_count); + var bits = @truncate(uint, value); + for (buffer) |*b| { + b.* = @truncate(u8, bits); + bits >>= 8; + } +} + +/// Writes a twos-complement big-endian integer to memory. +/// Asserts that buffer.len >= T.bit_count / 8. +/// The bit count of T must be divisible by 8. +/// Any extra bytes in buffer before writing the integer are set to zero. To +/// avoid the branch to check for extra buffer bytes, use writeIntBig instead. +pub fn writeIntSliceBig(comptime T: type, buffer: []u8, value: T) void { + assert(buffer.len >= @divExact(T.bit_count, 8)); + + // TODO I want to call writeIntBig here but comptime eval facilities aren't good enough + const uint = @IntType(false, T.bit_count); + var bits = @truncate(uint, value); + var index: usize = buffer.len; + while (index != 0) { + index -= 1; + buffer[index] = @truncate(u8, bits); + bits >>= 8; + } +} + +pub const writeIntSliceNative = switch (builtin.endian) { + builtin.Endian.Little => writeIntSliceLittle, + builtin.Endian.Big => writeIntSliceBig, +}; + +pub const writeIntSliceForeign = switch (builtin.endian) { + builtin.Endian.Little => writeIntSliceBig, + builtin.Endian.Big => writeIntSliceLittle, +}; + +/// Writes a twos-complement integer to memory, with the specified endianness. +/// Asserts that buf.len >= T.bit_count / 8. +/// The bit count of T must be evenly divisible by 8. +/// Any extra bytes in buffer not part of the integer are set to zero, with +/// respect to endianness. To avoid the branch to check for extra buffer bytes, +/// use writeInt instead. +pub fn writeIntSlice(comptime T: type, buffer: []u8, value: T, endian: builtin.Endian) void { + comptime assert(T.bit_count % 8 == 0); + switch (endian) { + builtin.Endian.Little => return writeIntSliceLittle(T, buffer, value), + builtin.Endian.Big => return writeIntSliceBig(T, buffer, value), + } +} + +test "writeIntBig and writeIntLittle" { + var buf0: [0]u8 = undefined; + var buf1: [1]u8 = undefined; + var buf2: [2]u8 = undefined; + var buf9: [9]u8 = undefined; + + writeIntBig(u0, &buf0, 0x0); + testing.expect(eql(u8, buf0[0..], [_]u8{})); + writeIntLittle(u0, &buf0, 0x0); + testing.expect(eql(u8, buf0[0..], [_]u8{})); + + writeIntBig(u8, &buf1, 0x12); + testing.expect(eql(u8, buf1[0..], [_]u8{0x12})); + writeIntLittle(u8, &buf1, 0x34); + testing.expect(eql(u8, buf1[0..], [_]u8{0x34})); + + writeIntBig(u16, &buf2, 0x1234); + testing.expect(eql(u8, buf2[0..], [_]u8{ 0x12, 0x34 })); + writeIntLittle(u16, &buf2, 0x5678); + testing.expect(eql(u8, buf2[0..], [_]u8{ 0x78, 0x56 })); + + writeIntBig(u72, &buf9, 0x123456789abcdef024); + testing.expect(eql(u8, buf9[0..], [_]u8{ 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x24 })); + writeIntLittle(u72, &buf9, 0xfedcba9876543210ec); + testing.expect(eql(u8, buf9[0..], [_]u8{ 0xec, 0x10, 0x32, 0x54, 0x76, 0x98, 0xba, 0xdc, 0xfe })); + + writeIntBig(i8, &buf1, -1); + testing.expect(eql(u8, buf1[0..], [_]u8{0xff})); + writeIntLittle(i8, &buf1, -2); + testing.expect(eql(u8, buf1[0..], [_]u8{0xfe})); + + writeIntBig(i16, &buf2, -3); + testing.expect(eql(u8, buf2[0..], [_]u8{ 0xff, 0xfd })); + writeIntLittle(i16, &buf2, -4); + testing.expect(eql(u8, buf2[0..], [_]u8{ 0xfc, 0xff })); +} + +/// Returns an iterator that iterates over the slices of `buffer` that are not +/// any of the bytes in `delimiter_bytes`. +/// tokenize(" abc def ghi ", " ") +/// Will return slices for "abc", "def", "ghi", null, in that order. +/// If `buffer` is empty, the iterator will return null. +/// If `delimiter_bytes` does not exist in buffer, +/// the iterator will return `buffer`, null, in that order. +/// See also the related function `separate`. +pub fn tokenize(buffer: []const u8, delimiter_bytes: []const u8) TokenIterator { + return TokenIterator{ + .index = 0, + .buffer = buffer, + .delimiter_bytes = delimiter_bytes, + }; +} + +test "mem.tokenize" { + var it = tokenize(" abc def ghi ", " "); + testing.expect(eql(u8, it.next().?, "abc")); + testing.expect(eql(u8, it.next().?, "def")); + testing.expect(eql(u8, it.next().?, "ghi")); + testing.expect(it.next() == null); + + it = tokenize("..\\bob", "\\"); + testing.expect(eql(u8, it.next().?, "..")); + testing.expect(eql(u8, "..", "..\\bob"[0..it.index])); + testing.expect(eql(u8, it.next().?, "bob")); + testing.expect(it.next() == null); + + it = tokenize("//a/b", "/"); + testing.expect(eql(u8, it.next().?, "a")); + testing.expect(eql(u8, it.next().?, "b")); + testing.expect(eql(u8, "//a/b", "//a/b"[0..it.index])); + testing.expect(it.next() == null); + + it = tokenize("|", "|"); + testing.expect(it.next() == null); + + it = tokenize("", "|"); + testing.expect(it.next() == null); + + it = tokenize("hello", ""); + testing.expect(eql(u8, it.next().?, "hello")); + testing.expect(it.next() == null); + + it = tokenize("hello", " "); + testing.expect(eql(u8, it.next().?, "hello")); + testing.expect(it.next() == null); +} + +test "mem.tokenize (multibyte)" { + var it = tokenize("a|b,c/d e", " /,|"); + testing.expect(eql(u8, it.next().?, "a")); + testing.expect(eql(u8, it.next().?, "b")); + testing.expect(eql(u8, it.next().?, "c")); + testing.expect(eql(u8, it.next().?, "d")); + testing.expect(eql(u8, it.next().?, "e")); + testing.expect(it.next() == null); +} + +/// Returns an iterator that iterates over the slices of `buffer` that +/// are separated by bytes in `delimiter`. +/// separate("abc|def||ghi", "|") +/// will return slices for "abc", "def", "", "ghi", null, in that order. +/// If `delimiter` does not exist in buffer, +/// the iterator will return `buffer`, null, in that order. +/// The delimiter length must not be zero. +/// See also the related function `tokenize`. +/// It is planned to rename this function to `split` before 1.0.0, like this: +/// pub fn split(buffer: []const u8, delimiter: []const u8) SplitIterator { +pub fn separate(buffer: []const u8, delimiter: []const u8) SplitIterator { + assert(delimiter.len != 0); + return SplitIterator{ + .index = 0, + .buffer = buffer, + .delimiter = delimiter, + }; +} + +test "mem.separate" { + var it = separate("abc|def||ghi", "|"); + testing.expect(eql(u8, it.next().?, "abc")); + testing.expect(eql(u8, it.next().?, "def")); + testing.expect(eql(u8, it.next().?, "")); + testing.expect(eql(u8, it.next().?, "ghi")); + testing.expect(it.next() == null); + + it = separate("", "|"); + testing.expect(eql(u8, it.next().?, "")); + testing.expect(it.next() == null); + + it = separate("|", "|"); + testing.expect(eql(u8, it.next().?, "")); + testing.expect(eql(u8, it.next().?, "")); + testing.expect(it.next() == null); + + it = separate("hello", " "); + testing.expect(eql(u8, it.next().?, "hello")); + testing.expect(it.next() == null); +} + +test "mem.separate (multibyte)" { + var it = separate("a, b ,, c, d, e", ", "); + testing.expect(eql(u8, it.next().?, "a")); + testing.expect(eql(u8, it.next().?, "b ,")); + testing.expect(eql(u8, it.next().?, "c")); + testing.expect(eql(u8, it.next().?, "d")); + testing.expect(eql(u8, it.next().?, "e")); + testing.expect(it.next() == null); +} + +pub fn startsWith(comptime T: type, haystack: []const T, needle: []const T) bool { + return if (needle.len > haystack.len) false else eql(T, haystack[0..needle.len], needle); +} + +test "mem.startsWith" { + testing.expect(startsWith(u8, "Bob", "Bo")); + testing.expect(!startsWith(u8, "Needle in haystack", "haystack")); +} + +pub fn endsWith(comptime T: type, haystack: []const T, needle: []const T) bool { + return if (needle.len > haystack.len) false else eql(T, haystack[haystack.len - needle.len ..], needle); +} + +test "mem.endsWith" { + testing.expect(endsWith(u8, "Needle in haystack", "haystack")); + testing.expect(!endsWith(u8, "Bob", "Bo")); +} + +pub const TokenIterator = struct { + buffer: []const u8, + delimiter_bytes: []const u8, + index: usize, + + /// Returns a slice of the next token, or null if tokenization is complete. + pub fn next(self: *TokenIterator) ?[]const u8 { + // move to beginning of token + while (self.index < self.buffer.len and self.isSplitByte(self.buffer[self.index])) : (self.index += 1) {} + const start = self.index; + if (start == self.buffer.len) { + return null; + } + + // move to end of token + while (self.index < self.buffer.len and !self.isSplitByte(self.buffer[self.index])) : (self.index += 1) {} + const end = self.index; + + return self.buffer[start..end]; + } + + /// Returns a slice of the remaining bytes. Does not affect iterator state. + pub fn rest(self: TokenIterator) []const u8 { + // move to beginning of token + var index: usize = self.index; + while (index < self.buffer.len and self.isSplitByte(self.buffer[index])) : (index += 1) {} + return self.buffer[index..]; + } + + fn isSplitByte(self: TokenIterator, byte: u8) bool { + for (self.delimiter_bytes) |delimiter_byte| { + if (byte == delimiter_byte) { + return true; + } + } + return false; + } +}; + +pub const SplitIterator = struct { + buffer: []const u8, + index: ?usize, + delimiter: []const u8, + + /// Returns a slice of the next field, or null if splitting is complete. + pub fn next(self: *SplitIterator) ?[]const u8 { + const start = self.index orelse return null; + const end = if (indexOfPos(u8, self.buffer, start, self.delimiter)) |delim_start| blk: { + self.index = delim_start + self.delimiter.len; + break :blk delim_start; + } else blk: { + self.index = null; + break :blk self.buffer.len; + }; + return self.buffer[start..end]; + } + + /// Returns a slice of the remaining bytes. Does not affect iterator state. + pub fn rest(self: SplitIterator) []const u8 { + const end = self.buffer.len; + const start = self.index orelse end; + return self.buffer[start..end]; + } +}; + +/// Naively combines a series of slices with a separator. +/// Allocates memory for the result, which must be freed by the caller. +pub fn join(allocator: *Allocator, separator: []const u8, slices: []const []const u8) ![]u8 { + if (slices.len == 0) return (([*]u8)(undefined))[0..0]; + + const total_len = blk: { + var sum: usize = separator.len * (slices.len - 1); + for (slices) |slice| + sum += slice.len; + break :blk sum; + }; + + const buf = try allocator.alloc(u8, total_len); + errdefer allocator.free(buf); + + copy(u8, buf, slices[0]); + var buf_index: usize = slices[0].len; + for (slices[1..]) |slice| { + copy(u8, buf[buf_index..], separator); + buf_index += separator.len; + copy(u8, buf[buf_index..], slice); + buf_index += slice.len; + } + + // No need for shrink since buf is exactly the correct size. + return buf; +} + +test "mem.join" { + var buf: [1024]u8 = undefined; + const a = &std.heap.FixedBufferAllocator.init(&buf).allocator; + testing.expect(eql(u8, try join(a, ",", [_][]const u8{ "a", "b", "c" }), "a,b,c")); + testing.expect(eql(u8, try join(a, ",", [_][]const u8{"a"}), "a")); + testing.expect(eql(u8, try join(a, ",", [_][]const u8{ "a", "", "b", "", "c" }), "a,,b,,c")); +} + +/// Copies each T from slices into a new slice that exactly holds all the elements. +pub fn concat(allocator: *Allocator, comptime T: type, slices: []const []const T) ![]T { + if (slices.len == 0) return (([*]T)(undefined))[0..0]; + + const total_len = blk: { + var sum: usize = 0; + for (slices) |slice| { + sum += slice.len; + } + break :blk sum; + }; + + const buf = try allocator.alloc(T, total_len); + errdefer allocator.free(buf); + + var buf_index: usize = 0; + for (slices) |slice| { + copy(T, buf[buf_index..], slice); + buf_index += slice.len; + } + + // No need for shrink since buf is exactly the correct size. + return buf; +} + +test "concat" { + var buf: [1024]u8 = undefined; + const a = &std.heap.FixedBufferAllocator.init(&buf).allocator; + testing.expect(eql(u8, try concat(a, u8, [_][]const u8{ "abc", "def", "ghi" }), "abcdefghi")); + testing.expect(eql(u32, try concat(a, u32, [_][]const u32{ + [_]u32{ 0, 1 }, + [_]u32{ 2, 3, 4 }, + [_]u32{}, + [_]u32{5}, + }), [_]u32{ 0, 1, 2, 3, 4, 5 })); +} + +test "testStringEquality" { + testing.expect(eql(u8, "abcd", "abcd")); + testing.expect(!eql(u8, "abcdef", "abZdef")); + testing.expect(!eql(u8, "abcdefg", "abcdef")); +} + +test "testReadInt" { + testReadIntImpl(); + comptime testReadIntImpl(); +} +fn testReadIntImpl() void { + { + const bytes = [_]u8{ + 0x12, + 0x34, + 0x56, + 0x78, + }; + testing.expect(readInt(u32, &bytes, builtin.Endian.Big) == 0x12345678); + testing.expect(readIntBig(u32, &bytes) == 0x12345678); + testing.expect(readIntBig(i32, &bytes) == 0x12345678); + testing.expect(readInt(u32, &bytes, builtin.Endian.Little) == 0x78563412); + testing.expect(readIntLittle(u32, &bytes) == 0x78563412); + testing.expect(readIntLittle(i32, &bytes) == 0x78563412); + } + { + const buf = [_]u8{ + 0x00, + 0x00, + 0x12, + 0x34, + }; + const answer = readInt(u32, &buf, builtin.Endian.Big); + testing.expect(answer == 0x00001234); + } + { + const buf = [_]u8{ + 0x12, + 0x34, + 0x00, + 0x00, + }; + const answer = readInt(u32, &buf, builtin.Endian.Little); + testing.expect(answer == 0x00003412); + } + { + const bytes = [_]u8{ + 0xff, + 0xfe, + }; + testing.expect(readIntBig(u16, &bytes) == 0xfffe); + testing.expect(readIntBig(i16, &bytes) == -0x0002); + testing.expect(readIntLittle(u16, &bytes) == 0xfeff); + testing.expect(readIntLittle(i16, &bytes) == -0x0101); + } +} + +test "writeIntSlice" { + testWriteIntImpl(); + comptime testWriteIntImpl(); +} +fn testWriteIntImpl() void { + var bytes: [8]u8 = undefined; + + writeIntSlice(u0, bytes[0..], 0, builtin.Endian.Big); + testing.expect(eql(u8, bytes, [_]u8{ + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + })); + + writeIntSlice(u0, bytes[0..], 0, builtin.Endian.Little); + testing.expect(eql(u8, bytes, [_]u8{ + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + })); + + writeIntSlice(u64, bytes[0..], 0x12345678CAFEBABE, builtin.Endian.Big); + testing.expect(eql(u8, bytes, [_]u8{ + 0x12, + 0x34, + 0x56, + 0x78, + 0xCA, + 0xFE, + 0xBA, + 0xBE, + })); + + writeIntSlice(u64, bytes[0..], 0xBEBAFECA78563412, builtin.Endian.Little); + testing.expect(eql(u8, bytes, [_]u8{ + 0x12, + 0x34, + 0x56, + 0x78, + 0xCA, + 0xFE, + 0xBA, + 0xBE, + })); + + writeIntSlice(u32, bytes[0..], 0x12345678, builtin.Endian.Big); + testing.expect(eql(u8, bytes, [_]u8{ + 0x00, + 0x00, + 0x00, + 0x00, + 0x12, + 0x34, + 0x56, + 0x78, + })); + + writeIntSlice(u32, bytes[0..], 0x78563412, builtin.Endian.Little); + testing.expect(eql(u8, bytes, [_]u8{ + 0x12, + 0x34, + 0x56, + 0x78, + 0x00, + 0x00, + 0x00, + 0x00, + })); + + writeIntSlice(u16, bytes[0..], 0x1234, builtin.Endian.Big); + testing.expect(eql(u8, bytes, [_]u8{ + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x12, + 0x34, + })); + + writeIntSlice(u16, bytes[0..], 0x1234, builtin.Endian.Little); + testing.expect(eql(u8, bytes, [_]u8{ + 0x34, + 0x12, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + })); +} + +pub fn min(comptime T: type, slice: []const T) T { + var best = slice[0]; + for (slice[1..]) |item| { + best = math.min(best, item); + } + return best; +} + +test "mem.min" { + testing.expect(min(u8, "abcdefg") == 'a'); +} + +pub fn max(comptime T: type, slice: []const T) T { + var best = slice[0]; + for (slice[1..]) |item| { + best = math.max(best, item); + } + return best; +} + +test "mem.max" { + testing.expect(max(u8, "abcdefg") == 'g'); +} + +pub fn swap(comptime T: type, a: *T, b: *T) void { + const tmp = a.*; + a.* = b.*; + b.* = tmp; +} + +/// In-place order reversal of a slice +pub fn reverse(comptime T: type, items: []T) void { + var i: usize = 0; + const end = items.len / 2; + while (i < end) : (i += 1) { + swap(T, &items[i], &items[items.len - i - 1]); + } +} + +test "reverse" { + var arr = [_]i32{ + 5, + 3, + 1, + 2, + 4, + }; + reverse(i32, arr[0..]); + + testing.expect(eql(i32, arr, [_]i32{ + 4, + 2, + 1, + 3, + 5, + })); +} + +/// In-place rotation of the values in an array ([0 1 2 3] becomes [1 2 3 0] if we rotate by 1) +/// Assumes 0 <= amount <= items.len +pub fn rotate(comptime T: type, items: []T, amount: usize) void { + reverse(T, items[0..amount]); + reverse(T, items[amount..]); + reverse(T, items); +} + +test "rotate" { + var arr = [_]i32{ + 5, + 3, + 1, + 2, + 4, + }; + rotate(i32, arr[0..], 2); + + testing.expect(eql(i32, arr, [_]i32{ + 1, + 2, + 4, + 5, + 3, + })); +} + +/// Converts a little-endian integer to host endianness. +pub fn littleToNative(comptime T: type, x: T) T { + return switch (builtin.endian) { + builtin.Endian.Little => x, + builtin.Endian.Big => @byteSwap(T, x), + }; +} + +/// Converts a big-endian integer to host endianness. +pub fn bigToNative(comptime T: type, x: T) T { + return switch (builtin.endian) { + builtin.Endian.Little => @byteSwap(T, x), + builtin.Endian.Big => x, + }; +} + +/// Converts an integer from specified endianness to host endianness. +pub fn toNative(comptime T: type, x: T, endianness_of_x: builtin.Endian) T { + return switch (endianness_of_x) { + builtin.Endian.Little => littleToNative(T, x), + builtin.Endian.Big => bigToNative(T, x), + }; +} + +/// Converts an integer which has host endianness to the desired endianness. +pub fn nativeTo(comptime T: type, x: T, desired_endianness: builtin.Endian) T { + return switch (desired_endianness) { + builtin.Endian.Little => nativeToLittle(T, x), + builtin.Endian.Big => nativeToBig(T, x), + }; +} + +/// Converts an integer which has host endianness to little endian. +pub fn nativeToLittle(comptime T: type, x: T) T { + return switch (builtin.endian) { + builtin.Endian.Little => x, + builtin.Endian.Big => @byteSwap(T, x), + }; +} + +/// Converts an integer which has host endianness to big endian. +pub fn nativeToBig(comptime T: type, x: T) T { + return switch (builtin.endian) { + builtin.Endian.Little => @byteSwap(T, x), + builtin.Endian.Big => x, + }; +} + +fn AsBytesReturnType(comptime P: type) type { + if (comptime !trait.isSingleItemPtr(P)) + @compileError("expected single item " ++ "pointer, passed " ++ @typeName(P)); + + const size = usize(@sizeOf(meta.Child(P))); + const alignment = comptime meta.alignment(P); + + if (comptime trait.isConstPtr(P)) + return *align(alignment) const [size]u8; + return *align(alignment) [size]u8; +} + +///Given a pointer to a single item, returns a slice of the underlying bytes, preserving constness. +pub fn asBytes(ptr: var) AsBytesReturnType(@typeOf(ptr)) { + const P = @typeOf(ptr); + return @ptrCast(AsBytesReturnType(P), ptr); +} + +test "asBytes" { + const deadbeef = u32(0xDEADBEEF); + const deadbeef_bytes = switch (builtin.endian) { + builtin.Endian.Big => "\xDE\xAD\xBE\xEF", + builtin.Endian.Little => "\xEF\xBE\xAD\xDE", + }; + + testing.expect(eql(u8, asBytes(&deadbeef), deadbeef_bytes)); + + var codeface = u32(0xC0DEFACE); + for (asBytes(&codeface).*) |*b| + b.* = 0; + testing.expect(codeface == 0); + + const S = packed struct { + a: u8, + b: u8, + c: u8, + d: u8, + }; + + const inst = S{ + .a = 0xBE, + .b = 0xEF, + .c = 0xDE, + .d = 0xA1, + }; + testing.expect(eql(u8, asBytes(&inst), "\xBE\xEF\xDE\xA1")); +} + +///Given any value, returns a copy of its bytes in an array. +pub fn toBytes(value: var) [@sizeOf(@typeOf(value))]u8 { + return asBytes(&value).*; +} + +test "toBytes" { + var my_bytes = toBytes(u32(0x12345678)); + switch (builtin.endian) { + builtin.Endian.Big => testing.expect(eql(u8, my_bytes, "\x12\x34\x56\x78")), + builtin.Endian.Little => testing.expect(eql(u8, my_bytes, "\x78\x56\x34\x12")), + } + + my_bytes[0] = '\x99'; + switch (builtin.endian) { + builtin.Endian.Big => testing.expect(eql(u8, my_bytes, "\x99\x34\x56\x78")), + builtin.Endian.Little => testing.expect(eql(u8, my_bytes, "\x99\x56\x34\x12")), + } +} + +fn BytesAsValueReturnType(comptime T: type, comptime B: type) type { + const size = usize(@sizeOf(T)); + + if (comptime !trait.is(builtin.TypeId.Pointer)(B) or meta.Child(B) != [size]u8) { + @compileError("expected *[N]u8 " ++ ", passed " ++ @typeName(B)); + } + + const alignment = comptime meta.alignment(B); + + return if (comptime trait.isConstPtr(B)) *align(alignment) const T else *align(alignment) T; +} + +///Given a pointer to an array of bytes, returns a pointer to a value of the specified type +/// backed by those bytes, preserving constness. +pub fn bytesAsValue(comptime T: type, bytes: var) BytesAsValueReturnType(T, @typeOf(bytes)) { + return @ptrCast(BytesAsValueReturnType(T, @typeOf(bytes)), bytes); +} + +test "bytesAsValue" { + const deadbeef = u32(0xDEADBEEF); + const deadbeef_bytes = switch (builtin.endian) { + builtin.Endian.Big => "\xDE\xAD\xBE\xEF", + builtin.Endian.Little => "\xEF\xBE\xAD\xDE", + }; + + testing.expect(deadbeef == bytesAsValue(u32, &deadbeef_bytes).*); + + var codeface_bytes = switch (builtin.endian) { + builtin.Endian.Big => "\xC0\xDE\xFA\xCE", + builtin.Endian.Little => "\xCE\xFA\xDE\xC0", + }; + var codeface = bytesAsValue(u32, &codeface_bytes); + testing.expect(codeface.* == 0xC0DEFACE); + codeface.* = 0; + for (codeface_bytes) |b| + testing.expect(b == 0); + + const S = packed struct { + a: u8, + b: u8, + c: u8, + d: u8, + }; + + const inst = S{ + .a = 0xBE, + .b = 0xEF, + .c = 0xDE, + .d = 0xA1, + }; + const inst_bytes = "\xBE\xEF\xDE\xA1"; + const inst2 = bytesAsValue(S, &inst_bytes); + testing.expect(meta.eql(inst, inst2.*)); +} + +///Given a pointer to an array of bytes, returns a value of the specified type backed by a +/// copy of those bytes. +pub fn bytesToValue(comptime T: type, bytes: var) T { + return bytesAsValue(T, &bytes).*; +} +test "bytesToValue" { + const deadbeef_bytes = switch (builtin.endian) { + builtin.Endian.Big => "\xDE\xAD\xBE\xEF", + builtin.Endian.Little => "\xEF\xBE\xAD\xDE", + }; + + const deadbeef = bytesToValue(u32, deadbeef_bytes); + testing.expect(deadbeef == u32(0xDEADBEEF)); +} + +fn SubArrayPtrReturnType(comptime T: type, comptime length: usize) type { + if (trait.isConstPtr(T)) + return *const [length]meta.Child(meta.Child(T)); + return *[length]meta.Child(meta.Child(T)); +} + +///Given a pointer to an array, returns a pointer to a portion of that array, preserving constness. +pub fn subArrayPtr(ptr: var, comptime start: usize, comptime length: usize) SubArrayPtrReturnType(@typeOf(ptr), length) { + assert(start + length <= ptr.*.len); + + const ReturnType = SubArrayPtrReturnType(@typeOf(ptr), length); + const T = meta.Child(meta.Child(@typeOf(ptr))); + return @ptrCast(ReturnType, &ptr[start]); +} + +test "subArrayPtr" { + const a1 = "abcdef"; + const sub1 = subArrayPtr(&a1, 2, 3); + testing.expect(eql(u8, sub1.*, "cde")); + + var a2 = "abcdef"; + var sub2 = subArrayPtr(&a2, 2, 3); + + testing.expect(eql(u8, sub2, "cde")); + sub2[1] = 'X'; + testing.expect(eql(u8, a2, "abcXef")); +} + +/// Round an address up to the nearest aligned address +/// The alignment must be a power of 2 and greater than 0. +pub fn alignForward(addr: usize, alignment: usize) usize { + return alignBackward(addr + (alignment - 1), alignment); +} + +test "alignForward" { + testing.expect(alignForward(1, 1) == 1); + testing.expect(alignForward(2, 1) == 2); + testing.expect(alignForward(1, 2) == 2); + testing.expect(alignForward(2, 2) == 2); + testing.expect(alignForward(3, 2) == 4); + testing.expect(alignForward(4, 2) == 4); + testing.expect(alignForward(7, 8) == 8); + testing.expect(alignForward(8, 8) == 8); + testing.expect(alignForward(9, 8) == 16); + testing.expect(alignForward(15, 8) == 16); + testing.expect(alignForward(16, 8) == 16); + testing.expect(alignForward(17, 8) == 24); +} + +/// Round an address up to the previous aligned address +/// The alignment must be a power of 2 and greater than 0. +pub fn alignBackward(addr: usize, alignment: usize) usize { + assert(@popCount(usize, alignment) == 1); + // 000010000 // example addr + // 000001111 // subtract 1 + // 111110000 // binary not + return addr & ~(alignment - 1); +} + +/// Given an address and an alignment, return true if the address is a multiple of the alignment +/// The alignment must be a power of 2 and greater than 0. +pub fn isAligned(addr: usize, alignment: usize) bool { + return alignBackward(addr, alignment) == addr; +} + +test "isAligned" { + testing.expect(isAligned(0, 4)); + testing.expect(isAligned(1, 1)); + testing.expect(isAligned(2, 1)); + testing.expect(isAligned(2, 2)); + testing.expect(!isAligned(2, 4)); + testing.expect(isAligned(3, 1)); + testing.expect(!isAligned(3, 2)); + testing.expect(!isAligned(3, 4)); + testing.expect(isAligned(4, 4)); + testing.expect(isAligned(4, 2)); + testing.expect(isAligned(4, 1)); + testing.expect(!isAligned(4, 8)); + testing.expect(!isAligned(4, 16)); +} diff --git a/lib/std/meta.zig b/lib/std/meta.zig new file mode 100644 index 0000000000..52d8b54ecc --- /dev/null +++ b/lib/std/meta.zig @@ -0,0 +1,544 @@ +const std = @import("std.zig"); +const builtin = @import("builtin"); +const debug = std.debug; +const mem = std.mem; +const math = std.math; +const testing = std.testing; + +pub const trait = @import("meta/trait.zig"); + +const TypeId = builtin.TypeId; +const TypeInfo = builtin.TypeInfo; + +pub fn tagName(v: var) []const u8 { + const T = @typeOf(v); + switch (@typeInfo(T)) { + TypeId.ErrorSet => return @errorName(v), + else => return @tagName(v), + } +} + +test "std.meta.tagName" { + const E1 = enum { + A, + B, + }; + const E2 = enum(u8) { + C = 33, + D, + }; + const U1 = union(enum) { + G: u8, + H: u16, + }; + const U2 = union(E2) { + C: u8, + D: u16, + }; + + var u1g = U1{ .G = 0 }; + var u1h = U1{ .H = 0 }; + var u2a = U2{ .C = 0 }; + var u2b = U2{ .D = 0 }; + + testing.expect(mem.eql(u8, tagName(E1.A), "A")); + testing.expect(mem.eql(u8, tagName(E1.B), "B")); + testing.expect(mem.eql(u8, tagName(E2.C), "C")); + testing.expect(mem.eql(u8, tagName(E2.D), "D")); + testing.expect(mem.eql(u8, tagName(error.E), "E")); + testing.expect(mem.eql(u8, tagName(error.F), "F")); + testing.expect(mem.eql(u8, tagName(u1g), "G")); + testing.expect(mem.eql(u8, tagName(u1h), "H")); + testing.expect(mem.eql(u8, tagName(u2a), "C")); + testing.expect(mem.eql(u8, tagName(u2b), "D")); +} + +pub fn stringToEnum(comptime T: type, str: []const u8) ?T { + inline for (@typeInfo(T).Enum.fields) |enumField| { + if (std.mem.eql(u8, str, enumField.name)) { + return @field(T, enumField.name); + } + } + return null; +} + +test "std.meta.stringToEnum" { + const E1 = enum { + A, + B, + }; + testing.expect(E1.A == stringToEnum(E1, "A").?); + testing.expect(E1.B == stringToEnum(E1, "B").?); + testing.expect(null == stringToEnum(E1, "C")); +} + +pub fn bitCount(comptime T: type) comptime_int { + return switch (@typeInfo(T)) { + TypeId.Bool => 1, + TypeId.Int => |info| info.bits, + TypeId.Float => |info| info.bits, + else => @compileError("Expected bool, int or float type, found '" ++ @typeName(T) ++ "'"), + }; +} + +test "std.meta.bitCount" { + testing.expect(bitCount(u8) == 8); + testing.expect(bitCount(f32) == 32); +} + +pub fn alignment(comptime T: type) comptime_int { + //@alignOf works on non-pointer types + const P = if (comptime trait.is(TypeId.Pointer)(T)) T else *T; + return @typeInfo(P).Pointer.alignment; +} + +test "std.meta.alignment" { + testing.expect(alignment(u8) == 1); + testing.expect(alignment(*align(1) u8) == 1); + testing.expect(alignment(*align(2) u8) == 2); + testing.expect(alignment([]align(1) u8) == 1); + testing.expect(alignment([]align(2) u8) == 2); +} + +pub fn Child(comptime T: type) type { + return switch (@typeInfo(T)) { + TypeId.Array => |info| info.child, + TypeId.Pointer => |info| info.child, + TypeId.Optional => |info| info.child, + else => @compileError("Expected pointer, optional, or array type, " ++ "found '" ++ @typeName(T) ++ "'"), + }; +} + +test "std.meta.Child" { + testing.expect(Child([1]u8) == u8); + testing.expect(Child(*u8) == u8); + testing.expect(Child([]u8) == u8); + testing.expect(Child(?u8) == u8); +} + +pub fn containerLayout(comptime T: type) TypeInfo.ContainerLayout { + return switch (@typeInfo(T)) { + TypeId.Struct => |info| info.layout, + TypeId.Enum => |info| info.layout, + TypeId.Union => |info| info.layout, + else => @compileError("Expected struct, enum or union type, found '" ++ @typeName(T) ++ "'"), + }; +} + +test "std.meta.containerLayout" { + const E1 = enum { + A, + }; + const E2 = packed enum { + A, + }; + const E3 = extern enum { + A, + }; + const S1 = struct {}; + const S2 = packed struct {}; + const S3 = extern struct {}; + const U1 = union { + a: u8, + }; + const U2 = packed union { + a: u8, + }; + const U3 = extern union { + a: u8, + }; + + testing.expect(containerLayout(E1) == TypeInfo.ContainerLayout.Auto); + testing.expect(containerLayout(E2) == TypeInfo.ContainerLayout.Packed); + testing.expect(containerLayout(E3) == TypeInfo.ContainerLayout.Extern); + testing.expect(containerLayout(S1) == TypeInfo.ContainerLayout.Auto); + testing.expect(containerLayout(S2) == TypeInfo.ContainerLayout.Packed); + testing.expect(containerLayout(S3) == TypeInfo.ContainerLayout.Extern); + testing.expect(containerLayout(U1) == TypeInfo.ContainerLayout.Auto); + testing.expect(containerLayout(U2) == TypeInfo.ContainerLayout.Packed); + testing.expect(containerLayout(U3) == TypeInfo.ContainerLayout.Extern); +} + +pub fn declarations(comptime T: type) []TypeInfo.Declaration { + return switch (@typeInfo(T)) { + TypeId.Struct => |info| info.decls, + TypeId.Enum => |info| info.decls, + TypeId.Union => |info| info.decls, + else => @compileError("Expected struct, enum or union type, found '" ++ @typeName(T) ++ "'"), + }; +} + +test "std.meta.declarations" { + const E1 = enum { + A, + + fn a() void {} + }; + const S1 = struct { + fn a() void {} + }; + const U1 = union { + a: u8, + + fn a() void {} + }; + + const decls = comptime [_][]TypeInfo.Declaration{ + declarations(E1), + declarations(S1), + declarations(U1), + }; + + inline for (decls) |decl| { + testing.expect(decl.len == 1); + testing.expect(comptime mem.eql(u8, decl[0].name, "a")); + } +} + +pub fn declarationInfo(comptime T: type, comptime decl_name: []const u8) TypeInfo.Declaration { + inline for (comptime declarations(T)) |decl| { + if (comptime mem.eql(u8, decl.name, decl_name)) + return decl; + } + + @compileError("'" ++ @typeName(T) ++ "' has no declaration '" ++ decl_name ++ "'"); +} + +test "std.meta.declarationInfo" { + const E1 = enum { + A, + + fn a() void {} + }; + const S1 = struct { + fn a() void {} + }; + const U1 = union { + a: u8, + + fn a() void {} + }; + + const infos = comptime [_]TypeInfo.Declaration{ + declarationInfo(E1, "a"), + declarationInfo(S1, "a"), + declarationInfo(U1, "a"), + }; + + inline for (infos) |info| { + testing.expect(comptime mem.eql(u8, info.name, "a")); + testing.expect(!info.is_pub); + } +} + +pub fn fields(comptime T: type) switch (@typeInfo(T)) { + TypeId.Struct => []TypeInfo.StructField, + TypeId.Union => []TypeInfo.UnionField, + TypeId.ErrorSet => []TypeInfo.Error, + TypeId.Enum => []TypeInfo.EnumField, + else => @compileError("Expected struct, union, error set or enum type, found '" ++ @typeName(T) ++ "'"), +} { + return switch (@typeInfo(T)) { + TypeId.Struct => |info| info.fields, + TypeId.Union => |info| info.fields, + TypeId.Enum => |info| info.fields, + TypeId.ErrorSet => |errors| errors.?, // must be non global error set + else => @compileError("Expected struct, union, error set or enum type, found '" ++ @typeName(T) ++ "'"), + }; +} + +test "std.meta.fields" { + const E1 = enum { + A, + }; + const E2 = error{A}; + const S1 = struct { + a: u8, + }; + const U1 = union { + a: u8, + }; + + const e1f = comptime fields(E1); + const e2f = comptime fields(E2); + const sf = comptime fields(S1); + const uf = comptime fields(U1); + + testing.expect(e1f.len == 1); + testing.expect(e2f.len == 1); + testing.expect(sf.len == 1); + testing.expect(uf.len == 1); + testing.expect(mem.eql(u8, e1f[0].name, "A")); + testing.expect(mem.eql(u8, e2f[0].name, "A")); + testing.expect(mem.eql(u8, sf[0].name, "a")); + testing.expect(mem.eql(u8, uf[0].name, "a")); + testing.expect(comptime sf[0].field_type == u8); + testing.expect(comptime uf[0].field_type == u8); +} + +pub fn fieldInfo(comptime T: type, comptime field_name: []const u8) switch (@typeInfo(T)) { + TypeId.Struct => TypeInfo.StructField, + TypeId.Union => TypeInfo.UnionField, + TypeId.ErrorSet => TypeInfo.Error, + TypeId.Enum => TypeInfo.EnumField, + else => @compileError("Expected struct, union, error set or enum type, found '" ++ @typeName(T) ++ "'"), +} { + inline for (comptime fields(T)) |field| { + if (comptime mem.eql(u8, field.name, field_name)) + return field; + } + + @compileError("'" ++ @typeName(T) ++ "' has no field '" ++ field_name ++ "'"); +} + +test "std.meta.fieldInfo" { + const E1 = enum { + A, + }; + const E2 = error{A}; + const S1 = struct { + a: u8, + }; + const U1 = union { + a: u8, + }; + + const e1f = comptime fieldInfo(E1, "A"); + const e2f = comptime fieldInfo(E2, "A"); + const sf = comptime fieldInfo(S1, "a"); + const uf = comptime fieldInfo(U1, "a"); + + testing.expect(mem.eql(u8, e1f.name, "A")); + testing.expect(mem.eql(u8, e2f.name, "A")); + testing.expect(mem.eql(u8, sf.name, "a")); + testing.expect(mem.eql(u8, uf.name, "a")); + testing.expect(comptime sf.field_type == u8); + testing.expect(comptime uf.field_type == u8); +} + +pub fn TagType(comptime T: type) type { + return switch (@typeInfo(T)) { + TypeId.Enum => |info| info.tag_type, + TypeId.Union => |info| if (info.tag_type) |Tag| Tag else null, + else => @compileError("expected enum or union type, found '" ++ @typeName(T) ++ "'"), + }; +} + +test "std.meta.TagType" { + const E = enum(u8) { + C = 33, + D, + }; + const U = union(E) { + C: u8, + D: u16, + }; + + testing.expect(TagType(E) == u8); + testing.expect(TagType(U) == E); +} + +///Returns the active tag of a tagged union +pub fn activeTag(u: var) @TagType(@typeOf(u)) { + const T = @typeOf(u); + return @TagType(T)(u); +} + +test "std.meta.activeTag" { + const UE = enum { + Int, + Float, + }; + + const U = union(UE) { + Int: u32, + Float: f32, + }; + + var u = U{ .Int = 32 }; + testing.expect(activeTag(u) == UE.Int); + + u = U{ .Float = 112.9876 }; + testing.expect(activeTag(u) == UE.Float); +} + +///Given a tagged union type, and an enum, return the type of the union +/// field corresponding to the enum tag. +pub fn TagPayloadType(comptime U: type, tag: var) type { + const Tag = @typeOf(tag); + testing.expect(trait.is(builtin.TypeId.Union)(U)); + testing.expect(trait.is(builtin.TypeId.Enum)(Tag)); + + const info = @typeInfo(U).Union; + + inline for (info.fields) |field_info| { + if (field_info.enum_field.?.value == @enumToInt(tag)) return field_info.field_type; + } + unreachable; +} + +test "std.meta.TagPayloadType" { + const Event = union(enum) { + Moved: struct { + from: i32, + to: i32, + }, + }; + const MovedEvent = TagPayloadType(Event, Event.Moved); + var e: Event = undefined; + testing.expect(MovedEvent == @typeOf(e.Moved)); +} + +///Compares two of any type for equality. Containers are compared on a field-by-field basis, +/// where possible. Pointers are not followed. +pub fn eql(a: var, b: @typeOf(a)) bool { + const T = @typeOf(a); + + switch (@typeId(T)) { + builtin.TypeId.Struct => { + const info = @typeInfo(T).Struct; + + inline for (info.fields) |field_info| { + if (!eql(@field(a, field_info.name), @field(b, field_info.name))) return false; + } + return true; + }, + builtin.TypeId.ErrorUnion => { + if (a) |a_p| { + if (b) |b_p| return eql(a_p, b_p) else |_| return false; + } else |a_e| { + if (b) |_| return false else |b_e| return a_e == b_e; + } + }, + builtin.TypeId.Union => { + const info = @typeInfo(T).Union; + + if (info.tag_type) |_| { + const tag_a = activeTag(a); + const tag_b = activeTag(b); + if (tag_a != tag_b) return false; + + inline for (info.fields) |field_info| { + const enum_field = field_info.enum_field.?; + if (enum_field.value == @enumToInt(tag_a)) { + return eql(@field(a, enum_field.name), @field(b, enum_field.name)); + } + } + return false; + } + + @compileError("cannot compare untagged union type " ++ @typeName(T)); + }, + builtin.TypeId.Array => { + if (a.len != b.len) return false; + for (a) |e, i| + if (!eql(e, b[i])) return false; + return true; + }, + builtin.TypeId.Pointer => { + const info = @typeInfo(T).Pointer; + switch (info.size) { + builtin.TypeInfo.Pointer.Size.One, + builtin.TypeInfo.Pointer.Size.Many, + builtin.TypeInfo.Pointer.Size.C, + => return a == b, + builtin.TypeInfo.Pointer.Size.Slice => return a.ptr == b.ptr and a.len == b.len, + } + }, + builtin.TypeId.Optional => { + if (a == null and b == null) return true; + if (a == null or b == null) return false; + return eql(a.?, b.?); + }, + else => return a == b, + } +} + +test "std.meta.eql" { + const S = struct { + a: u32, + b: f64, + c: [5]u8, + }; + + const U = union(enum) { + s: S, + f: ?f32, + }; + + const s_1 = S{ + .a = 134, + .b = 123.3, + .c = "12345", + }; + + const s_2 = S{ + .a = 1, + .b = 123.3, + .c = "54321", + }; + + const s_3 = S{ + .a = 134, + .b = 123.3, + .c = "12345", + }; + + const u_1 = U{ .f = 24 }; + const u_2 = U{ .s = s_1 }; + const u_3 = U{ .f = 24 }; + + testing.expect(eql(s_1, s_3)); + testing.expect(eql(&s_1, &s_1)); + testing.expect(!eql(&s_1, &s_3)); + testing.expect(eql(u_1, u_3)); + testing.expect(!eql(u_1, u_2)); + + var a1 = "abcdef"; + var a2 = "abcdef"; + var a3 = "ghijkl"; + + testing.expect(eql(a1, a2)); + testing.expect(!eql(a1, a3)); + testing.expect(!eql(a1[0..], a2[0..])); + + const EU = struct { + fn tst(err: bool) !u8 { + if (err) return error.Error; + return u8(5); + } + }; + + testing.expect(eql(EU.tst(true), EU.tst(true))); + testing.expect(eql(EU.tst(false), EU.tst(false))); + testing.expect(!eql(EU.tst(false), EU.tst(true))); +} + +test "intToEnum with error return" { + const E1 = enum { + A, + }; + const E2 = enum { + A, + B, + }; + + var zero: u8 = 0; + var one: u16 = 1; + testing.expect(intToEnum(E1, zero) catch unreachable == E1.A); + testing.expect(intToEnum(E2, one) catch unreachable == E2.B); + testing.expectError(error.InvalidEnumTag, intToEnum(E1, one)); +} + +pub const IntToEnumError = error{InvalidEnumTag}; + +pub fn intToEnum(comptime Tag: type, tag_int: var) IntToEnumError!Tag { + comptime var i = 0; + inline while (i != @memberCount(Tag)) : (i += 1) { + const this_tag_value = @field(Tag, @memberName(Tag, i)); + if (tag_int == @enumToInt(this_tag_value)) { + return this_tag_value; + } + } + return error.InvalidEnumTag; +} diff --git a/lib/std/meta/trait.zig b/lib/std/meta/trait.zig new file mode 100644 index 0000000000..43be7f3dfb --- /dev/null +++ b/lib/std/meta/trait.zig @@ -0,0 +1,363 @@ +const std = @import("../std.zig"); +const builtin = @import("builtin"); +const mem = std.mem; +const debug = std.debug; +const testing = std.testing; +const warn = debug.warn; + +const meta = @import("../meta.zig"); + +//This is necessary if we want to return generic functions directly because of how the +// the type erasure works. see: #1375 +fn traitFnWorkaround(comptime T: type) bool { + return false; +} + +pub const TraitFn = @typeOf(traitFnWorkaround); +/// + +//////Trait generators + +//Need TraitList because compiler can't do varargs at comptime yet +pub const TraitList = []const TraitFn; +pub fn multiTrait(comptime traits: TraitList) TraitFn { + const Closure = struct { + pub fn trait(comptime T: type) bool { + inline for (traits) |t| + if (!t(T)) return false; + return true; + } + }; + return Closure.trait; +} + +test "std.meta.trait.multiTrait" { + const Vector2 = struct { + const MyType = @This(); + + x: u8, + y: u8, + + pub fn add(self: MyType, other: MyType) MyType { + return MyType{ + .x = self.x + other.x, + .y = self.y + other.y, + }; + } + }; + + const isVector = multiTrait([_]TraitFn{ + hasFn("add"), + hasField("x"), + hasField("y"), + }); + testing.expect(isVector(Vector2)); + testing.expect(!isVector(u8)); +} + +/// +pub fn hasFn(comptime name: []const u8) TraitFn { + const Closure = struct { + pub fn trait(comptime T: type) bool { + if (!comptime isContainer(T)) return false; + if (!comptime @hasDecl(T, name)) return false; + const DeclType = @typeOf(@field(T, name)); + const decl_type_id = @typeId(DeclType); + return decl_type_id == builtin.TypeId.Fn; + } + }; + return Closure.trait; +} + +test "std.meta.trait.hasFn" { + const TestStruct = struct { + pub fn useless() void {} + }; + + testing.expect(hasFn("useless")(TestStruct)); + testing.expect(!hasFn("append")(TestStruct)); + testing.expect(!hasFn("useless")(u8)); +} + +/// +pub fn hasField(comptime name: []const u8) TraitFn { + const Closure = struct { + pub fn trait(comptime T: type) bool { + const info = @typeInfo(T); + const fields = switch (info) { + builtin.TypeId.Struct => |s| s.fields, + builtin.TypeId.Union => |u| u.fields, + builtin.TypeId.Enum => |e| e.fields, + else => return false, + }; + + inline for (fields) |field| { + if (mem.eql(u8, field.name, name)) return true; + } + + return false; + } + }; + return Closure.trait; +} + +test "std.meta.trait.hasField" { + const TestStruct = struct { + value: u32, + }; + + testing.expect(hasField("value")(TestStruct)); + testing.expect(!hasField("value")(*TestStruct)); + testing.expect(!hasField("x")(TestStruct)); + testing.expect(!hasField("x")(**TestStruct)); + testing.expect(!hasField("value")(u8)); +} + +/// +pub fn is(comptime id: builtin.TypeId) TraitFn { + const Closure = struct { + pub fn trait(comptime T: type) bool { + return id == @typeId(T); + } + }; + return Closure.trait; +} + +test "std.meta.trait.is" { + testing.expect(is(builtin.TypeId.Int)(u8)); + testing.expect(!is(builtin.TypeId.Int)(f32)); + testing.expect(is(builtin.TypeId.Pointer)(*u8)); + testing.expect(is(builtin.TypeId.Void)(void)); + testing.expect(!is(builtin.TypeId.Optional)(anyerror)); +} + +/// +pub fn isPtrTo(comptime id: builtin.TypeId) TraitFn { + const Closure = struct { + pub fn trait(comptime T: type) bool { + if (!comptime isSingleItemPtr(T)) return false; + return id == @typeId(meta.Child(T)); + } + }; + return Closure.trait; +} + +test "std.meta.trait.isPtrTo" { + testing.expect(!isPtrTo(builtin.TypeId.Struct)(struct {})); + testing.expect(isPtrTo(builtin.TypeId.Struct)(*struct {})); + testing.expect(!isPtrTo(builtin.TypeId.Struct)(**struct {})); +} + +///////////Strait trait Fns + +//@TODO: +// Somewhat limited since we can't apply this logic to normal variables, fields, or +// Fns yet. Should be isExternType? +pub fn isExtern(comptime T: type) bool { + const Extern = builtin.TypeInfo.ContainerLayout.Extern; + const info = @typeInfo(T); + return switch (info) { + builtin.TypeId.Struct => |s| s.layout == Extern, + builtin.TypeId.Union => |u| u.layout == Extern, + builtin.TypeId.Enum => |e| e.layout == Extern, + else => false, + }; +} + +test "std.meta.trait.isExtern" { + const TestExStruct = extern struct {}; + const TestStruct = struct {}; + + testing.expect(isExtern(TestExStruct)); + testing.expect(!isExtern(TestStruct)); + testing.expect(!isExtern(u8)); +} + +/// +pub fn isPacked(comptime T: type) bool { + const Packed = builtin.TypeInfo.ContainerLayout.Packed; + const info = @typeInfo(T); + return switch (info) { + builtin.TypeId.Struct => |s| s.layout == Packed, + builtin.TypeId.Union => |u| u.layout == Packed, + builtin.TypeId.Enum => |e| e.layout == Packed, + else => false, + }; +} + +test "std.meta.trait.isPacked" { + const TestPStruct = packed struct {}; + const TestStruct = struct {}; + + testing.expect(isPacked(TestPStruct)); + testing.expect(!isPacked(TestStruct)); + testing.expect(!isPacked(u8)); +} + +/// +pub fn isUnsignedInt(comptime T: type) bool { + return switch (@typeId(T)) { + builtin.TypeId.Int => !@typeInfo(T).Int.is_signed, + else => false, + }; +} + +test "isUnsignedInt" { + testing.expect(isUnsignedInt(u32) == true); + testing.expect(isUnsignedInt(comptime_int) == false); + testing.expect(isUnsignedInt(i64) == false); + testing.expect(isUnsignedInt(f64) == false); +} + +/// +pub fn isSignedInt(comptime T: type) bool { + return switch (@typeId(T)) { + builtin.TypeId.ComptimeInt => true, + builtin.TypeId.Int => @typeInfo(T).Int.is_signed, + else => false, + }; +} + +test "isSignedInt" { + testing.expect(isSignedInt(u32) == false); + testing.expect(isSignedInt(comptime_int) == true); + testing.expect(isSignedInt(i64) == true); + testing.expect(isSignedInt(f64) == false); +} + +/// +pub fn isSingleItemPtr(comptime T: type) bool { + if (comptime is(builtin.TypeId.Pointer)(T)) { + const info = @typeInfo(T); + return info.Pointer.size == builtin.TypeInfo.Pointer.Size.One; + } + return false; +} + +test "std.meta.trait.isSingleItemPtr" { + const array = [_]u8{0} ** 10; + testing.expect(isSingleItemPtr(@typeOf(&array[0]))); + testing.expect(!isSingleItemPtr(@typeOf(array))); + testing.expect(!isSingleItemPtr(@typeOf(array[0..1]))); +} + +/// +pub fn isManyItemPtr(comptime T: type) bool { + if (comptime is(builtin.TypeId.Pointer)(T)) { + const info = @typeInfo(T); + return info.Pointer.size == builtin.TypeInfo.Pointer.Size.Many; + } + return false; +} + +test "std.meta.trait.isManyItemPtr" { + const array = [_]u8{0} ** 10; + const mip = @ptrCast([*]const u8, &array[0]); + testing.expect(isManyItemPtr(@typeOf(mip))); + testing.expect(!isManyItemPtr(@typeOf(array))); + testing.expect(!isManyItemPtr(@typeOf(array[0..1]))); +} + +/// +pub fn isSlice(comptime T: type) bool { + if (comptime is(builtin.TypeId.Pointer)(T)) { + const info = @typeInfo(T); + return info.Pointer.size == builtin.TypeInfo.Pointer.Size.Slice; + } + return false; +} + +test "std.meta.trait.isSlice" { + const array = [_]u8{0} ** 10; + testing.expect(isSlice(@typeOf(array[0..]))); + testing.expect(!isSlice(@typeOf(array))); + testing.expect(!isSlice(@typeOf(&array[0]))); +} + +/// +pub fn isIndexable(comptime T: type) bool { + if (comptime is(builtin.TypeId.Pointer)(T)) { + const info = @typeInfo(T); + if (info.Pointer.size == builtin.TypeInfo.Pointer.Size.One) { + if (comptime is(builtin.TypeId.Array)(meta.Child(T))) return true; + return false; + } + return true; + } + return comptime is(builtin.TypeId.Array)(T); +} + +test "std.meta.trait.isIndexable" { + const array = [_]u8{0} ** 10; + const slice = array[0..]; + + testing.expect(isIndexable(@typeOf(array))); + testing.expect(isIndexable(@typeOf(&array))); + testing.expect(isIndexable(@typeOf(slice))); + testing.expect(!isIndexable(meta.Child(@typeOf(slice)))); +} + +/// +pub fn isNumber(comptime T: type) bool { + return switch (@typeId(T)) { + builtin.TypeId.Int, builtin.TypeId.Float, builtin.TypeId.ComptimeInt, builtin.TypeId.ComptimeFloat => true, + else => false, + }; +} + +test "std.meta.trait.isNumber" { + const NotANumber = struct { + number: u8, + }; + + testing.expect(isNumber(u32)); + testing.expect(isNumber(f32)); + testing.expect(isNumber(u64)); + testing.expect(isNumber(@typeOf(102))); + testing.expect(isNumber(@typeOf(102.123))); + testing.expect(!isNumber([]u8)); + testing.expect(!isNumber(NotANumber)); +} + +/// +pub fn isConstPtr(comptime T: type) bool { + if (!comptime is(builtin.TypeId.Pointer)(T)) return false; + const info = @typeInfo(T); + return info.Pointer.is_const; +} + +test "std.meta.trait.isConstPtr" { + var t = u8(0); + const c = u8(0); + testing.expect(isConstPtr(*const @typeOf(t))); + testing.expect(isConstPtr(@typeOf(&c))); + testing.expect(!isConstPtr(*@typeOf(t))); + testing.expect(!isConstPtr(@typeOf(6))); +} + +/// +pub fn isContainer(comptime T: type) bool { + const info = @typeInfo(T); + return switch (info) { + builtin.TypeId.Struct => true, + builtin.TypeId.Union => true, + builtin.TypeId.Enum => true, + else => false, + }; +} + +test "std.meta.trait.isContainer" { + const TestStruct = struct {}; + const TestUnion = union { + a: void, + }; + const TestEnum = enum { + A, + B, + }; + + testing.expect(isContainer(TestStruct)); + testing.expect(isContainer(TestUnion)); + testing.expect(isContainer(TestEnum)); + testing.expect(!isContainer(u8)); +} diff --git a/lib/std/mutex.zig b/lib/std/mutex.zig new file mode 100644 index 0000000000..5f3b9272d9 --- /dev/null +++ b/lib/std/mutex.zig @@ -0,0 +1,171 @@ +const std = @import("std.zig"); +const builtin = @import("builtin"); +const AtomicOrder = builtin.AtomicOrder; +const AtomicRmwOp = builtin.AtomicRmwOp; +const testing = std.testing; +const SpinLock = std.SpinLock; +const linux = std.os.linux; +const windows = std.os.windows; + +/// Lock may be held only once. If the same thread +/// tries to acquire the same mutex twice, it deadlocks. +/// This type must be initialized at runtime, and then deinitialized when no +/// longer needed, to free resources. +/// If you need static initialization, use std.StaticallyInitializedMutex. +/// The Linux implementation is based on mutex3 from +/// https://www.akkadia.org/drepper/futex.pdf +/// When an application is built in single threaded release mode, all the functions are +/// no-ops. In single threaded debug mode, there is deadlock detection. +pub const Mutex = if (builtin.single_threaded) + struct { + lock: @typeOf(lock_init), + + const lock_init = if (std.debug.runtime_safety) false else {}; + + pub const Held = struct { + mutex: *Mutex, + + pub fn release(self: Held) void { + if (std.debug.runtime_safety) { + self.mutex.lock = false; + } + } + }; + pub fn init() Mutex { + return Mutex{ .lock = lock_init }; + } + pub fn deinit(self: *Mutex) void {} + + pub fn acquire(self: *Mutex) Held { + if (std.debug.runtime_safety and self.lock) { + @panic("deadlock detected"); + } + return Held{ .mutex = self }; + } + } +else switch (builtin.os) { + builtin.Os.linux => struct { + /// 0: unlocked + /// 1: locked, no waiters + /// 2: locked, one or more waiters + lock: i32, + + pub const Held = struct { + mutex: *Mutex, + + pub fn release(self: Held) void { + const c = @atomicRmw(i32, &self.mutex.lock, AtomicRmwOp.Sub, 1, AtomicOrder.Release); + if (c != 1) { + _ = @atomicRmw(i32, &self.mutex.lock, AtomicRmwOp.Xchg, 0, AtomicOrder.Release); + const rc = linux.futex_wake(&self.mutex.lock, linux.FUTEX_WAKE | linux.FUTEX_PRIVATE_FLAG, 1); + switch (linux.getErrno(rc)) { + 0 => {}, + linux.EINVAL => unreachable, + else => unreachable, + } + } + } + }; + + pub fn init() Mutex { + return Mutex{ .lock = 0 }; + } + + pub fn deinit(self: *Mutex) void {} + + pub fn acquire(self: *Mutex) Held { + var c = @cmpxchgWeak(i32, &self.lock, 0, 1, AtomicOrder.Acquire, AtomicOrder.Monotonic) orelse + return Held{ .mutex = self }; + if (c != 2) + c = @atomicRmw(i32, &self.lock, AtomicRmwOp.Xchg, 2, AtomicOrder.Acquire); + while (c != 0) { + const rc = linux.futex_wait(&self.lock, linux.FUTEX_WAIT | linux.FUTEX_PRIVATE_FLAG, 2, null); + switch (linux.getErrno(rc)) { + 0, linux.EINTR, linux.EAGAIN => {}, + linux.EINVAL => unreachable, + else => unreachable, + } + c = @atomicRmw(i32, &self.lock, AtomicRmwOp.Xchg, 2, AtomicOrder.Acquire); + } + return Held{ .mutex = self }; + } + }, + // TODO once https://github.com/ziglang/zig/issues/287 (copy elision) is solved, we can make a + // better implementation of this. The problem is we need the init() function to have access to + // the address of the CRITICAL_SECTION, and then have it not move. + builtin.Os.windows => std.StaticallyInitializedMutex, + else => struct { + /// TODO better implementation than spin lock. + /// When changing this, one must also change the corresponding + /// std.StaticallyInitializedMutex code, since it aliases this type, + /// under the assumption that it works both statically and at runtime. + lock: SpinLock, + + pub const Held = struct { + mutex: *Mutex, + + pub fn release(self: Held) void { + SpinLock.Held.release(SpinLock.Held{ .spinlock = &self.mutex.lock }); + } + }; + + pub fn init() Mutex { + return Mutex{ .lock = SpinLock.init() }; + } + + pub fn deinit(self: *Mutex) void {} + + pub fn acquire(self: *Mutex) Held { + _ = self.lock.acquire(); + return Held{ .mutex = self }; + } + }, +}; + +const TestContext = struct { + mutex: *Mutex, + data: i128, + + const incr_count = 10000; +}; + +test "std.Mutex" { + var plenty_of_memory = try std.heap.direct_allocator.alloc(u8, 300 * 1024); + defer std.heap.direct_allocator.free(plenty_of_memory); + + var fixed_buffer_allocator = std.heap.ThreadSafeFixedBufferAllocator.init(plenty_of_memory); + var a = &fixed_buffer_allocator.allocator; + + var mutex = Mutex.init(); + defer mutex.deinit(); + + var context = TestContext{ + .mutex = &mutex, + .data = 0, + }; + + if (builtin.single_threaded) { + worker(&context); + testing.expect(context.data == TestContext.incr_count); + } else { + const thread_count = 10; + var threads: [thread_count]*std.Thread = undefined; + for (threads) |*t| { + t.* = try std.Thread.spawn(&context, worker); + } + for (threads) |t| + t.wait(); + + testing.expect(context.data == thread_count * TestContext.incr_count); + } +} + +fn worker(ctx: *TestContext) void { + var i: usize = 0; + while (i != TestContext.incr_count) : (i += 1) { + const held = ctx.mutex.acquire(); + defer held.release(); + + ctx.data += 1; + } +} diff --git a/lib/std/net.zig b/lib/std/net.zig new file mode 100644 index 0000000000..be9d18056c --- /dev/null +++ b/lib/std/net.zig @@ -0,0 +1,247 @@ +const std = @import("std.zig"); +const builtin = @import("builtin"); +const assert = std.debug.assert; +const net = @This(); +const mem = std.mem; +const os = std.os; + +pub const TmpWinAddr = struct { + family: u8, + data: [14]u8, +}; + +pub const OsAddress = switch (builtin.os) { + builtin.Os.windows => TmpWinAddr, + else => os.sockaddr, +}; + +pub const Address = struct { + os_addr: OsAddress, + + pub fn initIp4(ip4: u32, _port: u16) Address { + return Address{ + .os_addr = os.sockaddr{ + .in = os.sockaddr_in{ + .family = os.AF_INET, + .port = mem.nativeToBig(u16, _port), + .addr = ip4, + .zero = [_]u8{0} ** 8, + }, + }, + }; + } + + pub fn initIp6(ip6: *const Ip6Addr, _port: u16) Address { + return Address{ + .os_addr = os.sockaddr{ + .in6 = os.sockaddr_in6{ + .family = os.AF_INET6, + .port = mem.nativeToBig(u16, _port), + .flowinfo = 0, + .addr = ip6.addr, + .scope_id = ip6.scope_id, + }, + }, + }; + } + + pub fn port(self: Address) u16 { + return mem.bigToNative(u16, self.os_addr.in.port); + } + + pub fn initPosix(addr: os.sockaddr) Address { + return Address{ .os_addr = addr }; + } + + pub fn format(self: *const Address, out_stream: var) !void { + switch (self.os_addr.in.family) { + os.AF_INET => { + const native_endian_port = mem.bigToNative(u16, self.os_addr.in.port); + const bytes = ([]const u8)((*self.os_addr.in.addr)[0..1]); + try out_stream.print("{}.{}.{}.{}:{}", bytes[0], bytes[1], bytes[2], bytes[3], native_endian_port); + }, + os.AF_INET6 => { + const native_endian_port = mem.bigToNative(u16, self.os_addr.in6.port); + try out_stream.print("[TODO render ip6 address]:{}", native_endian_port); + }, + else => try out_stream.write("(unrecognized address family)"), + } + } +}; + +pub fn parseIp4(buf: []const u8) !u32 { + var result: u32 = undefined; + const out_ptr = @sliceToBytes((*[1]u32)(&result)[0..]); + + var x: u8 = 0; + var index: u8 = 0; + var saw_any_digits = false; + for (buf) |c| { + if (c == '.') { + if (!saw_any_digits) { + return error.InvalidCharacter; + } + if (index == 3) { + return error.InvalidEnd; + } + out_ptr[index] = x; + index += 1; + x = 0; + saw_any_digits = false; + } else if (c >= '0' and c <= '9') { + saw_any_digits = true; + const digit = c - '0'; + if (@mulWithOverflow(u8, x, 10, &x)) { + return error.Overflow; + } + if (@addWithOverflow(u8, x, digit, &x)) { + return error.Overflow; + } + } else { + return error.InvalidCharacter; + } + } + if (index == 3 and saw_any_digits) { + out_ptr[index] = x; + return result; + } + + return error.Incomplete; +} + +pub const Ip6Addr = struct { + scope_id: u32, + addr: [16]u8, +}; + +pub fn parseIp6(buf: []const u8) !Ip6Addr { + var result: Ip6Addr = undefined; + result.scope_id = 0; + const ip_slice = result.addr[0..]; + + var x: u16 = 0; + var saw_any_digits = false; + var index: u8 = 0; + var scope_id = false; + for (buf) |c| { + if (scope_id) { + if (c >= '0' and c <= '9') { + const digit = c - '0'; + if (@mulWithOverflow(u32, result.scope_id, 10, &result.scope_id)) { + return error.Overflow; + } + if (@addWithOverflow(u32, result.scope_id, digit, &result.scope_id)) { + return error.Overflow; + } + } else { + return error.InvalidCharacter; + } + } else if (c == ':') { + if (!saw_any_digits) { + return error.InvalidCharacter; + } + if (index == 14) { + return error.InvalidEnd; + } + ip_slice[index] = @truncate(u8, x >> 8); + index += 1; + ip_slice[index] = @truncate(u8, x); + index += 1; + + x = 0; + saw_any_digits = false; + } else if (c == '%') { + if (!saw_any_digits) { + return error.InvalidCharacter; + } + if (index == 14) { + ip_slice[index] = @truncate(u8, x >> 8); + index += 1; + ip_slice[index] = @truncate(u8, x); + index += 1; + } + scope_id = true; + saw_any_digits = false; + } else { + const digit = try std.fmt.charToDigit(c, 16); + if (@mulWithOverflow(u16, x, 16, &x)) { + return error.Overflow; + } + if (@addWithOverflow(u16, x, digit, &x)) { + return error.Overflow; + } + saw_any_digits = true; + } + } + + if (!saw_any_digits) { + return error.Incomplete; + } + + if (scope_id) { + return result; + } + + if (index == 14) { + ip_slice[14] = @truncate(u8, x >> 8); + ip_slice[15] = @truncate(u8, x); + return result; + } + + return error.Incomplete; +} + +test "std.net.parseIp4" { + assert((try parseIp4("127.0.0.1")) == mem.bigToNative(u32, 0x7f000001)); + + testParseIp4Fail("256.0.0.1", error.Overflow); + testParseIp4Fail("x.0.0.1", error.InvalidCharacter); + testParseIp4Fail("127.0.0.1.1", error.InvalidEnd); + testParseIp4Fail("127.0.0.", error.Incomplete); + testParseIp4Fail("100..0.1", error.InvalidCharacter); +} + +fn testParseIp4Fail(buf: []const u8, expected_err: anyerror) void { + if (parseIp4(buf)) |_| { + @panic("expected error"); + } else |e| { + assert(e == expected_err); + } +} + +test "std.net.parseIp6" { + const addr = try parseIp6("FF01:0:0:0:0:0:0:FB"); + assert(addr.addr[0] == 0xff); + assert(addr.addr[1] == 0x01); + assert(addr.addr[2] == 0x00); +} + +pub fn connectUnixSocket(path: []const u8) !std.fs.File { + const opt_non_block = if (std.event.Loop.instance != null) os.SOCK_NONBLOCK else 0; + const sockfd = try os.socket( + os.AF_UNIX, + os.SOCK_STREAM | os.SOCK_CLOEXEC | opt_non_block, + 0, + ); + errdefer os.close(sockfd); + + var sock_addr = os.sockaddr{ + .un = os.sockaddr_un{ + .family = os.AF_UNIX, + .path = undefined, + }, + }; + + if (path.len > @typeOf(sock_addr.un.path).len) return error.NameTooLong; + mem.copy(u8, sock_addr.un.path[0..], path); + const size = @intCast(u32, @sizeOf(os.sa_family_t) + path.len); + if (std.event.Loop.instance) |loop| { + try os.connect_async(sockfd, &sock_addr, size); + try loop.linuxWaitFd(sockfd, os.EPOLLIN | os.EPOLLOUT | os.EPOLLET); + try os.getsockoptError(sockfd); + } else { + try os.connect(sockfd, &sock_addr, size); + } + + return std.fs.File.openHandle(sockfd); +} diff --git a/lib/std/os.zig b/lib/std/os.zig new file mode 100644 index 0000000000..ed626e0dcc --- /dev/null +++ b/lib/std/os.zig @@ -0,0 +1,2738 @@ +// This file contains thin wrappers around OS-specific APIs, with these +// specific goals in mind: +// * Convert "errno"-style error codes into Zig errors. +// * When null-terminated byte buffers are required, provide APIs which accept +// slices as well as APIs which accept null-terminated byte buffers. Same goes +// for UTF-16LE encoding. +// * Where operating systems share APIs, e.g. POSIX, these thin wrappers provide +// cross platform abstracting. +// * When there exists a corresponding libc function and linking libc, the libc +// implementation is used. Exceptions are made for known buggy areas of libc. +// On Linux libc can be side-stepped by using `std.os.linux` directly. +// * For Windows, this file represents the API that libc would provide for +// Windows. For thin wrappers around Windows-specific APIs, see `std.os.windows`. +// Note: The Zig standard library does not support POSIX thread cancellation, and +// in general EINTR is handled by trying again. + +const std = @import("std.zig"); +const builtin = @import("builtin"); +const assert = std.debug.assert; +const math = std.math; +const mem = std.mem; +const elf = std.elf; +const dl = @import("dynamic_library.zig"); +const MAX_PATH_BYTES = std.fs.MAX_PATH_BYTES; + +comptime { + assert(@import("std") == std); // std lib tests require --override-std-dir +} + +pub const darwin = @import("os/darwin.zig"); +pub const freebsd = @import("os/freebsd.zig"); +pub const linux = @import("os/linux.zig"); +pub const netbsd = @import("os/netbsd.zig"); +pub const uefi = @import("os/uefi.zig"); +pub const wasi = @import("os/wasi.zig"); +pub const windows = @import("os/windows.zig"); +pub const zen = @import("os/zen.zig"); + +/// When linking libc, this is the C API. Otherwise, it is the OS-specific system interface. +pub const system = if (builtin.link_libc) std.c else switch (builtin.os) { + .macosx, .ios, .watchos, .tvos => darwin, + .freebsd => freebsd, + .linux => linux, + .netbsd => netbsd, + .wasi => wasi, + .windows => windows, + .zen => zen, + else => struct {}, +}; + +pub usingnamespace @import("os/bits.zig"); + +/// See also `getenv`. Populated by startup code before main(). +pub var environ: [][*]u8 = undefined; + +/// Populated by startup code before main(). +/// Not available on Windows. See `std.process.args` +/// for obtaining the process arguments. +pub var argv: [][*]u8 = undefined; + +/// To obtain errno, call this function with the return value of the +/// system function call. For some systems this will obtain the value directly +/// from the return code; for others it will use a thread-local errno variable. +/// Therefore, this function only returns a well-defined value when it is called +/// directly after the system function call which one wants to learn the errno +/// value of. +pub const errno = system.getErrno; + +/// Closes the file descriptor. +/// This function is not capable of returning any indication of failure. An +/// application which wants to ensure writes have succeeded before closing +/// must call `fsync` before `close`. +/// Note: The Zig standard library does not support POSIX thread cancellation. +pub fn close(fd: fd_t) void { + if (windows.is_the_target) { + return windows.CloseHandle(fd); + } + if (wasi.is_the_target) { + _ = wasi.fd_close(fd); + } + if (darwin.is_the_target) { + // This avoids the EINTR problem. + switch (darwin.getErrno(darwin.@"close$NOCANCEL"(fd))) { + EBADF => unreachable, // Always a race condition. + else => return, + } + } + switch (errno(system.close(fd))) { + EBADF => unreachable, // Always a race condition. + EINTR => return, // This is still a success. See https://github.com/ziglang/zig/issues/2425 + else => return, + } +} + +pub const GetRandomError = OpenError; + +/// Obtain a series of random bytes. These bytes can be used to seed user-space +/// random number generators or for cryptographic purposes. +/// When linking against libc, this calls the +/// appropriate OS-specific library call. Otherwise it uses the zig standard +/// library implementation. +pub fn getrandom(buffer: []u8) GetRandomError!void { + if (windows.is_the_target) { + return windows.RtlGenRandom(buffer); + } + if (linux.is_the_target or freebsd.is_the_target) { + var buf = buffer; + const use_c = !linux.is_the_target or + std.c.versionCheck(builtin.Version{ .major = 2, .minor = 25, .patch = 0 }).ok; + + while (buf.len != 0) { + var err: u16 = undefined; + + const num_read = if (use_c) blk: { + const rc = std.c.getrandom(buf.ptr, buf.len, 0); + err = std.c.getErrno(rc); + break :blk @bitCast(usize, rc); + } else blk: { + const rc = linux.getrandom(buf.ptr, buf.len, 0); + err = linux.getErrno(rc); + break :blk rc; + }; + + switch (err) { + 0 => buf = buf[num_read..], + EINVAL => unreachable, + EFAULT => unreachable, + EINTR => continue, + ENOSYS => return getRandomBytesDevURandom(buf), + else => return unexpectedErrno(err), + } + } + return; + } + if (wasi.is_the_target) { + switch (wasi.random_get(buffer.ptr, buffer.len)) { + 0 => return, + else => |err| return unexpectedErrno(err), + } + } + return getRandomBytesDevURandom(buffer); +} + +fn getRandomBytesDevURandom(buf: []u8) !void { + const fd = try openC(c"/dev/urandom", O_RDONLY | O_CLOEXEC, 0); + defer close(fd); + + const st = try fstat(fd); + if (!S_ISCHR(st.mode)) { + return error.NoDevice; + } + + const stream = &std.fs.File.openHandle(fd).inStream().stream; + stream.readNoEof(buf) catch return error.Unexpected; +} + +/// Causes abnormal process termination. +/// If linking against libc, this calls the abort() libc function. Otherwise +/// it raises SIGABRT followed by SIGKILL and finally lo +pub fn abort() noreturn { + @setCold(true); + // MSVCRT abort() sometimes opens a popup window which is undesirable, so + // even when linking libc on Windows we use our own abort implementation. + // See https://github.com/ziglang/zig/issues/2071 for more details. + if (windows.is_the_target) { + if (builtin.mode == .Debug) { + @breakpoint(); + } + windows.kernel32.ExitProcess(3); + } + if (builtin.link_libc) { + system.abort(); + } + if (builtin.os == .uefi) { + exit(0); // TODO choose appropriate exit code + } + + raise(SIGABRT) catch {}; + + // TODO the rest of the implementation of abort() from musl libc here + + raise(SIGKILL) catch {}; + exit(127); +} + +pub const RaiseError = error{Unexpected}; + +pub fn raise(sig: u8) RaiseError!void { + if (builtin.link_libc) { + switch (errno(system.raise(sig))) { + 0 => return, + else => |err| return unexpectedErrno(err), + } + } + + if (wasi.is_the_target) { + switch (wasi.proc_raise(SIGABRT)) { + 0 => return, + else => |err| return unexpectedErrno(err), + } + } + + if (linux.is_the_target) { + var set: linux.sigset_t = undefined; + linux.blockAppSignals(&set); + const tid = linux.syscall0(linux.SYS_gettid); + const rc = linux.syscall2(linux.SYS_tkill, tid, sig); + linux.restoreSignals(&set); + switch (errno(rc)) { + 0 => return, + else => |err| return unexpectedErrno(err), + } + } + + @compileError("std.os.raise unimplemented for this target"); +} + +pub const KillError = error{ + PermissionDenied, + Unexpected, +}; + +pub fn kill(pid: pid_t, sig: u8) KillError!void { + switch (errno(system.kill(pid, sig))) { + 0 => return, + EINVAL => unreachable, // invalid signal + EPERM => return error.PermissionDenied, + ESRCH => unreachable, // always a race condition + else => |err| return unexpectedErrno(err), + } +} + +/// Exits the program cleanly with the specified status code. +pub fn exit(status: u8) noreturn { + if (builtin.link_libc) { + system.exit(status); + } + if (windows.is_the_target) { + windows.kernel32.ExitProcess(status); + } + if (wasi.is_the_target) { + wasi.proc_exit(status); + } + if (linux.is_the_target and !builtin.single_threaded) { + linux.exit_group(status); + } + if (uefi.is_the_target) { + // exit() is only avaliable if exitBootServices() has not been called yet. + // This call to exit should not fail, so we don't care about its return value. + if (uefi.system_table.boot_services) |bs| { + _ = bs.exit(uefi.handle, status, 0, null); + } + // If we can't exit, reboot the system instead. + uefi.system_table.runtime_services.resetSystem(uefi.tables.ResetType.ResetCold, status, 0, null); + } + system.exit(status); +} + +pub const ReadError = error{ + InputOutput, + SystemResources, + IsDir, + OperationAborted, + BrokenPipe, + + /// This error occurs when no global event loop is configured, + /// and reading from the file descriptor would block. + WouldBlock, + + Unexpected, +}; + +/// Returns the number of bytes that were read, which can be less than +/// buf.len. If 0 bytes were read, that means EOF. +/// If the application has a global event loop enabled, EAGAIN is handled +/// via the event loop. Otherwise EAGAIN results in error.WouldBlock. +pub fn read(fd: fd_t, buf: []u8) ReadError!usize { + if (windows.is_the_target) { + return windows.ReadFile(fd, buf); + } + + if (wasi.is_the_target and !builtin.link_libc) { + const iovs = [1]iovec{iovec{ + .iov_base = buf.ptr, + .iov_len = buf.len, + }}; + + var nread: usize = undefined; + switch (wasi.fd_read(fd, &iovs, iovs.len, &nread)) { + 0 => return nread, + else => |err| return unexpectedErrno(err), + } + } + + while (true) { + const rc = system.read(fd, buf.ptr, buf.len); + switch (errno(rc)) { + 0 => return @intCast(usize, rc), + EINTR => continue, + EINVAL => unreachable, + EFAULT => unreachable, + EAGAIN => if (std.event.Loop.instance) |loop| { + loop.waitUntilFdReadable(fd) catch return error.WouldBlock; + continue; + } else { + return error.WouldBlock; + }, + EBADF => unreachable, // Always a race condition. + EIO => return error.InputOutput, + EISDIR => return error.IsDir, + ENOBUFS => return error.SystemResources, + ENOMEM => return error.SystemResources, + else => |err| return unexpectedErrno(err), + } + } + return index; +} + +/// Number of bytes read is returned. Upon reading end-of-file, zero is returned. +/// This function is for blocking file descriptors only. +pub fn preadv(fd: fd_t, iov: []const iovec, offset: u64) ReadError!usize { + if (darwin.is_the_target) { + // Darwin does not have preadv but it does have pread. + var off: usize = 0; + var iov_i: usize = 0; + var inner_off: usize = 0; + while (true) { + const v = iov[iov_i]; + const rc = darwin.pread(fd, v.iov_base + inner_off, v.iov_len - inner_off, offset + off); + const err = darwin.getErrno(rc); + switch (err) { + 0 => { + const amt_read = @bitCast(usize, rc); + off += amt_read; + inner_off += amt_read; + if (inner_off == v.iov_len) { + iov_i += 1; + inner_off = 0; + if (iov_i == iov.len) { + return off; + } + } + if (rc == 0) return off; // EOF + continue; + }, + EINTR => continue, + EINVAL => unreachable, + EFAULT => unreachable, + ESPIPE => unreachable, // fd is not seekable + EAGAIN => unreachable, // This function is for blocking reads. + EBADF => unreachable, // always a race condition + EIO => return error.InputOutput, + EISDIR => return error.IsDir, + ENOBUFS => return error.SystemResources, + ENOMEM => return error.SystemResources, + else => return unexpectedErrno(err), + } + } + } + while (true) { + // TODO handle the case when iov_len is too large and get rid of this @intCast + const rc = system.preadv(fd, iov.ptr, @intCast(u32, iov.len), offset); + switch (errno(rc)) { + 0 => return @bitCast(usize, rc), + EINTR => continue, + EINVAL => unreachable, + EFAULT => unreachable, + EAGAIN => unreachable, // This function is for blocking reads. + EBADF => unreachable, // always a race condition + EIO => return error.InputOutput, + EISDIR => return error.IsDir, + ENOBUFS => return error.SystemResources, + ENOMEM => return error.SystemResources, + else => |err| return unexpectedErrno(err), + } + } +} + +pub const WriteError = error{ + DiskQuota, + FileTooBig, + InputOutput, + NoSpaceLeft, + AccessDenied, + BrokenPipe, + SystemResources, + OperationAborted, + Unexpected, +}; + +/// Write to a file descriptor. Keeps trying if it gets interrupted. +/// This function is for blocking file descriptors only. +pub fn write(fd: fd_t, bytes: []const u8) WriteError!void { + if (windows.is_the_target) { + return windows.WriteFile(fd, bytes); + } + + if (wasi.is_the_target and !builtin.link_libc) { + const ciovs = [1]iovec_const{iovec_const{ + .iov_base = bytes.ptr, + .iov_len = bytes.len, + }}; + var nwritten: usize = undefined; + switch (wasi.fd_write(fd, &ciovs, ciovs.len, &nwritten)) { + 0 => return, + else => |err| return unexpectedErrno(err), + } + } + + // Linux can return EINVAL when write amount is > 0x7ffff000 + // See https://github.com/ziglang/zig/pull/743#issuecomment-363165856 + // TODO audit this. Shawn Landden says that this is not actually true. + // if this logic should stay, move it to std.os.linux + const max_bytes_len = 0x7ffff000; + + var index: usize = 0; + while (index < bytes.len) { + const amt_to_write = math.min(bytes.len - index, usize(max_bytes_len)); + const rc = system.write(fd, bytes.ptr + index, amt_to_write); + switch (errno(rc)) { + 0 => { + index += @intCast(usize, rc); + continue; + }, + EINTR => continue, + EINVAL => unreachable, + EFAULT => unreachable, + EAGAIN => unreachable, // This function is for blocking writes. + EBADF => unreachable, // Always a race condition. + EDESTADDRREQ => unreachable, // `connect` was never called. + EDQUOT => return error.DiskQuota, + EFBIG => return error.FileTooBig, + EIO => return error.InputOutput, + ENOSPC => return error.NoSpaceLeft, + EPERM => return error.AccessDenied, + EPIPE => return error.BrokenPipe, + else => |err| return unexpectedErrno(err), + } + } +} + +/// Write multiple buffers to a file descriptor. Keeps trying if it gets interrupted. +/// This function is for blocking file descriptors only. For non-blocking, see +/// `writevAsync`. +pub fn writev(fd: fd_t, iov: []const iovec_const) WriteError!void { + while (true) { + // TODO handle the case when iov_len is too large and get rid of this @intCast + const rc = system.writev(fd, iov.ptr, @intCast(u32, iov.len)); + switch (errno(rc)) { + 0 => return, + EINTR => continue, + EINVAL => unreachable, + EFAULT => unreachable, + EAGAIN => unreachable, // This function is for blocking writes. + EBADF => unreachable, // Always a race condition. + EDESTADDRREQ => unreachable, // `connect` was never called. + EDQUOT => return error.DiskQuota, + EFBIG => return error.FileTooBig, + EIO => return error.InputOutput, + ENOSPC => return error.NoSpaceLeft, + EPERM => return error.AccessDenied, + EPIPE => return error.BrokenPipe, + else => |err| return unexpectedErrno(err), + } + } +} + +/// Write multiple buffers to a file descriptor, with a position offset. +/// Keeps trying if it gets interrupted. +/// This function is for blocking file descriptors only. For non-blocking, see +/// `pwritevAsync`. +pub fn pwritev(fd: fd_t, iov: []const iovec_const, offset: u64) WriteError!void { + if (darwin.is_the_target) { + // Darwin does not have pwritev but it does have pwrite. + var off: usize = 0; + var iov_i: usize = 0; + var inner_off: usize = 0; + while (true) { + const v = iov[iov_i]; + const rc = darwin.pwrite(fd, v.iov_base + inner_off, v.iov_len - inner_off, offset + off); + const err = darwin.getErrno(rc); + switch (err) { + 0 => { + const amt_written = @bitCast(usize, rc); + off += amt_written; + inner_off += amt_written; + if (inner_off == v.iov_len) { + iov_i += 1; + inner_off = 0; + if (iov_i == iov.len) { + return; + } + } + continue; + }, + EINTR => continue, + ESPIPE => unreachable, // `fd` is not seekable. + EINVAL => unreachable, + EFAULT => unreachable, + EAGAIN => unreachable, // This function is for blocking writes. + EBADF => unreachable, // Always a race condition. + EDESTADDRREQ => unreachable, // `connect` was never called. + EDQUOT => return error.DiskQuota, + EFBIG => return error.FileTooBig, + EIO => return error.InputOutput, + ENOSPC => return error.NoSpaceLeft, + EPERM => return error.AccessDenied, + EPIPE => return error.BrokenPipe, + else => return unexpectedErrno(err), + } + } + } + + while (true) { + // TODO handle the case when iov_len is too large and get rid of this @intCast + const rc = system.pwritev(fd, iov.ptr, @intCast(u32, iov.len), offset); + switch (errno(rc)) { + 0 => return, + EINTR => continue, + EINVAL => unreachable, + EFAULT => unreachable, + EAGAIN => unreachable, // This function is for blocking writes. + EBADF => unreachable, // Always a race condition. + EDESTADDRREQ => unreachable, // `connect` was never called. + EDQUOT => return error.DiskQuota, + EFBIG => return error.FileTooBig, + EIO => return error.InputOutput, + ENOSPC => return error.NoSpaceLeft, + EPERM => return error.AccessDenied, + EPIPE => return error.BrokenPipe, + else => |err| return unexpectedErrno(err), + } + } +} + +pub const OpenError = error{ + AccessDenied, + FileTooBig, + IsDir, + SymLinkLoop, + ProcessFdQuotaExceeded, + NameTooLong, + SystemFdQuotaExceeded, + NoDevice, + FileNotFound, + SystemResources, + NoSpaceLeft, + NotDir, + PathAlreadyExists, + DeviceBusy, + Unexpected, +}; + +/// Open and possibly create a file. Keeps trying if it gets interrupted. +/// See also `openC`. +pub fn open(file_path: []const u8, flags: u32, perm: usize) OpenError!fd_t { + const file_path_c = try toPosixPath(file_path); + return openC(&file_path_c, flags, perm); +} + +/// Open and possibly create a file. Keeps trying if it gets interrupted. +/// See also `open`. +/// TODO https://github.com/ziglang/zig/issues/265 +pub fn openC(file_path: [*]const u8, flags: u32, perm: usize) OpenError!fd_t { + while (true) { + const rc = system.open(file_path, flags, perm); + switch (errno(rc)) { + 0 => return @intCast(fd_t, rc), + EINTR => continue, + + EFAULT => unreachable, + EINVAL => unreachable, + EACCES => return error.AccessDenied, + EFBIG => return error.FileTooBig, + EOVERFLOW => return error.FileTooBig, + EISDIR => return error.IsDir, + ELOOP => return error.SymLinkLoop, + EMFILE => return error.ProcessFdQuotaExceeded, + ENAMETOOLONG => return error.NameTooLong, + ENFILE => return error.SystemFdQuotaExceeded, + ENODEV => return error.NoDevice, + ENOENT => return error.FileNotFound, + ENOMEM => return error.SystemResources, + ENOSPC => return error.NoSpaceLeft, + ENOTDIR => return error.NotDir, + EPERM => return error.AccessDenied, + EEXIST => return error.PathAlreadyExists, + EBUSY => return error.DeviceBusy, + else => |err| return unexpectedErrno(err), + } + } +} + +/// Open and possibly create a file. Keeps trying if it gets interrupted. +/// `file_path` is relative to the open directory handle `dir_fd`. +/// See also `openatC`. +pub fn openat(dir_fd: fd_t, file_path: []const u8, flags: u32, mode: usize) OpenError!fd_t { + const file_path_c = try toPosixPath(file_path); + return openatC(dir_fd, &file_path_c, flags, mode); +} + +/// Open and possibly create a file. Keeps trying if it gets interrupted. +/// `file_path` is relative to the open directory handle `dir_fd`. +/// See also `openat`. +pub fn openatC(dir_fd: fd_t, file_path: [*]const u8, flags: u32, mode: usize) OpenError!fd_t { + while (true) { + const rc = system.openat(dir_fd, file_path, flags, mode); + switch (errno(rc)) { + 0 => return @intCast(fd_t, rc), + EINTR => continue, + + EFAULT => unreachable, + EINVAL => unreachable, + EACCES => return error.AccessDenied, + EFBIG => return error.FileTooBig, + EOVERFLOW => return error.FileTooBig, + EISDIR => return error.IsDir, + ELOOP => return error.SymLinkLoop, + EMFILE => return error.ProcessFdQuotaExceeded, + ENAMETOOLONG => return error.NameTooLong, + ENFILE => return error.SystemFdQuotaExceeded, + ENODEV => return error.NoDevice, + ENOENT => return error.FileNotFound, + ENOMEM => return error.SystemResources, + ENOSPC => return error.NoSpaceLeft, + ENOTDIR => return error.NotDir, + EPERM => return error.AccessDenied, + EEXIST => return error.PathAlreadyExists, + EBUSY => return error.DeviceBusy, + else => |err| return unexpectedErrno(err), + } + } +} + +pub fn dup2(old_fd: fd_t, new_fd: fd_t) !void { + while (true) { + switch (errno(system.dup2(old_fd, new_fd))) { + 0 => return, + EBUSY, EINTR => continue, + EMFILE => return error.ProcessFdQuotaExceeded, + EINVAL => unreachable, + else => |err| return unexpectedErrno(err), + } + } +} + +/// This function must allocate memory to add a null terminating bytes on path and each arg. +/// It must also convert to KEY=VALUE\0 format for environment variables, and include null +/// pointers after the args and after the environment variables. +/// `argv[0]` is the executable path. +/// This function also uses the PATH environment variable to get the full path to the executable. +/// TODO provide execveC which does not take an allocator +pub fn execve(allocator: *mem.Allocator, argv_slice: []const []const u8, env_map: *const std.BufMap) !void { + const argv_buf = try allocator.alloc(?[*]u8, argv_slice.len + 1); + mem.set(?[*]u8, argv_buf, null); + defer { + for (argv_buf) |arg| { + const arg_buf = if (arg) |ptr| mem.toSlice(u8, ptr) else break; + allocator.free(arg_buf); + } + allocator.free(argv_buf); + } + for (argv_slice) |arg, i| { + const arg_buf = try allocator.alloc(u8, arg.len + 1); + @memcpy(arg_buf.ptr, arg.ptr, arg.len); + arg_buf[arg.len] = 0; + + argv_buf[i] = arg_buf.ptr; + } + argv_buf[argv_slice.len] = null; + + const envp_buf = try createNullDelimitedEnvMap(allocator, env_map); + defer freeNullDelimitedEnvMap(allocator, envp_buf); + + const exe_path = argv_slice[0]; + if (mem.indexOfScalar(u8, exe_path, '/') != null) { + return execveErrnoToErr(errno(system.execve(argv_buf[0].?, argv_buf.ptr, envp_buf.ptr))); + } + + const PATH = getenv("PATH") orelse "/usr/local/bin:/bin/:/usr/bin"; + // PATH.len because it is >= the largest search_path + // +1 for the / to join the search path and exe_path + // +1 for the null terminating byte + const path_buf = try allocator.alloc(u8, PATH.len + exe_path.len + 2); + defer allocator.free(path_buf); + var it = mem.tokenize(PATH, ":"); + var seen_eacces = false; + var err: usize = undefined; + while (it.next()) |search_path| { + mem.copy(u8, path_buf, search_path); + path_buf[search_path.len] = '/'; + mem.copy(u8, path_buf[search_path.len + 1 ..], exe_path); + path_buf[search_path.len + exe_path.len + 1] = 0; + err = errno(system.execve(path_buf.ptr, argv_buf.ptr, envp_buf.ptr)); + assert(err > 0); + if (err == EACCES) { + seen_eacces = true; + } else if (err != ENOENT) { + return execveErrnoToErr(err); + } + } + if (seen_eacces) { + err = EACCES; + } + return execveErrnoToErr(err); +} + +pub fn createNullDelimitedEnvMap(allocator: *mem.Allocator, env_map: *const std.BufMap) ![]?[*]u8 { + const envp_count = env_map.count(); + const envp_buf = try allocator.alloc(?[*]u8, envp_count + 1); + mem.set(?[*]u8, envp_buf, null); + errdefer freeNullDelimitedEnvMap(allocator, envp_buf); + { + var it = env_map.iterator(); + var i: usize = 0; + while (it.next()) |pair| : (i += 1) { + const env_buf = try allocator.alloc(u8, pair.key.len + pair.value.len + 2); + @memcpy(env_buf.ptr, pair.key.ptr, pair.key.len); + env_buf[pair.key.len] = '='; + @memcpy(env_buf.ptr + pair.key.len + 1, pair.value.ptr, pair.value.len); + env_buf[env_buf.len - 1] = 0; + + envp_buf[i] = env_buf.ptr; + } + assert(i == envp_count); + } + assert(envp_buf[envp_count] == null); + return envp_buf; +} + +pub fn freeNullDelimitedEnvMap(allocator: *mem.Allocator, envp_buf: []?[*]u8) void { + for (envp_buf) |env| { + const env_buf = if (env) |ptr| ptr[0 .. mem.len(u8, ptr) + 1] else break; + allocator.free(env_buf); + } + allocator.free(envp_buf); +} + +pub const ExecveError = error{ + SystemResources, + AccessDenied, + InvalidExe, + FileSystem, + IsDir, + FileNotFound, + NotDir, + FileBusy, + ProcessFdQuotaExceeded, + SystemFdQuotaExceeded, + NameTooLong, + + Unexpected, +}; + +fn execveErrnoToErr(err: usize) ExecveError { + assert(err > 0); + switch (err) { + EFAULT => unreachable, + E2BIG => return error.SystemResources, + EMFILE => return error.ProcessFdQuotaExceeded, + ENAMETOOLONG => return error.NameTooLong, + ENFILE => return error.SystemFdQuotaExceeded, + ENOMEM => return error.SystemResources, + EACCES => return error.AccessDenied, + EPERM => return error.AccessDenied, + EINVAL => return error.InvalidExe, + ENOEXEC => return error.InvalidExe, + EIO => return error.FileSystem, + ELOOP => return error.FileSystem, + EISDIR => return error.IsDir, + ENOENT => return error.FileNotFound, + ENOTDIR => return error.NotDir, + ETXTBSY => return error.FileBusy, + else => return unexpectedErrno(err), + } +} + +/// Get an environment variable. +/// See also `getenvC`. +/// TODO make this go through libc when we have it +pub fn getenv(key: []const u8) ?[]const u8 { + for (environ) |ptr| { + var line_i: usize = 0; + while (ptr[line_i] != 0 and ptr[line_i] != '=') : (line_i += 1) {} + const this_key = ptr[0..line_i]; + if (!mem.eql(u8, key, this_key)) continue; + + var end_i: usize = line_i; + while (ptr[end_i] != 0) : (end_i += 1) {} + const this_value = ptr[line_i + 1 .. end_i]; + + return this_value; + } + return null; +} + +/// Get an environment variable with a null-terminated name. +/// See also `getenv`. +/// TODO https://github.com/ziglang/zig/issues/265 +pub fn getenvC(key: [*]const u8) ?[]const u8 { + if (builtin.link_libc) { + const value = system.getenv(key) orelse return null; + return mem.toSliceConst(u8, value); + } + return getenv(mem.toSliceConst(u8, key)); +} + +pub const GetCwdError = error{ + NameTooLong, + CurrentWorkingDirectoryUnlinked, + Unexpected, +}; + +/// The result is a slice of out_buffer, indexed from 0. +pub fn getcwd(out_buffer: []u8) GetCwdError![]u8 { + if (windows.is_the_target) { + return windows.GetCurrentDirectory(out_buffer); + } + + const err = if (builtin.link_libc) blk: { + break :blk if (std.c.getcwd(out_buffer.ptr, out_buffer.len)) |_| 0 else std.c._errno().*; + } else blk: { + break :blk errno(system.getcwd(out_buffer.ptr, out_buffer.len)); + }; + switch (err) { + 0 => return mem.toSlice(u8, out_buffer.ptr), + EFAULT => unreachable, + EINVAL => unreachable, + ENOENT => return error.CurrentWorkingDirectoryUnlinked, + ERANGE => return error.NameTooLong, + else => return unexpectedErrno(@intCast(usize, err)), + } +} + +pub const SymLinkError = error{ + AccessDenied, + DiskQuota, + PathAlreadyExists, + FileSystem, + SymLinkLoop, + FileNotFound, + SystemResources, + NoSpaceLeft, + ReadOnlyFileSystem, + NotDir, + NameTooLong, + InvalidUtf8, + BadPathName, + Unexpected, +}; + +/// Creates a symbolic link named `sym_link_path` which contains the string `target_path`. +/// A symbolic link (also known as a soft link) may point to an existing file or to a nonexistent +/// one; the latter case is known as a dangling link. +/// If `sym_link_path` exists, it will not be overwritten. +/// See also `symlinkC` and `symlinkW`. +pub fn symlink(target_path: []const u8, sym_link_path: []const u8) SymLinkError!void { + if (windows.is_the_target) { + const target_path_w = try windows.sliceToPrefixedFileW(target_path); + const sym_link_path_w = try windows.sliceToPrefixedFileW(sym_link_path); + return windows.CreateSymbolicLinkW(&sym_link_path_w, &target_path_w, 0); + } else { + const target_path_c = try toPosixPath(target_path); + const sym_link_path_c = try toPosixPath(sym_link_path); + return symlinkC(&target_path_c, &sym_link_path_c); + } +} + +/// This is the same as `symlink` except the parameters are null-terminated pointers. +/// See also `symlink`. +pub fn symlinkC(target_path: [*]const u8, sym_link_path: [*]const u8) SymLinkError!void { + if (windows.is_the_target) { + const target_path_w = try windows.cStrToPrefixedFileW(target_path); + const sym_link_path_w = try windows.cStrToPrefixedFileW(sym_link_path); + return windows.CreateSymbolicLinkW(&sym_link_path_w, &target_path_w, 0); + } + switch (errno(system.symlink(target_path, sym_link_path))) { + 0 => return, + EFAULT => unreachable, + EINVAL => unreachable, + EACCES => return error.AccessDenied, + EPERM => return error.AccessDenied, + EDQUOT => return error.DiskQuota, + EEXIST => return error.PathAlreadyExists, + EIO => return error.FileSystem, + ELOOP => return error.SymLinkLoop, + ENAMETOOLONG => return error.NameTooLong, + ENOENT => return error.FileNotFound, + ENOTDIR => return error.NotDir, + ENOMEM => return error.SystemResources, + ENOSPC => return error.NoSpaceLeft, + EROFS => return error.ReadOnlyFileSystem, + else => |err| return unexpectedErrno(err), + } +} + +pub fn symlinkat(target_path: []const u8, newdirfd: fd_t, sym_link_path: []const u8) SymLinkError!void { + const target_path_c = try toPosixPath(target_path); + const sym_link_path_c = try toPosixPath(sym_link_path); + return symlinkatC(target_path_c, newdirfd, sym_link_path_c); +} + +pub fn symlinkatC(target_path: [*]const u8, newdirfd: fd_t, sym_link_path: [*]const u8) SymLinkError!void { + switch (errno(system.symlinkat(target_path, newdirfd, sym_link_path))) { + 0 => return, + EFAULT => unreachable, + EINVAL => unreachable, + EACCES => return error.AccessDenied, + EPERM => return error.AccessDenied, + EDQUOT => return error.DiskQuota, + EEXIST => return error.PathAlreadyExists, + EIO => return error.FileSystem, + ELOOP => return error.SymLinkLoop, + ENAMETOOLONG => return error.NameTooLong, + ENOENT => return error.FileNotFound, + ENOTDIR => return error.NotDir, + ENOMEM => return error.SystemResources, + ENOSPC => return error.NoSpaceLeft, + EROFS => return error.ReadOnlyFileSystem, + else => |err| return unexpectedErrno(err), + } +} + +pub const UnlinkError = error{ + FileNotFound, + AccessDenied, + FileBusy, + FileSystem, + IsDir, + SymLinkLoop, + NameTooLong, + NotDir, + SystemResources, + ReadOnlyFileSystem, + Unexpected, + + /// On Windows, file paths must be valid Unicode. + InvalidUtf8, + + /// On Windows, file paths cannot contain these characters: + /// '/', '*', '?', '"', '<', '>', '|' + BadPathName, +}; + +/// Delete a name and possibly the file it refers to. +/// See also `unlinkC`. +pub fn unlink(file_path: []const u8) UnlinkError!void { + if (windows.is_the_target) { + const file_path_w = try windows.sliceToPrefixedFileW(file_path); + return windows.DeleteFileW(&file_path_w); + } else { + const file_path_c = try toPosixPath(file_path); + return unlinkC(&file_path_c); + } +} + +/// Same as `unlink` except the parameter is a null terminated UTF8-encoded string. +pub fn unlinkC(file_path: [*]const u8) UnlinkError!void { + if (windows.is_the_target) { + const file_path_w = try windows.cStrToPrefixedFileW(file_path); + return windows.DeleteFileW(&file_path_w); + } + switch (errno(system.unlink(file_path))) { + 0 => return, + EACCES => return error.AccessDenied, + EPERM => return error.AccessDenied, + EBUSY => return error.FileBusy, + EFAULT => unreachable, + EINVAL => unreachable, + EIO => return error.FileSystem, + EISDIR => return error.IsDir, + ELOOP => return error.SymLinkLoop, + ENAMETOOLONG => return error.NameTooLong, + ENOENT => return error.FileNotFound, + ENOTDIR => return error.NotDir, + ENOMEM => return error.SystemResources, + EROFS => return error.ReadOnlyFileSystem, + else => |err| return unexpectedErrno(err), + } +} + +const RenameError = error{ + AccessDenied, + FileBusy, + DiskQuota, + IsDir, + SymLinkLoop, + LinkQuotaExceeded, + NameTooLong, + FileNotFound, + NotDir, + SystemResources, + NoSpaceLeft, + PathAlreadyExists, + ReadOnlyFileSystem, + RenameAcrossMountPoints, + InvalidUtf8, + BadPathName, + Unexpected, +}; + +/// Change the name or location of a file. +pub fn rename(old_path: []const u8, new_path: []const u8) RenameError!void { + if (windows.is_the_target) { + const old_path_w = try windows.sliceToPrefixedFileW(old_path); + const new_path_w = try windows.sliceToPrefixedFileW(new_path); + return renameW(&old_path_w, &new_path_w); + } else { + const old_path_c = try toPosixPath(old_path); + const new_path_c = try toPosixPath(new_path); + return renameC(&old_path_c, &new_path_c); + } +} + +/// Same as `rename` except the parameters are null-terminated byte arrays. +pub fn renameC(old_path: [*]const u8, new_path: [*]const u8) RenameError!void { + if (windows.is_the_target) { + const old_path_w = try windows.cStrToPrefixedFileW(old_path); + const new_path_w = try windows.cStrToPrefixedFileW(new_path); + return renameW(&old_path_w, &new_path_w); + } + switch (errno(system.rename(old_path, new_path))) { + 0 => return, + EACCES => return error.AccessDenied, + EPERM => return error.AccessDenied, + EBUSY => return error.FileBusy, + EDQUOT => return error.DiskQuota, + EFAULT => unreachable, + EINVAL => unreachable, + EISDIR => return error.IsDir, + ELOOP => return error.SymLinkLoop, + EMLINK => return error.LinkQuotaExceeded, + ENAMETOOLONG => return error.NameTooLong, + ENOENT => return error.FileNotFound, + ENOTDIR => return error.NotDir, + ENOMEM => return error.SystemResources, + ENOSPC => return error.NoSpaceLeft, + EEXIST => return error.PathAlreadyExists, + ENOTEMPTY => return error.PathAlreadyExists, + EROFS => return error.ReadOnlyFileSystem, + EXDEV => return error.RenameAcrossMountPoints, + else => |err| return unexpectedErrno(err), + } +} + +/// Same as `rename` except the parameters are null-terminated UTF16LE encoded byte arrays. +/// Assumes target is Windows. +pub fn renameW(old_path: [*]const u16, new_path: [*]const u16) RenameError!void { + const flags = windows.MOVEFILE_REPLACE_EXISTING | windows.MOVEFILE_WRITE_THROUGH; + return windows.MoveFileExW(old_path, new_path, flags); +} + +pub const MakeDirError = error{ + AccessDenied, + DiskQuota, + PathAlreadyExists, + SymLinkLoop, + LinkQuotaExceeded, + NameTooLong, + FileNotFound, + SystemResources, + NoSpaceLeft, + NotDir, + ReadOnlyFileSystem, + InvalidUtf8, + BadPathName, + Unexpected, +}; + +/// Create a directory. +/// `mode` is ignored on Windows. +pub fn mkdir(dir_path: []const u8, mode: u32) MakeDirError!void { + if (windows.is_the_target) { + const dir_path_w = try windows.sliceToPrefixedFileW(dir_path); + return windows.CreateDirectoryW(&dir_path_w, null); + } else { + const dir_path_c = try toPosixPath(dir_path); + return mkdirC(&dir_path_c, mode); + } +} + +/// Same as `mkdir` but the parameter is a null-terminated UTF8-encoded string. +pub fn mkdirC(dir_path: [*]const u8, mode: u32) MakeDirError!void { + if (windows.is_the_target) { + const dir_path_w = try windows.cStrToPrefixedFileW(dir_path); + return windows.CreateDirectoryW(&dir_path_w, null); + } + switch (errno(system.mkdir(dir_path, mode))) { + 0 => return, + EACCES => return error.AccessDenied, + EPERM => return error.AccessDenied, + EDQUOT => return error.DiskQuota, + EEXIST => return error.PathAlreadyExists, + EFAULT => unreachable, + ELOOP => return error.SymLinkLoop, + EMLINK => return error.LinkQuotaExceeded, + ENAMETOOLONG => return error.NameTooLong, + ENOENT => return error.FileNotFound, + ENOMEM => return error.SystemResources, + ENOSPC => return error.NoSpaceLeft, + ENOTDIR => return error.NotDir, + EROFS => return error.ReadOnlyFileSystem, + else => |err| return unexpectedErrno(err), + } +} + +pub const DeleteDirError = error{ + AccessDenied, + FileBusy, + SymLinkLoop, + NameTooLong, + FileNotFound, + SystemResources, + NotDir, + DirNotEmpty, + ReadOnlyFileSystem, + InvalidUtf8, + BadPathName, + Unexpected, +}; + +/// Deletes an empty directory. +pub fn rmdir(dir_path: []const u8) DeleteDirError!void { + if (windows.is_the_target) { + const dir_path_w = try windows.sliceToPrefixedFileW(dir_path); + return windows.RemoveDirectoryW(&dir_path_w); + } else { + const dir_path_c = try toPosixPath(dir_path); + return rmdirC(&dir_path_c); + } +} + +/// Same as `rmdir` except the parameter is null-terminated. +pub fn rmdirC(dir_path: [*]const u8) DeleteDirError!void { + if (windows.is_the_target) { + const dir_path_w = try windows.cStrToPrefixedFileW(dir_path); + return windows.RemoveDirectoryW(&dir_path_w); + } + switch (errno(system.rmdir(dir_path))) { + 0 => return, + EACCES => return error.AccessDenied, + EPERM => return error.AccessDenied, + EBUSY => return error.FileBusy, + EFAULT => unreachable, + EINVAL => unreachable, + ELOOP => return error.SymLinkLoop, + ENAMETOOLONG => return error.NameTooLong, + ENOENT => return error.FileNotFound, + ENOMEM => return error.SystemResources, + ENOTDIR => return error.NotDir, + EEXIST => return error.DirNotEmpty, + ENOTEMPTY => return error.DirNotEmpty, + EROFS => return error.ReadOnlyFileSystem, + else => |err| return unexpectedErrno(err), + } +} + +pub const ChangeCurDirError = error{ + AccessDenied, + FileSystem, + SymLinkLoop, + NameTooLong, + FileNotFound, + SystemResources, + NotDir, + Unexpected, +}; + +/// Changes the current working directory of the calling process. +/// `dir_path` is recommended to be a UTF-8 encoded string. +pub fn chdir(dir_path: []const u8) ChangeCurDirError!void { + if (windows.is_the_target) { + const dir_path_w = try windows.sliceToPrefixedFileW(dir_path); + @compileError("TODO implement chdir for Windows"); + } else { + const dir_path_c = try toPosixPath(dir_path); + return chdirC(&dir_path_c); + } +} + +/// Same as `chdir` except the parameter is null-terminated. +pub fn chdirC(dir_path: [*]const u8) ChangeCurDirError!void { + if (windows.is_the_target) { + const dir_path_w = try windows.cStrToPrefixedFileW(dir_path); + @compileError("TODO implement chdir for Windows"); + } + switch (errno(system.chdir(dir_path))) { + 0 => return, + EACCES => return error.AccessDenied, + EFAULT => unreachable, + EIO => return error.FileSystem, + ELOOP => return error.SymLinkLoop, + ENAMETOOLONG => return error.NameTooLong, + ENOENT => return error.FileNotFound, + ENOMEM => return error.SystemResources, + ENOTDIR => return error.NotDir, + else => |err| return unexpectedErrno(err), + } +} + +pub const ReadLinkError = error{ + AccessDenied, + FileSystem, + SymLinkLoop, + NameTooLong, + FileNotFound, + SystemResources, + NotDir, + Unexpected, +}; + +/// Read value of a symbolic link. +/// The return value is a slice of `out_buffer` from index 0. +pub fn readlink(file_path: []const u8, out_buffer: []u8) ReadLinkError![]u8 { + if (windows.is_the_target) { + const file_path_w = try windows.sliceToPrefixedFileW(file_path); + @compileError("TODO implement readlink for Windows"); + } else { + const file_path_c = try toPosixPath(file_path); + return readlinkC(&file_path_c, out_buffer); + } +} + +/// Same as `readlink` except `file_path` is null-terminated. +pub fn readlinkC(file_path: [*]const u8, out_buffer: []u8) ReadLinkError![]u8 { + if (windows.is_the_target) { + const file_path_w = try windows.cStrToPrefixedFileW(file_path); + @compileError("TODO implement readlink for Windows"); + } + const rc = system.readlink(file_path, out_buffer.ptr, out_buffer.len); + switch (errno(rc)) { + 0 => return out_buffer[0..@bitCast(usize, rc)], + EACCES => return error.AccessDenied, + EFAULT => unreachable, + EINVAL => unreachable, + EIO => return error.FileSystem, + ELOOP => return error.SymLinkLoop, + ENAMETOOLONG => return error.NameTooLong, + ENOENT => return error.FileNotFound, + ENOMEM => return error.SystemResources, + ENOTDIR => return error.NotDir, + else => |err| return unexpectedErrno(err), + } +} + +pub const SetIdError = error{ + ResourceLimitReached, + InvalidUserId, + PermissionDenied, + Unexpected, +}; + +pub fn setuid(uid: u32) SetIdError!void { + switch (errno(system.setuid(uid))) { + 0 => return, + EAGAIN => return error.ResourceLimitReached, + EINVAL => return error.InvalidUserId, + EPERM => return error.PermissionDenied, + else => |err| return unexpectedErrno(err), + } +} + +pub fn setreuid(ruid: u32, euid: u32) SetIdError!void { + switch (errno(system.setreuid(ruid, euid))) { + 0 => return, + EAGAIN => return error.ResourceLimitReached, + EINVAL => return error.InvalidUserId, + EPERM => return error.PermissionDenied, + else => |err| return unexpectedErrno(err), + } +} + +pub fn setgid(gid: u32) SetIdError!void { + switch (errno(system.setgid(gid))) { + 0 => return, + EAGAIN => return error.ResourceLimitReached, + EINVAL => return error.InvalidUserId, + EPERM => return error.PermissionDenied, + else => |err| return unexpectedErrno(err), + } +} + +pub fn setregid(rgid: u32, egid: u32) SetIdError!void { + switch (errno(system.setregid(rgid, egid))) { + 0 => return, + EAGAIN => return error.ResourceLimitReached, + EINVAL => return error.InvalidUserId, + EPERM => return error.PermissionDenied, + else => |err| return unexpectedErrno(err), + } +} + +/// Test whether a file descriptor refers to a terminal. +pub fn isatty(handle: fd_t) bool { + if (windows.is_the_target) { + if (isCygwinPty(handle)) + return true; + + var out: windows.DWORD = undefined; + return windows.kernel32.GetConsoleMode(handle, &out) != 0; + } + if (builtin.link_libc) { + return system.isatty(handle) != 0; + } + if (wasi.is_the_target) { + @compileError("TODO implement std.os.isatty for WASI"); + } + if (linux.is_the_target) { + var wsz: linux.winsize = undefined; + return linux.syscall3(linux.SYS_ioctl, @bitCast(usize, isize(handle)), linux.TIOCGWINSZ, @ptrToInt(&wsz)) == 0; + } + unreachable; +} + +pub fn isCygwinPty(handle: fd_t) bool { + if (!windows.is_the_target) return false; + + const size = @sizeOf(windows.FILE_NAME_INFO); + var name_info_bytes align(@alignOf(windows.FILE_NAME_INFO)) = [_]u8{0} ** (size + windows.MAX_PATH); + + if (windows.kernel32.GetFileInformationByHandleEx( + handle, + windows.FileNameInfo, + @ptrCast(*c_void, &name_info_bytes), + name_info_bytes.len, + ) == 0) { + return false; + } + + const name_info = @ptrCast(*const windows.FILE_NAME_INFO, &name_info_bytes[0]); + const name_bytes = name_info_bytes[size .. size + usize(name_info.FileNameLength)]; + const name_wide = @bytesToSlice(u16, name_bytes); + return mem.indexOf(u16, name_wide, [_]u16{ 'm', 's', 'y', 's', '-' }) != null or + mem.indexOf(u16, name_wide, [_]u16{ '-', 'p', 't', 'y' }) != null; +} + +pub const SocketError = error{ + /// Permission to create a socket of the specified type and/or + /// pro‐tocol is denied. + PermissionDenied, + + /// The implementation does not support the specified address family. + AddressFamilyNotSupported, + + /// Unknown protocol, or protocol family not available. + ProtocolFamilyNotAvailable, + + /// The per-process limit on the number of open file descriptors has been reached. + ProcessFdQuotaExceeded, + + /// The system-wide limit on the total number of open files has been reached. + SystemFdQuotaExceeded, + + /// Insufficient memory is available. The socket cannot be created until sufficient + /// resources are freed. + SystemResources, + + /// The protocol type or the specified protocol is not supported within this domain. + ProtocolNotSupported, + + Unexpected, +}; + +pub fn socket(domain: u32, socket_type: u32, protocol: u32) SocketError!i32 { + const rc = system.socket(domain, socket_type, protocol); + switch (errno(rc)) { + 0 => return @intCast(i32, rc), + EACCES => return error.PermissionDenied, + EAFNOSUPPORT => return error.AddressFamilyNotSupported, + EINVAL => return error.ProtocolFamilyNotAvailable, + EMFILE => return error.ProcessFdQuotaExceeded, + ENFILE => return error.SystemFdQuotaExceeded, + ENOBUFS, ENOMEM => return error.SystemResources, + EPROTONOSUPPORT => return error.ProtocolNotSupported, + else => |err| return unexpectedErrno(err), + } +} + +pub const BindError = error{ + /// The address is protected, and the user is not the superuser. + /// For UNIX domain sockets: Search permission is denied on a component + /// of the path prefix. + AccessDenied, + + /// The given address is already in use, or in the case of Internet domain sockets, + /// The port number was specified as zero in the socket + /// address structure, but, upon attempting to bind to an ephemeral port, it was + /// determined that all port numbers in the ephemeral port range are currently in + /// use. See the discussion of /proc/sys/net/ipv4/ip_local_port_range ip(7). + AddressInUse, + + /// A nonexistent interface was requested or the requested address was not local. + AddressNotAvailable, + + /// Too many symbolic links were encountered in resolving addr. + SymLinkLoop, + + /// addr is too long. + NameTooLong, + + /// A component in the directory prefix of the socket pathname does not exist. + FileNotFound, + + /// Insufficient kernel memory was available. + SystemResources, + + /// A component of the path prefix is not a directory. + NotDir, + + /// The socket inode would reside on a read-only filesystem. + ReadOnlyFileSystem, + + Unexpected, +}; + +/// addr is `*const T` where T is one of the sockaddr +pub fn bind(fd: i32, addr: *const sockaddr) BindError!void { + const rc = system.bind(fd, addr, @sizeOf(sockaddr)); + switch (errno(rc)) { + 0 => return, + EACCES => return error.AccessDenied, + EADDRINUSE => return error.AddressInUse, + EBADF => unreachable, // always a race condition if this error is returned + EINVAL => unreachable, + ENOTSOCK => unreachable, + EADDRNOTAVAIL => return error.AddressNotAvailable, + EFAULT => unreachable, + ELOOP => return error.SymLinkLoop, + ENAMETOOLONG => return error.NameTooLong, + ENOENT => return error.FileNotFound, + ENOMEM => return error.SystemResources, + ENOTDIR => return error.NotDir, + EROFS => return error.ReadOnlyFileSystem, + else => |err| return unexpectedErrno(err), + } +} + +const ListenError = error{ + /// Another socket is already listening on the same port. + /// For Internet domain sockets, the socket referred to by sockfd had not previously + /// been bound to an address and, upon attempting to bind it to an ephemeral port, it + /// was determined that all port numbers in the ephemeral port range are currently in + /// use. See the discussion of /proc/sys/net/ipv4/ip_local_port_range in ip(7). + AddressInUse, + + /// The file descriptor sockfd does not refer to a socket. + FileDescriptorNotASocket, + + /// The socket is not of a type that supports the listen() operation. + OperationNotSupported, + + Unexpected, +}; + +pub fn listen(sockfd: i32, backlog: u32) ListenError!void { + const rc = system.listen(sockfd, backlog); + switch (errno(rc)) { + 0 => return, + EADDRINUSE => return error.AddressInUse, + EBADF => unreachable, + ENOTSOCK => return error.FileDescriptorNotASocket, + EOPNOTSUPP => return error.OperationNotSupported, + else => |err| return unexpectedErrno(err), + } +} + +pub const AcceptError = error{ + ConnectionAborted, + + /// The per-process limit on the number of open file descriptors has been reached. + ProcessFdQuotaExceeded, + + /// The system-wide limit on the total number of open files has been reached. + SystemFdQuotaExceeded, + + /// Not enough free memory. This often means that the memory allocation is limited + /// by the socket buffer limits, not by the system memory. + SystemResources, + + /// The file descriptor sockfd does not refer to a socket. + FileDescriptorNotASocket, + + /// The referenced socket is not of type SOCK_STREAM. + OperationNotSupported, + + ProtocolFailure, + + /// Firewall rules forbid connection. + BlockedByFirewall, + + Unexpected, +}; + +/// Accept a connection on a socket. `fd` must be opened in blocking mode. +/// See also `accept4_async`. +pub fn accept4(fd: i32, addr: *sockaddr, flags: u32) AcceptError!i32 { + while (true) { + var sockaddr_size = u32(@sizeOf(sockaddr)); + const rc = system.accept4(fd, addr, &sockaddr_size, flags); + switch (errno(rc)) { + 0 => return @intCast(i32, rc), + EINTR => continue, + else => |err| return unexpectedErrno(err), + + EAGAIN => unreachable, // This function is for blocking only. + EBADF => unreachable, // always a race condition + ECONNABORTED => return error.ConnectionAborted, + EFAULT => unreachable, + EINVAL => unreachable, + EMFILE => return error.ProcessFdQuotaExceeded, + ENFILE => return error.SystemFdQuotaExceeded, + ENOBUFS => return error.SystemResources, + ENOMEM => return error.SystemResources, + ENOTSOCK => return error.FileDescriptorNotASocket, + EOPNOTSUPP => return error.OperationNotSupported, + EPROTO => return error.ProtocolFailure, + EPERM => return error.BlockedByFirewall, + } + } +} + +/// This is the same as `accept4` except `fd` is expected to be non-blocking. +/// Returns -1 if would block. +pub fn accept4_async(fd: i32, addr: *sockaddr, flags: u32) AcceptError!i32 { + while (true) { + var sockaddr_size = u32(@sizeOf(sockaddr)); + const rc = system.accept4(fd, addr, &sockaddr_size, flags); + switch (errno(rc)) { + 0 => return @intCast(i32, rc), + EINTR => continue, + else => |err| return unexpectedErrno(err), + + EAGAIN => return -1, + EBADF => unreachable, // always a race condition + ECONNABORTED => return error.ConnectionAborted, + EFAULT => unreachable, + EINVAL => unreachable, + EMFILE => return error.ProcessFdQuotaExceeded, + ENFILE => return error.SystemFdQuotaExceeded, + ENOBUFS => return error.SystemResources, + ENOMEM => return error.SystemResources, + ENOTSOCK => return error.FileDescriptorNotASocket, + EOPNOTSUPP => return error.OperationNotSupported, + EPROTO => return error.ProtocolFailure, + EPERM => return error.BlockedByFirewall, + } + } +} + +pub const EpollCreateError = error{ + /// The per-user limit on the number of epoll instances imposed by + /// /proc/sys/fs/epoll/max_user_instances was encountered. See epoll(7) for further + /// details. + /// Or, The per-process limit on the number of open file descriptors has been reached. + ProcessFdQuotaExceeded, + + /// The system-wide limit on the total number of open files has been reached. + SystemFdQuotaExceeded, + + /// There was insufficient memory to create the kernel object. + SystemResources, + + Unexpected, +}; + +pub fn epoll_create1(flags: u32) EpollCreateError!i32 { + const rc = system.epoll_create1(flags); + switch (errno(rc)) { + 0 => return @intCast(i32, rc), + else => |err| return unexpectedErrno(err), + + EINVAL => unreachable, + EMFILE => return error.ProcessFdQuotaExceeded, + ENFILE => return error.SystemFdQuotaExceeded, + ENOMEM => return error.SystemResources, + } +} + +pub const EpollCtlError = error{ + /// op was EPOLL_CTL_ADD, and the supplied file descriptor fd is already registered + /// with this epoll instance. + FileDescriptorAlreadyPresentInSet, + + /// fd refers to an epoll instance and this EPOLL_CTL_ADD operation would result in a + /// circular loop of epoll instances monitoring one another. + OperationCausesCircularLoop, + + /// op was EPOLL_CTL_MOD or EPOLL_CTL_DEL, and fd is not registered with this epoll + /// instance. + FileDescriptorNotRegistered, + + /// There was insufficient memory to handle the requested op control operation. + SystemResources, + + /// The limit imposed by /proc/sys/fs/epoll/max_user_watches was encountered while + /// trying to register (EPOLL_CTL_ADD) a new file descriptor on an epoll instance. + /// See epoll(7) for further details. + UserResourceLimitReached, + + /// The target file fd does not support epoll. This error can occur if fd refers to, + /// for example, a regular file or a directory. + FileDescriptorIncompatibleWithEpoll, + + Unexpected, +}; + +pub fn epoll_ctl(epfd: i32, op: u32, fd: i32, event: ?*epoll_event) EpollCtlError!void { + const rc = system.epoll_ctl(epfd, op, fd, event); + switch (errno(rc)) { + 0 => return, + else => |err| return unexpectedErrno(err), + + EBADF => unreachable, // always a race condition if this happens + EEXIST => return error.FileDescriptorAlreadyPresentInSet, + EINVAL => unreachable, + ELOOP => return error.OperationCausesCircularLoop, + ENOENT => return error.FileDescriptorNotRegistered, + ENOMEM => return error.SystemResources, + ENOSPC => return error.UserResourceLimitReached, + EPERM => return error.FileDescriptorIncompatibleWithEpoll, + } +} + +/// Waits for an I/O event on an epoll file descriptor. +/// Returns the number of file descriptors ready for the requested I/O, +/// or zero if no file descriptor became ready during the requested timeout milliseconds. +pub fn epoll_wait(epfd: i32, events: []epoll_event, timeout: i32) usize { + while (true) { + // TODO get rid of the @intCast + const rc = system.epoll_wait(epfd, events.ptr, @intCast(u32, events.len), timeout); + switch (errno(rc)) { + 0 => return @intCast(usize, rc), + EINTR => continue, + EBADF => unreachable, + EFAULT => unreachable, + EINVAL => unreachable, + else => unreachable, + } + } +} + +pub const EventFdError = error{ + SystemResources, + ProcessFdQuotaExceeded, + SystemFdQuotaExceeded, + Unexpected, +}; + +pub fn eventfd(initval: u32, flags: u32) EventFdError!i32 { + const rc = system.eventfd(initval, flags); + switch (errno(rc)) { + 0 => return @intCast(i32, rc), + else => |err| return unexpectedErrno(err), + + EINVAL => unreachable, // invalid parameters + EMFILE => return error.ProcessFdQuotaExceeded, + ENFILE => return error.SystemFdQuotaExceeded, + ENODEV => return error.SystemResources, + ENOMEM => return error.SystemResources, + } +} + +pub const GetSockNameError = error{ + /// Insufficient resources were available in the system to perform the operation. + SystemResources, + + Unexpected, +}; + +pub fn getsockname(sockfd: i32) GetSockNameError!sockaddr { + var addr: sockaddr = undefined; + var addrlen: socklen_t = @sizeOf(sockaddr); + switch (errno(system.getsockname(sockfd, &addr, &addrlen))) { + 0 => return addr, + else => |err| return unexpectedErrno(err), + + EBADF => unreachable, // always a race condition + EFAULT => unreachable, + EINVAL => unreachable, // invalid parameters + ENOTSOCK => unreachable, + ENOBUFS => return error.SystemResources, + } +} + +pub const ConnectError = error{ + /// For UNIX domain sockets, which are identified by pathname: Write permission is denied on the socket + /// file, or search permission is denied for one of the directories in the path prefix. + /// or + /// The user tried to connect to a broadcast address without having the socket broadcast flag enabled or + /// the connection request failed because of a local firewall rule. + PermissionDenied, + + /// Local address is already in use. + AddressInUse, + + /// (Internet domain sockets) The socket referred to by sockfd had not previously been bound to an + /// address and, upon attempting to bind it to an ephemeral port, it was determined that all port numbers + /// in the ephemeral port range are currently in use. See the discussion of + /// /proc/sys/net/ipv4/ip_local_port_range in ip(7). + AddressNotAvailable, + + /// The passed address didn't have the correct address family in its sa_family field. + AddressFamilyNotSupported, + + /// Insufficient entries in the routing cache. + SystemResources, + + /// A connect() on a stream socket found no one listening on the remote address. + ConnectionRefused, + + /// Network is unreachable. + NetworkUnreachable, + + /// Timeout while attempting connection. The server may be too busy to accept new connections. Note + /// that for IP sockets the timeout may be very long when syncookies are enabled on the server. + ConnectionTimedOut, + + Unexpected, +}; + +/// Initiate a connection on a socket. +/// This is for blocking file descriptors only. +/// For non-blocking, see `connect_async`. +pub fn connect(sockfd: i32, sock_addr: *sockaddr, len: socklen_t) ConnectError!void { + while (true) { + switch (errno(system.connect(sockfd, sock_addr, len))) { + 0 => return, + EACCES => return error.PermissionDenied, + EPERM => return error.PermissionDenied, + EADDRINUSE => return error.AddressInUse, + EADDRNOTAVAIL => return error.AddressNotAvailable, + EAFNOSUPPORT => return error.AddressFamilyNotSupported, + EAGAIN => return error.SystemResources, + EALREADY => unreachable, // The socket is nonblocking and a previous connection attempt has not yet been completed. + EBADF => unreachable, // sockfd is not a valid open file descriptor. + ECONNREFUSED => return error.ConnectionRefused, + EFAULT => unreachable, // The socket structure address is outside the user's address space. + EINPROGRESS => unreachable, // The socket is nonblocking and the connection cannot be completed immediately. + EINTR => continue, + EISCONN => unreachable, // The socket is already connected. + ENETUNREACH => return error.NetworkUnreachable, + ENOTSOCK => unreachable, // The file descriptor sockfd does not refer to a socket. + EPROTOTYPE => unreachable, // The socket type does not support the requested communications protocol. + ETIMEDOUT => return error.ConnectionTimedOut, + else => |err| return unexpectedErrno(err), + } + } +} + +/// Same as `connect` except it is for blocking socket file descriptors. +/// It expects to receive EINPROGRESS`. +pub fn connect_async(sockfd: i32, sock_addr: *sockaddr, len: socklen_t) ConnectError!void { + while (true) { + switch (errno(system.connect(sockfd, sock_addr, len))) { + EINVAL => unreachable, + EINTR => continue, + 0, EINPROGRESS => return, + EACCES => return error.PermissionDenied, + EPERM => return error.PermissionDenied, + EADDRINUSE => return error.AddressInUse, + EADDRNOTAVAIL => return error.AddressNotAvailable, + EAFNOSUPPORT => return error.AddressFamilyNotSupported, + EAGAIN => return error.SystemResources, + EALREADY => unreachable, // The socket is nonblocking and a previous connection attempt has not yet been completed. + EBADF => unreachable, // sockfd is not a valid open file descriptor. + ECONNREFUSED => return error.ConnectionRefused, + EFAULT => unreachable, // The socket structure address is outside the user's address space. + EISCONN => unreachable, // The socket is already connected. + ENETUNREACH => return error.NetworkUnreachable, + ENOTSOCK => unreachable, // The file descriptor sockfd does not refer to a socket. + EPROTOTYPE => unreachable, // The socket type does not support the requested communications protocol. + ETIMEDOUT => return error.ConnectionTimedOut, + else => |err| return unexpectedErrno(err), + } + } +} + +pub fn getsockoptError(sockfd: i32) ConnectError!void { + var err_code: u32 = undefined; + var size: u32 = @sizeOf(u32); + const rc = system.getsockopt(sockfd, SOL_SOCKET, SO_ERROR, @ptrCast([*]u8, &err_code), &size); + assert(size == 4); + switch (errno(rc)) { + 0 => switch (err_code) { + 0 => return, + EACCES => return error.PermissionDenied, + EPERM => return error.PermissionDenied, + EADDRINUSE => return error.AddressInUse, + EADDRNOTAVAIL => return error.AddressNotAvailable, + EAFNOSUPPORT => return error.AddressFamilyNotSupported, + EAGAIN => return error.SystemResources, + EALREADY => unreachable, // The socket is nonblocking and a previous connection attempt has not yet been completed. + EBADF => unreachable, // sockfd is not a valid open file descriptor. + ECONNREFUSED => return error.ConnectionRefused, + EFAULT => unreachable, // The socket structure address is outside the user's address space. + EISCONN => unreachable, // The socket is already connected. + ENETUNREACH => return error.NetworkUnreachable, + ENOTSOCK => unreachable, // The file descriptor sockfd does not refer to a socket. + EPROTOTYPE => unreachable, // The socket type does not support the requested communications protocol. + ETIMEDOUT => return error.ConnectionTimedOut, + else => |err| return unexpectedErrno(err), + }, + EBADF => unreachable, // The argument sockfd is not a valid file descriptor. + EFAULT => unreachable, // The address pointed to by optval or optlen is not in a valid part of the process address space. + EINVAL => unreachable, + ENOPROTOOPT => unreachable, // The option is unknown at the level indicated. + ENOTSOCK => unreachable, // The file descriptor sockfd does not refer to a socket. + else => |err| return unexpectedErrno(err), + } +} + +pub fn waitpid(pid: i32, flags: u32) u32 { + // TODO allow implicit pointer cast from *u32 to *c_uint ? + const Status = if (builtin.link_libc) c_uint else u32; + var status: Status = undefined; + while (true) { + switch (errno(system.waitpid(pid, &status, flags))) { + 0 => return @bitCast(u32, status), + EINTR => continue, + ECHILD => unreachable, // The process specified does not exist. It would be a race condition to handle this error. + EINVAL => unreachable, // The options argument was invalid + else => unreachable, + } + } +} + +pub const FStatError = error{ + SystemResources, + Unexpected, +}; + +pub fn fstat(fd: fd_t) FStatError!Stat { + var stat: Stat = undefined; + if (darwin.is_the_target) { + switch (darwin.getErrno(darwin.@"fstat$INODE64"(fd, &stat))) { + 0 => return stat, + EBADF => unreachable, // Always a race condition. + ENOMEM => return error.SystemResources, + else => |err| return unexpectedErrno(err), + } + } + + switch (errno(system.fstat(fd, &stat))) { + 0 => return stat, + EBADF => unreachable, // Always a race condition. + ENOMEM => return error.SystemResources, + else => |err| return unexpectedErrno(err), + } +} + +pub const KQueueError = error{ + /// The per-process limit on the number of open file descriptors has been reached. + ProcessFdQuotaExceeded, + + /// The system-wide limit on the total number of open files has been reached. + SystemFdQuotaExceeded, + + Unexpected, +}; + +pub fn kqueue() KQueueError!i32 { + const rc = system.kqueue(); + switch (errno(rc)) { + 0 => return @intCast(i32, rc), + EMFILE => return error.ProcessFdQuotaExceeded, + ENFILE => return error.SystemFdQuotaExceeded, + else => |err| return unexpectedErrno(err), + } +} + +pub const KEventError = error{ + /// The process does not have permission to register a filter. + AccessDenied, + + /// The event could not be found to be modified or deleted. + EventNotFound, + + /// No memory was available to register the event. + SystemResources, + + /// The specified process to attach to does not exist. + ProcessNotFound, + + /// changelist or eventlist had too many items on it. + /// TODO remove this possibility + Overflow, +}; + +pub fn kevent( + kq: i32, + changelist: []const Kevent, + eventlist: []Kevent, + timeout: ?*const timespec, +) KEventError!usize { + while (true) { + const rc = system.kevent( + kq, + changelist.ptr, + try math.cast(c_int, changelist.len), + eventlist.ptr, + try math.cast(c_int, eventlist.len), + timeout, + ); + switch (errno(rc)) { + 0 => return @intCast(usize, rc), + EACCES => return error.AccessDenied, + EFAULT => unreachable, + EBADF => unreachable, // Always a race condition. + EINTR => continue, + EINVAL => unreachable, + ENOENT => return error.EventNotFound, + ENOMEM => return error.SystemResources, + ESRCH => return error.ProcessNotFound, + else => unreachable, + } + } +} + +pub const INotifyInitError = error{ + ProcessFdQuotaExceeded, + SystemFdQuotaExceeded, + SystemResources, + Unexpected, +}; + +/// initialize an inotify instance +pub fn inotify_init1(flags: u32) INotifyInitError!i32 { + const rc = system.inotify_init1(flags); + switch (errno(rc)) { + 0 => return @intCast(i32, rc), + EINVAL => unreachable, + EMFILE => return error.ProcessFdQuotaExceeded, + ENFILE => return error.SystemFdQuotaExceeded, + ENOMEM => return error.SystemResources, + else => |err| return unexpectedErrno(err), + } +} + +pub const INotifyAddWatchError = error{ + AccessDenied, + NameTooLong, + FileNotFound, + SystemResources, + UserResourceLimitReached, + Unexpected, +}; + +/// add a watch to an initialized inotify instance +pub fn inotify_add_watch(inotify_fd: i32, pathname: []const u8, mask: u32) INotifyAddWatchError!i32 { + const pathname_c = try toPosixPath(pathname); + return inotify_add_watchC(inotify_fd, &pathname_c, mask); +} + +/// Same as `inotify_add_watch` except pathname is null-terminated. +pub fn inotify_add_watchC(inotify_fd: i32, pathname: [*]const u8, mask: u32) INotifyAddWatchError!i32 { + const rc = system.inotify_add_watch(inotify_fd, pathname, mask); + switch (errno(rc)) { + 0 => return @intCast(i32, rc), + EACCES => return error.AccessDenied, + EBADF => unreachable, + EFAULT => unreachable, + EINVAL => unreachable, + ENAMETOOLONG => return error.NameTooLong, + ENOENT => return error.FileNotFound, + ENOMEM => return error.SystemResources, + ENOSPC => return error.UserResourceLimitReached, + else => |err| return unexpectedErrno(err), + } +} + +/// remove an existing watch from an inotify instance +pub fn inotify_rm_watch(inotify_fd: i32, wd: i32) void { + switch (errno(system.inotify_rm_watch(inotify_fd, wd))) { + 0 => return, + EBADF => unreachable, + EINVAL => unreachable, + else => unreachable, + } +} + +pub const MProtectError = error{ + /// The memory cannot be given the specified access. This can happen, for example, if you + /// mmap(2) a file to which you have read-only access, then ask mprotect() to mark it + /// PROT_WRITE. + AccessDenied, + + /// Changing the protection of a memory region would result in the total number of map‐ + /// pings with distinct attributes (e.g., read versus read/write protection) exceeding the + /// allowed maximum. (For example, making the protection of a range PROT_READ in the mid‐ + /// dle of a region currently protected as PROT_READ|PROT_WRITE would result in three map‐ + /// pings: two read/write mappings at each end and a read-only mapping in the middle.) + OutOfMemory, + Unexpected, +}; + +/// `memory.len` must be page-aligned. +pub fn mprotect(memory: []align(mem.page_size) u8, protection: u32) MProtectError!void { + assert(mem.isAligned(memory.len, mem.page_size)); + switch (errno(system.mprotect(memory.ptr, memory.len, protection))) { + 0 => return, + EINVAL => unreachable, + EACCES => return error.AccessDenied, + ENOMEM => return error.OutOfMemory, + else => |err| return unexpectedErrno(err), + } +} + +pub const ForkError = error{ + SystemResources, + Unexpected, +}; + +pub fn fork() ForkError!pid_t { + const rc = system.fork(); + switch (errno(rc)) { + 0 => return @intCast(pid_t, rc), + EAGAIN => return error.SystemResources, + ENOMEM => return error.SystemResources, + else => |err| return unexpectedErrno(err), + } +} + +pub const MMapError = error{ + /// The underlying filesystem of the specified file does not support memory mapping. + MemoryMappingNotSupported, + + /// A file descriptor refers to a non-regular file. Or a file mapping was requested, + /// but the file descriptor is not open for reading. Or `MAP_SHARED` was requested + /// and `PROT_WRITE` is set, but the file descriptor is not open in `O_RDWR` mode. + /// Or `PROT_WRITE` is set, but the file is append-only. + AccessDenied, + + /// The `prot` argument asks for `PROT_EXEC` but the mapped area belongs to a file on + /// a filesystem that was mounted no-exec. + PermissionDenied, + LockedMemoryLimitExceeded, + OutOfMemory, + Unexpected, +}; + +/// Map files or devices into memory. +/// Use of a mapped region can result in these signals: +/// * SIGSEGV - Attempted write into a region mapped as read-only. +/// * SIGBUS - Attempted access to a portion of the buffer that does not correspond to the file +pub fn mmap( + ptr: ?[*]align(mem.page_size) u8, + length: usize, + prot: u32, + flags: u32, + fd: fd_t, + offset: u64, +) MMapError![]align(mem.page_size) u8 { + const err = if (builtin.link_libc) blk: { + const rc = std.c.mmap(ptr, length, prot, flags, fd, offset); + if (rc != std.c.MAP_FAILED) return @ptrCast([*]align(mem.page_size) u8, @alignCast(mem.page_size, rc))[0..length]; + break :blk @intCast(usize, system._errno().*); + } else blk: { + const rc = system.mmap(ptr, length, prot, flags, fd, offset); + const err = errno(rc); + if (err == 0) return @intToPtr([*]align(mem.page_size) u8, rc)[0..length]; + break :blk err; + }; + switch (err) { + ETXTBSY => return error.AccessDenied, + EACCES => return error.AccessDenied, + EPERM => return error.PermissionDenied, + EAGAIN => return error.LockedMemoryLimitExceeded, + EBADF => unreachable, // Always a race condition. + EOVERFLOW => unreachable, // The number of pages used for length + offset would overflow. + ENODEV => return error.MemoryMappingNotSupported, + EINVAL => unreachable, // Invalid parameters to mmap() + ENOMEM => return error.OutOfMemory, + else => return unexpectedErrno(err), + } +} + +/// Deletes the mappings for the specified address range, causing +/// further references to addresses within the range to generate invalid memory references. +/// Note that while POSIX allows unmapping a region in the middle of an existing mapping, +/// Zig's munmap function does not, for two reasons: +/// * It violates the Zig principle that resource deallocation must succeed. +/// * The Windows function, VirtualFree, has this restriction. +pub fn munmap(memory: []align(mem.page_size) u8) void { + switch (errno(system.munmap(memory.ptr, memory.len))) { + 0 => return, + EINVAL => unreachable, // Invalid parameters. + ENOMEM => unreachable, // Attempted to unmap a region in the middle of an existing mapping. + else => unreachable, + } +} + +pub const AccessError = error{ + PermissionDenied, + FileNotFound, + NameTooLong, + InputOutput, + SystemResources, + BadPathName, + + /// On Windows, file paths must be valid Unicode. + InvalidUtf8, + + Unexpected, +}; + +/// check user's permissions for a file +/// TODO currently this assumes `mode` is `F_OK` on Windows. +pub fn access(path: []const u8, mode: u32) AccessError!void { + if (windows.is_the_target) { + const path_w = try windows.sliceToPrefixedFileW(path); + _ = try windows.GetFileAttributesW(&path_w); + return; + } + const path_c = try toPosixPath(path); + return accessC(&path_c, mode); +} + +/// Same as `access` except `path` is null-terminated. +pub fn accessC(path: [*]const u8, mode: u32) AccessError!void { + if (windows.is_the_target) { + const path_w = try windows.cStrToPrefixedFileW(path); + _ = try windows.GetFileAttributesW(&path_w); + return; + } + switch (errno(system.access(path, mode))) { + 0 => return, + EACCES => return error.PermissionDenied, + EROFS => return error.PermissionDenied, + ELOOP => return error.PermissionDenied, + ETXTBSY => return error.PermissionDenied, + ENOTDIR => return error.FileNotFound, + ENOENT => return error.FileNotFound, + + ENAMETOOLONG => return error.NameTooLong, + EINVAL => unreachable, + EFAULT => unreachable, + EIO => return error.InputOutput, + ENOMEM => return error.SystemResources, + else => |err| return unexpectedErrno(err), + } +} + +/// Call from Windows-specific code if you already have a UTF-16LE encoded, null terminated string. +/// Otherwise use `access` or `accessC`. +/// TODO currently this ignores `mode`. +pub fn accessW(path: [*]const u16, mode: u32) windows.GetFileAttributesError!void { + const ret = try windows.GetFileAttributesW(path); + if (ret != windows.INVALID_FILE_ATTRIBUTES) { + return; + } + switch (windows.kernel32.GetLastError()) { + windows.ERROR.FILE_NOT_FOUND => return error.FileNotFound, + windows.ERROR.PATH_NOT_FOUND => return error.FileNotFound, + windows.ERROR.ACCESS_DENIED => return error.PermissionDenied, + else => |err| return windows.unexpectedError(err), + } +} + +pub const PipeError = error{ + SystemFdQuotaExceeded, + ProcessFdQuotaExceeded, + Unexpected, +}; + +/// Creates a unidirectional data channel that can be used for interprocess communication. +pub fn pipe() PipeError![2]fd_t { + var fds: [2]fd_t = undefined; + switch (errno(system.pipe(&fds))) { + 0 => return fds, + EINVAL => unreachable, // Invalid parameters to pipe() + EFAULT => unreachable, // Invalid fds pointer + ENFILE => return error.SystemFdQuotaExceeded, + EMFILE => return error.ProcessFdQuotaExceeded, + else => |err| return unexpectedErrno(err), + } +} + +pub fn pipe2(flags: u32) PipeError![2]fd_t { + var fds: [2]fd_t = undefined; + switch (errno(system.pipe2(&fds, flags))) { + 0 => return fds, + EINVAL => unreachable, // Invalid flags + EFAULT => unreachable, // Invalid fds pointer + ENFILE => return error.SystemFdQuotaExceeded, + EMFILE => return error.ProcessFdQuotaExceeded, + else => |err| return unexpectedErrno(err), + } +} + +pub const SysCtlError = error{ + PermissionDenied, + SystemResources, + NameTooLong, + Unexpected, +}; + +pub fn sysctl( + name: []const c_int, + oldp: ?*c_void, + oldlenp: ?*usize, + newp: ?*c_void, + newlen: usize, +) SysCtlError!void { + const name_len = math.cast(c_uint, name.len) catch return error.NameTooLong; + switch (errno(system.sysctl(name.ptr, name_len, oldp, oldlenp, newp, newlen))) { + 0 => return, + EFAULT => unreachable, + EPERM => return error.PermissionDenied, + ENOMEM => return error.SystemResources, + else => |err| return unexpectedErrno(err), + } +} + +pub fn sysctlbynameC( + name: [*]const u8, + oldp: ?*c_void, + oldlenp: ?*usize, + newp: ?*c_void, + newlen: usize, +) SysCtlError!void { + switch (errno(system.sysctlbyname(name, oldp, oldlenp, newp, newlen))) { + 0 => return, + EFAULT => unreachable, + EPERM => return error.PermissionDenied, + ENOMEM => return error.SystemResources, + else => |err| return unexpectedErrno(err), + } +} + +pub fn gettimeofday(tv: ?*timeval, tz: ?*timezone) void { + switch (errno(system.gettimeofday(tv, tz))) { + 0 => return, + EINVAL => unreachable, + else => unreachable, + } +} + +pub const SeekError = error{ + Unseekable, + Unexpected, +}; + +/// Repositions read/write file offset relative to the beginning. +pub fn lseek_SET(fd: fd_t, offset: u64) SeekError!void { + if (linux.is_the_target and !builtin.link_libc and @sizeOf(usize) == 4) { + var result: u64 = undefined; + switch (errno(system.llseek(fd, offset, &result, SEEK_SET))) { + 0 => return, + EBADF => unreachable, // always a race condition + EINVAL => return error.Unseekable, + EOVERFLOW => return error.Unseekable, + ESPIPE => return error.Unseekable, + ENXIO => return error.Unseekable, + else => |err| return unexpectedErrno(err), + } + } + if (windows.is_the_target) { + return windows.SetFilePointerEx_BEGIN(fd, offset); + } + const ipos = @bitCast(i64, offset); // the OS treats this as unsigned + switch (errno(system.lseek(fd, ipos, SEEK_SET))) { + 0 => return, + EBADF => unreachable, // always a race condition + EINVAL => return error.Unseekable, + EOVERFLOW => return error.Unseekable, + ESPIPE => return error.Unseekable, + ENXIO => return error.Unseekable, + else => |err| return unexpectedErrno(err), + } +} + +/// Repositions read/write file offset relative to the current offset. +pub fn lseek_CUR(fd: fd_t, offset: i64) SeekError!void { + if (linux.is_the_target and !builtin.link_libc and @sizeOf(usize) == 4) { + var result: u64 = undefined; + switch (errno(system.llseek(fd, @bitCast(u64, offset), &result, SEEK_CUR))) { + 0 => return, + EBADF => unreachable, // always a race condition + EINVAL => return error.Unseekable, + EOVERFLOW => return error.Unseekable, + ESPIPE => return error.Unseekable, + ENXIO => return error.Unseekable, + else => |err| return unexpectedErrno(err), + } + } + if (windows.is_the_target) { + return windows.SetFilePointerEx_CURRENT(fd, offset); + } + switch (errno(system.lseek(fd, offset, SEEK_CUR))) { + 0 => return, + EBADF => unreachable, // always a race condition + EINVAL => return error.Unseekable, + EOVERFLOW => return error.Unseekable, + ESPIPE => return error.Unseekable, + ENXIO => return error.Unseekable, + else => |err| return unexpectedErrno(err), + } +} + +/// Repositions read/write file offset relative to the end. +pub fn lseek_END(fd: fd_t, offset: i64) SeekError!void { + if (linux.is_the_target and !builtin.link_libc and @sizeOf(usize) == 4) { + var result: u64 = undefined; + switch (errno(system.llseek(fd, @bitCast(u64, offset), &result, SEEK_END))) { + 0 => return, + EBADF => unreachable, // always a race condition + EINVAL => return error.Unseekable, + EOVERFLOW => return error.Unseekable, + ESPIPE => return error.Unseekable, + ENXIO => return error.Unseekable, + else => |err| return unexpectedErrno(err), + } + } + if (windows.is_the_target) { + return windows.SetFilePointerEx_END(fd, offset); + } + switch (errno(system.lseek(fd, offset, SEEK_END))) { + 0 => return, + EBADF => unreachable, // always a race condition + EINVAL => return error.Unseekable, + EOVERFLOW => return error.Unseekable, + ESPIPE => return error.Unseekable, + ENXIO => return error.Unseekable, + else => |err| return unexpectedErrno(err), + } +} + +/// Returns the read/write file offset relative to the beginning. +pub fn lseek_CUR_get(fd: fd_t) SeekError!u64 { + if (linux.is_the_target and !builtin.link_libc and @sizeOf(usize) == 4) { + var result: u64 = undefined; + switch (errno(system.llseek(fd, 0, &result, SEEK_CUR))) { + 0 => return result, + EBADF => unreachable, // always a race condition + EINVAL => return error.Unseekable, + EOVERFLOW => return error.Unseekable, + ESPIPE => return error.Unseekable, + ENXIO => return error.Unseekable, + else => |err| return unexpectedErrno(err), + } + } + if (windows.is_the_target) { + return windows.SetFilePointerEx_CURRENT_get(fd); + } + const rc = system.lseek(fd, 0, SEEK_CUR); + switch (errno(rc)) { + 0 => return @bitCast(u64, rc), + EBADF => unreachable, // always a race condition + EINVAL => return error.Unseekable, + EOVERFLOW => return error.Unseekable, + ESPIPE => return error.Unseekable, + ENXIO => return error.Unseekable, + else => |err| return unexpectedErrno(err), + } +} + +pub const RealPathError = error{ + FileNotFound, + AccessDenied, + NameTooLong, + NotSupported, + NotDir, + SymLinkLoop, + InputOutput, + FileTooBig, + IsDir, + ProcessFdQuotaExceeded, + SystemFdQuotaExceeded, + NoDevice, + SystemResources, + NoSpaceLeft, + FileSystem, + BadPathName, + DeviceBusy, + + SharingViolation, + PipeBusy, + + /// On Windows, file paths must be valid Unicode. + InvalidUtf8, + + PathAlreadyExists, + + Unexpected, +}; + +/// Return the canonicalized absolute pathname. +/// Expands all symbolic links and resolves references to `.`, `..`, and +/// extra `/` characters in `pathname`. +/// The return value is a slice of `out_buffer`, but not necessarily from the beginning. +/// See also `realpathC` and `realpathW`. +pub fn realpath(pathname: []const u8, out_buffer: *[MAX_PATH_BYTES]u8) RealPathError![]u8 { + if (windows.is_the_target) { + const pathname_w = try windows.sliceToPrefixedFileW(pathname); + return realpathW(&pathname_w, out_buffer); + } + const pathname_c = try toPosixPath(pathname); + return realpathC(&pathname_c, out_buffer); +} + +/// Same as `realpath` except `pathname` is null-terminated. +pub fn realpathC(pathname: [*]const u8, out_buffer: *[MAX_PATH_BYTES]u8) RealPathError![]u8 { + if (windows.is_the_target) { + const pathname_w = try windows.cStrToPrefixedFileW(pathname); + return realpathW(&pathname_w, out_buffer); + } + if (linux.is_the_target and !builtin.link_libc) { + const fd = try openC(pathname, linux.O_PATH | linux.O_NONBLOCK | linux.O_CLOEXEC, 0); + defer close(fd); + + var procfs_buf: ["/proc/self/fd/-2147483648\x00".len]u8 = undefined; + const proc_path = std.fmt.bufPrint(procfs_buf[0..], "/proc/self/fd/{}\x00", fd) catch unreachable; + + return readlinkC(proc_path.ptr, out_buffer); + } + const result_path = std.c.realpath(pathname, out_buffer) orelse switch (std.c._errno().*) { + EINVAL => unreachable, + EBADF => unreachable, + EFAULT => unreachable, + EACCES => return error.AccessDenied, + ENOENT => return error.FileNotFound, + ENOTSUP => return error.NotSupported, + ENOTDIR => return error.NotDir, + ENAMETOOLONG => return error.NameTooLong, + ELOOP => return error.SymLinkLoop, + EIO => return error.InputOutput, + else => |err| return unexpectedErrno(@intCast(usize, err)), + }; + return mem.toSlice(u8, result_path); +} + +/// Same as `realpath` except `pathname` is null-terminated and UTF16LE-encoded. +pub fn realpathW(pathname: [*]const u16, out_buffer: *[MAX_PATH_BYTES]u8) RealPathError![]u8 { + const h_file = try windows.CreateFileW( + pathname, + windows.GENERIC_READ, + windows.FILE_SHARE_READ, + null, + windows.OPEN_EXISTING, + windows.FILE_ATTRIBUTE_NORMAL, + null, + ); + defer windows.CloseHandle(h_file); + + var wide_buf: [windows.PATH_MAX_WIDE]u16 = undefined; + const wide_len = try windows.GetFinalPathNameByHandleW(h_file, &wide_buf, wide_buf.len, windows.VOLUME_NAME_DOS); + assert(wide_len <= wide_buf.len); + const wide_slice = wide_buf[0..wide_len]; + + // Windows returns \\?\ prepended to the path. + // We strip it to make this function consistent across platforms. + const prefix = [_]u16{ '\\', '\\', '?', '\\' }; + const start_index = if (mem.startsWith(u16, wide_slice, prefix)) prefix.len else 0; + + // Trust that Windows gives us valid UTF-16LE. + const end_index = std.unicode.utf16leToUtf8(out_buffer, wide_slice[start_index..]) catch unreachable; + return out_buffer[0..end_index]; +} + +/// Spurious wakeups are possible and no precision of timing is guaranteed. +pub fn nanosleep(seconds: u64, nanoseconds: u64) void { + var req = timespec{ + .tv_sec = math.cast(isize, seconds) catch math.maxInt(isize), + .tv_nsec = math.cast(isize, nanoseconds) catch math.maxInt(isize), + }; + var rem: timespec = undefined; + while (true) { + switch (errno(system.nanosleep(&req, &rem))) { + EFAULT => unreachable, + EINVAL => { + // Sometimes Darwin returns EINVAL for no reason. + // We treat it as a spurious wakeup. + return; + }, + EINTR => { + req = rem; + continue; + }, + // This prong handles success as well as unexpected errors. + else => return, + } + } +} + +pub fn dl_iterate_phdr(comptime T: type, callback: extern fn (info: *dl_phdr_info, size: usize, data: ?*T) i32, data: ?*T) isize { + // This is implemented only for systems using ELF executables + if (windows.is_the_target or builtin.os == .uefi or wasi.is_the_target or darwin.is_the_target) + @compileError("dl_iterate_phdr is not available for this target"); + + if (builtin.link_libc) { + return system.dl_iterate_phdr( + @ptrCast(std.c.dl_iterate_phdr_callback, callback), + @ptrCast(?*c_void, data), + ); + } + + const elf_base = std.process.getBaseAddress(); + const ehdr = @intToPtr(*elf.Ehdr, elf_base); + // Make sure the base address points to an ELF image + assert(mem.eql(u8, ehdr.e_ident[0..4], "\x7fELF")); + const n_phdr = ehdr.e_phnum; + const phdrs = (@intToPtr([*]elf.Phdr, elf_base + ehdr.e_phoff))[0..n_phdr]; + + var it = dl.linkmap_iterator(phdrs) catch unreachable; + + // The executable has no dynamic link segment, create a single entry for + // the whole ELF image + if (it.end()) { + var info = dl_phdr_info{ + .dlpi_addr = elf_base, + .dlpi_name = c"/proc/self/exe", + .dlpi_phdr = phdrs.ptr, + .dlpi_phnum = ehdr.e_phnum, + }; + + return callback(&info, @sizeOf(dl_phdr_info), data); + } + + // Last return value from the callback function + var last_r: isize = 0; + while (it.next()) |entry| { + var dlpi_phdr: [*]elf.Phdr = undefined; + var dlpi_phnum: u16 = undefined; + + if (entry.l_addr != 0) { + const elf_header = @intToPtr(*elf.Ehdr, entry.l_addr); + dlpi_phdr = @intToPtr([*]elf.Phdr, entry.l_addr + elf_header.e_phoff); + dlpi_phnum = elf_header.e_phnum; + } else { + // This is the running ELF image + dlpi_phdr = @intToPtr([*]elf.Phdr, elf_base + ehdr.e_phoff); + dlpi_phnum = ehdr.e_phnum; + } + + var info = dl_phdr_info{ + .dlpi_addr = entry.l_addr, + .dlpi_name = entry.l_name, + .dlpi_phdr = dlpi_phdr, + .dlpi_phnum = dlpi_phnum, + }; + + last_r = callback(&info, @sizeOf(dl_phdr_info), data); + if (last_r != 0) break; + } + + return last_r; +} + +pub const ClockGetTimeError = error{ + UnsupportedClock, + Unexpected, +}; + +pub fn clock_gettime(clk_id: i32, tp: *timespec) ClockGetTimeError!void { + switch (errno(system.clock_gettime(clk_id, tp))) { + 0 => return, + EFAULT => unreachable, + EINVAL => return error.UnsupportedClock, + else => |err| return unexpectedErrno(err), + } +} + +pub fn clock_getres(clk_id: i32, res: *timespec) ClockGetTimeError!void { + switch (errno(system.clock_getres(clk_id, res))) { + 0 => return, + EFAULT => unreachable, + EINVAL => return error.UnsupportedClock, + else => |err| return unexpectedErrno(err), + } +} + +pub const SchedGetAffinityError = error{ + PermissionDenied, + Unexpected, +}; + +pub fn sched_getaffinity(pid: pid_t) SchedGetAffinityError!cpu_set_t { + var set: cpu_set_t = undefined; + switch (errno(system.sched_getaffinity(pid, @sizeOf(cpu_set_t), &set))) { + 0 => return set, + EFAULT => unreachable, + EINVAL => unreachable, + ESRCH => unreachable, + EPERM => return error.PermissionDenied, + else => |err| return unexpectedErrno(err), + } +} + +/// Used to convert a slice to a null terminated slice on the stack. +/// TODO https://github.com/ziglang/zig/issues/287 +pub fn toPosixPath(file_path: []const u8) ![PATH_MAX]u8 { + var path_with_null: [PATH_MAX]u8 = undefined; + // >= rather than > to make room for the null byte + if (file_path.len >= PATH_MAX) return error.NameTooLong; + mem.copy(u8, &path_with_null, file_path); + path_with_null[file_path.len] = 0; + return path_with_null; +} + +/// Whether or not error.Unexpected will print its value and a stack trace. +/// if this happens the fix is to add the error code to the corresponding +/// switch expression, possibly introduce a new error in the error set, and +/// send a patch to Zig. +pub const unexpected_error_tracing = builtin.mode == .Debug; + +pub const UnexpectedError = error{ + /// The Operating System returned an undocumented error code. + /// This error is in theory not possible, but it would be better + /// to handle this error than to invoke undefined behavior. + Unexpected, +}; + +/// Call this when you made a syscall or something that sets errno +/// and you get an unexpected error. +pub fn unexpectedErrno(err: usize) UnexpectedError { + if (unexpected_error_tracing) { + std.debug.warn("unexpected errno: {}\n", err); + std.debug.dumpCurrentStackTrace(null); + } + return error.Unexpected; +} + +pub const SigaltstackError = error{ + /// The supplied stack size was less than MINSIGSTKSZ. + SizeTooSmall, + + /// Attempted to change the signal stack while it was active. + PermissionDenied, + Unexpected, +}; + +pub fn sigaltstack(ss: ?*stack_t, old_ss: ?*stack_t) SigaltstackError!void { + if (windows.is_the_target or uefi.is_the_target or wasi.is_the_target) + @compileError("std.os.sigaltstack not available for this target"); + + switch (errno(system.sigaltstack(ss, old_ss))) { + 0 => return, + EFAULT => unreachable, + EINVAL => unreachable, + ENOMEM => return error.SizeTooSmall, + EPERM => return error.PermissionDenied, + else => |err| return unexpectedErrno(err), + } +} + +/// Examine and change a signal action. +pub fn sigaction(sig: u6, act: *const Sigaction, oact: ?*Sigaction) void { + switch (errno(system.sigaction(sig, act, oact))) { + 0 => return, + EFAULT => unreachable, + EINVAL => unreachable, + else => unreachable, + } +} + +pub const FutimensError = error{ + /// times is NULL, or both tv_nsec values are UTIME_NOW, and either: + /// * the effective user ID of the caller does not match the owner + /// of the file, the caller does not have write access to the + /// file, and the caller is not privileged (Linux: does not have + /// either the CAP_FOWNER or the CAP_DAC_OVERRIDE capability); + /// or, + /// * the file is marked immutable (see chattr(1)). + AccessDenied, + + /// The caller attempted to change one or both timestamps to a value + /// other than the current time, or to change one of the timestamps + /// to the current time while leaving the other timestamp unchanged, + /// (i.e., times is not NULL, neither tv_nsec field is UTIME_NOW, + /// and neither tv_nsec field is UTIME_OMIT) and either: + /// * the caller's effective user ID does not match the owner of + /// file, and the caller is not privileged (Linux: does not have + /// the CAP_FOWNER capability); or, + /// * the file is marked append-only or immutable (see chattr(1)). + PermissionDenied, + + ReadOnlyFileSystem, + + Unexpected, +}; + +pub fn futimens(fd: fd_t, times: *const [2]timespec) FutimensError!void { + switch (errno(system.futimens(fd, times))) { + 0 => return, + EACCES => return error.AccessDenied, + EPERM => return error.PermissionDenied, + EBADF => unreachable, // always a race condition + EFAULT => unreachable, + EINVAL => unreachable, + EROFS => return error.ReadOnlyFileSystem, + else => |err| return unexpectedErrno(err), + } +} + +pub const GetHostNameError = error{ + PermissionDenied, + Unexpected, +}; + +pub fn gethostname(name_buffer: *[HOST_NAME_MAX]u8) GetHostNameError![]u8 { + if (builtin.link_libc) { + switch (errno(system.gethostname(name_buffer, name_buffer.len))) { + 0 => return mem.toSlice(u8, name_buffer), + EFAULT => unreachable, + ENAMETOOLONG => unreachable, // HOST_NAME_MAX prevents this + EPERM => return error.PermissionDenied, + else => |err| return unexpectedErrno(err), + } + } + if (linux.is_the_target) { + var uts: utsname = undefined; + switch (errno(system.uname(&uts))) { + 0 => { + const hostname = mem.toSlice(u8, &uts.nodename); + mem.copy(u8, name_buffer, hostname); + return name_buffer[0..hostname.len]; + }, + EFAULT => unreachable, + EPERM => return error.PermissionDenied, + else => |err| return unexpectedErrno(err), + } + } + + @compileError("TODO implement gethostname for this OS"); +} + +test "" { + _ = @import("os/darwin.zig"); + _ = @import("os/freebsd.zig"); + _ = @import("os/linux.zig"); + _ = @import("os/netbsd.zig"); + _ = @import("os/uefi.zig"); + _ = @import("os/wasi.zig"); + _ = @import("os/windows.zig"); + _ = @import("os/zen.zig"); + + _ = @import("os/test.zig"); +} diff --git a/lib/std/os/bits.zig b/lib/std/os/bits.zig new file mode 100644 index 0000000000..f16da2487b --- /dev/null +++ b/lib/std/os/bits.zig @@ -0,0 +1,27 @@ +// Platform-dependent types and values that are used along with OS-specific APIs. +// These are imported into `std.c`, `std.os`, and `std.os.linux`. + +const builtin = @import("builtin"); + +pub usingnamespace switch (builtin.os) { + .macosx, .ios, .tvos, .watchos => @import("bits/darwin.zig"), + .freebsd => @import("bits/freebsd.zig"), + .linux => @import("bits/linux.zig"), + .netbsd => @import("bits/netbsd.zig"), + .wasi => @import("bits/wasi.zig"), + .windows => @import("bits/windows.zig"), + else => struct {}, +}; + +pub const pthread_t = *@OpaqueType(); +pub const FILE = @OpaqueType(); + +pub const iovec = extern struct { + iov_base: [*]u8, + iov_len: usize, +}; + +pub const iovec_const = extern struct { + iov_base: [*]const u8, + iov_len: usize, +}; diff --git a/lib/std/os/bits/darwin.zig b/lib/std/os/bits/darwin.zig new file mode 100644 index 0000000000..b076f95884 --- /dev/null +++ b/lib/std/os/bits/darwin.zig @@ -0,0 +1,1180 @@ +const std = @import("../../std.zig"); +const assert = std.debug.assert; +const maxInt = std.math.maxInt; + +pub const fd_t = c_int; +pub const pid_t = c_int; + +pub const in_port_t = u16; +pub const sa_family_t = u8; +pub const socklen_t = u32; +pub const sockaddr = extern union { + in: sockaddr_in, + in6: sockaddr_in6, +}; +pub const sockaddr_in = extern struct { + len: u8, + family: sa_family_t, + port: in_port_t, + addr: u32, + zero: [8]u8, +}; +pub const sockaddr_in6 = extern struct { + len: u8, + family: sa_family_t, + port: in_port_t, + flowinfo: u32, + addr: [16]u8, + scope_id: u32, +}; + +pub const timeval = extern struct { + tv_sec: c_long, + tv_usec: i32, +}; + +pub const timezone = extern struct { + tz_minuteswest: i32, + tz_dsttime: i32, +}; + +pub const mach_timebase_info_data = extern struct { + numer: u32, + denom: u32, +}; + +pub const off_t = i64; + +/// Renamed to Stat to not conflict with the stat function. +/// atime, mtime, and ctime have functions to return `timespec`, +/// because although this is a POSIX API, the layout and names of +/// the structs are inconsistent across operating systems, and +/// in C, macros are used to hide the differences. Here we use +/// methods to accomplish this. +pub const Stat = extern struct { + dev: i32, + mode: u16, + nlink: u16, + ino: u64, + uid: u32, + gid: u32, + rdev: i32, + atimesec: isize, + atimensec: isize, + mtimesec: isize, + mtimensec: isize, + ctimesec: isize, + ctimensec: isize, + birthtimesec: isize, + birthtimensec: isize, + size: off_t, + blocks: i64, + blksize: i32, + flags: u32, + gen: u32, + lspare: i32, + qspare: [2]i64, + + pub fn atime(self: Stat) timespec { + return timespec{ + .tv_sec = self.atimesec, + .tv_nsec = self.atimensec, + }; + } + + pub fn mtime(self: Stat) timespec { + return timespec{ + .tv_sec = self.mtimesec, + .tv_nsec = self.mtimensec, + }; + } + + pub fn ctime(self: Stat) timespec { + return timespec{ + .tv_sec = self.ctimesec, + .tv_nsec = self.ctimensec, + }; + } +}; + +pub const timespec = extern struct { + tv_sec: isize, + tv_nsec: isize, +}; + +pub const sigset_t = u32; +pub const empty_sigset = sigset_t(0); + +/// Renamed from `sigaction` to `Sigaction` to avoid conflict with function name. +pub const Sigaction = extern struct { + handler: extern fn (c_int) void, + sa_mask: sigset_t, + sa_flags: c_int, +}; + +pub const dirent = extern struct { + d_ino: usize, + d_seekoff: usize, + d_reclen: u16, + d_namlen: u16, + d_type: u8, + d_name: u8, // field address is address of first byte of name +}; + +pub const pthread_attr_t = extern struct { + __sig: c_long, + __opaque: [56]u8, +}; + +/// Renamed from `kevent` to `Kevent` to avoid conflict with function name. +pub const Kevent = extern struct { + ident: usize, + filter: i16, + flags: u16, + fflags: u32, + data: isize, + udata: usize, +}; + +// sys/types.h on macos uses #pragma pack(4) so these checks are +// to make sure the struct is laid out the same. These values were +// produced from C code using the offsetof macro. +comptime { + assert(@byteOffsetOf(Kevent, "ident") == 0); + assert(@byteOffsetOf(Kevent, "filter") == 8); + assert(@byteOffsetOf(Kevent, "flags") == 10); + assert(@byteOffsetOf(Kevent, "fflags") == 12); + assert(@byteOffsetOf(Kevent, "data") == 16); + assert(@byteOffsetOf(Kevent, "udata") == 24); +} + +pub const kevent64_s = extern struct { + ident: u64, + filter: i16, + flags: u16, + fflags: u32, + data: i64, + udata: u64, + ext: [2]u64, +}; + +// sys/types.h on macos uses #pragma pack() so these checks are +// to make sure the struct is laid out the same. These values were +// produced from C code using the offsetof macro. +comptime { + assert(@byteOffsetOf(kevent64_s, "ident") == 0); + assert(@byteOffsetOf(kevent64_s, "filter") == 8); + assert(@byteOffsetOf(kevent64_s, "flags") == 10); + assert(@byteOffsetOf(kevent64_s, "fflags") == 12); + assert(@byteOffsetOf(kevent64_s, "data") == 16); + assert(@byteOffsetOf(kevent64_s, "udata") == 24); + assert(@byteOffsetOf(kevent64_s, "ext") == 32); +} + +pub const mach_port_t = c_uint; +pub const clock_serv_t = mach_port_t; +pub const clock_res_t = c_int; +pub const mach_port_name_t = natural_t; +pub const natural_t = c_uint; +pub const mach_timespec_t = extern struct { + tv_sec: c_uint, + tv_nsec: clock_res_t, +}; +pub const kern_return_t = c_int; +pub const host_t = mach_port_t; +pub const CALENDAR_CLOCK = 1; + +pub const PATH_MAX = 1024; + +pub const STDIN_FILENO = 0; +pub const STDOUT_FILENO = 1; +pub const STDERR_FILENO = 2; + +/// [MC2] no permissions +pub const PROT_NONE = 0x00; + +/// [MC2] pages can be read +pub const PROT_READ = 0x01; + +/// [MC2] pages can be written +pub const PROT_WRITE = 0x02; + +/// [MC2] pages can be executed +pub const PROT_EXEC = 0x04; + +/// allocated from memory, swap space +pub const MAP_ANONYMOUS = 0x1000; + +/// map from file (default) +pub const MAP_FILE = 0x0000; + +/// interpret addr exactly +pub const MAP_FIXED = 0x0010; + +/// region may contain semaphores +pub const MAP_HASSEMAPHORE = 0x0200; + +/// changes are private +pub const MAP_PRIVATE = 0x0002; + +/// share changes +pub const MAP_SHARED = 0x0001; + +/// don't cache pages for this mapping +pub const MAP_NOCACHE = 0x0400; + +/// don't reserve needed swap area +pub const MAP_NORESERVE = 0x0040; +pub const MAP_FAILED = @intToPtr(*c_void, maxInt(usize)); + +/// [XSI] no hang in wait/no child to reap +pub const WNOHANG = 0x00000001; + +/// [XSI] notify on stop, untraced child +pub const WUNTRACED = 0x00000002; + +/// take signal on signal stack +pub const SA_ONSTACK = 0x0001; + +/// restart system on signal return +pub const SA_RESTART = 0x0002; + +/// reset to SIG_DFL when taking signal +pub const SA_RESETHAND = 0x0004; + +/// do not generate SIGCHLD on child stop +pub const SA_NOCLDSTOP = 0x0008; + +/// don't mask the signal we're delivering +pub const SA_NODEFER = 0x0010; + +/// don't keep zombies around +pub const SA_NOCLDWAIT = 0x0020; + +/// signal handler with SA_SIGINFO args +pub const SA_SIGINFO = 0x0040; + +/// do not bounce off kernel's sigtramp +pub const SA_USERTRAMP = 0x0100; + +/// signal handler with SA_SIGINFO args with 64bit regs information +pub const SA_64REGSET = 0x0200; + +pub const O_LARGEFILE = 0x0000; +pub const O_PATH = 0x0000; + +pub const F_OK = 0; +pub const X_OK = 1; +pub const W_OK = 2; +pub const R_OK = 4; + +/// open for reading only +pub const O_RDONLY = 0x0000; + +/// open for writing only +pub const O_WRONLY = 0x0001; + +/// open for reading and writing +pub const O_RDWR = 0x0002; + +/// do not block on open or for data to become available +pub const O_NONBLOCK = 0x0004; + +/// append on each write +pub const O_APPEND = 0x0008; + +/// create file if it does not exist +pub const O_CREAT = 0x0200; + +/// truncate size to 0 +pub const O_TRUNC = 0x0400; + +/// error if O_CREAT and the file exists +pub const O_EXCL = 0x0800; + +/// atomically obtain a shared lock +pub const O_SHLOCK = 0x0010; + +/// atomically obtain an exclusive lock +pub const O_EXLOCK = 0x0020; + +/// do not follow symlinks +pub const O_NOFOLLOW = 0x0100; + +/// allow open of symlinks +pub const O_SYMLINK = 0x200000; + +/// descriptor requested for event notifications only +pub const O_EVTONLY = 0x8000; + +/// mark as close-on-exec +pub const O_CLOEXEC = 0x1000000; + +pub const O_ACCMODE = 3; +pub const O_ALERT = 536870912; +pub const O_ASYNC = 64; +pub const O_DIRECTORY = 1048576; +pub const O_DP_GETRAWENCRYPTED = 1; +pub const O_DP_GETRAWUNENCRYPTED = 2; +pub const O_DSYNC = 4194304; +pub const O_FSYNC = O_SYNC; +pub const O_NOCTTY = 131072; +pub const O_POPUP = 2147483648; +pub const O_SYNC = 128; + +pub const SEEK_SET = 0x0; +pub const SEEK_CUR = 0x1; +pub const SEEK_END = 0x2; + +pub const DT_UNKNOWN = 0; +pub const DT_FIFO = 1; +pub const DT_CHR = 2; +pub const DT_DIR = 4; +pub const DT_BLK = 6; +pub const DT_REG = 8; +pub const DT_LNK = 10; +pub const DT_SOCK = 12; +pub const DT_WHT = 14; + +/// block specified signal set +pub const SIG_BLOCK = 1; + +/// unblock specified signal set +pub const SIG_UNBLOCK = 2; + +/// set specified signal set +pub const SIG_SETMASK = 3; + +/// hangup +pub const SIGHUP = 1; + +/// interrupt +pub const SIGINT = 2; + +/// quit +pub const SIGQUIT = 3; + +/// illegal instruction (not reset when caught) +pub const SIGILL = 4; + +/// trace trap (not reset when caught) +pub const SIGTRAP = 5; + +/// abort() +pub const SIGABRT = 6; + +/// pollable event ([XSR] generated, not supported) +pub const SIGPOLL = 7; + +/// compatibility +pub const SIGIOT = SIGABRT; + +/// EMT instruction +pub const SIGEMT = 7; + +/// floating point exception +pub const SIGFPE = 8; + +/// kill (cannot be caught or ignored) +pub const SIGKILL = 9; + +/// bus error +pub const SIGBUS = 10; + +/// segmentation violation +pub const SIGSEGV = 11; + +/// bad argument to system call +pub const SIGSYS = 12; + +/// write on a pipe with no one to read it +pub const SIGPIPE = 13; + +/// alarm clock +pub const SIGALRM = 14; + +/// software termination signal from kill +pub const SIGTERM = 15; + +/// urgent condition on IO channel +pub const SIGURG = 16; + +/// sendable stop signal not from tty +pub const SIGSTOP = 17; + +/// stop signal from tty +pub const SIGTSTP = 18; + +/// continue a stopped process +pub const SIGCONT = 19; + +/// to parent on child stop or exit +pub const SIGCHLD = 20; + +/// to readers pgrp upon background tty read +pub const SIGTTIN = 21; + +/// like TTIN for output if (tp->t_local<OSTOP) +pub const SIGTTOU = 22; + +/// input/output possible signal +pub const SIGIO = 23; + +/// exceeded CPU time limit +pub const SIGXCPU = 24; + +/// exceeded file size limit +pub const SIGXFSZ = 25; + +/// virtual time alarm +pub const SIGVTALRM = 26; + +/// profiling time alarm +pub const SIGPROF = 27; + +/// window size changes +pub const SIGWINCH = 28; + +/// information request +pub const SIGINFO = 29; + +/// user defined signal 1 +pub const SIGUSR1 = 30; + +/// user defined signal 2 +pub const SIGUSR2 = 31; + +/// no flag value +pub const KEVENT_FLAG_NONE = 0x000; + +/// immediate timeout +pub const KEVENT_FLAG_IMMEDIATE = 0x001; + +/// output events only include change +pub const KEVENT_FLAG_ERROR_EVENTS = 0x002; + +/// add event to kq (implies enable) +pub const EV_ADD = 0x0001; + +/// delete event from kq +pub const EV_DELETE = 0x0002; + +/// enable event +pub const EV_ENABLE = 0x0004; + +/// disable event (not reported) +pub const EV_DISABLE = 0x0008; + +/// only report one occurrence +pub const EV_ONESHOT = 0x0010; + +/// clear event state after reporting +pub const EV_CLEAR = 0x0020; + +/// force immediate event output +/// ... with or without EV_ERROR +/// ... use KEVENT_FLAG_ERROR_EVENTS +/// on syscalls supporting flags +pub const EV_RECEIPT = 0x0040; + +/// disable event after reporting +pub const EV_DISPATCH = 0x0080; + +/// unique kevent per udata value +pub const EV_UDATA_SPECIFIC = 0x0100; + +/// ... in combination with EV_DELETE +/// will defer delete until udata-specific +/// event enabled. EINPROGRESS will be +/// returned to indicate the deferral +pub const EV_DISPATCH2 = EV_DISPATCH | EV_UDATA_SPECIFIC; + +/// report that source has vanished +/// ... only valid with EV_DISPATCH2 +pub const EV_VANISHED = 0x0200; + +/// reserved by system +pub const EV_SYSFLAGS = 0xF000; + +/// filter-specific flag +pub const EV_FLAG0 = 0x1000; + +/// filter-specific flag +pub const EV_FLAG1 = 0x2000; + +/// EOF detected +pub const EV_EOF = 0x8000; + +/// error, data contains errno +pub const EV_ERROR = 0x4000; + +pub const EV_POLL = EV_FLAG0; +pub const EV_OOBAND = EV_FLAG1; + +pub const EVFILT_READ = -1; +pub const EVFILT_WRITE = -2; + +/// attached to aio requests +pub const EVFILT_AIO = -3; + +/// attached to vnodes +pub const EVFILT_VNODE = -4; + +/// attached to struct proc +pub const EVFILT_PROC = -5; + +/// attached to struct proc +pub const EVFILT_SIGNAL = -6; + +/// timers +pub const EVFILT_TIMER = -7; + +/// Mach portsets +pub const EVFILT_MACHPORT = -8; + +/// Filesystem events +pub const EVFILT_FS = -9; + +/// User events +pub const EVFILT_USER = -10; + +/// Virtual memory events +pub const EVFILT_VM = -12; + +/// Exception events +pub const EVFILT_EXCEPT = -15; + +pub const EVFILT_SYSCOUNT = 17; + +/// On input, NOTE_TRIGGER causes the event to be triggered for output. +pub const NOTE_TRIGGER = 0x01000000; + +/// ignore input fflags +pub const NOTE_FFNOP = 0x00000000; + +/// and fflags +pub const NOTE_FFAND = 0x40000000; + +/// or fflags +pub const NOTE_FFOR = 0x80000000; + +/// copy fflags +pub const NOTE_FFCOPY = 0xc0000000; + +/// mask for operations +pub const NOTE_FFCTRLMASK = 0xc0000000; +pub const NOTE_FFLAGSMASK = 0x00ffffff; + +/// low water mark +pub const NOTE_LOWAT = 0x00000001; + +/// OOB data +pub const NOTE_OOB = 0x00000002; + +/// vnode was removed +pub const NOTE_DELETE = 0x00000001; + +/// data contents changed +pub const NOTE_WRITE = 0x00000002; + +/// size increased +pub const NOTE_EXTEND = 0x00000004; + +/// attributes changed +pub const NOTE_ATTRIB = 0x00000008; + +/// link count changed +pub const NOTE_LINK = 0x00000010; + +/// vnode was renamed +pub const NOTE_RENAME = 0x00000020; + +/// vnode access was revoked +pub const NOTE_REVOKE = 0x00000040; + +/// No specific vnode event: to test for EVFILT_READ activation +pub const NOTE_NONE = 0x00000080; + +/// vnode was unlocked by flock(2) +pub const NOTE_FUNLOCK = 0x00000100; + +/// process exited +pub const NOTE_EXIT = 0x80000000; + +/// process forked +pub const NOTE_FORK = 0x40000000; + +/// process exec'd +pub const NOTE_EXEC = 0x20000000; + +/// shared with EVFILT_SIGNAL +pub const NOTE_SIGNAL = 0x08000000; + +/// exit status to be returned, valid for child process only +pub const NOTE_EXITSTATUS = 0x04000000; + +/// provide details on reasons for exit +pub const NOTE_EXIT_DETAIL = 0x02000000; + +/// mask for signal & exit status +pub const NOTE_PDATAMASK = 0x000fffff; +pub const NOTE_PCTRLMASK = (~NOTE_PDATAMASK); + +pub const NOTE_EXIT_DETAIL_MASK = 0x00070000; +pub const NOTE_EXIT_DECRYPTFAIL = 0x00010000; +pub const NOTE_EXIT_MEMORY = 0x00020000; +pub const NOTE_EXIT_CSERROR = 0x00040000; + +/// will react on memory pressure +pub const NOTE_VM_PRESSURE = 0x80000000; + +/// will quit on memory pressure, possibly after cleaning up dirty state +pub const NOTE_VM_PRESSURE_TERMINATE = 0x40000000; + +/// will quit immediately on memory pressure +pub const NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000; + +/// there was an error +pub const NOTE_VM_ERROR = 0x10000000; + +/// data is seconds +pub const NOTE_SECONDS = 0x00000001; + +/// data is microseconds +pub const NOTE_USECONDS = 0x00000002; + +/// data is nanoseconds +pub const NOTE_NSECONDS = 0x00000004; + +/// absolute timeout +pub const NOTE_ABSOLUTE = 0x00000008; + +/// ext[1] holds leeway for power aware timers +pub const NOTE_LEEWAY = 0x00000010; + +/// system does minimal timer coalescing +pub const NOTE_CRITICAL = 0x00000020; + +/// system does maximum timer coalescing +pub const NOTE_BACKGROUND = 0x00000040; +pub const NOTE_MACH_CONTINUOUS_TIME = 0x00000080; + +/// data is mach absolute time units +pub const NOTE_MACHTIME = 0x00000100; + +pub const AF_UNSPEC = 0; +pub const AF_LOCAL = 1; +pub const AF_UNIX = AF_LOCAL; +pub const AF_INET = 2; +pub const AF_SYS_CONTROL = 2; +pub const AF_IMPLINK = 3; +pub const AF_PUP = 4; +pub const AF_CHAOS = 5; +pub const AF_NS = 6; +pub const AF_ISO = 7; +pub const AF_OSI = AF_ISO; +pub const AF_ECMA = 8; +pub const AF_DATAKIT = 9; +pub const AF_CCITT = 10; +pub const AF_SNA = 11; +pub const AF_DECnet = 12; +pub const AF_DLI = 13; +pub const AF_LAT = 14; +pub const AF_HYLINK = 15; +pub const AF_APPLETALK = 16; +pub const AF_ROUTE = 17; +pub const AF_LINK = 18; +pub const AF_XTP = 19; +pub const AF_COIP = 20; +pub const AF_CNT = 21; +pub const AF_RTIP = 22; +pub const AF_IPX = 23; +pub const AF_SIP = 24; +pub const AF_PIP = 25; +pub const AF_ISDN = 28; +pub const AF_E164 = AF_ISDN; +pub const AF_KEY = 29; +pub const AF_INET6 = 30; +pub const AF_NATM = 31; +pub const AF_SYSTEM = 32; +pub const AF_NETBIOS = 33; +pub const AF_PPP = 34; +pub const AF_MAX = 40; + +pub const PF_UNSPEC = AF_UNSPEC; +pub const PF_LOCAL = AF_LOCAL; +pub const PF_UNIX = PF_LOCAL; +pub const PF_INET = AF_INET; +pub const PF_IMPLINK = AF_IMPLINK; +pub const PF_PUP = AF_PUP; +pub const PF_CHAOS = AF_CHAOS; +pub const PF_NS = AF_NS; +pub const PF_ISO = AF_ISO; +pub const PF_OSI = AF_ISO; +pub const PF_ECMA = AF_ECMA; +pub const PF_DATAKIT = AF_DATAKIT; +pub const PF_CCITT = AF_CCITT; +pub const PF_SNA = AF_SNA; +pub const PF_DECnet = AF_DECnet; +pub const PF_DLI = AF_DLI; +pub const PF_LAT = AF_LAT; +pub const PF_HYLINK = AF_HYLINK; +pub const PF_APPLETALK = AF_APPLETALK; +pub const PF_ROUTE = AF_ROUTE; +pub const PF_LINK = AF_LINK; +pub const PF_XTP = AF_XTP; +pub const PF_COIP = AF_COIP; +pub const PF_CNT = AF_CNT; +pub const PF_SIP = AF_SIP; +pub const PF_IPX = AF_IPX; +pub const PF_RTIP = AF_RTIP; +pub const PF_PIP = AF_PIP; +pub const PF_ISDN = AF_ISDN; +pub const PF_KEY = AF_KEY; +pub const PF_INET6 = AF_INET6; +pub const PF_NATM = AF_NATM; +pub const PF_SYSTEM = AF_SYSTEM; +pub const PF_NETBIOS = AF_NETBIOS; +pub const PF_PPP = AF_PPP; +pub const PF_MAX = AF_MAX; + +pub const SYSPROTO_EVENT = 1; +pub const SYSPROTO_CONTROL = 2; + +pub const SOCK_STREAM = 1; +pub const SOCK_DGRAM = 2; +pub const SOCK_RAW = 3; +pub const SOCK_RDM = 4; +pub const SOCK_SEQPACKET = 5; +pub const SOCK_MAXADDRLEN = 255; + +pub const IPPROTO_ICMP = 1; +pub const IPPROTO_ICMPV6 = 58; +pub const IPPROTO_TCP = 6; +pub const IPPROTO_UDP = 17; +pub const IPPROTO_IP = 0; +pub const IPPROTO_IPV6 = 41; + +fn wstatus(x: u32) u32 { + return x & 0o177; +} +const wstopped = 0o177; +pub fn WEXITSTATUS(x: u32) u32 { + return x >> 8; +} +pub fn WTERMSIG(x: u32) u32 { + return wstatus(x); +} +pub fn WSTOPSIG(x: u32) u32 { + return x >> 8; +} +pub fn WIFEXITED(x: u32) bool { + return wstatus(x) == 0; +} +pub fn WIFSTOPPED(x: u32) bool { + return wstatus(x) == wstopped and WSTOPSIG(x) != 0x13; +} +pub fn WIFSIGNALED(x: u32) bool { + return wstatus(x) != wstopped and wstatus(x) != 0; +} + +/// Operation not permitted +pub const EPERM = 1; + +/// No such file or directory +pub const ENOENT = 2; + +/// No such process +pub const ESRCH = 3; + +/// Interrupted system call +pub const EINTR = 4; + +/// Input/output error +pub const EIO = 5; + +/// Device not configured +pub const ENXIO = 6; + +/// Argument list too long +pub const E2BIG = 7; + +/// Exec format error +pub const ENOEXEC = 8; + +/// Bad file descriptor +pub const EBADF = 9; + +/// No child processes +pub const ECHILD = 10; + +/// Resource deadlock avoided +pub const EDEADLK = 11; + +/// Cannot allocate memory +pub const ENOMEM = 12; + +/// Permission denied +pub const EACCES = 13; + +/// Bad address +pub const EFAULT = 14; + +/// Block device required +pub const ENOTBLK = 15; + +/// Device / Resource busy +pub const EBUSY = 16; + +/// File exists +pub const EEXIST = 17; + +/// Cross-device link +pub const EXDEV = 18; + +/// Operation not supported by device +pub const ENODEV = 19; + +/// Not a directory +pub const ENOTDIR = 20; + +/// Is a directory +pub const EISDIR = 21; + +/// Invalid argument +pub const EINVAL = 22; + +/// Too many open files in system +pub const ENFILE = 23; + +/// Too many open files +pub const EMFILE = 24; + +/// Inappropriate ioctl for device +pub const ENOTTY = 25; + +/// Text file busy +pub const ETXTBSY = 26; + +/// File too large +pub const EFBIG = 27; + +/// No space left on device +pub const ENOSPC = 28; + +/// Illegal seek +pub const ESPIPE = 29; + +/// Read-only file system +pub const EROFS = 30; + +/// Too many links +pub const EMLINK = 31; +/// Broken pipe + +// math software +pub const EPIPE = 32; + +/// Numerical argument out of domain +pub const EDOM = 33; +/// Result too large + +// non-blocking and interrupt i/o +pub const ERANGE = 34; + +/// Resource temporarily unavailable +pub const EAGAIN = 35; + +/// Operation would block +pub const EWOULDBLOCK = EAGAIN; + +/// Operation now in progress +pub const EINPROGRESS = 36; +/// Operation already in progress + +// ipc/network software -- argument errors +pub const EALREADY = 37; + +/// Socket operation on non-socket +pub const ENOTSOCK = 38; + +/// Destination address required +pub const EDESTADDRREQ = 39; + +/// Message too long +pub const EMSGSIZE = 40; + +/// Protocol wrong type for socket +pub const EPROTOTYPE = 41; + +/// Protocol not available +pub const ENOPROTOOPT = 42; + +/// Protocol not supported +pub const EPROTONOSUPPORT = 43; + +/// Socket type not supported +pub const ESOCKTNOSUPPORT = 44; + +/// Operation not supported +pub const ENOTSUP = 45; + +/// Protocol family not supported +pub const EPFNOSUPPORT = 46; + +/// Address family not supported by protocol family +pub const EAFNOSUPPORT = 47; + +/// Address already in use +pub const EADDRINUSE = 48; +/// Can't assign requested address + +// ipc/network software -- operational errors +pub const EADDRNOTAVAIL = 49; + +/// Network is down +pub const ENETDOWN = 50; + +/// Network is unreachable +pub const ENETUNREACH = 51; + +/// Network dropped connection on reset +pub const ENETRESET = 52; + +/// Software caused connection abort +pub const ECONNABORTED = 53; + +/// Connection reset by peer +pub const ECONNRESET = 54; + +/// No buffer space available +pub const ENOBUFS = 55; + +/// Socket is already connected +pub const EISCONN = 56; + +/// Socket is not connected +pub const ENOTCONN = 57; + +/// Can't send after socket shutdown +pub const ESHUTDOWN = 58; + +/// Too many references: can't splice +pub const ETOOMANYREFS = 59; + +/// Operation timed out +pub const ETIMEDOUT = 60; + +/// Connection refused +pub const ECONNREFUSED = 61; + +/// Too many levels of symbolic links +pub const ELOOP = 62; + +/// File name too long +pub const ENAMETOOLONG = 63; + +/// Host is down +pub const EHOSTDOWN = 64; + +/// No route to host +pub const EHOSTUNREACH = 65; +/// Directory not empty + +// quotas & mush +pub const ENOTEMPTY = 66; + +/// Too many processes +pub const EPROCLIM = 67; + +/// Too many users +pub const EUSERS = 68; +/// Disc quota exceeded + +// Network File System +pub const EDQUOT = 69; + +/// Stale NFS file handle +pub const ESTALE = 70; + +/// Too many levels of remote in path +pub const EREMOTE = 71; + +/// RPC struct is bad +pub const EBADRPC = 72; + +/// RPC version wrong +pub const ERPCMISMATCH = 73; + +/// RPC prog. not avail +pub const EPROGUNAVAIL = 74; + +/// Program version wrong +pub const EPROGMISMATCH = 75; + +/// Bad procedure for program +pub const EPROCUNAVAIL = 76; + +/// No locks available +pub const ENOLCK = 77; + +/// Function not implemented +pub const ENOSYS = 78; + +/// Inappropriate file type or format +pub const EFTYPE = 79; + +/// Authentication error +pub const EAUTH = 80; +/// Need authenticator + +// Intelligent device errors +pub const ENEEDAUTH = 81; + +/// Device power is off +pub const EPWROFF = 82; + +/// Device error, e.g. paper out +pub const EDEVERR = 83; +/// Value too large to be stored in data type + +// Program loading errors +pub const EOVERFLOW = 84; + +/// Bad executable +pub const EBADEXEC = 85; + +/// Bad CPU type in executable +pub const EBADARCH = 86; + +/// Shared library version mismatch +pub const ESHLIBVERS = 87; + +/// Malformed Macho file +pub const EBADMACHO = 88; + +/// Operation canceled +pub const ECANCELED = 89; + +/// Identifier removed +pub const EIDRM = 90; + +/// No message of desired type +pub const ENOMSG = 91; + +/// Illegal byte sequence +pub const EILSEQ = 92; + +/// Attribute not found +pub const ENOATTR = 93; + +/// Bad message +pub const EBADMSG = 94; + +/// Reserved +pub const EMULTIHOP = 95; + +/// No message available on STREAM +pub const ENODATA = 96; + +/// Reserved +pub const ENOLINK = 97; + +/// No STREAM resources +pub const ENOSR = 98; + +/// Not a STREAM +pub const ENOSTR = 99; + +/// Protocol error +pub const EPROTO = 100; + +/// STREAM ioctl timeout +pub const ETIME = 101; + +/// No such policy registered +pub const ENOPOLICY = 103; + +/// State not recoverable +pub const ENOTRECOVERABLE = 104; + +/// Previous owner died +pub const EOWNERDEAD = 105; + +/// Interface output queue is full +pub const EQFULL = 106; + +/// Must be equal largest errno +pub const ELAST = 106; + +pub const SIGSTKSZ = 131072; +pub const MINSIGSTKSZ = 32768; + +pub const SS_ONSTACK = 1; +pub const SS_DISABLE = 4; + +pub const stack_t = extern struct { + ss_sp: [*]u8, + ss_size: isize, + ss_flags: i32, +}; + +pub const S_IFMT = 0o170000; + +pub const S_IFIFO = 0o010000; +pub const S_IFCHR = 0o020000; +pub const S_IFDIR = 0o040000; +pub const S_IFBLK = 0o060000; +pub const S_IFREG = 0o100000; +pub const S_IFLNK = 0o120000; +pub const S_IFSOCK = 0o140000; +pub const S_IFWHT = 0o160000; + +pub const S_ISUID = 0o4000; +pub const S_ISGID = 0o2000; +pub const S_ISVTX = 0o1000; +pub const S_IRWXU = 0o700; +pub const S_IRUSR = 0o400; +pub const S_IWUSR = 0o200; +pub const S_IXUSR = 0o100; +pub const S_IRWXG = 0o070; +pub const S_IRGRP = 0o040; +pub const S_IWGRP = 0o020; +pub const S_IXGRP = 0o010; +pub const S_IRWXO = 0o007; +pub const S_IROTH = 0o004; +pub const S_IWOTH = 0o002; +pub const S_IXOTH = 0o001; + +pub fn S_ISFIFO(m: u32) bool { + return m & S_IFMT == S_IFIFO; +} + +pub fn S_ISCHR(m: u32) bool { + return m & S_IFMT == S_IFCHR; +} + +pub fn S_ISDIR(m: u32) bool { + return m & S_IFMT == S_IFDIR; +} + +pub fn S_ISBLK(m: u32) bool { + return m & S_IFMT == S_IFBLK; +} + +pub fn S_ISREG(m: u32) bool { + return m & S_IFMT == S_IFREG; +} + +pub fn S_ISLNK(m: u32) bool { + return m & S_IFMT == S_IFLNK; +} + +pub fn S_ISSOCK(m: u32) bool { + return m & S_IFMT == S_IFSOCK; +} + +pub fn S_IWHT(m: u32) bool { + return m & S_IFMT == S_IFWHT; +} +pub const HOST_NAME_MAX = 72; diff --git a/lib/std/os/bits/freebsd.zig b/lib/std/os/bits/freebsd.zig new file mode 100644 index 0000000000..3d07e92e01 --- /dev/null +++ b/lib/std/os/bits/freebsd.zig @@ -0,0 +1,941 @@ +const std = @import("../../std.zig"); +const maxInt = std.math.maxInt; + +pub const fd_t = c_int; +pub const pid_t = c_int; + +/// Renamed from `kevent` to `Kevent` to avoid conflict with function name. +pub const Kevent = extern struct { + ident: usize, + filter: i16, + flags: u16, + fflags: u32, + data: i64, + udata: usize, + // TODO ext +}; + +pub const pthread_attr_t = extern struct { + __size: [56]u8, + __align: c_long, +}; + +pub const dl_phdr_info = extern struct { + dlpi_addr: usize, + dlpi_name: ?[*]const u8, + dlpi_phdr: [*]std.elf.Phdr, + dlpi_phnum: u16, +}; + +pub const msghdr = extern struct { + /// optional address + msg_name: ?*sockaddr, + + /// size of address + msg_namelen: socklen_t, + + /// scatter/gather array + msg_iov: [*]iovec, + + /// # elements in msg_iov + msg_iovlen: i32, + + /// ancillary data + msg_control: ?*c_void, + + /// ancillary data buffer len + msg_controllen: socklen_t, + + /// flags on received message + msg_flags: i32, +}; + +pub const msghdr_const = extern struct { + /// optional address + msg_name: ?*const sockaddr, + + /// size of address + msg_namelen: socklen_t, + + /// scatter/gather array + msg_iov: [*]iovec_const, + + /// # elements in msg_iov + msg_iovlen: i32, + + /// ancillary data + msg_control: ?*c_void, + + /// ancillary data buffer len + msg_controllen: socklen_t, + + /// flags on received message + msg_flags: i32, +}; + +pub const off_t = i64; + +/// Renamed to Stat to not conflict with the stat function. +/// atime, mtime, and ctime have functions to return `timespec`, +/// because although this is a POSIX API, the layout and names of +/// the structs are inconsistent across operating systems, and +/// in C, macros are used to hide the differences. Here we use +/// methods to accomplish this. +pub const Stat = extern struct { + dev: u64, + ino: u64, + nlink: usize, + + mode: u16, + __pad0: u16, + uid: u32, + gid: u32, + __pad1: u32, + rdev: u64, + + atim: timespec, + mtim: timespec, + ctim: timespec, + birthtim: timespec, + + size: off_t, + blocks: i64, + blksize: isize, + flags: u32, + gen: u64, + __spare: [10]u64, + + pub fn atime(self: Stat) timespec { + return self.atim; + } + + pub fn mtime(self: Stat) timespec { + return self.mtim; + } + + pub fn ctime(self: Stat) timespec { + return self.ctim; + } +}; + +pub const timespec = extern struct { + tv_sec: isize, + tv_nsec: isize, +}; + +pub const dirent = extern struct { + d_fileno: usize, + d_off: i64, + d_reclen: u16, + d_type: u8, + d_pad0: u8, + d_namlen: u16, + d_pad1: u16, + d_name: [256]u8, +}; + +pub const in_port_t = u16; +pub const sa_family_t = u16; + +pub const sockaddr = extern union { + in: sockaddr_in, + in6: sockaddr_in6, +}; + +pub const sockaddr_in = extern struct { + len: u8, + family: sa_family_t, + port: in_port_t, + addr: [16]u8, + zero: [8]u8, +}; + +pub const sockaddr_in6 = extern struct { + len: u8, + family: sa_family_t, + port: in_port_t, + flowinfo: u32, + addr: [16]u8, + scope_id: u32, +}; + +pub const CTL_KERN = 1; +pub const CTL_DEBUG = 5; + +pub const KERN_PROC = 14; // struct: process entries +pub const KERN_PROC_PATHNAME = 12; // path to executable + +pub const PATH_MAX = 1024; + +pub const STDIN_FILENO = 0; +pub const STDOUT_FILENO = 1; +pub const STDERR_FILENO = 2; + +pub const PROT_NONE = 0; +pub const PROT_READ = 1; +pub const PROT_WRITE = 2; +pub const PROT_EXEC = 4; + +pub const CLOCK_REALTIME = 0; +pub const CLOCK_VIRTUAL = 1; +pub const CLOCK_PROF = 2; +pub const CLOCK_MONOTONIC = 4; +pub const CLOCK_UPTIME = 5; +pub const CLOCK_UPTIME_PRECISE = 7; +pub const CLOCK_UPTIME_FAST = 8; +pub const CLOCK_REALTIME_PRECISE = 9; +pub const CLOCK_REALTIME_FAST = 10; +pub const CLOCK_MONOTONIC_PRECISE = 11; +pub const CLOCK_MONOTONIC_FAST = 12; +pub const CLOCK_SECOND = 13; +pub const CLOCK_THREAD_CPUTIME_ID = 14; +pub const CLOCK_PROCESS_CPUTIME_ID = 15; + +pub const MAP_FAILED = @intToPtr(*c_void, maxInt(usize)); +pub const MAP_SHARED = 0x0001; +pub const MAP_PRIVATE = 0x0002; +pub const MAP_FIXED = 0x0010; +pub const MAP_STACK = 0x0400; +pub const MAP_NOSYNC = 0x0800; +pub const MAP_ANON = 0x1000; +pub const MAP_ANONYMOUS = MAP_ANON; +pub const MAP_FILE = 0; +pub const MAP_NORESERVE = 0; + +pub const MAP_GUARD = 0x00002000; +pub const MAP_EXCL = 0x00004000; +pub const MAP_NOCORE = 0x00020000; +pub const MAP_PREFAULT_READ = 0x00040000; +pub const MAP_32BIT = 0x00080000; + +pub const WNOHANG = 1; +pub const WUNTRACED = 2; +pub const WSTOPPED = WUNTRACED; +pub const WCONTINUED = 4; +pub const WNOWAIT = 8; +pub const WEXITED = 16; +pub const WTRAPPED = 32; + +pub const SA_ONSTACK = 0x0001; +pub const SA_RESTART = 0x0002; +pub const SA_RESETHAND = 0x0004; +pub const SA_NOCLDSTOP = 0x0008; +pub const SA_NODEFER = 0x0010; +pub const SA_NOCLDWAIT = 0x0020; +pub const SA_SIGINFO = 0x0040; + +pub const SIGHUP = 1; +pub const SIGINT = 2; +pub const SIGQUIT = 3; +pub const SIGILL = 4; +pub const SIGTRAP = 5; +pub const SIGABRT = 6; +pub const SIGIOT = SIGABRT; +pub const SIGEMT = 7; +pub const SIGFPE = 8; +pub const SIGKILL = 9; +pub const SIGBUS = 10; +pub const SIGSEGV = 11; +pub const SIGSYS = 12; +pub const SIGPIPE = 13; +pub const SIGALRM = 14; +pub const SIGTERM = 15; +pub const SIGURG = 16; +pub const SIGSTOP = 17; +pub const SIGTSTP = 18; +pub const SIGCONT = 19; +pub const SIGCHLD = 20; +pub const SIGTTIN = 21; +pub const SIGTTOU = 22; +pub const SIGIO = 23; +pub const SIGXCPU = 24; +pub const SIGXFSZ = 25; +pub const SIGVTALRM = 26; +pub const SIGPROF = 27; +pub const SIGWINCH = 28; +pub const SIGINFO = 29; +pub const SIGUSR1 = 30; +pub const SIGUSR2 = 31; +pub const SIGTHR = 32; +pub const SIGLWP = SIGTHR; +pub const SIGLIBRT = 33; + +pub const SIGRTMIN = 65; +pub const SIGRTMAX = 126; + +// access function +pub const F_OK = 0; // test for existence of file +pub const X_OK = 1; // test for execute or search permission +pub const W_OK = 2; // test for write permission +pub const R_OK = 4; // test for read permission + +pub const O_RDONLY = 0x0000; +pub const O_WRONLY = 0x0001; +pub const O_RDWR = 0x0002; +pub const O_ACCMODE = 0x0003; + +pub const O_CREAT = 0x0200; +pub const O_EXCL = 0x0800; +pub const O_NOCTTY = 0x8000; +pub const O_TRUNC = 0x0400; +pub const O_APPEND = 0x0008; +pub const O_NONBLOCK = 0x0004; +pub const O_DSYNC = 0o10000; +pub const O_SYNC = 0x0080; +pub const O_RSYNC = 0o4010000; +pub const O_DIRECTORY = 0o200000; +pub const O_NOFOLLOW = 0x0100; +pub const O_CLOEXEC = 0x00100000; + +pub const O_ASYNC = 0x0040; +pub const O_DIRECT = 0x00010000; +pub const O_LARGEFILE = 0; +pub const O_NOATIME = 0o1000000; +pub const O_PATH = 0o10000000; +pub const O_TMPFILE = 0o20200000; +pub const O_NDELAY = O_NONBLOCK; + +pub const F_DUPFD = 0; +pub const F_GETFD = 1; +pub const F_SETFD = 2; +pub const F_GETFL = 3; +pub const F_SETFL = 4; + +pub const F_SETOWN = 8; +pub const F_GETOWN = 9; +pub const F_SETSIG = 10; +pub const F_GETSIG = 11; + +pub const F_GETLK = 5; +pub const F_SETLK = 6; +pub const F_SETLKW = 7; + +pub const F_SETOWN_EX = 15; +pub const F_GETOWN_EX = 16; + +pub const F_GETOWNER_UIDS = 17; + +pub const SEEK_SET = 0; +pub const SEEK_CUR = 1; +pub const SEEK_END = 2; + +pub const SIG_BLOCK = 1; +pub const SIG_UNBLOCK = 2; +pub const SIG_SETMASK = 3; + +pub const SOCK_STREAM = 1; +pub const SOCK_DGRAM = 2; +pub const SOCK_RAW = 3; +pub const SOCK_RDM = 4; +pub const SOCK_SEQPACKET = 5; + +pub const SOCK_CLOEXEC = 0x10000000; +pub const SOCK_NONBLOCK = 0x20000000; + +pub const PROTO_ip = 0o000; +pub const PROTO_icmp = 0o001; +pub const PROTO_igmp = 0o002; +pub const PROTO_ggp = 0o003; +pub const PROTO_ipencap = 0o004; +pub const PROTO_st = 0o005; +pub const PROTO_tcp = 0o006; +pub const PROTO_egp = 0o010; +pub const PROTO_pup = 0o014; +pub const PROTO_udp = 0o021; +pub const PROTO_hmp = 0o024; +pub const PROTO_xns_idp = 0o026; +pub const PROTO_rdp = 0o033; +pub const PROTO_iso_tp4 = 0o035; +pub const PROTO_xtp = 0o044; +pub const PROTO_ddp = 0o045; +pub const PROTO_idpr_cmtp = 0o046; +pub const PROTO_ipv6 = 0o051; +pub const PROTO_ipv6_route = 0o053; +pub const PROTO_ipv6_frag = 0o054; +pub const PROTO_idrp = 0o055; +pub const PROTO_rsvp = 0o056; +pub const PROTO_gre = 0o057; +pub const PROTO_esp = 0o062; +pub const PROTO_ah = 0o063; +pub const PROTO_skip = 0o071; +pub const PROTO_ipv6_icmp = 0o072; +pub const PROTO_ipv6_nonxt = 0o073; +pub const PROTO_ipv6_opts = 0o074; +pub const PROTO_rspf = 0o111; +pub const PROTO_vmtp = 0o121; +pub const PROTO_ospf = 0o131; +pub const PROTO_ipip = 0o136; +pub const PROTO_encap = 0o142; +pub const PROTO_pim = 0o147; +pub const PROTO_raw = 0o377; + +pub const PF_UNSPEC = 0; +pub const PF_LOCAL = 1; +pub const PF_UNIX = PF_LOCAL; +pub const PF_FILE = PF_LOCAL; +pub const PF_INET = 2; +pub const PF_AX25 = 3; +pub const PF_IPX = 4; +pub const PF_APPLETALK = 5; +pub const PF_NETROM = 6; +pub const PF_BRIDGE = 7; +pub const PF_ATMPVC = 8; +pub const PF_X25 = 9; +pub const PF_INET6 = 10; +pub const PF_ROSE = 11; +pub const PF_DECnet = 12; +pub const PF_NETBEUI = 13; +pub const PF_SECURITY = 14; +pub const PF_KEY = 15; +pub const PF_NETLINK = 16; +pub const PF_ROUTE = PF_NETLINK; +pub const PF_PACKET = 17; +pub const PF_ASH = 18; +pub const PF_ECONET = 19; +pub const PF_ATMSVC = 20; +pub const PF_RDS = 21; +pub const PF_SNA = 22; +pub const PF_IRDA = 23; +pub const PF_PPPOX = 24; +pub const PF_WANPIPE = 25; +pub const PF_LLC = 26; +pub const PF_IB = 27; +pub const PF_MPLS = 28; +pub const PF_CAN = 29; +pub const PF_TIPC = 30; +pub const PF_BLUETOOTH = 31; +pub const PF_IUCV = 32; +pub const PF_RXRPC = 33; +pub const PF_ISDN = 34; +pub const PF_PHONET = 35; +pub const PF_IEEE802154 = 36; +pub const PF_CAIF = 37; +pub const PF_ALG = 38; +pub const PF_NFC = 39; +pub const PF_VSOCK = 40; +pub const PF_MAX = 41; + +pub const AF_UNSPEC = PF_UNSPEC; +pub const AF_LOCAL = PF_LOCAL; +pub const AF_UNIX = AF_LOCAL; +pub const AF_FILE = AF_LOCAL; +pub const AF_INET = PF_INET; +pub const AF_AX25 = PF_AX25; +pub const AF_IPX = PF_IPX; +pub const AF_APPLETALK = PF_APPLETALK; +pub const AF_NETROM = PF_NETROM; +pub const AF_BRIDGE = PF_BRIDGE; +pub const AF_ATMPVC = PF_ATMPVC; +pub const AF_X25 = PF_X25; +pub const AF_INET6 = PF_INET6; +pub const AF_ROSE = PF_ROSE; +pub const AF_DECnet = PF_DECnet; +pub const AF_NETBEUI = PF_NETBEUI; +pub const AF_SECURITY = PF_SECURITY; +pub const AF_KEY = PF_KEY; +pub const AF_NETLINK = PF_NETLINK; +pub const AF_ROUTE = PF_ROUTE; +pub const AF_PACKET = PF_PACKET; +pub const AF_ASH = PF_ASH; +pub const AF_ECONET = PF_ECONET; +pub const AF_ATMSVC = PF_ATMSVC; +pub const AF_RDS = PF_RDS; +pub const AF_SNA = PF_SNA; +pub const AF_IRDA = PF_IRDA; +pub const AF_PPPOX = PF_PPPOX; +pub const AF_WANPIPE = PF_WANPIPE; +pub const AF_LLC = PF_LLC; +pub const AF_IB = PF_IB; +pub const AF_MPLS = PF_MPLS; +pub const AF_CAN = PF_CAN; +pub const AF_TIPC = PF_TIPC; +pub const AF_BLUETOOTH = PF_BLUETOOTH; +pub const AF_IUCV = PF_IUCV; +pub const AF_RXRPC = PF_RXRPC; +pub const AF_ISDN = PF_ISDN; +pub const AF_PHONET = PF_PHONET; +pub const AF_IEEE802154 = PF_IEEE802154; +pub const AF_CAIF = PF_CAIF; +pub const AF_ALG = PF_ALG; +pub const AF_NFC = PF_NFC; +pub const AF_VSOCK = PF_VSOCK; +pub const AF_MAX = PF_MAX; + +pub const DT_UNKNOWN = 0; +pub const DT_FIFO = 1; +pub const DT_CHR = 2; +pub const DT_DIR = 4; +pub const DT_BLK = 6; +pub const DT_REG = 8; +pub const DT_LNK = 10; +pub const DT_SOCK = 12; +pub const DT_WHT = 14; + +/// add event to kq (implies enable) +pub const EV_ADD = 0x0001; + +/// delete event from kq +pub const EV_DELETE = 0x0002; + +/// enable event +pub const EV_ENABLE = 0x0004; + +/// disable event (not reported) +pub const EV_DISABLE = 0x0008; + +/// only report one occurrence +pub const EV_ONESHOT = 0x0010; + +/// clear event state after reporting +pub const EV_CLEAR = 0x0020; + +/// force immediate event output +/// ... with or without EV_ERROR +/// ... use KEVENT_FLAG_ERROR_EVENTS +/// on syscalls supporting flags +pub const EV_RECEIPT = 0x0040; + +/// disable event after reporting +pub const EV_DISPATCH = 0x0080; + +pub const EVFILT_READ = -1; +pub const EVFILT_WRITE = -2; + +/// attached to aio requests +pub const EVFILT_AIO = -3; + +/// attached to vnodes +pub const EVFILT_VNODE = -4; + +/// attached to struct proc +pub const EVFILT_PROC = -5; + +/// attached to struct proc +pub const EVFILT_SIGNAL = -6; + +/// timers +pub const EVFILT_TIMER = -7; + +/// Process descriptors +pub const EVFILT_PROCDESC = -8; + +/// Filesystem events +pub const EVFILT_FS = -9; + +pub const EVFILT_LIO = -10; + +/// User events +pub const EVFILT_USER = -11; + +/// Sendfile events +pub const EVFILT_SENDFILE = -12; + +pub const EVFILT_EMPTY = -13; + +/// On input, NOTE_TRIGGER causes the event to be triggered for output. +pub const NOTE_TRIGGER = 0x01000000; + +/// ignore input fflags +pub const NOTE_FFNOP = 0x00000000; + +/// and fflags +pub const NOTE_FFAND = 0x40000000; + +/// or fflags +pub const NOTE_FFOR = 0x80000000; + +/// copy fflags +pub const NOTE_FFCOPY = 0xc0000000; + +/// mask for operations +pub const NOTE_FFCTRLMASK = 0xc0000000; +pub const NOTE_FFLAGSMASK = 0x00ffffff; + +/// low water mark +pub const NOTE_LOWAT = 0x00000001; + +/// behave like poll() +pub const NOTE_FILE_POLL = 0x00000002; + +/// vnode was removed +pub const NOTE_DELETE = 0x00000001; + +/// data contents changed +pub const NOTE_WRITE = 0x00000002; + +/// size increased +pub const NOTE_EXTEND = 0x00000004; + +/// attributes changed +pub const NOTE_ATTRIB = 0x00000008; + +/// link count changed +pub const NOTE_LINK = 0x00000010; + +/// vnode was renamed +pub const NOTE_RENAME = 0x00000020; + +/// vnode access was revoked +pub const NOTE_REVOKE = 0x00000040; + +/// vnode was opened +pub const NOTE_OPEN = 0x00000080; + +/// file closed, fd did not allow write +pub const NOTE_CLOSE = 0x00000100; + +/// file closed, fd did allow write +pub const NOTE_CLOSE_WRITE = 0x00000200; + +/// file was read +pub const NOTE_READ = 0x00000400; + +/// process exited +pub const NOTE_EXIT = 0x80000000; + +/// process forked +pub const NOTE_FORK = 0x40000000; + +/// process exec'd +pub const NOTE_EXEC = 0x20000000; + +/// mask for signal & exit status +pub const NOTE_PDATAMASK = 0x000fffff; +pub const NOTE_PCTRLMASK = (~NOTE_PDATAMASK); + +/// data is seconds +pub const NOTE_SECONDS = 0x00000001; + +/// data is milliseconds +pub const NOTE_MSECONDS = 0x00000002; + +/// data is microseconds +pub const NOTE_USECONDS = 0x00000004; + +/// data is nanoseconds +pub const NOTE_NSECONDS = 0x00000008; + +/// timeout is absolute +pub const NOTE_ABSTIME = 0x00000010; + +pub const TCGETS = 0x5401; +pub const TCSETS = 0x5402; +pub const TCSETSW = 0x5403; +pub const TCSETSF = 0x5404; +pub const TCGETA = 0x5405; +pub const TCSETA = 0x5406; +pub const TCSETAW = 0x5407; +pub const TCSETAF = 0x5408; +pub const TCSBRK = 0x5409; +pub const TCXONC = 0x540A; +pub const TCFLSH = 0x540B; +pub const TIOCEXCL = 0x540C; +pub const TIOCNXCL = 0x540D; +pub const TIOCSCTTY = 0x540E; +pub const TIOCGPGRP = 0x540F; +pub const TIOCSPGRP = 0x5410; +pub const TIOCOUTQ = 0x5411; +pub const TIOCSTI = 0x5412; +pub const TIOCGWINSZ = 0x5413; +pub const TIOCSWINSZ = 0x5414; +pub const TIOCMGET = 0x5415; +pub const TIOCMBIS = 0x5416; +pub const TIOCMBIC = 0x5417; +pub const TIOCMSET = 0x5418; +pub const TIOCGSOFTCAR = 0x5419; +pub const TIOCSSOFTCAR = 0x541A; +pub const FIONREAD = 0x541B; +pub const TIOCINQ = FIONREAD; +pub const TIOCLINUX = 0x541C; +pub const TIOCCONS = 0x541D; +pub const TIOCGSERIAL = 0x541E; +pub const TIOCSSERIAL = 0x541F; +pub const TIOCPKT = 0x5420; +pub const FIONBIO = 0x5421; +pub const TIOCNOTTY = 0x5422; +pub const TIOCSETD = 0x5423; +pub const TIOCGETD = 0x5424; +pub const TCSBRKP = 0x5425; +pub const TIOCSBRK = 0x5427; +pub const TIOCCBRK = 0x5428; +pub const TIOCGSID = 0x5429; +pub const TIOCGRS485 = 0x542E; +pub const TIOCSRS485 = 0x542F; +pub const TIOCGPTN = 0x80045430; +pub const TIOCSPTLCK = 0x40045431; +pub const TIOCGDEV = 0x80045432; +pub const TCGETX = 0x5432; +pub const TCSETX = 0x5433; +pub const TCSETXF = 0x5434; +pub const TCSETXW = 0x5435; +pub const TIOCSIG = 0x40045436; +pub const TIOCVHANGUP = 0x5437; +pub const TIOCGPKT = 0x80045438; +pub const TIOCGPTLCK = 0x80045439; +pub const TIOCGEXCL = 0x80045440; + +pub fn WEXITSTATUS(s: u32) u32 { + return (s & 0xff00) >> 8; +} +pub fn WTERMSIG(s: u32) u32 { + return s & 0x7f; +} +pub fn WSTOPSIG(s: u32) u32 { + return WEXITSTATUS(s); +} +pub fn WIFEXITED(s: u32) bool { + return WTERMSIG(s) == 0; +} +pub fn WIFSTOPPED(s: u32) bool { + return @intCast(u16, (((s & 0xffff) *% 0x10001) >> 8)) > 0x7f00; +} +pub fn WIFSIGNALED(s: u32) bool { + return (s & 0xffff) -% 1 < 0xff; +} + +pub const winsize = extern struct { + ws_row: u16, + ws_col: u16, + ws_xpixel: u16, + ws_ypixel: u16, +}; + +const NSIG = 32; + +pub const SIG_ERR = @intToPtr(extern fn (i32) void, maxInt(usize)); +pub const SIG_DFL = @intToPtr(extern fn (i32) void, 0); +pub const SIG_IGN = @intToPtr(extern fn (i32) void, 1); + +/// Renamed from `sigaction` to `Sigaction` to avoid conflict with the syscall. +pub const Sigaction = extern struct { + /// signal handler + __sigaction_u: extern union { + __sa_handler: extern fn (i32) void, + __sa_sigaction: extern fn (i32, *__siginfo, usize) void, + }, + + /// see signal options + sa_flags: u32, + + /// signal mask to apply + sa_mask: sigset_t, +}; + +pub const _SIG_WORDS = 4; +pub const _SIG_MAXSIG = 128; + +pub inline fn _SIG_IDX(sig: usize) usize { + return sig - 1; +} +pub inline fn _SIG_WORD(sig: usize) usize { + return_SIG_IDX(sig) >> 5; +} +pub inline fn _SIG_BIT(sig: usize) usize { + return 1 << (_SIG_IDX(sig) & 31); +} +pub inline fn _SIG_VALID(sig: usize) usize { + return sig <= _SIG_MAXSIG and sig > 0; +} + +pub const sigset_t = extern struct { + __bits: [_SIG_WORDS]u32, +}; + +pub const EPERM = 1; // Operation not permitted +pub const ENOENT = 2; // No such file or directory +pub const ESRCH = 3; // No such process +pub const EINTR = 4; // Interrupted system call +pub const EIO = 5; // Input/output error +pub const ENXIO = 6; // Device not configured +pub const E2BIG = 7; // Argument list too long +pub const ENOEXEC = 8; // Exec format error +pub const EBADF = 9; // Bad file descriptor +pub const ECHILD = 10; // No child processes +pub const EDEADLK = 11; // Resource deadlock avoided +// 11 was EAGAIN +pub const ENOMEM = 12; // Cannot allocate memory +pub const EACCES = 13; // Permission denied +pub const EFAULT = 14; // Bad address +pub const ENOTBLK = 15; // Block device required +pub const EBUSY = 16; // Device busy +pub const EEXIST = 17; // File exists +pub const EXDEV = 18; // Cross-device link +pub const ENODEV = 19; // Operation not supported by device +pub const ENOTDIR = 20; // Not a directory +pub const EISDIR = 21; // Is a directory +pub const EINVAL = 22; // Invalid argument +pub const ENFILE = 23; // Too many open files in system +pub const EMFILE = 24; // Too many open files +pub const ENOTTY = 25; // Inappropriate ioctl for device +pub const ETXTBSY = 26; // Text file busy +pub const EFBIG = 27; // File too large +pub const ENOSPC = 28; // No space left on device +pub const ESPIPE = 29; // Illegal seek +pub const EROFS = 30; // Read-only filesystem +pub const EMLINK = 31; // Too many links +pub const EPIPE = 32; // Broken pipe + +// math software +pub const EDOM = 33; // Numerical argument out of domain +pub const ERANGE = 34; // Result too large + +// non-blocking and interrupt i/o +pub const EAGAIN = 35; // Resource temporarily unavailable +pub const EWOULDBLOCK = EAGAIN; // Operation would block +pub const EINPROGRESS = 36; // Operation now in progress +pub const EALREADY = 37; // Operation already in progress + +// ipc/network software -- argument errors +pub const ENOTSOCK = 38; // Socket operation on non-socket +pub const EDESTADDRREQ = 39; // Destination address required +pub const EMSGSIZE = 40; // Message too long +pub const EPROTOTYPE = 41; // Protocol wrong type for socket +pub const ENOPROTOOPT = 42; // Protocol not available +pub const EPROTONOSUPPORT = 43; // Protocol not supported +pub const ESOCKTNOSUPPORT = 44; // Socket type not supported +pub const EOPNOTSUPP = 45; // Operation not supported +pub const ENOTSUP = EOPNOTSUPP; // Operation not supported +pub const EPFNOSUPPORT = 46; // Protocol family not supported +pub const EAFNOSUPPORT = 47; // Address family not supported by protocol family +pub const EADDRINUSE = 48; // Address already in use +pub const EADDRNOTAVAIL = 49; // Can't assign requested address + +// ipc/network software -- operational errors +pub const ENETDOWN = 50; // Network is down +pub const ENETUNREACH = 51; // Network is unreachable +pub const ENETRESET = 52; // Network dropped connection on reset +pub const ECONNABORTED = 53; // Software caused connection abort +pub const ECONNRESET = 54; // Connection reset by peer +pub const ENOBUFS = 55; // No buffer space available +pub const EISCONN = 56; // Socket is already connected +pub const ENOTCONN = 57; // Socket is not connected +pub const ESHUTDOWN = 58; // Can't send after socket shutdown +pub const ETOOMANYREFS = 59; // Too many references: can't splice +pub const ETIMEDOUT = 60; // Operation timed out +pub const ECONNREFUSED = 61; // Connection refused + +pub const ELOOP = 62; // Too many levels of symbolic links +pub const ENAMETOOLONG = 63; // File name too long + +// should be rearranged +pub const EHOSTDOWN = 64; // Host is down +pub const EHOSTUNREACH = 65; // No route to host +pub const ENOTEMPTY = 66; // Directory not empty + +// quotas & mush +pub const EPROCLIM = 67; // Too many processes +pub const EUSERS = 68; // Too many users +pub const EDQUOT = 69; // Disc quota exceeded + +// Network File System +pub const ESTALE = 70; // Stale NFS file handle +pub const EREMOTE = 71; // Too many levels of remote in path +pub const EBADRPC = 72; // RPC struct is bad +pub const ERPCMISMATCH = 73; // RPC version wrong +pub const EPROGUNAVAIL = 74; // RPC prog. not avail +pub const EPROGMISMATCH = 75; // Program version wrong +pub const EPROCUNAVAIL = 76; // Bad procedure for program + +pub const ENOLCK = 77; // No locks available +pub const ENOSYS = 78; // Function not implemented + +pub const EFTYPE = 79; // Inappropriate file type or format +pub const EAUTH = 80; // Authentication error +pub const ENEEDAUTH = 81; // Need authenticator +pub const EIDRM = 82; // Identifier removed +pub const ENOMSG = 83; // No message of desired type +pub const EOVERFLOW = 84; // Value too large to be stored in data type +pub const ECANCELED = 85; // Operation canceled +pub const EILSEQ = 86; // Illegal byte sequence +pub const ENOATTR = 87; // Attribute not found + +pub const EDOOFUS = 88; // Programming error + +pub const EBADMSG = 89; // Bad message +pub const EMULTIHOP = 90; // Multihop attempted +pub const ENOLINK = 91; // Link has been severed +pub const EPROTO = 92; // Protocol error + +pub const ENOTCAPABLE = 93; // Capabilities insufficient +pub const ECAPMODE = 94; // Not permitted in capability mode +pub const ENOTRECOVERABLE = 95; // State not recoverable +pub const EOWNERDEAD = 96; // Previous owner died + +pub const ELAST = 96; // Must be equal largest errno + +pub const MINSIGSTKSZ = switch (builtin.arch) { + .i386, .x86_64 => 2048, + .arm, .aarch64 => 4096, + else => @compileError("MINSIGSTKSZ not defined for this architecture"), +}; +pub const SIGSTKSZ = MINSIGSTKSZ + 32768; + +pub const SS_ONSTACK = 1; +pub const SS_DISABLE = 4; + +pub const stack_t = extern struct { + ss_sp: [*]u8, + ss_size: isize, + ss_flags: i32, +}; + +pub const S_IFMT = 0o170000; + +pub const S_IFIFO = 0o010000; +pub const S_IFCHR = 0o020000; +pub const S_IFDIR = 0o040000; +pub const S_IFBLK = 0o060000; +pub const S_IFREG = 0o100000; +pub const S_IFLNK = 0o120000; +pub const S_IFSOCK = 0o140000; +pub const S_IFWHT = 0o160000; + +pub const S_ISUID = 0o4000; +pub const S_ISGID = 0o2000; +pub const S_ISVTX = 0o1000; +pub const S_IRWXU = 0o700; +pub const S_IRUSR = 0o400; +pub const S_IWUSR = 0o200; +pub const S_IXUSR = 0o100; +pub const S_IRWXG = 0o070; +pub const S_IRGRP = 0o040; +pub const S_IWGRP = 0o020; +pub const S_IXGRP = 0o010; +pub const S_IRWXO = 0o007; +pub const S_IROTH = 0o004; +pub const S_IWOTH = 0o002; +pub const S_IXOTH = 0o001; + +pub fn S_ISFIFO(m: u32) bool { + return m & S_IFMT == S_IFIFO; +} + +pub fn S_ISCHR(m: u32) bool { + return m & S_IFMT == S_IFCHR; +} + +pub fn S_ISDIR(m: u32) bool { + return m & S_IFMT == S_IFDIR; +} + +pub fn S_ISBLK(m: u32) bool { + return m & S_IFMT == S_IFBLK; +} + +pub fn S_ISREG(m: u32) bool { + return m & S_IFMT == S_IFREG; +} + +pub fn S_ISLNK(m: u32) bool { + return m & S_IFMT == S_IFLNK; +} + +pub fn S_ISSOCK(m: u32) bool { + return m & S_IFMT == S_IFSOCK; +} + +pub fn S_IWHT(m: u32) bool { + return m & S_IFMT == S_IFWHT; +} + +pub const HOST_NAME_MAX = 255; diff --git a/lib/std/os/bits/linux.zig b/lib/std/os/bits/linux.zig new file mode 100644 index 0000000000..939d203e8d --- /dev/null +++ b/lib/std/os/bits/linux.zig @@ -0,0 +1,1187 @@ +const builtin = @import("builtin"); +const std = @import("../../std.zig"); +const maxInt = std.math.maxInt; +usingnamespace @import("../bits.zig"); + +pub usingnamespace @import("linux/errno.zig"); +pub usingnamespace switch (builtin.arch) { + .x86_64 => @import("linux/x86_64.zig"), + .aarch64 => @import("linux/arm64.zig"), + .arm => @import("linux/arm-eabi.zig"), + .riscv64 => @import("linux/riscv64.zig"), + else => struct {}, +}; + +pub const pid_t = i32; +pub const fd_t = i32; +pub const uid_t = i32; +pub const gid_t = u32; +pub const clock_t = isize; + +pub const PATH_MAX = 4096; +pub const IOV_MAX = 1024; + +pub const STDIN_FILENO = 0; +pub const STDOUT_FILENO = 1; +pub const STDERR_FILENO = 2; + +/// Special value used to indicate openat should use the current working directory +pub const AT_FDCWD = -100; + +/// Do not follow symbolic links +pub const AT_SYMLINK_NOFOLLOW = 0x100; + +/// Remove directory instead of unlinking file +pub const AT_REMOVEDIR = 0x200; + +/// Follow symbolic links. +pub const AT_SYMLINK_FOLLOW = 0x400; + +/// Suppress terminal automount traversal +pub const AT_NO_AUTOMOUNT = 0x800; + +/// Allow empty relative pathname +pub const AT_EMPTY_PATH = 0x1000; + +/// Type of synchronisation required from statx() +pub const AT_STATX_SYNC_TYPE = 0x6000; + +/// - Do whatever stat() does +pub const AT_STATX_SYNC_AS_STAT = 0x0000; + +/// - Force the attributes to be sync'd with the server +pub const AT_STATX_FORCE_SYNC = 0x2000; + +/// - Don't sync attributes with the server +pub const AT_STATX_DONT_SYNC = 0x4000; + +/// Apply to the entire subtree +pub const AT_RECURSIVE = 0x8000; + +pub const FUTEX_WAIT = 0; +pub const FUTEX_WAKE = 1; +pub const FUTEX_FD = 2; +pub const FUTEX_REQUEUE = 3; +pub const FUTEX_CMP_REQUEUE = 4; +pub const FUTEX_WAKE_OP = 5; +pub const FUTEX_LOCK_PI = 6; +pub const FUTEX_UNLOCK_PI = 7; +pub const FUTEX_TRYLOCK_PI = 8; +pub const FUTEX_WAIT_BITSET = 9; + +pub const FUTEX_PRIVATE_FLAG = 128; + +pub const FUTEX_CLOCK_REALTIME = 256; + +pub const PROT_NONE = 0; +pub const PROT_READ = 1; +pub const PROT_WRITE = 2; +pub const PROT_EXEC = 4; +pub const PROT_GROWSDOWN = 0x01000000; +pub const PROT_GROWSUP = 0x02000000; + +/// Share changes +pub const MAP_SHARED = 0x01; + +/// Changes are private +pub const MAP_PRIVATE = 0x02; + +/// share + validate extension flags +pub const MAP_SHARED_VALIDATE = 0x03; + +/// Mask for type of mapping +pub const MAP_TYPE = 0x0f; + +/// Interpret addr exactly +pub const MAP_FIXED = 0x10; + +/// don't use a file +pub const MAP_ANONYMOUS = 0x20; + +// MAP_ 0x0100 - 0x4000 flags are per architecture + +/// populate (prefault) pagetables +pub const MAP_POPULATE = 0x8000; + +/// do not block on IO +pub const MAP_NONBLOCK = 0x10000; + +/// give out an address that is best suited for process/thread stacks +pub const MAP_STACK = 0x20000; + +/// create a huge page mapping +pub const MAP_HUGETLB = 0x40000; + +/// perform synchronous page faults for the mapping +pub const MAP_SYNC = 0x80000; + +/// MAP_FIXED which doesn't unmap underlying mapping +pub const MAP_FIXED_NOREPLACE = 0x100000; + +/// For anonymous mmap, memory could be uninitialized +pub const MAP_UNINITIALIZED = 0x4000000; + +pub const F_OK = 0; +pub const X_OK = 1; +pub const W_OK = 2; +pub const R_OK = 4; + +pub const WNOHANG = 1; +pub const WUNTRACED = 2; +pub const WSTOPPED = 2; +pub const WEXITED = 4; +pub const WCONTINUED = 8; +pub const WNOWAIT = 0x1000000; + +pub const SA_NOCLDSTOP = 1; +pub const SA_NOCLDWAIT = 2; +pub const SA_SIGINFO = 4; +pub const SA_ONSTACK = 0x08000000; +pub const SA_RESTART = 0x10000000; +pub const SA_NODEFER = 0x40000000; +pub const SA_RESETHAND = 0x80000000; +pub const SA_RESTORER = 0x04000000; + +pub const SIGHUP = 1; +pub const SIGINT = 2; +pub const SIGQUIT = 3; +pub const SIGILL = 4; +pub const SIGTRAP = 5; +pub const SIGABRT = 6; +pub const SIGIOT = SIGABRT; +pub const SIGBUS = 7; +pub const SIGFPE = 8; +pub const SIGKILL = 9; +pub const SIGUSR1 = 10; +pub const SIGSEGV = 11; +pub const SIGUSR2 = 12; +pub const SIGPIPE = 13; +pub const SIGALRM = 14; +pub const SIGTERM = 15; +pub const SIGSTKFLT = 16; +pub const SIGCHLD = 17; +pub const SIGCONT = 18; +pub const SIGSTOP = 19; +pub const SIGTSTP = 20; +pub const SIGTTIN = 21; +pub const SIGTTOU = 22; +pub const SIGURG = 23; +pub const SIGXCPU = 24; +pub const SIGXFSZ = 25; +pub const SIGVTALRM = 26; +pub const SIGPROF = 27; +pub const SIGWINCH = 28; +pub const SIGIO = 29; +pub const SIGPOLL = 29; +pub const SIGPWR = 30; +pub const SIGSYS = 31; +pub const SIGUNUSED = SIGSYS; + +pub const O_RDONLY = 0o0; +pub const O_WRONLY = 0o1; +pub const O_RDWR = 0o2; + +pub const kernel_rwf = u32; + +/// high priority request, poll if possible +pub const RWF_HIPRI = kernel_rwf(0x00000001); + +/// per-IO O_DSYNC +pub const RWF_DSYNC = kernel_rwf(0x00000002); + +/// per-IO O_SYNC +pub const RWF_SYNC = kernel_rwf(0x00000004); + +/// per-IO, return -EAGAIN if operation would block +pub const RWF_NOWAIT = kernel_rwf(0x00000008); + +/// per-IO O_APPEND +pub const RWF_APPEND = kernel_rwf(0x00000010); + +pub const SEEK_SET = 0; +pub const SEEK_CUR = 1; +pub const SEEK_END = 2; + +pub const SIG_BLOCK = 0; +pub const SIG_UNBLOCK = 1; +pub const SIG_SETMASK = 2; + +pub const PROTO_ip = 0o000; +pub const PROTO_icmp = 0o001; +pub const PROTO_igmp = 0o002; +pub const PROTO_ggp = 0o003; +pub const PROTO_ipencap = 0o004; +pub const PROTO_st = 0o005; +pub const PROTO_tcp = 0o006; +pub const PROTO_egp = 0o010; +pub const PROTO_pup = 0o014; +pub const PROTO_udp = 0o021; +pub const PROTO_hmp = 0o024; +pub const PROTO_xns_idp = 0o026; +pub const PROTO_rdp = 0o033; +pub const PROTO_iso_tp4 = 0o035; +pub const PROTO_xtp = 0o044; +pub const PROTO_ddp = 0o045; +pub const PROTO_idpr_cmtp = 0o046; +pub const PROTO_ipv6 = 0o051; +pub const PROTO_ipv6_route = 0o053; +pub const PROTO_ipv6_frag = 0o054; +pub const PROTO_idrp = 0o055; +pub const PROTO_rsvp = 0o056; +pub const PROTO_gre = 0o057; +pub const PROTO_esp = 0o062; +pub const PROTO_ah = 0o063; +pub const PROTO_skip = 0o071; +pub const PROTO_ipv6_icmp = 0o072; +pub const PROTO_ipv6_nonxt = 0o073; +pub const PROTO_ipv6_opts = 0o074; +pub const PROTO_rspf = 0o111; +pub const PROTO_vmtp = 0o121; +pub const PROTO_ospf = 0o131; +pub const PROTO_ipip = 0o136; +pub const PROTO_encap = 0o142; +pub const PROTO_pim = 0o147; +pub const PROTO_raw = 0o377; + +pub const SHUT_RD = 0; +pub const SHUT_WR = 1; +pub const SHUT_RDWR = 2; + +pub const SOCK_STREAM = 1; +pub const SOCK_DGRAM = 2; +pub const SOCK_RAW = 3; +pub const SOCK_RDM = 4; +pub const SOCK_SEQPACKET = 5; +pub const SOCK_DCCP = 6; +pub const SOCK_PACKET = 10; +pub const SOCK_CLOEXEC = 0o2000000; +pub const SOCK_NONBLOCK = 0o4000; + +pub const PF_UNSPEC = 0; +pub const PF_LOCAL = 1; +pub const PF_UNIX = PF_LOCAL; +pub const PF_FILE = PF_LOCAL; +pub const PF_INET = 2; +pub const PF_AX25 = 3; +pub const PF_IPX = 4; +pub const PF_APPLETALK = 5; +pub const PF_NETROM = 6; +pub const PF_BRIDGE = 7; +pub const PF_ATMPVC = 8; +pub const PF_X25 = 9; +pub const PF_INET6 = 10; +pub const PF_ROSE = 11; +pub const PF_DECnet = 12; +pub const PF_NETBEUI = 13; +pub const PF_SECURITY = 14; +pub const PF_KEY = 15; +pub const PF_NETLINK = 16; +pub const PF_ROUTE = PF_NETLINK; +pub const PF_PACKET = 17; +pub const PF_ASH = 18; +pub const PF_ECONET = 19; +pub const PF_ATMSVC = 20; +pub const PF_RDS = 21; +pub const PF_SNA = 22; +pub const PF_IRDA = 23; +pub const PF_PPPOX = 24; +pub const PF_WANPIPE = 25; +pub const PF_LLC = 26; +pub const PF_IB = 27; +pub const PF_MPLS = 28; +pub const PF_CAN = 29; +pub const PF_TIPC = 30; +pub const PF_BLUETOOTH = 31; +pub const PF_IUCV = 32; +pub const PF_RXRPC = 33; +pub const PF_ISDN = 34; +pub const PF_PHONET = 35; +pub const PF_IEEE802154 = 36; +pub const PF_CAIF = 37; +pub const PF_ALG = 38; +pub const PF_NFC = 39; +pub const PF_VSOCK = 40; +pub const PF_KCM = 41; +pub const PF_QIPCRTR = 42; +pub const PF_SMC = 43; +pub const PF_MAX = 44; + +pub const AF_UNSPEC = PF_UNSPEC; +pub const AF_LOCAL = PF_LOCAL; +pub const AF_UNIX = AF_LOCAL; +pub const AF_FILE = AF_LOCAL; +pub const AF_INET = PF_INET; +pub const AF_AX25 = PF_AX25; +pub const AF_IPX = PF_IPX; +pub const AF_APPLETALK = PF_APPLETALK; +pub const AF_NETROM = PF_NETROM; +pub const AF_BRIDGE = PF_BRIDGE; +pub const AF_ATMPVC = PF_ATMPVC; +pub const AF_X25 = PF_X25; +pub const AF_INET6 = PF_INET6; +pub const AF_ROSE = PF_ROSE; +pub const AF_DECnet = PF_DECnet; +pub const AF_NETBEUI = PF_NETBEUI; +pub const AF_SECURITY = PF_SECURITY; +pub const AF_KEY = PF_KEY; +pub const AF_NETLINK = PF_NETLINK; +pub const AF_ROUTE = PF_ROUTE; +pub const AF_PACKET = PF_PACKET; +pub const AF_ASH = PF_ASH; +pub const AF_ECONET = PF_ECONET; +pub const AF_ATMSVC = PF_ATMSVC; +pub const AF_RDS = PF_RDS; +pub const AF_SNA = PF_SNA; +pub const AF_IRDA = PF_IRDA; +pub const AF_PPPOX = PF_PPPOX; +pub const AF_WANPIPE = PF_WANPIPE; +pub const AF_LLC = PF_LLC; +pub const AF_IB = PF_IB; +pub const AF_MPLS = PF_MPLS; +pub const AF_CAN = PF_CAN; +pub const AF_TIPC = PF_TIPC; +pub const AF_BLUETOOTH = PF_BLUETOOTH; +pub const AF_IUCV = PF_IUCV; +pub const AF_RXRPC = PF_RXRPC; +pub const AF_ISDN = PF_ISDN; +pub const AF_PHONET = PF_PHONET; +pub const AF_IEEE802154 = PF_IEEE802154; +pub const AF_CAIF = PF_CAIF; +pub const AF_ALG = PF_ALG; +pub const AF_NFC = PF_NFC; +pub const AF_VSOCK = PF_VSOCK; +pub const AF_KCM = PF_KCM; +pub const AF_QIPCRTR = PF_QIPCRTR; +pub const AF_SMC = PF_SMC; +pub const AF_MAX = PF_MAX; + +pub const SO_DEBUG = 1; +pub const SO_REUSEADDR = 2; +pub const SO_TYPE = 3; +pub const SO_ERROR = 4; +pub const SO_DONTROUTE = 5; +pub const SO_BROADCAST = 6; +pub const SO_SNDBUF = 7; +pub const SO_RCVBUF = 8; +pub const SO_KEEPALIVE = 9; +pub const SO_OOBINLINE = 10; +pub const SO_NO_CHECK = 11; +pub const SO_PRIORITY = 12; +pub const SO_LINGER = 13; +pub const SO_BSDCOMPAT = 14; +pub const SO_REUSEPORT = 15; +pub const SO_PASSCRED = 16; +pub const SO_PEERCRED = 17; +pub const SO_RCVLOWAT = 18; +pub const SO_SNDLOWAT = 19; +pub const SO_RCVTIMEO = 20; +pub const SO_SNDTIMEO = 21; +pub const SO_ACCEPTCONN = 30; +pub const SO_SNDBUFFORCE = 32; +pub const SO_RCVBUFFORCE = 33; +pub const SO_PROTOCOL = 38; +pub const SO_DOMAIN = 39; + +pub const SO_SECURITY_AUTHENTICATION = 22; +pub const SO_SECURITY_ENCRYPTION_TRANSPORT = 23; +pub const SO_SECURITY_ENCRYPTION_NETWORK = 24; + +pub const SO_BINDTODEVICE = 25; + +pub const SO_ATTACH_FILTER = 26; +pub const SO_DETACH_FILTER = 27; +pub const SO_GET_FILTER = SO_ATTACH_FILTER; + +pub const SO_PEERNAME = 28; +pub const SO_TIMESTAMP_OLD = 29; +pub const SO_PEERSEC = 31; +pub const SO_PASSSEC = 34; +pub const SO_TIMESTAMPNS_OLD = 35; +pub const SO_MARK = 36; +pub const SO_TIMESTAMPING_OLD = 37; +pub const SO_RXQ_OVFL = 40; +pub const SO_WIFI_STATUS = 41; +pub const SCM_WIFI_STATUS = SO_WIFI_STATUS; +pub const SO_PEEK_OFF = 42; +pub const SO_NOFCS = 43; +pub const SO_LOCK_FILTER = 44; +pub const SO_SELECT_ERR_QUEUE = 45; +pub const SO_BUSY_POLL = 46; +pub const SO_MAX_PACING_RATE = 47; +pub const SO_BPF_EXTENSIONS = 48; +pub const SO_INCOMING_CPU = 49; +pub const SO_ATTACH_BPF = 50; +pub const SO_DETACH_BPF = SO_DETACH_FILTER; +pub const SO_ATTACH_REUSEPORT_CBPF = 51; +pub const SO_ATTACH_REUSEPORT_EBPF = 52; +pub const SO_CNX_ADVICE = 53; +pub const SCM_TIMESTAMPING_OPT_STATS = 54; +pub const SO_MEMINFO = 55; +pub const SO_INCOMING_NAPI_ID = 56; +pub const SO_COOKIE = 57; +pub const SCM_TIMESTAMPING_PKTINFO = 58; +pub const SO_PEERGROUPS = 59; +pub const SO_ZEROCOPY = 60; +pub const SO_TXTIME = 61; +pub const SCM_TXTIME = SO_TXTIME; +pub const SO_BINDTOIFINDEX = 62; +pub const SO_TIMESTAMP_NEW = 63; +pub const SO_TIMESTAMPNS_NEW = 64; +pub const SO_TIMESTAMPING_NEW = 65; +pub const SO_RCVTIMEO_NEW = 66; +pub const SO_SNDTIMEO_NEW = 67; +pub const SO_DETACH_REUSEPORT_BPF = 68; + +pub const SOL_SOCKET = 1; + +pub const SOL_IP = 0; +pub const SOL_IPV6 = 41; +pub const SOL_ICMPV6 = 58; + +pub const SOL_RAW = 255; +pub const SOL_DECNET = 261; +pub const SOL_X25 = 262; +pub const SOL_PACKET = 263; +pub const SOL_ATM = 264; +pub const SOL_AAL = 265; +pub const SOL_IRDA = 266; +pub const SOL_NETBEUI = 267; +pub const SOL_LLC = 268; +pub const SOL_DCCP = 269; +pub const SOL_NETLINK = 270; +pub const SOL_TIPC = 271; +pub const SOL_RXRPC = 272; +pub const SOL_PPPOL2TP = 273; +pub const SOL_BLUETOOTH = 274; +pub const SOL_PNPIPE = 275; +pub const SOL_RDS = 276; +pub const SOL_IUCV = 277; +pub const SOL_CAIF = 278; +pub const SOL_ALG = 279; +pub const SOL_NFC = 280; +pub const SOL_KCM = 281; +pub const SOL_TLS = 282; + +pub const SOMAXCONN = 128; + +pub const MSG_OOB = 0x0001; +pub const MSG_PEEK = 0x0002; +pub const MSG_DONTROUTE = 0x0004; +pub const MSG_CTRUNC = 0x0008; +pub const MSG_PROXY = 0x0010; +pub const MSG_TRUNC = 0x0020; +pub const MSG_DONTWAIT = 0x0040; +pub const MSG_EOR = 0x0080; +pub const MSG_WAITALL = 0x0100; +pub const MSG_FIN = 0x0200; +pub const MSG_SYN = 0x0400; +pub const MSG_CONFIRM = 0x0800; +pub const MSG_RST = 0x1000; +pub const MSG_ERRQUEUE = 0x2000; +pub const MSG_NOSIGNAL = 0x4000; +pub const MSG_MORE = 0x8000; +pub const MSG_WAITFORONE = 0x10000; +pub const MSG_BATCH = 0x40000; +pub const MSG_ZEROCOPY = 0x4000000; +pub const MSG_FASTOPEN = 0x20000000; +pub const MSG_CMSG_CLOEXEC = 0x40000000; + +pub const DT_UNKNOWN = 0; +pub const DT_FIFO = 1; +pub const DT_CHR = 2; +pub const DT_DIR = 4; +pub const DT_BLK = 6; +pub const DT_REG = 8; +pub const DT_LNK = 10; +pub const DT_SOCK = 12; +pub const DT_WHT = 14; + +pub const TCGETS = 0x5401; +pub const TCSETS = 0x5402; +pub const TCSETSW = 0x5403; +pub const TCSETSF = 0x5404; +pub const TCGETA = 0x5405; +pub const TCSETA = 0x5406; +pub const TCSETAW = 0x5407; +pub const TCSETAF = 0x5408; +pub const TCSBRK = 0x5409; +pub const TCXONC = 0x540A; +pub const TCFLSH = 0x540B; +pub const TIOCEXCL = 0x540C; +pub const TIOCNXCL = 0x540D; +pub const TIOCSCTTY = 0x540E; +pub const TIOCGPGRP = 0x540F; +pub const TIOCSPGRP = 0x5410; +pub const TIOCOUTQ = 0x5411; +pub const TIOCSTI = 0x5412; +pub const TIOCGWINSZ = 0x5413; +pub const TIOCSWINSZ = 0x5414; +pub const TIOCMGET = 0x5415; +pub const TIOCMBIS = 0x5416; +pub const TIOCMBIC = 0x5417; +pub const TIOCMSET = 0x5418; +pub const TIOCGSOFTCAR = 0x5419; +pub const TIOCSSOFTCAR = 0x541A; +pub const FIONREAD = 0x541B; +pub const TIOCINQ = FIONREAD; +pub const TIOCLINUX = 0x541C; +pub const TIOCCONS = 0x541D; +pub const TIOCGSERIAL = 0x541E; +pub const TIOCSSERIAL = 0x541F; +pub const TIOCPKT = 0x5420; +pub const FIONBIO = 0x5421; +pub const TIOCNOTTY = 0x5422; +pub const TIOCSETD = 0x5423; +pub const TIOCGETD = 0x5424; +pub const TCSBRKP = 0x5425; +pub const TIOCSBRK = 0x5427; +pub const TIOCCBRK = 0x5428; +pub const TIOCGSID = 0x5429; +pub const TIOCGRS485 = 0x542E; +pub const TIOCSRS485 = 0x542F; +pub const TIOCGPTN = 0x80045430; +pub const TIOCSPTLCK = 0x40045431; +pub const TIOCGDEV = 0x80045432; +pub const TCGETX = 0x5432; +pub const TCSETX = 0x5433; +pub const TCSETXF = 0x5434; +pub const TCSETXW = 0x5435; +pub const TIOCSIG = 0x40045436; +pub const TIOCVHANGUP = 0x5437; +pub const TIOCGPKT = 0x80045438; +pub const TIOCGPTLCK = 0x80045439; +pub const TIOCGEXCL = 0x80045440; + +pub const EPOLL_CLOEXEC = O_CLOEXEC; + +pub const EPOLL_CTL_ADD = 1; +pub const EPOLL_CTL_DEL = 2; +pub const EPOLL_CTL_MOD = 3; + +pub const EPOLLIN = 0x001; +pub const EPOLLPRI = 0x002; +pub const EPOLLOUT = 0x004; +pub const EPOLLRDNORM = 0x040; +pub const EPOLLRDBAND = 0x080; +pub const EPOLLWRNORM = 0x100; +pub const EPOLLWRBAND = 0x200; +pub const EPOLLMSG = 0x400; +pub const EPOLLERR = 0x008; +pub const EPOLLHUP = 0x010; +pub const EPOLLRDHUP = 0x2000; +pub const EPOLLEXCLUSIVE = (u32(1) << 28); +pub const EPOLLWAKEUP = (u32(1) << 29); +pub const EPOLLONESHOT = (u32(1) << 30); +pub const EPOLLET = (u32(1) << 31); + +pub const CLOCK_REALTIME = 0; +pub const CLOCK_MONOTONIC = 1; +pub const CLOCK_PROCESS_CPUTIME_ID = 2; +pub const CLOCK_THREAD_CPUTIME_ID = 3; +pub const CLOCK_MONOTONIC_RAW = 4; +pub const CLOCK_REALTIME_COARSE = 5; +pub const CLOCK_MONOTONIC_COARSE = 6; +pub const CLOCK_BOOTTIME = 7; +pub const CLOCK_REALTIME_ALARM = 8; +pub const CLOCK_BOOTTIME_ALARM = 9; +pub const CLOCK_SGI_CYCLE = 10; +pub const CLOCK_TAI = 11; + +pub const CSIGNAL = 0x000000ff; +pub const CLONE_VM = 0x00000100; +pub const CLONE_FS = 0x00000200; +pub const CLONE_FILES = 0x00000400; +pub const CLONE_SIGHAND = 0x00000800; +pub const CLONE_PTRACE = 0x00002000; +pub const CLONE_VFORK = 0x00004000; +pub const CLONE_PARENT = 0x00008000; +pub const CLONE_THREAD = 0x00010000; +pub const CLONE_NEWNS = 0x00020000; +pub const CLONE_SYSVSEM = 0x00040000; +pub const CLONE_SETTLS = 0x00080000; +pub const CLONE_PARENT_SETTID = 0x00100000; +pub const CLONE_CHILD_CLEARTID = 0x00200000; +pub const CLONE_DETACHED = 0x00400000; +pub const CLONE_UNTRACED = 0x00800000; +pub const CLONE_CHILD_SETTID = 0x01000000; +pub const CLONE_NEWCGROUP = 0x02000000; +pub const CLONE_NEWUTS = 0x04000000; +pub const CLONE_NEWIPC = 0x08000000; +pub const CLONE_NEWUSER = 0x10000000; +pub const CLONE_NEWPID = 0x20000000; +pub const CLONE_NEWNET = 0x40000000; +pub const CLONE_IO = 0x80000000; + +pub const EFD_SEMAPHORE = 1; +pub const EFD_CLOEXEC = O_CLOEXEC; +pub const EFD_NONBLOCK = O_NONBLOCK; + +pub const MS_RDONLY = 1; +pub const MS_NOSUID = 2; +pub const MS_NODEV = 4; +pub const MS_NOEXEC = 8; +pub const MS_SYNCHRONOUS = 16; +pub const MS_REMOUNT = 32; +pub const MS_MANDLOCK = 64; +pub const MS_DIRSYNC = 128; +pub const MS_NOATIME = 1024; +pub const MS_NODIRATIME = 2048; +pub const MS_BIND = 4096; +pub const MS_MOVE = 8192; +pub const MS_REC = 16384; +pub const MS_SILENT = 32768; +pub const MS_POSIXACL = (1 << 16); +pub const MS_UNBINDABLE = (1 << 17); +pub const MS_PRIVATE = (1 << 18); +pub const MS_SLAVE = (1 << 19); +pub const MS_SHARED = (1 << 20); +pub const MS_RELATIME = (1 << 21); +pub const MS_KERNMOUNT = (1 << 22); +pub const MS_I_VERSION = (1 << 23); +pub const MS_STRICTATIME = (1 << 24); +pub const MS_LAZYTIME = (1 << 25); +pub const MS_NOREMOTELOCK = (1 << 27); +pub const MS_NOSEC = (1 << 28); +pub const MS_BORN = (1 << 29); +pub const MS_ACTIVE = (1 << 30); +pub const MS_NOUSER = (1 << 31); + +pub const MS_RMT_MASK = (MS_RDONLY | MS_SYNCHRONOUS | MS_MANDLOCK | MS_I_VERSION | MS_LAZYTIME); + +pub const MS_MGC_VAL = 0xc0ed0000; +pub const MS_MGC_MSK = 0xffff0000; + +pub const MNT_FORCE = 1; +pub const MNT_DETACH = 2; +pub const MNT_EXPIRE = 4; +pub const UMOUNT_NOFOLLOW = 8; + +pub const IN_CLOEXEC = O_CLOEXEC; +pub const IN_NONBLOCK = O_NONBLOCK; + +pub const IN_ACCESS = 0x00000001; +pub const IN_MODIFY = 0x00000002; +pub const IN_ATTRIB = 0x00000004; +pub const IN_CLOSE_WRITE = 0x00000008; +pub const IN_CLOSE_NOWRITE = 0x00000010; +pub const IN_CLOSE = IN_CLOSE_WRITE | IN_CLOSE_NOWRITE; +pub const IN_OPEN = 0x00000020; +pub const IN_MOVED_FROM = 0x00000040; +pub const IN_MOVED_TO = 0x00000080; +pub const IN_MOVE = IN_MOVED_FROM | IN_MOVED_TO; +pub const IN_CREATE = 0x00000100; +pub const IN_DELETE = 0x00000200; +pub const IN_DELETE_SELF = 0x00000400; +pub const IN_MOVE_SELF = 0x00000800; +pub const IN_ALL_EVENTS = 0x00000fff; + +pub const IN_UNMOUNT = 0x00002000; +pub const IN_Q_OVERFLOW = 0x00004000; +pub const IN_IGNORED = 0x00008000; + +pub const IN_ONLYDIR = 0x01000000; +pub const IN_DONT_FOLLOW = 0x02000000; +pub const IN_EXCL_UNLINK = 0x04000000; +pub const IN_MASK_ADD = 0x20000000; + +pub const IN_ISDIR = 0x40000000; +pub const IN_ONESHOT = 0x80000000; + +pub const S_IFMT = 0o170000; + +pub const S_IFDIR = 0o040000; +pub const S_IFCHR = 0o020000; +pub const S_IFBLK = 0o060000; +pub const S_IFREG = 0o100000; +pub const S_IFIFO = 0o010000; +pub const S_IFLNK = 0o120000; +pub const S_IFSOCK = 0o140000; + +pub const S_ISUID = 0o4000; +pub const S_ISGID = 0o2000; +pub const S_ISVTX = 0o1000; +pub const S_IRUSR = 0o400; +pub const S_IWUSR = 0o200; +pub const S_IXUSR = 0o100; +pub const S_IRWXU = 0o700; +pub const S_IRGRP = 0o040; +pub const S_IWGRP = 0o020; +pub const S_IXGRP = 0o010; +pub const S_IRWXG = 0o070; +pub const S_IROTH = 0o004; +pub const S_IWOTH = 0o002; +pub const S_IXOTH = 0o001; +pub const S_IRWXO = 0o007; + +pub fn S_ISREG(m: u32) bool { + return m & S_IFMT == S_IFREG; +} + +pub fn S_ISDIR(m: u32) bool { + return m & S_IFMT == S_IFDIR; +} + +pub fn S_ISCHR(m: u32) bool { + return m & S_IFMT == S_IFCHR; +} + +pub fn S_ISBLK(m: u32) bool { + return m & S_IFMT == S_IFBLK; +} + +pub fn S_ISFIFO(m: u32) bool { + return m & S_IFMT == S_IFIFO; +} + +pub fn S_ISLNK(m: u32) bool { + return m & S_IFMT == S_IFLNK; +} + +pub fn S_ISSOCK(m: u32) bool { + return m & S_IFMT == S_IFSOCK; +} + +pub const TFD_NONBLOCK = O_NONBLOCK; +pub const TFD_CLOEXEC = O_CLOEXEC; + +pub const TFD_TIMER_ABSTIME = 1; +pub const TFD_TIMER_CANCEL_ON_SET = (1 << 1); + +pub fn WEXITSTATUS(s: u32) u32 { + return (s & 0xff00) >> 8; +} +pub fn WTERMSIG(s: u32) u32 { + return s & 0x7f; +} +pub fn WSTOPSIG(s: u32) u32 { + return WEXITSTATUS(s); +} +pub fn WIFEXITED(s: u32) bool { + return WTERMSIG(s) == 0; +} +pub fn WIFSTOPPED(s: u32) bool { + return @intCast(u16, ((s & 0xffff) *% 0x10001) >> 8) > 0x7f00; +} +pub fn WIFSIGNALED(s: u32) bool { + return (s & 0xffff) -% 1 < 0xff; +} + +pub const winsize = extern struct { + ws_row: u16, + ws_col: u16, + ws_xpixel: u16, + ws_ypixel: u16, +}; + +pub const NSIG = 65; +pub const sigset_t = [128 / @sizeOf(usize)]usize; +pub const all_mask = [_]u32{ 0xffffffff, 0xffffffff }; +pub const app_mask = [_]u32{ 0xfffffffc, 0x7fffffff }; + +pub const k_sigaction = extern struct { + sigaction: ?extern fn (i32, *siginfo_t, *c_void) void, + flags: usize, + restorer: extern fn () void, + mask: [2]u32, +}; + +/// Renamed from `sigaction` to `Sigaction` to avoid conflict with the syscall. +pub const Sigaction = extern struct { + sigaction: ?extern fn (i32, *siginfo_t, *c_void) void, + mask: sigset_t, + flags: u32, + restorer: ?extern fn () void = null, +}; + +pub const SIG_ERR = @intToPtr(extern fn (i32, *siginfo_t, *c_void) void, maxInt(usize)); +pub const SIG_DFL = @intToPtr(?extern fn (i32, *siginfo_t, *c_void) void, 0); +pub const SIG_IGN = @intToPtr(extern fn (i32, *siginfo_t, *c_void) void, 1); +pub const empty_sigset = [_]usize{0} ** sigset_t.len; + +pub const in_port_t = u16; +pub const sa_family_t = u16; +pub const socklen_t = u32; + +/// This intentionally only has ip4 and ip6 +pub const sockaddr = extern union { + in: sockaddr_in, + in6: sockaddr_in6, + un: sockaddr_un, +}; + +pub const sockaddr_in = extern struct { + family: sa_family_t, + port: in_port_t, + addr: u32, + zero: [8]u8, +}; + +pub const sockaddr_in6 = extern struct { + family: sa_family_t, + port: in_port_t, + flowinfo: u32, + addr: [16]u8, + scope_id: u32, +}; + +pub const sockaddr_un = extern struct { + family: sa_family_t, + path: [108]u8, +}; + +pub const mmsghdr = extern struct { + msg_hdr: msghdr, + msg_len: u32, +}; + +pub const mmsghdr_const = extern struct { + msg_hdr: msghdr_const, + msg_len: u32, +}; + +pub const epoll_data = extern union { + ptr: usize, + fd: i32, + @"u32": u32, + @"u64": u64, +}; + +// On x86_64 the structure is packed so that it matches the definition of its +// 32bit counterpart +pub const epoll_event = switch (builtin.arch) { + .x86_64 => packed struct { + events: u32, + data: epoll_data, + }, + else => extern struct { + events: u32, + data: epoll_data, + }, +}; + +pub const _LINUX_CAPABILITY_VERSION_1 = 0x19980330; +pub const _LINUX_CAPABILITY_U32S_1 = 1; + +pub const _LINUX_CAPABILITY_VERSION_2 = 0x20071026; +pub const _LINUX_CAPABILITY_U32S_2 = 2; + +pub const _LINUX_CAPABILITY_VERSION_3 = 0x20080522; +pub const _LINUX_CAPABILITY_U32S_3 = 2; + +pub const VFS_CAP_REVISION_MASK = 0xFF000000; +pub const VFS_CAP_REVISION_SHIFT = 24; +pub const VFS_CAP_FLAGS_MASK = ~VFS_CAP_REVISION_MASK; +pub const VFS_CAP_FLAGS_EFFECTIVE = 0x000001; + +pub const VFS_CAP_REVISION_1 = 0x01000000; +pub const VFS_CAP_U32_1 = 1; +pub const XATTR_CAPS_SZ_1 = @sizeOf(u32) * (1 + 2 * VFS_CAP_U32_1); + +pub const VFS_CAP_REVISION_2 = 0x02000000; +pub const VFS_CAP_U32_2 = 2; +pub const XATTR_CAPS_SZ_2 = @sizeOf(u32) * (1 + 2 * VFS_CAP_U32_2); + +pub const XATTR_CAPS_SZ = XATTR_CAPS_SZ_2; +pub const VFS_CAP_U32 = VFS_CAP_U32_2; +pub const VFS_CAP_REVISION = VFS_CAP_REVISION_2; + +pub const vfs_cap_data = extern struct { + //all of these are mandated as little endian + //when on disk. + const Data = struct { + permitted: u32, + inheritable: u32, + }; + + magic_etc: u32, + data: [VFS_CAP_U32]Data, +}; + +pub const CAP_CHOWN = 0; +pub const CAP_DAC_OVERRIDE = 1; +pub const CAP_DAC_READ_SEARCH = 2; +pub const CAP_FOWNER = 3; +pub const CAP_FSETID = 4; +pub const CAP_KILL = 5; +pub const CAP_SETGID = 6; +pub const CAP_SETUID = 7; +pub const CAP_SETPCAP = 8; +pub const CAP_LINUX_IMMUTABLE = 9; +pub const CAP_NET_BIND_SERVICE = 10; +pub const CAP_NET_BROADCAST = 11; +pub const CAP_NET_ADMIN = 12; +pub const CAP_NET_RAW = 13; +pub const CAP_IPC_LOCK = 14; +pub const CAP_IPC_OWNER = 15; +pub const CAP_SYS_MODULE = 16; +pub const CAP_SYS_RAWIO = 17; +pub const CAP_SYS_CHROOT = 18; +pub const CAP_SYS_PTRACE = 19; +pub const CAP_SYS_PACCT = 20; +pub const CAP_SYS_ADMIN = 21; +pub const CAP_SYS_BOOT = 22; +pub const CAP_SYS_NICE = 23; +pub const CAP_SYS_RESOURCE = 24; +pub const CAP_SYS_TIME = 25; +pub const CAP_SYS_TTY_CONFIG = 26; +pub const CAP_MKNOD = 27; +pub const CAP_LEASE = 28; +pub const CAP_AUDIT_WRITE = 29; +pub const CAP_AUDIT_CONTROL = 30; +pub const CAP_SETFCAP = 31; +pub const CAP_MAC_OVERRIDE = 32; +pub const CAP_MAC_ADMIN = 33; +pub const CAP_SYSLOG = 34; +pub const CAP_WAKE_ALARM = 35; +pub const CAP_BLOCK_SUSPEND = 36; +pub const CAP_AUDIT_READ = 37; +pub const CAP_LAST_CAP = CAP_AUDIT_READ; + +pub fn cap_valid(u8: x) bool { + return x >= 0 and x <= CAP_LAST_CAP; +} + +pub fn CAP_TO_MASK(cap: u8) u32 { + return u32(1) << u5(cap & 31); +} + +pub fn CAP_TO_INDEX(cap: u8) u8 { + return cap >> 5; +} + +pub const cap_t = extern struct { + hdrp: *cap_user_header_t, + datap: *cap_user_data_t, +}; + +pub const cap_user_header_t = extern struct { + version: u32, + pid: usize, +}; + +pub const cap_user_data_t = extern struct { + effective: u32, + permitted: u32, + inheritable: u32, +}; + +pub const inotify_event = extern struct { + wd: i32, + mask: u32, + cookie: u32, + len: u32, + //name: [?]u8, +}; + +pub const dirent64 = extern struct { + d_ino: u64, + d_off: u64, + d_reclen: u16, + d_type: u8, + d_name: u8, // field address is the address of first byte of name https://github.com/ziglang/zig/issues/173 +}; + +pub const dl_phdr_info = extern struct { + dlpi_addr: usize, + dlpi_name: ?[*]const u8, + dlpi_phdr: [*]std.elf.Phdr, + dlpi_phnum: u16, +}; + +pub const pthread_attr_t = extern struct { + __size: [56]u8, + __align: c_long, +}; + +pub const CPU_SETSIZE = 128; +pub const cpu_set_t = [CPU_SETSIZE / @sizeOf(usize)]usize; +pub const cpu_count_t = @IntType(false, std.math.log2(CPU_SETSIZE * 8)); + +pub fn CPU_COUNT(set: cpu_set_t) cpu_count_t { + var sum: cpu_count_t = 0; + for (set) |x| { + sum += @popCount(usize, x); + } + return sum; +} + +// TODO port these over +//#define CPU_SET(i, set) CPU_SET_S(i,sizeof(cpu_set_t),set) +//#define CPU_CLR(i, set) CPU_CLR_S(i,sizeof(cpu_set_t),set) +//#define CPU_ISSET(i, set) CPU_ISSET_S(i,sizeof(cpu_set_t),set) +//#define CPU_AND(d,s1,s2) CPU_AND_S(sizeof(cpu_set_t),d,s1,s2) +//#define CPU_OR(d,s1,s2) CPU_OR_S(sizeof(cpu_set_t),d,s1,s2) +//#define CPU_XOR(d,s1,s2) CPU_XOR_S(sizeof(cpu_set_t),d,s1,s2) +//#define CPU_COUNT(set) CPU_COUNT_S(sizeof(cpu_set_t),set) +//#define CPU_ZERO(set) CPU_ZERO_S(sizeof(cpu_set_t),set) +//#define CPU_EQUAL(s1,s2) CPU_EQUAL_S(sizeof(cpu_set_t),s1,s2) + +pub const MINSIGSTKSZ = switch (builtin.arch) { + .i386, .x86_64, .arm => 2048, + .aarch64 => 5120, + else => @compileError("MINSIGSTKSZ not defined for this architecture"), +}; +pub const SIGSTKSZ = switch (builtin.arch) { + .i386, .x86_64, .arm => 8192, + .aarch64 => 16384, + else => @compileError("SIGSTKSZ not defined for this architecture"), +}; + +pub const SS_ONSTACK = 1; +pub const SS_DISABLE = 2; +pub const SS_AUTODISARM = 1 << 31; + +pub const stack_t = extern struct { + ss_sp: [*]u8, + ss_flags: i32, + ss_size: isize, +}; + +pub const io_uring_params = extern struct { + sq_entries: u32, + cq_entries: u32, + flags: u32, + sq_thread_cpu: u32, + sq_thread_idle: u32, + resv: [5]u32, + sq_off: io_sqring_offsets, + cq_off: io_cqring_offsets, +}; + +// io_uring_params.flags + +/// io_context is polled +pub const IORING_SETUP_IOPOLL = (1 << 0); + +/// SQ poll thread +pub const IORING_SETUP_SQPOLL = (1 << 1); + +/// sq_thread_cpu is valid +pub const IORING_SETUP_SQ_AFF = (1 << 2); + +pub const io_sqring_offsets = extern struct { + /// offset of ring head + head: u32, + + /// offset of ring tail + tail: u32, + + /// ring mask value + ring_mask: u32, + + /// entries in ring + ring_entries: u32, + + /// ring flags + flags: u32, + + /// number of sqes not submitted + dropped: u32, + + /// sqe index array + array: u32, + + resv1: u32, + resv2: u64, +}; + +// io_sqring_offsets.flags + +/// needs io_uring_enter wakeup +pub const IORING_SQ_NEED_WAKEUP = 1 << 0; + +pub const io_cqring_offsets = extern struct { + head: u32, + tail: u32, + ring_mask: u32, + ring_entries: u32, + overflow: u32, + cqes: u32, + resv: [2]u64, +}; + +pub const io_uring_sqe = extern struct { + opcode: u8, + flags: u8, + ioprio: u16, + fd: i32, + off: u64, + addr: u64, + len: u32, + pub const union1 = extern union { + rw_flags: kernel_rwf, + fsync_flags: u32, + poll_events: u16, + sync_range_flags: u32, + msg_flags: u32, + }; + union1: union1, + user_data: u64, + pub const union2 = extern union { + buf_index: u16, + __pad2: [3]u64, + }; + union2: union2, +}; + +// io_uring_sqe.flags + +/// use fixed fileset +pub const IOSQE_FIXED_FILE = (1 << 0); + +/// issue after inflight IO +pub const IOSQE_IO_DRAIN = (1 << 1); + +/// links next sqe +pub const IOSQE_IO_LINK = (1 << 2); + +pub const IORING_OP_NOP = 0; +pub const IORING_OP_READV = 1; +pub const IORING_OP_WRITEV = 2; +pub const IORING_OP_FSYNC = 3; +pub const IORING_OP_READ_FIXED = 4; +pub const IORING_OP_WRITE_FIXED = 5; +pub const IORING_OP_POLL_ADD = 6; +pub const IORING_OP_POLL_REMOVE = 7; +pub const IORING_OP_SYNC_FILE_RANGE = 8; +pub const IORING_OP_SENDMSG = 9; +pub const IORING_OP_RECVMSG = 10; + +// io_uring_sqe.fsync_flags +pub const IORING_FSYNC_DATASYNC = (1 << 0); + +// IO completion data structure (Completion Queue Entry) +pub const io_uring_cqe = extern struct { + /// io_uring_sqe.data submission passed back + user_data: u64, + + /// result code for this event + res: i32, + flags: u32, +}; + +pub const IORING_OFF_SQ_RING = 0; +pub const IORING_OFF_CQ_RING = 0x8000000; +pub const IORING_OFF_SQES = 0x10000000; + +// io_uring_enter flags +pub const IORING_ENTER_GETEVENTS = (1 << 0); +pub const IORING_ENTER_SQ_WAKEUP = (1 << 1); + +// io_uring_register opcodes and arguments +pub const IORING_REGISTER_BUFFERS = 0; +pub const IORING_UNREGISTER_BUFFERS = 1; +pub const IORING_REGISTER_FILES = 2; +pub const IORING_UNREGISTER_FILES = 3; +pub const IORING_REGISTER_EVENTFD = 4; +pub const IORING_UNREGISTER_EVENTFD = 5; + +pub const utsname = extern struct { + sysname: [65]u8, + nodename: [65]u8, + release: [65]u8, + version: [65]u8, + machine: [65]u8, + domainname: [65]u8, +}; +pub const HOST_NAME_MAX = 64; diff --git a/lib/std/os/bits/linux/arm-eabi.zig b/lib/std/os/bits/linux/arm-eabi.zig new file mode 100644 index 0000000000..4b3e1094da --- /dev/null +++ b/lib/std/os/bits/linux/arm-eabi.zig @@ -0,0 +1,568 @@ +// arm-eabi-specific declarations that are intended to be imported into the POSIX namespace. + +const std = @import("../../std.zig"); +const linux = std.os.linux; +const socklen_t = linux.socklen_t; +const iovec = linux.iovec; +const iovec_const = linux.iovec_const; + +pub const SYS_restart_syscall = 0; +pub const SYS_exit = 1; +pub const SYS_fork = 2; +pub const SYS_read = 3; +pub const SYS_write = 4; +pub const SYS_open = 5; +pub const SYS_close = 6; +pub const SYS_creat = 8; +pub const SYS_link = 9; +pub const SYS_unlink = 10; +pub const SYS_execve = 11; +pub const SYS_chdir = 12; +pub const SYS_mknod = 14; +pub const SYS_chmod = 15; +pub const SYS_lchown = 16; +pub const SYS_lseek = 19; +pub const SYS_getpid = 20; +pub const SYS_mount = 21; +pub const SYS_setuid = 23; +pub const SYS_getuid = 24; +pub const SYS_ptrace = 26; +pub const SYS_pause = 29; +pub const SYS_access = 33; +pub const SYS_nice = 34; +pub const SYS_sync = 36; +pub const SYS_kill = 37; +pub const SYS_rename = 38; +pub const SYS_mkdir = 39; +pub const SYS_rmdir = 40; +pub const SYS_dup = 41; +pub const SYS_pipe = 42; +pub const SYS_times = 43; +pub const SYS_brk = 45; +pub const SYS_setgid = 46; +pub const SYS_getgid = 47; +pub const SYS_geteuid = 49; +pub const SYS_getegid = 50; +pub const SYS_acct = 51; +pub const SYS_umount2 = 52; +pub const SYS_ioctl = 54; +pub const SYS_fcntl = 55; +pub const SYS_setpgid = 57; +pub const SYS_umask = 60; +pub const SYS_chroot = 61; +pub const SYS_ustat = 62; +pub const SYS_dup2 = 63; +pub const SYS_getppid = 64; +pub const SYS_getpgrp = 65; +pub const SYS_setsid = 66; +pub const SYS_sigaction = 67; +pub const SYS_setreuid = 70; +pub const SYS_setregid = 71; +pub const SYS_sigsuspend = 72; +pub const SYS_sigpending = 73; +pub const SYS_sethostname = 74; +pub const SYS_setrlimit = 75; +pub const SYS_getrusage = 77; +pub const SYS_gettimeofday = 78; +pub const SYS_settimeofday = 79; +pub const SYS_getgroups = 80; +pub const SYS_setgroups = 81; +pub const SYS_symlink = 83; +pub const SYS_readlink = 85; +pub const SYS_uselib = 86; +pub const SYS_swapon = 87; +pub const SYS_reboot = 88; +pub const SYS_munmap = 91; +pub const SYS_truncate = 92; +pub const SYS_ftruncate = 93; +pub const SYS_fchmod = 94; +pub const SYS_fchown = 95; +pub const SYS_getpriority = 96; +pub const SYS_setpriority = 97; +pub const SYS_statfs = 99; +pub const SYS_fstatfs = 100; +pub const SYS_syslog = 103; +pub const SYS_setitimer = 104; +pub const SYS_getitimer = 105; +pub const SYS_stat = 106; +pub const SYS_lstat = 107; +pub const SYS_fstat = 108; +pub const SYS_vhangup = 111; +pub const SYS_wait4 = 114; +pub const SYS_swapoff = 115; +pub const SYS_sysinfo = 116; +pub const SYS_fsync = 118; +pub const SYS_sigreturn = 119; +pub const SYS_clone = 120; +pub const SYS_setdomainname = 121; +pub const SYS_uname = 122; +pub const SYS_adjtimex = 124; +pub const SYS_mprotect = 125; +pub const SYS_sigprocmask = 126; +pub const SYS_init_module = 128; +pub const SYS_delete_module = 129; +pub const SYS_quotactl = 131; +pub const SYS_getpgid = 132; +pub const SYS_fchdir = 133; +pub const SYS_bdflush = 134; +pub const SYS_sysfs = 135; +pub const SYS_personality = 136; +pub const SYS_setfsuid = 138; +pub const SYS_setfsgid = 139; +pub const SYS__llseek = 140; +pub const SYS_getdents = 141; +pub const SYS__newselect = 142; +pub const SYS_flock = 143; +pub const SYS_msync = 144; +pub const SYS_readv = 145; +pub const SYS_writev = 146; +pub const SYS_getsid = 147; +pub const SYS_fdatasync = 148; +pub const SYS__sysctl = 149; +pub const SYS_mlock = 150; +pub const SYS_munlock = 151; +pub const SYS_mlockall = 152; +pub const SYS_munlockall = 153; +pub const SYS_sched_setparam = 154; +pub const SYS_sched_getparam = 155; +pub const SYS_sched_setscheduler = 156; +pub const SYS_sched_getscheduler = 157; +pub const SYS_sched_yield = 158; +pub const SYS_sched_get_priority_max = 159; +pub const SYS_sched_get_priority_min = 160; +pub const SYS_sched_rr_get_interval = 161; +pub const SYS_nanosleep = 162; +pub const SYS_mremap = 163; +pub const SYS_setresuid = 164; +pub const SYS_getresuid = 165; +pub const SYS_poll = 168; +pub const SYS_nfsservctl = 169; +pub const SYS_setresgid = 170; +pub const SYS_getresgid = 171; +pub const SYS_prctl = 172; +pub const SYS_rt_sigreturn = 173; +pub const SYS_rt_sigaction = 174; +pub const SYS_rt_sigprocmask = 175; +pub const SYS_rt_sigpending = 176; +pub const SYS_rt_sigtimedwait = 177; +pub const SYS_rt_sigqueueinfo = 178; +pub const SYS_rt_sigsuspend = 179; +pub const SYS_pread64 = 180; +pub const SYS_pwrite64 = 181; +pub const SYS_chown = 182; +pub const SYS_getcwd = 183; +pub const SYS_capget = 184; +pub const SYS_capset = 185; +pub const SYS_sigaltstack = 186; +pub const SYS_sendfile = 187; +pub const SYS_vfork = 190; +pub const SYS_ugetrlimit = 191; +pub const SYS_mmap2 = 192; +pub const SYS_truncate64 = 193; +pub const SYS_ftruncate64 = 194; +pub const SYS_stat64 = 195; +pub const SYS_lstat64 = 196; +pub const SYS_fstat64 = 197; +pub const SYS_lchown32 = 198; +pub const SYS_getuid32 = 199; +pub const SYS_getgid32 = 200; +pub const SYS_geteuid32 = 201; +pub const SYS_getegid32 = 202; +pub const SYS_setreuid32 = 203; +pub const SYS_setregid32 = 204; +pub const SYS_getgroups32 = 205; +pub const SYS_setgroups32 = 206; +pub const SYS_fchown32 = 207; +pub const SYS_setresuid32 = 208; +pub const SYS_getresuid32 = 209; +pub const SYS_setresgid32 = 210; +pub const SYS_getresgid32 = 211; +pub const SYS_chown32 = 212; +pub const SYS_setuid32 = 213; +pub const SYS_setgid32 = 214; +pub const SYS_setfsuid32 = 215; +pub const SYS_setfsgid32 = 216; +pub const SYS_getdents64 = 217; +pub const SYS_pivot_root = 218; +pub const SYS_mincore = 219; +pub const SYS_madvise = 220; +pub const SYS_fcntl64 = 221; +pub const SYS_gettid = 224; +pub const SYS_readahead = 225; +pub const SYS_setxattr = 226; +pub const SYS_lsetxattr = 227; +pub const SYS_fsetxattr = 228; +pub const SYS_getxattr = 229; +pub const SYS_lgetxattr = 230; +pub const SYS_fgetxattr = 231; +pub const SYS_listxattr = 232; +pub const SYS_llistxattr = 233; +pub const SYS_flistxattr = 234; +pub const SYS_removexattr = 235; +pub const SYS_lremovexattr = 236; +pub const SYS_fremovexattr = 237; +pub const SYS_tkill = 238; +pub const SYS_sendfile64 = 239; +pub const SYS_futex = 240; +pub const SYS_sched_setaffinity = 241; +pub const SYS_sched_getaffinity = 242; +pub const SYS_io_setup = 243; +pub const SYS_io_destroy = 244; +pub const SYS_io_getevents = 245; +pub const SYS_io_submit = 246; +pub const SYS_io_cancel = 247; +pub const SYS_exit_group = 248; +pub const SYS_lookup_dcookie = 249; +pub const SYS_epoll_create = 250; +pub const SYS_epoll_ctl = 251; +pub const SYS_epoll_wait = 252; +pub const SYS_remap_file_pages = 253; +pub const SYS_set_tid_address = 256; +pub const SYS_timer_create = 257; +pub const SYS_timer_settime = 258; +pub const SYS_timer_gettime = 259; +pub const SYS_timer_getoverrun = 260; +pub const SYS_timer_delete = 261; +pub const SYS_clock_settime = 262; +pub const SYS_clock_gettime = 263; +pub const SYS_clock_getres = 264; +pub const SYS_clock_nanosleep = 265; +pub const SYS_statfs64 = 266; +pub const SYS_fstatfs64 = 267; +pub const SYS_tgkill = 268; +pub const SYS_utimes = 269; +pub const SYS_fadvise64_64 = 270; +pub const SYS_arm_fadvise64_64 = 270; +pub const SYS_pciconfig_iobase = 271; +pub const SYS_pciconfig_read = 272; +pub const SYS_pciconfig_write = 273; +pub const SYS_mq_open = 274; +pub const SYS_mq_unlink = 275; +pub const SYS_mq_timedsend = 276; +pub const SYS_mq_timedreceive = 277; +pub const SYS_mq_notify = 278; +pub const SYS_mq_getsetattr = 279; +pub const SYS_waitid = 280; +pub const SYS_socket = 281; +pub const SYS_bind = 282; +pub const SYS_connect = 283; +pub const SYS_listen = 284; +pub const SYS_accept = 285; +pub const SYS_getsockname = 286; +pub const SYS_getpeername = 287; +pub const SYS_socketpair = 288; +pub const SYS_send = 289; +pub const SYS_sendto = 290; +pub const SYS_recv = 291; +pub const SYS_recvfrom = 292; +pub const SYS_shutdown = 293; +pub const SYS_setsockopt = 294; +pub const SYS_getsockopt = 295; +pub const SYS_sendmsg = 296; +pub const SYS_recvmsg = 297; +pub const SYS_semop = 298; +pub const SYS_semget = 299; +pub const SYS_semctl = 300; +pub const SYS_msgsnd = 301; +pub const SYS_msgrcv = 302; +pub const SYS_msgget = 303; +pub const SYS_msgctl = 304; +pub const SYS_shmat = 305; +pub const SYS_shmdt = 306; +pub const SYS_shmget = 307; +pub const SYS_shmctl = 308; +pub const SYS_add_key = 309; +pub const SYS_request_key = 310; +pub const SYS_keyctl = 311; +pub const SYS_semtimedop = 312; +pub const SYS_vserver = 313; +pub const SYS_ioprio_set = 314; +pub const SYS_ioprio_get = 315; +pub const SYS_inotify_init = 316; +pub const SYS_inotify_add_watch = 317; +pub const SYS_inotify_rm_watch = 318; +pub const SYS_mbind = 319; +pub const SYS_get_mempolicy = 320; +pub const SYS_set_mempolicy = 321; +pub const SYS_openat = 322; +pub const SYS_mkdirat = 323; +pub const SYS_mknodat = 324; +pub const SYS_fchownat = 325; +pub const SYS_futimesat = 326; +pub const SYS_fstatat64 = 327; +pub const SYS_unlinkat = 328; +pub const SYS_renameat = 329; +pub const SYS_linkat = 330; +pub const SYS_symlinkat = 331; +pub const SYS_readlinkat = 332; +pub const SYS_fchmodat = 333; +pub const SYS_faccessat = 334; +pub const SYS_pselect6 = 335; +pub const SYS_ppoll = 336; +pub const SYS_unshare = 337; +pub const SYS_set_robust_list = 338; +pub const SYS_get_robust_list = 339; +pub const SYS_splice = 340; +pub const SYS_sync_file_range2 = 341; +pub const SYS_arm_sync_file_range = 341; +pub const SYS_tee = 342; +pub const SYS_vmsplice = 343; +pub const SYS_move_pages = 344; +pub const SYS_getcpu = 345; +pub const SYS_epoll_pwait = 346; +pub const SYS_kexec_load = 347; +pub const SYS_utimensat = 348; +pub const SYS_signalfd = 349; +pub const SYS_timerfd_create = 350; +pub const SYS_eventfd = 351; +pub const SYS_fallocate = 352; +pub const SYS_timerfd_settime = 353; +pub const SYS_timerfd_gettime = 354; +pub const SYS_signalfd4 = 355; +pub const SYS_eventfd2 = 356; +pub const SYS_epoll_create1 = 357; +pub const SYS_dup3 = 358; +pub const SYS_pipe2 = 359; +pub const SYS_inotify_init1 = 360; +pub const SYS_preadv = 361; +pub const SYS_pwritev = 362; +pub const SYS_rt_tgsigqueueinfo = 363; +pub const SYS_perf_event_open = 364; +pub const SYS_recvmmsg = 365; +pub const SYS_accept4 = 366; +pub const SYS_fanotify_init = 367; +pub const SYS_fanotify_mark = 368; +pub const SYS_prlimit64 = 369; +pub const SYS_name_to_handle_at = 370; +pub const SYS_open_by_handle_at = 371; +pub const SYS_clock_adjtime = 372; +pub const SYS_syncfs = 373; +pub const SYS_sendmmsg = 374; +pub const SYS_setns = 375; +pub const SYS_process_vm_readv = 376; +pub const SYS_process_vm_writev = 377; +pub const SYS_kcmp = 378; +pub const SYS_finit_module = 379; +pub const SYS_sched_setattr = 380; +pub const SYS_sched_getattr = 381; +pub const SYS_renameat2 = 382; +pub const SYS_seccomp = 383; +pub const SYS_getrandom = 384; +pub const SYS_memfd_create = 385; +pub const SYS_bpf = 386; +pub const SYS_execveat = 387; +pub const SYS_userfaultfd = 388; +pub const SYS_membarrier = 389; +pub const SYS_mlock2 = 390; +pub const SYS_copy_file_range = 391; +pub const SYS_preadv2 = 392; +pub const SYS_pwritev2 = 393; +pub const SYS_pkey_mprotect = 394; +pub const SYS_pkey_alloc = 395; +pub const SYS_pkey_free = 396; +pub const SYS_statx = 397; +pub const SYS_rseq = 398; +pub const SYS_io_pgetevents = 399; +pub const SYS_migrate_pages = 400; +pub const SYS_kexec_file_load = 401; +pub const SYS_clock_gettime64 = 403; +pub const SYS_clock_settime64 = 404; +pub const SYS_clock_adjtime64 = 405; +pub const SYS_clock_getres_time64 = 406; +pub const SYS_clock_nanosleep_time64 = 407; +pub const SYS_timer_gettime64 = 408; +pub const SYS_timer_settime64 = 409; +pub const SYS_timerfd_gettime64 = 410; +pub const SYS_timerfd_settime64 = 411; +pub const SYS_utimensat_time64 = 412; +pub const SYS_pselect6_time64 = 413; +pub const SYS_ppoll_time64 = 414; +pub const SYS_io_pgetevents_time64 = 416; +pub const SYS_recvmmsg_time64 = 417; +pub const SYS_mq_timedsend_time64 = 418; +pub const SYS_mq_timedreceive_time64 = 419; +pub const SYS_semtimedop_time64 = 420; +pub const SYS_rt_sigtimedwait_time64 = 421; +pub const SYS_futex_time64 = 422; +pub const SYS_sched_rr_get_interval_time64 = 423; +pub const SYS_pidfd_send_signal = 424; +pub const SYS_io_uring_setup = 425; +pub const SYS_io_uring_enter = 426; +pub const SYS_io_uring_register = 427; +pub const SYS_open_tree = 428; +pub const SYS_move_mount = 429; +pub const SYS_fsopen = 430; +pub const SYS_fsconfig = 431; +pub const SYS_fsmount = 432; +pub const SYS_fspick = 433; +pub const SYS_pidfd_open = 434; +pub const SYS_clone3 = 435; + +pub const SYS_breakpoint = 0x0f0001; +pub const SYS_cacheflush = 0x0f0002; +pub const SYS_usr26 = 0x0f0003; +pub const SYS_usr32 = 0x0f0004; +pub const SYS_set_tls = 0x0f0005; +pub const SYS_get_tls = 0x0f0006; + +pub const MMAP2_UNIT = 4096; + +pub const O_CREAT = 0o100; +pub const O_EXCL = 0o200; +pub const O_NOCTTY = 0o400; +pub const O_TRUNC = 0o1000; +pub const O_APPEND = 0o2000; +pub const O_NONBLOCK = 0o4000; +pub const O_DSYNC = 0o10000; +pub const O_SYNC = 0o4010000; +pub const O_RSYNC = 0o4010000; +pub const O_DIRECTORY = 0o40000; +pub const O_NOFOLLOW = 0o100000; +pub const O_CLOEXEC = 0o2000000; + +pub const O_ASYNC = 0o20000; +pub const O_DIRECT = 0o200000; +pub const O_LARGEFILE = 0o400000; +pub const O_NOATIME = 0o1000000; +pub const O_PATH = 0o10000000; +pub const O_TMPFILE = 0o20040000; +pub const O_NDELAY = O_NONBLOCK; + +pub const F_DUPFD = 0; +pub const F_GETFD = 1; +pub const F_SETFD = 2; +pub const F_GETFL = 3; +pub const F_SETFL = 4; + +pub const F_SETOWN = 8; +pub const F_GETOWN = 9; +pub const F_SETSIG = 10; +pub const F_GETSIG = 11; + +pub const F_GETLK = 12; +pub const F_SETLK = 13; +pub const F_SETLKW = 14; + +pub const F_SETOWN_EX = 15; +pub const F_GETOWN_EX = 16; + +pub const F_GETOWNER_UIDS = 17; + +/// stack-like segment +pub const MAP_GROWSDOWN = 0x0100; + +/// ETXTBSY +pub const MAP_DENYWRITE = 0x0800; + +/// mark it as an executable +pub const MAP_EXECUTABLE = 0x1000; + +/// pages are locked +pub const MAP_LOCKED = 0x2000; + +/// don't check for reservations +pub const MAP_NORESERVE = 0x4000; + +pub const VDSO_USEFUL = true; +pub const VDSO_CGT_SYM = "__vdso_clock_gettime"; +pub const VDSO_CGT_VER = "LINUX_2.6"; + +pub const HWCAP_SWP = 1 << 0; +pub const HWCAP_HALF = 1 << 1; +pub const HWCAP_THUMB = 1 << 2; +pub const HWCAP_26BIT = 1 << 3; +pub const HWCAP_FAST_MULT = 1 << 4; +pub const HWCAP_FPA = 1 << 5; +pub const HWCAP_VFP = 1 << 6; +pub const HWCAP_EDSP = 1 << 7; +pub const HWCAP_JAVA = 1 << 8; +pub const HWCAP_IWMMXT = 1 << 9; +pub const HWCAP_CRUNCH = 1 << 10; +pub const HWCAP_THUMBEE = 1 << 11; +pub const HWCAP_NEON = 1 << 12; +pub const HWCAP_VFPv3 = 1 << 13; +pub const HWCAP_VFPv3D16 = 1 << 14; +pub const HWCAP_TLS = 1 << 15; +pub const HWCAP_VFPv4 = 1 << 16; +pub const HWCAP_IDIVA = 1 << 17; +pub const HWCAP_IDIVT = 1 << 18; +pub const HWCAP_VFPD32 = 1 << 19; +pub const HWCAP_IDIV = HWCAP_IDIVA | HWCAP_IDIVT; +pub const HWCAP_LPAE = 1 << 20; +pub const HWCAP_EVTSTRM = 1 << 21; + +pub const msghdr = extern struct { + msg_name: ?*sockaddr, + msg_namelen: socklen_t, + msg_iov: [*]iovec, + msg_iovlen: i32, + msg_control: ?*c_void, + msg_controllen: socklen_t, + msg_flags: i32, +}; + +pub const msghdr_const = extern struct { + msg_name: ?*const sockaddr, + msg_namelen: socklen_t, + msg_iov: [*]iovec_const, + msg_iovlen: i32, + msg_control: ?*c_void, + msg_controllen: socklen_t, + msg_flags: i32, +}; + +pub const off_t = i64; + +/// Renamed to Stat to not conflict with the stat function. +/// atime, mtime, and ctime have functions to return `timespec`, +/// because although this is a POSIX API, the layout and names of +/// the structs are inconsistent across operating systems, and +/// in C, macros are used to hide the differences. Here we use +/// methods to accomplish this. +pub const Stat = extern struct { + dev: u64, + __dev_padding: u32, + __ino_truncated: u32, + mode: u32, + nlink: u32, + uid: u32, + gid: u32, + rdev: u64, + __rdev_padding: u32, + size: off_t, + blksize: i32, + blocks: u64, + atim: timespec, + mtim: timespec, + ctim: timespec, + ino: u64, + + pub fn atime(self: Stat) timespec { + return self.atim; + } + + pub fn mtime(self: Stat) timespec { + return self.mtim; + } + + pub fn ctime(self: Stat) timespec { + return self.ctim; + } +}; + +pub const timespec = extern struct { + tv_sec: i32, + tv_nsec: i32, +}; + +pub const timeval = extern struct { + tv_sec: i32, + tv_usec: i32, +}; + +pub const timezone = extern struct { + tz_minuteswest: i32, + tz_dsttime: i32, +}; + +pub const Elf_Symndx = u32; diff --git a/lib/std/os/bits/linux/arm64.zig b/lib/std/os/bits/linux/arm64.zig new file mode 100644 index 0000000000..692efc0eb3 --- /dev/null +++ b/lib/std/os/bits/linux/arm64.zig @@ -0,0 +1,448 @@ +// arm64-specific declarations that are intended to be imported into the POSIX namespace. +// This does include Linux-only APIs. + +const std = @import("../../../std.zig"); +const linux = std.os.linux; +const socklen_t = linux.socklen_t; +const iovec = linux.iovec; +const iovec_const = linux.iovec_const; +const uid_t = linux.uid_t; +const gid_t = linux.gid_t; + +pub const SYS_io_setup = 0; +pub const SYS_io_destroy = 1; +pub const SYS_io_submit = 2; +pub const SYS_io_cancel = 3; +pub const SYS_io_getevents = 4; +pub const SYS_setxattr = 5; +pub const SYS_lsetxattr = 6; +pub const SYS_fsetxattr = 7; +pub const SYS_getxattr = 8; +pub const SYS_lgetxattr = 9; +pub const SYS_fgetxattr = 10; +pub const SYS_listxattr = 11; +pub const SYS_llistxattr = 12; +pub const SYS_flistxattr = 13; +pub const SYS_removexattr = 14; +pub const SYS_lremovexattr = 15; +pub const SYS_fremovexattr = 16; +pub const SYS_getcwd = 17; +pub const SYS_lookup_dcookie = 18; +pub const SYS_eventfd2 = 19; +pub const SYS_epoll_create1 = 20; +pub const SYS_epoll_ctl = 21; +pub const SYS_epoll_pwait = 22; +pub const SYS_dup = 23; +pub const SYS_dup3 = 24; +pub const SYS_fcntl = 25; +pub const SYS_inotify_init1 = 26; +pub const SYS_inotify_add_watch = 27; +pub const SYS_inotify_rm_watch = 28; +pub const SYS_ioctl = 29; +pub const SYS_ioprio_set = 30; +pub const SYS_ioprio_get = 31; +pub const SYS_flock = 32; +pub const SYS_mknodat = 33; +pub const SYS_mkdirat = 34; +pub const SYS_unlinkat = 35; +pub const SYS_symlinkat = 36; +pub const SYS_linkat = 37; +pub const SYS_renameat = 38; +pub const SYS_umount2 = 39; +pub const SYS_mount = 40; +pub const SYS_pivot_root = 41; +pub const SYS_nfsservctl = 42; +pub const SYS_statfs = 43; +pub const SYS_fstatfs = 44; +pub const SYS_truncate = 45; +pub const SYS_ftruncate = 46; +pub const SYS_fallocate = 47; +pub const SYS_faccessat = 48; +pub const SYS_chdir = 49; +pub const SYS_fchdir = 50; +pub const SYS_chroot = 51; +pub const SYS_fchmod = 52; +pub const SYS_fchmodat = 53; +pub const SYS_fchownat = 54; +pub const SYS_fchown = 55; +pub const SYS_openat = 56; +pub const SYS_close = 57; +pub const SYS_vhangup = 58; +pub const SYS_pipe2 = 59; +pub const SYS_quotactl = 60; +pub const SYS_getdents64 = 61; +pub const SYS_lseek = 62; +pub const SYS_read = 63; +pub const SYS_write = 64; +pub const SYS_readv = 65; +pub const SYS_writev = 66; +pub const SYS_pread64 = 67; +pub const SYS_pwrite64 = 68; +pub const SYS_preadv = 69; +pub const SYS_pwritev = 70; +pub const SYS_pselect6 = 72; +pub const SYS_ppoll = 73; +pub const SYS_signalfd4 = 74; +pub const SYS_vmsplice = 75; +pub const SYS_splice = 76; +pub const SYS_tee = 77; +pub const SYS_readlinkat = 78; +pub const SYS_fstatat = 79; +pub const SYS_fstat = 80; +pub const SYS_sync = 81; +pub const SYS_fsync = 82; +pub const SYS_fdatasync = 83; +pub const SYS_sync_file_range2 = 84; +pub const SYS_sync_file_range = 84; +pub const SYS_timerfd_create = 85; +pub const SYS_timerfd_settime = 86; +pub const SYS_timerfd_gettime = 87; +pub const SYS_utimensat = 88; +pub const SYS_acct = 89; +pub const SYS_capget = 90; +pub const SYS_capset = 91; +pub const SYS_personality = 92; +pub const SYS_exit = 93; +pub const SYS_exit_group = 94; +pub const SYS_waitid = 95; +pub const SYS_set_tid_address = 96; +pub const SYS_unshare = 97; +pub const SYS_futex = 98; +pub const SYS_set_robust_list = 99; +pub const SYS_get_robust_list = 100; +pub const SYS_nanosleep = 101; +pub const SYS_getitimer = 102; +pub const SYS_setitimer = 103; +pub const SYS_kexec_load = 104; +pub const SYS_init_module = 105; +pub const SYS_delete_module = 106; +pub const SYS_timer_create = 107; +pub const SYS_timer_gettime = 108; +pub const SYS_timer_getoverrun = 109; +pub const SYS_timer_settime = 110; +pub const SYS_timer_delete = 111; +pub const SYS_clock_settime = 112; +pub const SYS_clock_gettime = 113; +pub const SYS_clock_getres = 114; +pub const SYS_clock_nanosleep = 115; +pub const SYS_syslog = 116; +pub const SYS_ptrace = 117; +pub const SYS_sched_setparam = 118; +pub const SYS_sched_setscheduler = 119; +pub const SYS_sched_getscheduler = 120; +pub const SYS_sched_getparam = 121; +pub const SYS_sched_setaffinity = 122; +pub const SYS_sched_getaffinity = 123; +pub const SYS_sched_yield = 124; +pub const SYS_sched_get_priority_max = 125; +pub const SYS_sched_get_priority_min = 126; +pub const SYS_sched_rr_get_interval = 127; +pub const SYS_restart_syscall = 128; +pub const SYS_kill = 129; +pub const SYS_tkill = 130; +pub const SYS_tgkill = 131; +pub const SYS_sigaltstack = 132; +pub const SYS_rt_sigsuspend = 133; +pub const SYS_rt_sigaction = 134; +pub const SYS_rt_sigprocmask = 135; +pub const SYS_rt_sigpending = 136; +pub const SYS_rt_sigtimedwait = 137; +pub const SYS_rt_sigqueueinfo = 138; +pub const SYS_rt_sigreturn = 139; +pub const SYS_setpriority = 140; +pub const SYS_getpriority = 141; +pub const SYS_reboot = 142; +pub const SYS_setregid = 143; +pub const SYS_setgid = 144; +pub const SYS_setreuid = 145; +pub const SYS_setuid = 146; +pub const SYS_setresuid = 147; +pub const SYS_getresuid = 148; +pub const SYS_setresgid = 149; +pub const SYS_getresgid = 150; +pub const SYS_setfsuid = 151; +pub const SYS_setfsgid = 152; +pub const SYS_times = 153; +pub const SYS_setpgid = 154; +pub const SYS_getpgid = 155; +pub const SYS_getsid = 156; +pub const SYS_setsid = 157; +pub const SYS_getgroups = 158; +pub const SYS_setgroups = 159; +pub const SYS_uname = 160; +pub const SYS_sethostname = 161; +pub const SYS_setdomainname = 162; +pub const SYS_getrlimit = 163; +pub const SYS_setrlimit = 164; +pub const SYS_getrusage = 165; +pub const SYS_umask = 166; +pub const SYS_prctl = 167; +pub const SYS_getcpu = 168; +pub const SYS_gettimeofday = 169; +pub const SYS_settimeofday = 170; +pub const SYS_adjtimex = 171; +pub const SYS_getpid = 172; +pub const SYS_getppid = 173; +pub const SYS_getuid = 174; +pub const SYS_geteuid = 175; +pub const SYS_getgid = 176; +pub const SYS_getegid = 177; +pub const SYS_gettid = 178; +pub const SYS_sysinfo = 179; +pub const SYS_mq_open = 180; +pub const SYS_mq_unlink = 181; +pub const SYS_mq_timedsend = 182; +pub const SYS_mq_timedreceive = 183; +pub const SYS_mq_notify = 184; +pub const SYS_mq_getsetattr = 185; +pub const SYS_msgget = 186; +pub const SYS_msgctl = 187; +pub const SYS_msgrcv = 188; +pub const SYS_msgsnd = 189; +pub const SYS_semget = 190; +pub const SYS_semctl = 191; +pub const SYS_semtimedop = 192; +pub const SYS_semop = 193; +pub const SYS_shmget = 194; +pub const SYS_shmctl = 195; +pub const SYS_shmat = 196; +pub const SYS_shmdt = 197; +pub const SYS_socket = 198; +pub const SYS_socketpair = 199; +pub const SYS_bind = 200; +pub const SYS_listen = 201; +pub const SYS_accept = 202; +pub const SYS_connect = 203; +pub const SYS_getsockname = 204; +pub const SYS_getpeername = 205; +pub const SYS_sendto = 206; +pub const SYS_recvfrom = 207; +pub const SYS_setsockopt = 208; +pub const SYS_getsockopt = 209; +pub const SYS_shutdown = 210; +pub const SYS_sendmsg = 211; +pub const SYS_recvmsg = 212; +pub const SYS_readahead = 213; +pub const SYS_brk = 214; +pub const SYS_munmap = 215; +pub const SYS_mremap = 216; +pub const SYS_add_key = 217; +pub const SYS_request_key = 218; +pub const SYS_keyctl = 219; +pub const SYS_clone = 220; +pub const SYS_execve = 221; +pub const SYS_mmap = 222; +pub const SYS_fadvise64 = 223; +pub const SYS_swapon = 224; +pub const SYS_swapoff = 225; +pub const SYS_mprotect = 226; +pub const SYS_msync = 227; +pub const SYS_mlock = 228; +pub const SYS_munlock = 229; +pub const SYS_mlockall = 230; +pub const SYS_munlockall = 231; +pub const SYS_mincore = 232; +pub const SYS_madvise = 233; +pub const SYS_remap_file_pages = 234; +pub const SYS_mbind = 235; +pub const SYS_get_mempolicy = 236; +pub const SYS_set_mempolicy = 237; +pub const SYS_migrate_pages = 238; +pub const SYS_move_pages = 239; +pub const SYS_rt_tgsigqueueinfo = 240; +pub const SYS_perf_event_open = 241; +pub const SYS_accept4 = 242; +pub const SYS_recvmmsg = 243; +pub const SYS_arch_specific_syscall = 244; +pub const SYS_wait4 = 260; +pub const SYS_prlimit64 = 261; +pub const SYS_fanotify_init = 262; +pub const SYS_fanotify_mark = 263; +pub const SYS_clock_adjtime = 266; +pub const SYS_syncfs = 267; +pub const SYS_setns = 268; +pub const SYS_sendmmsg = 269; +pub const SYS_process_vm_readv = 270; +pub const SYS_process_vm_writev = 271; +pub const SYS_kcmp = 272; +pub const SYS_finit_module = 273; +pub const SYS_sched_setattr = 274; +pub const SYS_sched_getattr = 275; +pub const SYS_renameat2 = 276; +pub const SYS_seccomp = 277; +pub const SYS_getrandom = 278; +pub const SYS_memfd_create = 279; +pub const SYS_bpf = 280; +pub const SYS_execveat = 281; +pub const SYS_userfaultfd = 282; +pub const SYS_membarrier = 283; +pub const SYS_mlock2 = 284; +pub const SYS_copy_file_range = 285; +pub const SYS_preadv2 = 286; +pub const SYS_pwritev2 = 287; +pub const SYS_pkey_mprotect = 288; +pub const SYS_pkey_alloc = 289; +pub const SYS_pkey_free = 290; +pub const SYS_statx = 291; +pub const SYS_io_pgetevents = 292; +pub const SYS_rseq = 293; +pub const SYS_kexec_file_load = 294; +pub const SYS_pidfd_send_signal = 424; +pub const SYS_io_uring_setup = 425; +pub const SYS_io_uring_enter = 426; +pub const SYS_io_uring_register = 427; +pub const SYS_open_tree = 428; +pub const SYS_move_mount = 429; +pub const SYS_fsopen = 430; +pub const SYS_fsconfig = 431; +pub const SYS_fsmount = 432; +pub const SYS_fspick = 433; +pub const SYS_pidfd_open = 434; +pub const SYS_clone3 = 435; + +pub const O_CREAT = 0o100; +pub const O_EXCL = 0o200; +pub const O_NOCTTY = 0o400; +pub const O_TRUNC = 0o1000; +pub const O_APPEND = 0o2000; +pub const O_NONBLOCK = 0o4000; +pub const O_DSYNC = 0o10000; +pub const O_SYNC = 0o4010000; +pub const O_RSYNC = 0o4010000; +pub const O_DIRECTORY = 0o40000; +pub const O_NOFOLLOW = 0o100000; +pub const O_CLOEXEC = 0o2000000; + +pub const O_ASYNC = 0o20000; +pub const O_DIRECT = 0o200000; +pub const O_LARGEFILE = 0o400000; +pub const O_NOATIME = 0o1000000; +pub const O_PATH = 0o10000000; +pub const O_TMPFILE = 0o20040000; +pub const O_NDELAY = O_NONBLOCK; + +pub const F_DUPFD = 0; +pub const F_GETFD = 1; +pub const F_SETFD = 2; +pub const F_GETFL = 3; +pub const F_SETFL = 4; + +pub const F_SETOWN = 8; +pub const F_GETOWN = 9; +pub const F_SETSIG = 10; +pub const F_GETSIG = 11; + +pub const F_GETLK = 5; +pub const F_SETLK = 6; +pub const F_SETLKW = 7; + +pub const F_SETOWN_EX = 15; +pub const F_GETOWN_EX = 16; + +pub const F_GETOWNER_UIDS = 17; + +/// stack-like segment +pub const MAP_GROWSDOWN = 0x0100; + +/// ETXTBSY +pub const MAP_DENYWRITE = 0x0800; + +/// mark it as an executable +pub const MAP_EXECUTABLE = 0x1000; + +/// pages are locked +pub const MAP_LOCKED = 0x2000; + +/// don't check for reservations +pub const MAP_NORESERVE = 0x4000; + +pub const VDSO_USEFUL = true; +pub const VDSO_CGT_SYM = "__kernel_clock_gettime"; +pub const VDSO_CGT_VER = "LINUX_2.6.39"; + +pub const msghdr = extern struct { + msg_name: ?*sockaddr, + msg_namelen: socklen_t, + msg_iov: [*]iovec, + msg_iovlen: i32, + __pad1: i32, + msg_control: ?*c_void, + msg_controllen: socklen_t, + __pad2: socklen_t, + msg_flags: i32, +}; + +pub const msghdr_const = extern struct { + msg_name: ?*const sockaddr, + msg_namelen: socklen_t, + msg_iov: [*]iovec_const, + msg_iovlen: i32, + __pad1: i32, + msg_control: ?*c_void, + msg_controllen: socklen_t, + __pad2: socklen_t, + msg_flags: i32, +}; + +pub const blksize_t = i32; +pub const nlink_t = u32; +pub const time_t = isize; +pub const mode_t = u32; +pub const off_t = isize; +pub const ino_t = usize; +pub const dev_t = usize; +pub const blkcnt_t = isize; + +/// Renamed to Stat to not conflict with the stat function. +/// atime, mtime, and ctime have functions to return `timespec`, +/// because although this is a POSIX API, the layout and names of +/// the structs are inconsistent across operating systems, and +/// in C, macros are used to hide the differences. Here we use +/// methods to accomplish this. +pub const Stat = extern struct { + dev: dev_t, + ino: ino_t, + mode: mode_t, + nlink: nlink_t, + uid: uid_t, + gid: gid_t, + rdev: dev_t, + __pad: usize, + size: off_t, + blksize: blksize_t, + __pad2: i32, + blocks: blkcnt_t, + atim: timespec, + mtim: timespec, + ctim: timespec, + __unused: [2]u32, + + pub fn atime(self: Stat) timespec { + return self.atim; + } + + pub fn mtime(self: Stat) timespec { + return self.mtim; + } + + pub fn ctime(self: Stat) timespec { + return self.ctim; + } +}; + +pub const timespec = extern struct { + tv_sec: time_t, + tv_nsec: isize, +}; + +pub const timeval = extern struct { + tv_sec: isize, + tv_usec: isize, +}; + +pub const timezone = extern struct { + tz_minuteswest: i32, + tz_dsttime: i32, +}; + +pub const Elf_Symndx = u32; diff --git a/lib/std/os/bits/linux/errno.zig b/lib/std/os/bits/linux/errno.zig new file mode 100644 index 0000000000..741f76fdee --- /dev/null +++ b/lib/std/os/bits/linux/errno.zig @@ -0,0 +1,428 @@ +/// Operation not permitted +pub const EPERM = 1; + +/// No such file or directory +pub const ENOENT = 2; + +/// No such process +pub const ESRCH = 3; + +/// Interrupted system call +pub const EINTR = 4; + +/// I/O error +pub const EIO = 5; + +/// No such device or address +pub const ENXIO = 6; + +/// Arg list too long +pub const E2BIG = 7; + +/// Exec format error +pub const ENOEXEC = 8; + +/// Bad file number +pub const EBADF = 9; + +/// No child processes +pub const ECHILD = 10; + +/// Try again +pub const EAGAIN = 11; + +/// Out of memory +pub const ENOMEM = 12; + +/// Permission denied +pub const EACCES = 13; + +/// Bad address +pub const EFAULT = 14; + +/// Block device required +pub const ENOTBLK = 15; + +/// Device or resource busy +pub const EBUSY = 16; + +/// File exists +pub const EEXIST = 17; + +/// Cross-device link +pub const EXDEV = 18; + +/// No such device +pub const ENODEV = 19; + +/// Not a directory +pub const ENOTDIR = 20; + +/// Is a directory +pub const EISDIR = 21; + +/// Invalid argument +pub const EINVAL = 22; + +/// File table overflow +pub const ENFILE = 23; + +/// Too many open files +pub const EMFILE = 24; + +/// Not a typewriter +pub const ENOTTY = 25; + +/// Text file busy +pub const ETXTBSY = 26; + +/// File too large +pub const EFBIG = 27; + +/// No space left on device +pub const ENOSPC = 28; + +/// Illegal seek +pub const ESPIPE = 29; + +/// Read-only file system +pub const EROFS = 30; + +/// Too many links +pub const EMLINK = 31; + +/// Broken pipe +pub const EPIPE = 32; + +/// Math argument out of domain of func +pub const EDOM = 33; + +/// Math result not representable +pub const ERANGE = 34; + +/// Resource deadlock would occur +pub const EDEADLK = 35; + +/// File name too long +pub const ENAMETOOLONG = 36; + +/// No record locks available +pub const ENOLCK = 37; + +/// Function not implemented +pub const ENOSYS = 38; + +/// Directory not empty +pub const ENOTEMPTY = 39; + +/// Too many symbolic links encountered +pub const ELOOP = 40; + +/// Operation would block +pub const EWOULDBLOCK = EAGAIN; + +/// No message of desired type +pub const ENOMSG = 42; + +/// Identifier removed +pub const EIDRM = 43; + +/// Channel number out of range +pub const ECHRNG = 44; + +/// Level 2 not synchronized +pub const EL2NSYNC = 45; + +/// Level 3 halted +pub const EL3HLT = 46; + +/// Level 3 reset +pub const EL3RST = 47; + +/// Link number out of range +pub const ELNRNG = 48; + +/// Protocol driver not attached +pub const EUNATCH = 49; + +/// No CSI structure available +pub const ENOCSI = 50; + +/// Level 2 halted +pub const EL2HLT = 51; + +/// Invalid exchange +pub const EBADE = 52; + +/// Invalid request descriptor +pub const EBADR = 53; + +/// Exchange full +pub const EXFULL = 54; + +/// No anode +pub const ENOANO = 55; + +/// Invalid request code +pub const EBADRQC = 56; + +/// Invalid slot +pub const EBADSLT = 57; + +/// Bad font file format +pub const EBFONT = 59; + +/// Device not a stream +pub const ENOSTR = 60; + +/// No data available +pub const ENODATA = 61; + +/// Timer expired +pub const ETIME = 62; + +/// Out of streams resources +pub const ENOSR = 63; + +/// Machine is not on the network +pub const ENONET = 64; + +/// Package not installed +pub const ENOPKG = 65; + +/// Object is remote +pub const EREMOTE = 66; + +/// Link has been severed +pub const ENOLINK = 67; + +/// Advertise error +pub const EADV = 68; + +/// Srmount error +pub const ESRMNT = 69; + +/// Communication error on send +pub const ECOMM = 70; + +/// Protocol error +pub const EPROTO = 71; + +/// Multihop attempted +pub const EMULTIHOP = 72; + +/// RFS specific error +pub const EDOTDOT = 73; + +/// Not a data message +pub const EBADMSG = 74; + +/// Value too large for defined data type +pub const EOVERFLOW = 75; + +/// Name not unique on network +pub const ENOTUNIQ = 76; + +/// File descriptor in bad state +pub const EBADFD = 77; + +/// Remote address changed +pub const EREMCHG = 78; + +/// Can not access a needed shared library +pub const ELIBACC = 79; + +/// Accessing a corrupted shared library +pub const ELIBBAD = 80; + +/// .lib section in a.out corrupted +pub const ELIBSCN = 81; + +/// Attempting to link in too many shared libraries +pub const ELIBMAX = 82; + +/// Cannot exec a shared library directly +pub const ELIBEXEC = 83; + +/// Illegal byte sequence +pub const EILSEQ = 84; + +/// Interrupted system call should be restarted +pub const ERESTART = 85; + +/// Streams pipe error +pub const ESTRPIPE = 86; + +/// Too many users +pub const EUSERS = 87; + +/// Socket operation on non-socket +pub const ENOTSOCK = 88; + +/// Destination address required +pub const EDESTADDRREQ = 89; + +/// Message too long +pub const EMSGSIZE = 90; + +/// Protocol wrong type for socket +pub const EPROTOTYPE = 91; + +/// Protocol not available +pub const ENOPROTOOPT = 92; + +/// Protocol not supported +pub const EPROTONOSUPPORT = 93; + +/// Socket type not supported +pub const ESOCKTNOSUPPORT = 94; + +/// Operation not supported on transport endpoint +pub const EOPNOTSUPP = 95; +pub const ENOTSUP = EOPNOTSUPP; + +/// Protocol family not supported +pub const EPFNOSUPPORT = 96; + +/// Address family not supported by protocol +pub const EAFNOSUPPORT = 97; + +/// Address already in use +pub const EADDRINUSE = 98; + +/// Cannot assign requested address +pub const EADDRNOTAVAIL = 99; + +/// Network is down +pub const ENETDOWN = 100; + +/// Network is unreachable +pub const ENETUNREACH = 101; + +/// Network dropped connection because of reset +pub const ENETRESET = 102; + +/// Software caused connection abort +pub const ECONNABORTED = 103; + +/// Connection reset by peer +pub const ECONNRESET = 104; + +/// No buffer space available +pub const ENOBUFS = 105; + +/// Transport endpoint is already connected +pub const EISCONN = 106; + +/// Transport endpoint is not connected +pub const ENOTCONN = 107; + +/// Cannot send after transport endpoint shutdown +pub const ESHUTDOWN = 108; + +/// Too many references: cannot splice +pub const ETOOMANYREFS = 109; + +/// Connection timed out +pub const ETIMEDOUT = 110; + +/// Connection refused +pub const ECONNREFUSED = 111; + +/// Host is down +pub const EHOSTDOWN = 112; + +/// No route to host +pub const EHOSTUNREACH = 113; + +/// Operation already in progress +pub const EALREADY = 114; + +/// Operation now in progress +pub const EINPROGRESS = 115; + +/// Stale NFS file handle +pub const ESTALE = 116; + +/// Structure needs cleaning +pub const EUCLEAN = 117; + +/// Not a XENIX named type file +pub const ENOTNAM = 118; + +/// No XENIX semaphores available +pub const ENAVAIL = 119; + +/// Is a named type file +pub const EISNAM = 120; + +/// Remote I/O error +pub const EREMOTEIO = 121; + +/// Quota exceeded +pub const EDQUOT = 122; + +/// No medium found +pub const ENOMEDIUM = 123; + +/// Wrong medium type +pub const EMEDIUMTYPE = 124; + +// nameserver query return codes + +/// DNS server returned answer with no data +pub const ENSROK = 0; + +/// DNS server returned answer with no data +pub const ENSRNODATA = 160; + +/// DNS server claims query was misformatted +pub const ENSRFORMERR = 161; + +/// DNS server returned general failure +pub const ENSRSERVFAIL = 162; + +/// Domain name not found +pub const ENSRNOTFOUND = 163; + +/// DNS server does not implement requested operation +pub const ENSRNOTIMP = 164; + +/// DNS server refused query +pub const ENSRREFUSED = 165; + +/// Misformatted DNS query +pub const ENSRBADQUERY = 166; + +/// Misformatted domain name +pub const ENSRBADNAME = 167; + +/// Unsupported address family +pub const ENSRBADFAMILY = 168; + +/// Misformatted DNS reply +pub const ENSRBADRESP = 169; + +/// Could not contact DNS servers +pub const ENSRCONNREFUSED = 170; + +/// Timeout while contacting DNS servers +pub const ENSRTIMEOUT = 171; + +/// End of file +pub const ENSROF = 172; + +/// Error reading file +pub const ENSRFILE = 173; + +/// Out of memory +pub const ENSRNOMEM = 174; + +/// Application terminated lookup +pub const ENSRDESTRUCTION = 175; + +/// Domain name is too long +pub const ENSRQUERYDOMAINTOOLONG = 176; + +/// Domain name is too long +pub const ENSRCNAMELOOP = 177; diff --git a/lib/std/os/bits/linux/riscv64.zig b/lib/std/os/bits/linux/riscv64.zig new file mode 100644 index 0000000000..e0c10ef7c0 --- /dev/null +++ b/lib/std/os/bits/linux/riscv64.zig @@ -0,0 +1,390 @@ +// riscv64-specific declarations that are intended to be imported into the POSIX namespace. +const std = @import("../../../std.zig"); +const uid_t = std.os.linux.uid_t; +const gid_t = std.os.linux.gid_t; + +pub const SYS_io_setup = 0; +pub const SYS_io_destroy = 1; +pub const SYS_io_submit = 2; +pub const SYS_io_cancel = 3; +pub const SYS_io_getevents = 4; +pub const SYS_setxattr = 5; +pub const SYS_lsetxattr = 6; +pub const SYS_fsetxattr = 7; +pub const SYS_getxattr = 8; +pub const SYS_lgetxattr = 9; +pub const SYS_fgetxattr = 10; +pub const SYS_listxattr = 11; +pub const SYS_llistxattr = 12; +pub const SYS_flistxattr = 13; +pub const SYS_removexattr = 14; +pub const SYS_lremovexattr = 15; +pub const SYS_fremovexattr = 16; +pub const SYS_getcwd = 17; +pub const SYS_lookup_dcookie = 18; +pub const SYS_eventfd2 = 19; +pub const SYS_epoll_create1 = 20; +pub const SYS_epoll_ctl = 21; +pub const SYS_epoll_pwait = 22; +pub const SYS_dup = 23; +pub const SYS_dup3 = 24; +pub const SYS_fcntl = 25; +pub const SYS_inotify_init1 = 26; +pub const SYS_inotify_add_watch = 27; +pub const SYS_inotify_rm_watch = 28; +pub const SYS_ioctl = 29; +pub const SYS_ioprio_set = 30; +pub const SYS_ioprio_get = 31; +pub const SYS_flock = 32; +pub const SYS_mknodat = 33; +pub const SYS_mkdirat = 34; +pub const SYS_unlinkat = 35; +pub const SYS_symlinkat = 36; +pub const SYS_linkat = 37; +pub const SYS_umount2 = 39; +pub const SYS_mount = 40; +pub const SYS_pivot_root = 41; +pub const SYS_nfsservctl = 42; +pub const SYS_statfs = 43; +pub const SYS_fstatfs = 44; +pub const SYS_truncate = 45; +pub const SYS_ftruncate = 46; +pub const SYS_fallocate = 47; +pub const SYS_faccessat = 48; +pub const SYS_chdir = 49; +pub const SYS_fchdir = 50; +pub const SYS_chroot = 51; +pub const SYS_fchmod = 52; +pub const SYS_fchmodat = 53; +pub const SYS_fchownat = 54; +pub const SYS_fchown = 55; +pub const SYS_openat = 56; +pub const SYS_close = 57; +pub const SYS_vhangup = 58; +pub const SYS_pipe2 = 59; +pub const SYS_quotactl = 60; +pub const SYS_getdents64 = 61; +pub const SYS_lseek = 62; +pub const SYS_read = 63; +pub const SYS_write = 64; +pub const SYS_readv = 65; +pub const SYS_writev = 66; +pub const SYS_pread64 = 67; +pub const SYS_pwrite64 = 68; +pub const SYS_preadv = 69; +pub const SYS_pwritev = 70; +pub const SYS_sendfile = 71; +pub const SYS_pselect6 = 72; +pub const SYS_ppoll = 73; +pub const SYS_signalfd4 = 74; +pub const SYS_vmsplice = 75; +pub const SYS_splice = 76; +pub const SYS_tee = 77; +pub const SYS_readlinkat = 78; +pub const SYS_fstatat = 79; +pub const SYS_fstat = 80; +pub const SYS_sync = 81; +pub const SYS_fsync = 82; +pub const SYS_fdatasync = 83; +pub const SYS_sync_file_range = 84; +pub const SYS_timerfd_create = 85; +pub const SYS_timerfd_settime = 86; +pub const SYS_timerfd_gettime = 87; +pub const SYS_utimensat = 88; +pub const SYS_acct = 89; +pub const SYS_capget = 90; +pub const SYS_capset = 91; +pub const SYS_personality = 92; +pub const SYS_exit = 93; +pub const SYS_exit_group = 94; +pub const SYS_waitid = 95; +pub const SYS_set_tid_address = 96; +pub const SYS_unshare = 97; +pub const SYS_futex = 98; +pub const SYS_set_robust_list = 99; +pub const SYS_get_robust_list = 100; +pub const SYS_nanosleep = 101; +pub const SYS_getitimer = 102; +pub const SYS_setitimer = 103; +pub const SYS_kexec_load = 104; +pub const SYS_init_module = 105; +pub const SYS_delete_module = 106; +pub const SYS_timer_create = 107; +pub const SYS_timer_gettime = 108; +pub const SYS_timer_getoverrun = 109; +pub const SYS_timer_settime = 110; +pub const SYS_timer_delete = 111; +pub const SYS_clock_settime = 112; +pub const SYS_clock_gettime = 113; +pub const SYS_clock_getres = 114; +pub const SYS_clock_nanosleep = 115; +pub const SYS_syslog = 116; +pub const SYS_ptrace = 117; +pub const SYS_sched_setparam = 118; +pub const SYS_sched_setscheduler = 119; +pub const SYS_sched_getscheduler = 120; +pub const SYS_sched_getparam = 121; +pub const SYS_sched_setaffinity = 122; +pub const SYS_sched_getaffinity = 123; +pub const SYS_sched_yield = 124; +pub const SYS_sched_get_priority_max = 125; +pub const SYS_sched_get_priority_min = 126; +pub const SYS_sched_rr_get_interval = 127; +pub const SYS_restart_syscall = 128; +pub const SYS_kill = 129; +pub const SYS_tkill = 130; +pub const SYS_tgkill = 131; +pub const SYS_sigaltstack = 132; +pub const SYS_rt_sigsuspend = 133; +pub const SYS_rt_sigaction = 134; +pub const SYS_rt_sigprocmask = 135; +pub const SYS_rt_sigpending = 136; +pub const SYS_rt_sigtimedwait = 137; +pub const SYS_rt_sigqueueinfo = 138; +pub const SYS_rt_sigreturn = 139; +pub const SYS_setpriority = 140; +pub const SYS_getpriority = 141; +pub const SYS_reboot = 142; +pub const SYS_setregid = 143; +pub const SYS_setgid = 144; +pub const SYS_setreuid = 145; +pub const SYS_setuid = 146; +pub const SYS_setresuid = 147; +pub const SYS_getresuid = 148; +pub const SYS_setresgid = 149; +pub const SYS_getresgid = 150; +pub const SYS_setfsuid = 151; +pub const SYS_setfsgid = 152; +pub const SYS_times = 153; +pub const SYS_setpgid = 154; +pub const SYS_getpgid = 155; +pub const SYS_getsid = 156; +pub const SYS_setsid = 157; +pub const SYS_getgroups = 158; +pub const SYS_setgroups = 159; +pub const SYS_uname = 160; +pub const SYS_sethostname = 161; +pub const SYS_setdomainname = 162; +pub const SYS_getrlimit = 163; +pub const SYS_setrlimit = 164; +pub const SYS_getrusage = 165; +pub const SYS_umask = 166; +pub const SYS_prctl = 167; +pub const SYS_getcpu = 168; +pub const SYS_gettimeofday = 169; +pub const SYS_settimeofday = 170; +pub const SYS_adjtimex = 171; +pub const SYS_getpid = 172; +pub const SYS_getppid = 173; +pub const SYS_getuid = 174; +pub const SYS_geteuid = 175; +pub const SYS_getgid = 176; +pub const SYS_getegid = 177; +pub const SYS_gettid = 178; +pub const SYS_sysinfo = 179; +pub const SYS_mq_open = 180; +pub const SYS_mq_unlink = 181; +pub const SYS_mq_timedsend = 182; +pub const SYS_mq_timedreceive = 183; +pub const SYS_mq_notify = 184; +pub const SYS_mq_getsetattr = 185; +pub const SYS_msgget = 186; +pub const SYS_msgctl = 187; +pub const SYS_msgrcv = 188; +pub const SYS_msgsnd = 189; +pub const SYS_semget = 190; +pub const SYS_semctl = 191; +pub const SYS_semtimedop = 192; +pub const SYS_semop = 193; +pub const SYS_shmget = 194; +pub const SYS_shmctl = 195; +pub const SYS_shmat = 196; +pub const SYS_shmdt = 197; +pub const SYS_socket = 198; +pub const SYS_socketpair = 199; +pub const SYS_bind = 200; +pub const SYS_listen = 201; +pub const SYS_accept = 202; +pub const SYS_connect = 203; +pub const SYS_getsockname = 204; +pub const SYS_getpeername = 205; +pub const SYS_sendto = 206; +pub const SYS_recvfrom = 207; +pub const SYS_setsockopt = 208; +pub const SYS_getsockopt = 209; +pub const SYS_shutdown = 210; +pub const SYS_sendmsg = 211; +pub const SYS_recvmsg = 212; +pub const SYS_readahead = 213; +pub const SYS_brk = 214; +pub const SYS_munmap = 215; +pub const SYS_mremap = 216; +pub const SYS_add_key = 217; +pub const SYS_request_key = 218; +pub const SYS_keyctl = 219; +pub const SYS_clone = 220; +pub const SYS_execve = 221; +pub const SYS_mmap = 222; +pub const SYS_fadvise64 = 223; +pub const SYS_swapon = 224; +pub const SYS_swapoff = 225; +pub const SYS_mprotect = 226; +pub const SYS_msync = 227; +pub const SYS_mlock = 228; +pub const SYS_munlock = 229; +pub const SYS_mlockall = 230; +pub const SYS_munlockall = 231; +pub const SYS_mincore = 232; +pub const SYS_madvise = 233; +pub const SYS_remap_file_pages = 234; +pub const SYS_mbind = 235; +pub const SYS_get_mempolicy = 236; +pub const SYS_set_mempolicy = 237; +pub const SYS_migrate_pages = 238; +pub const SYS_move_pages = 239; +pub const SYS_rt_tgsigqueueinfo = 240; +pub const SYS_perf_event_open = 241; +pub const SYS_accept4 = 242; +pub const SYS_recvmmsg = 243; + +pub const SYS_arch_specific_syscall = 244; +pub const SYS_riscv_flush_icache = SYS_arch_specific_syscall + 15; + +pub const SYS_wait4 = 260; +pub const SYS_prlimit64 = 261; +pub const SYS_fanotify_init = 262; +pub const SYS_fanotify_mark = 263; +pub const SYS_name_to_handle_at = 264; +pub const SYS_open_by_handle_at = 265; +pub const SYS_clock_adjtime = 266; +pub const SYS_syncfs = 267; +pub const SYS_setns = 268; +pub const SYS_sendmmsg = 269; +pub const SYS_process_vm_readv = 270; +pub const SYS_process_vm_writev = 271; +pub const SYS_kcmp = 272; +pub const SYS_finit_module = 273; +pub const SYS_sched_setattr = 274; +pub const SYS_sched_getattr = 275; +pub const SYS_renameat2 = 276; +pub const SYS_seccomp = 277; +pub const SYS_getrandom = 278; +pub const SYS_memfd_create = 279; +pub const SYS_bpf = 280; +pub const SYS_execveat = 281; +pub const SYS_userfaultfd = 282; +pub const SYS_membarrier = 283; +pub const SYS_mlock2 = 284; +pub const SYS_copy_file_range = 285; +pub const SYS_preadv2 = 286; +pub const SYS_pwritev2 = 287; +pub const SYS_pkey_mprotect = 288; +pub const SYS_pkey_alloc = 289; +pub const SYS_pkey_free = 290; +pub const SYS_statx = 291; +pub const SYS_io_pgetevents = 292; +pub const SYS_rseq = 293; +pub const SYS_kexec_file_load = 294; +pub const SYS_pidfd_send_signal = 424; +pub const SYS_io_uring_setup = 425; +pub const SYS_io_uring_enter = 426; +pub const SYS_io_uring_register = 427; +pub const SYS_open_tree = 428; +pub const SYS_move_mount = 429; +pub const SYS_fsopen = 430; +pub const SYS_fsconfig = 431; +pub const SYS_fsmount = 432; +pub const SYS_fspick = 433; +pub const SYS_pidfd_open = 434; +pub const SYS_clone3 = 435; + +pub const O_CREAT = 0o100; +pub const O_EXCL = 0o200; +pub const O_NOCTTY = 0o400; +pub const O_TRUNC = 0o1000; +pub const O_APPEND = 0o2000; +pub const O_NONBLOCK = 0o4000; +pub const O_DSYNC = 0o10000; +pub const O_SYNC = 0o4010000; +pub const O_RSYNC = 0o4010000; +pub const O_DIRECTORY = 0o200000; +pub const O_NOFOLLOW = 0o400000; +pub const O_CLOEXEC = 0o2000000; + +pub const O_ASYNC = 0o20000; +pub const O_DIRECT = 0o40000; +pub const O_LARGEFILE = 0o100000; +pub const O_NOATIME = 0o1000000; +pub const O_PATH = 0o10000000; +pub const O_TMPFILE = 0o20200000; +pub const O_NDELAY = O_NONBLOCK; + +pub const F_DUPFD = 0; +pub const F_GETFD = 1; +pub const F_SETFD = 2; +pub const F_GETFL = 3; +pub const F_SETFL = 4; +pub const F_GETLK = 5; +pub const F_SETLK = 6; +pub const F_SETLKW = 7; +pub const F_SETOWN = 8; +pub const F_GETOWN = 9; +pub const F_SETSIG = 10; +pub const F_GETSIG = 11; + +pub const F_SETOWN_EX = 15; +pub const F_GETOWN_EX = 16; + +pub const F_GETOWNER_UIDS = 17; + +pub const blksize_t = i32; +pub const nlink_t = u32; +pub const time_t = isize; +pub const mode_t = u32; +pub const off_t = isize; +pub const ino_t = usize; +pub const dev_t = usize; +pub const blkcnt_t = isize; +pub const timespec = extern struct { + tv_sec: time_t, + tv_nsec: isize, +}; + +/// Renamed to Stat to not conflict with the stat function. +/// atime, mtime, and ctime have functions to return `timespec`, +/// because although this is a POSIX API, the layout and names of +/// the structs are inconsistent across operating systems, and +/// in C, macros are used to hide the differences. Here we use +/// methods to accomplish this. +pub const Stat = extern struct { + dev: dev_t, + ino: ino_t, + mode: mode_t, + nlink: nlink_t, + uid: uid_t, + gid: gid_t, + rdev: dev_t, + __pad: usize, + size: off_t, + blksize: blksize_t, + __pad2: i32, + blocks: blkcnt_t, + atim: timespec, + mtim: timespec, + ctim: timespec, + __unused: [2]u32, + + pub fn atime(self: Stat) timespec { + return self.atim; + } + + pub fn mtime(self: Stat) timespec { + return self.mtim; + } + + pub fn ctime(self: Stat) timespec { + return self.ctim; + } +}; + +pub const Elf_Symndx = u32; diff --git a/lib/std/os/bits/linux/x86_64.zig b/lib/std/os/bits/linux/x86_64.zig new file mode 100644 index 0000000000..626acd00d6 --- /dev/null +++ b/lib/std/os/bits/linux/x86_64.zig @@ -0,0 +1,663 @@ +// x86-64-specific declarations that are intended to be imported into the POSIX namespace. +const std = @import("../../../std.zig"); +const pid_t = linux.pid_t; +const uid_t = linux.uid_t; +const clock_t = linux.clock_t; +const stack_t = linux.stack_t; +const sigset_t = linux.sigset_t; + +const linux = std.os.linux; +const sockaddr = linux.sockaddr; +const socklen_t = linux.socklen_t; +const iovec = linux.iovec; +const iovec_const = linux.iovec_const; + +pub const SYS_read = 0; +pub const SYS_write = 1; +pub const SYS_open = 2; +pub const SYS_close = 3; +pub const SYS_stat = 4; +pub const SYS_fstat = 5; +pub const SYS_lstat = 6; +pub const SYS_poll = 7; +pub const SYS_lseek = 8; +pub const SYS_mmap = 9; +pub const SYS_mprotect = 10; +pub const SYS_munmap = 11; +pub const SYS_brk = 12; +pub const SYS_rt_sigaction = 13; +pub const SYS_rt_sigprocmask = 14; +pub const SYS_rt_sigreturn = 15; +pub const SYS_ioctl = 16; +pub const SYS_pread = 17; +pub const SYS_pwrite = 18; +pub const SYS_readv = 19; +pub const SYS_writev = 20; +pub const SYS_access = 21; +pub const SYS_pipe = 22; +pub const SYS_select = 23; +pub const SYS_sched_yield = 24; +pub const SYS_mremap = 25; +pub const SYS_msync = 26; +pub const SYS_mincore = 27; +pub const SYS_madvise = 28; +pub const SYS_shmget = 29; +pub const SYS_shmat = 30; +pub const SYS_shmctl = 31; +pub const SYS_dup = 32; +pub const SYS_dup2 = 33; +pub const SYS_pause = 34; +pub const SYS_nanosleep = 35; +pub const SYS_getitimer = 36; +pub const SYS_alarm = 37; +pub const SYS_setitimer = 38; +pub const SYS_getpid = 39; +pub const SYS_sendfile = 40; +pub const SYS_socket = 41; +pub const SYS_connect = 42; +pub const SYS_accept = 43; +pub const SYS_sendto = 44; +pub const SYS_recvfrom = 45; +pub const SYS_sendmsg = 46; +pub const SYS_recvmsg = 47; +pub const SYS_shutdown = 48; +pub const SYS_bind = 49; +pub const SYS_listen = 50; +pub const SYS_getsockname = 51; +pub const SYS_getpeername = 52; +pub const SYS_socketpair = 53; +pub const SYS_setsockopt = 54; +pub const SYS_getsockopt = 55; +pub const SYS_clone = 56; +pub const SYS_fork = 57; +pub const SYS_vfork = 58; +pub const SYS_execve = 59; +pub const SYS_exit = 60; +pub const SYS_wait4 = 61; +pub const SYS_kill = 62; +pub const SYS_uname = 63; +pub const SYS_semget = 64; +pub const SYS_semop = 65; +pub const SYS_semctl = 66; +pub const SYS_shmdt = 67; +pub const SYS_msgget = 68; +pub const SYS_msgsnd = 69; +pub const SYS_msgrcv = 70; +pub const SYS_msgctl = 71; +pub const SYS_fcntl = 72; +pub const SYS_flock = 73; +pub const SYS_fsync = 74; +pub const SYS_fdatasync = 75; +pub const SYS_truncate = 76; +pub const SYS_ftruncate = 77; +pub const SYS_getdents = 78; +pub const SYS_getcwd = 79; +pub const SYS_chdir = 80; +pub const SYS_fchdir = 81; +pub const SYS_rename = 82; +pub const SYS_mkdir = 83; +pub const SYS_rmdir = 84; +pub const SYS_creat = 85; +pub const SYS_link = 86; +pub const SYS_unlink = 87; +pub const SYS_symlink = 88; +pub const SYS_readlink = 89; +pub const SYS_chmod = 90; +pub const SYS_fchmod = 91; +pub const SYS_chown = 92; +pub const SYS_fchown = 93; +pub const SYS_lchown = 94; +pub const SYS_umask = 95; +pub const SYS_gettimeofday = 96; +pub const SYS_getrlimit = 97; +pub const SYS_getrusage = 98; +pub const SYS_sysinfo = 99; +pub const SYS_times = 100; +pub const SYS_ptrace = 101; +pub const SYS_getuid = 102; +pub const SYS_syslog = 103; +pub const SYS_getgid = 104; +pub const SYS_setuid = 105; +pub const SYS_setgid = 106; +pub const SYS_geteuid = 107; +pub const SYS_getegid = 108; +pub const SYS_setpgid = 109; +pub const SYS_getppid = 110; +pub const SYS_getpgrp = 111; +pub const SYS_setsid = 112; +pub const SYS_setreuid = 113; +pub const SYS_setregid = 114; +pub const SYS_getgroups = 115; +pub const SYS_setgroups = 116; +pub const SYS_setresuid = 117; +pub const SYS_getresuid = 118; +pub const SYS_setresgid = 119; +pub const SYS_getresgid = 120; +pub const SYS_getpgid = 121; +pub const SYS_setfsuid = 122; +pub const SYS_setfsgid = 123; +pub const SYS_getsid = 124; +pub const SYS_capget = 125; +pub const SYS_capset = 126; +pub const SYS_rt_sigpending = 127; +pub const SYS_rt_sigtimedwait = 128; +pub const SYS_rt_sigqueueinfo = 129; +pub const SYS_rt_sigsuspend = 130; +pub const SYS_sigaltstack = 131; +pub const SYS_utime = 132; +pub const SYS_mknod = 133; +pub const SYS_uselib = 134; +pub const SYS_personality = 135; +pub const SYS_ustat = 136; +pub const SYS_statfs = 137; +pub const SYS_fstatfs = 138; +pub const SYS_sysfs = 139; +pub const SYS_getpriority = 140; +pub const SYS_setpriority = 141; +pub const SYS_sched_setparam = 142; +pub const SYS_sched_getparam = 143; +pub const SYS_sched_setscheduler = 144; +pub const SYS_sched_getscheduler = 145; +pub const SYS_sched_get_priority_max = 146; +pub const SYS_sched_get_priority_min = 147; +pub const SYS_sched_rr_get_interval = 148; +pub const SYS_mlock = 149; +pub const SYS_munlock = 150; +pub const SYS_mlockall = 151; +pub const SYS_munlockall = 152; +pub const SYS_vhangup = 153; +pub const SYS_modify_ldt = 154; +pub const SYS_pivot_root = 155; +pub const SYS__sysctl = 156; +pub const SYS_prctl = 157; +pub const SYS_arch_prctl = 158; +pub const SYS_adjtimex = 159; +pub const SYS_setrlimit = 160; +pub const SYS_chroot = 161; +pub const SYS_sync = 162; +pub const SYS_acct = 163; +pub const SYS_settimeofday = 164; +pub const SYS_mount = 165; +pub const SYS_umount2 = 166; +pub const SYS_swapon = 167; +pub const SYS_swapoff = 168; +pub const SYS_reboot = 169; +pub const SYS_sethostname = 170; +pub const SYS_setdomainname = 171; +pub const SYS_iopl = 172; +pub const SYS_ioperm = 173; +pub const SYS_create_module = 174; +pub const SYS_init_module = 175; +pub const SYS_delete_module = 176; +pub const SYS_get_kernel_syms = 177; +pub const SYS_query_module = 178; +pub const SYS_quotactl = 179; +pub const SYS_nfsservctl = 180; +pub const SYS_getpmsg = 181; +pub const SYS_putpmsg = 182; +pub const SYS_afs_syscall = 183; +pub const SYS_tuxcall = 184; +pub const SYS_security = 185; +pub const SYS_gettid = 186; +pub const SYS_readahead = 187; +pub const SYS_setxattr = 188; +pub const SYS_lsetxattr = 189; +pub const SYS_fsetxattr = 190; +pub const SYS_getxattr = 191; +pub const SYS_lgetxattr = 192; +pub const SYS_fgetxattr = 193; +pub const SYS_listxattr = 194; +pub const SYS_llistxattr = 195; +pub const SYS_flistxattr = 196; +pub const SYS_removexattr = 197; +pub const SYS_lremovexattr = 198; +pub const SYS_fremovexattr = 199; +pub const SYS_tkill = 200; +pub const SYS_time = 201; +pub const SYS_futex = 202; +pub const SYS_sched_setaffinity = 203; +pub const SYS_sched_getaffinity = 204; +pub const SYS_set_thread_area = 205; +pub const SYS_io_setup = 206; +pub const SYS_io_destroy = 207; +pub const SYS_io_getevents = 208; +pub const SYS_io_submit = 209; +pub const SYS_io_cancel = 210; +pub const SYS_get_thread_area = 211; +pub const SYS_lookup_dcookie = 212; +pub const SYS_epoll_create = 213; +pub const SYS_epoll_ctl_old = 214; +pub const SYS_epoll_wait_old = 215; +pub const SYS_remap_file_pages = 216; +pub const SYS_getdents64 = 217; +pub const SYS_set_tid_address = 218; +pub const SYS_restart_syscall = 219; +pub const SYS_semtimedop = 220; +pub const SYS_fadvise64 = 221; +pub const SYS_timer_create = 222; +pub const SYS_timer_settime = 223; +pub const SYS_timer_gettime = 224; +pub const SYS_timer_getoverrun = 225; +pub const SYS_timer_delete = 226; +pub const SYS_clock_settime = 227; +pub const SYS_clock_gettime = 228; +pub const SYS_clock_getres = 229; +pub const SYS_clock_nanosleep = 230; +pub const SYS_exit_group = 231; +pub const SYS_epoll_wait = 232; +pub const SYS_epoll_ctl = 233; +pub const SYS_tgkill = 234; +pub const SYS_utimes = 235; +pub const SYS_vserver = 236; +pub const SYS_mbind = 237; +pub const SYS_set_mempolicy = 238; +pub const SYS_get_mempolicy = 239; +pub const SYS_mq_open = 240; +pub const SYS_mq_unlink = 241; +pub const SYS_mq_timedsend = 242; +pub const SYS_mq_timedreceive = 243; +pub const SYS_mq_notify = 244; +pub const SYS_mq_getsetattr = 245; +pub const SYS_kexec_load = 246; +pub const SYS_waitid = 247; +pub const SYS_add_key = 248; +pub const SYS_request_key = 249; +pub const SYS_keyctl = 250; +pub const SYS_ioprio_set = 251; +pub const SYS_ioprio_get = 252; +pub const SYS_inotify_init = 253; +pub const SYS_inotify_add_watch = 254; +pub const SYS_inotify_rm_watch = 255; +pub const SYS_migrate_pages = 256; +pub const SYS_openat = 257; +pub const SYS_mkdirat = 258; +pub const SYS_mknodat = 259; +pub const SYS_fchownat = 260; +pub const SYS_futimesat = 261; +pub const SYS_newfstatat = 262; +pub const SYS_fstatat = 262; +pub const SYS_unlinkat = 263; +pub const SYS_renameat = 264; +pub const SYS_linkat = 265; +pub const SYS_symlinkat = 266; +pub const SYS_readlinkat = 267; +pub const SYS_fchmodat = 268; +pub const SYS_faccessat = 269; +pub const SYS_pselect6 = 270; +pub const SYS_ppoll = 271; +pub const SYS_unshare = 272; +pub const SYS_set_robust_list = 273; +pub const SYS_get_robust_list = 274; +pub const SYS_splice = 275; +pub const SYS_tee = 276; +pub const SYS_sync_file_range = 277; +pub const SYS_vmsplice = 278; +pub const SYS_move_pages = 279; +pub const SYS_utimensat = 280; +pub const SYS_epoll_pwait = 281; +pub const SYS_signalfd = 282; +pub const SYS_timerfd_create = 283; +pub const SYS_eventfd = 284; +pub const SYS_fallocate = 285; +pub const SYS_timerfd_settime = 286; +pub const SYS_timerfd_gettime = 287; +pub const SYS_accept4 = 288; +pub const SYS_signalfd4 = 289; +pub const SYS_eventfd2 = 290; +pub const SYS_epoll_create1 = 291; +pub const SYS_dup3 = 292; +pub const SYS_pipe2 = 293; +pub const SYS_inotify_init1 = 294; +pub const SYS_preadv = 295; +pub const SYS_pwritev = 296; +pub const SYS_rt_tgsigqueueinfo = 297; +pub const SYS_perf_event_open = 298; +pub const SYS_recvmmsg = 299; +pub const SYS_fanotify_init = 300; +pub const SYS_fanotify_mark = 301; +pub const SYS_prlimit64 = 302; +pub const SYS_name_to_handle_at = 303; +pub const SYS_open_by_handle_at = 304; +pub const SYS_clock_adjtime = 305; +pub const SYS_syncfs = 306; +pub const SYS_sendmmsg = 307; +pub const SYS_setns = 308; +pub const SYS_getcpu = 309; +pub const SYS_process_vm_readv = 310; +pub const SYS_process_vm_writev = 311; +pub const SYS_kcmp = 312; +pub const SYS_finit_module = 313; +pub const SYS_sched_setattr = 314; +pub const SYS_sched_getattr = 315; +pub const SYS_renameat2 = 316; +pub const SYS_seccomp = 317; +pub const SYS_getrandom = 318; +pub const SYS_memfd_create = 319; +pub const SYS_kexec_file_load = 320; +pub const SYS_bpf = 321; +pub const SYS_execveat = 322; +pub const SYS_userfaultfd = 323; +pub const SYS_membarrier = 324; +pub const SYS_mlock2 = 325; +pub const SYS_copy_file_range = 326; +pub const SYS_preadv2 = 327; +pub const SYS_pwritev2 = 328; +pub const SYS_pkey_mprotect = 329; +pub const SYS_pkey_alloc = 330; +pub const SYS_pkey_free = 331; +pub const SYS_statx = 332; +pub const SYS_io_pgetevents = 333; +pub const SYS_rseq = 334; +pub const SYS_pidfd_send_signal = 424; +pub const SYS_io_uring_setup = 425; +pub const SYS_io_uring_enter = 426; +pub const SYS_io_uring_register = 427; +pub const SYS_open_tree = 428; +pub const SYS_move_mount = 429; +pub const SYS_fsopen = 430; +pub const SYS_fsconfig = 431; +pub const SYS_fsmount = 432; +pub const SYS_fspick = 433; +pub const SYS_pidfd_open = 434; +pub const SYS_clone3 = 435; + +pub const O_CREAT = 0o100; +pub const O_EXCL = 0o200; +pub const O_NOCTTY = 0o400; +pub const O_TRUNC = 0o1000; +pub const O_APPEND = 0o2000; +pub const O_NONBLOCK = 0o4000; +pub const O_DSYNC = 0o10000; +pub const O_SYNC = 0o4010000; +pub const O_RSYNC = 0o4010000; +pub const O_DIRECTORY = 0o200000; +pub const O_NOFOLLOW = 0o400000; +pub const O_CLOEXEC = 0o2000000; + +pub const O_ASYNC = 0o20000; +pub const O_DIRECT = 0o40000; +pub const O_LARGEFILE = 0; +pub const O_NOATIME = 0o1000000; +pub const O_PATH = 0o10000000; +pub const O_TMPFILE = 0o20200000; +pub const O_NDELAY = O_NONBLOCK; + +pub const F_DUPFD = 0; +pub const F_GETFD = 1; +pub const F_SETFD = 2; +pub const F_GETFL = 3; +pub const F_SETFL = 4; + +pub const F_SETOWN = 8; +pub const F_GETOWN = 9; +pub const F_SETSIG = 10; +pub const F_GETSIG = 11; + +pub const F_GETLK = 5; +pub const F_SETLK = 6; +pub const F_SETLKW = 7; + +pub const F_SETOWN_EX = 15; +pub const F_GETOWN_EX = 16; + +pub const F_GETOWNER_UIDS = 17; + +/// only give out 32bit addresses +pub const MAP_32BIT = 0x40; + +/// stack-like segment +pub const MAP_GROWSDOWN = 0x0100; + +/// ETXTBSY +pub const MAP_DENYWRITE = 0x0800; + +/// mark it as an executable +pub const MAP_EXECUTABLE = 0x1000; + +/// pages are locked +pub const MAP_LOCKED = 0x2000; + +/// don't check for reservations +pub const MAP_NORESERVE = 0x4000; + +pub const VDSO_USEFUL = true; +pub const VDSO_CGT_SYM = "__vdso_clock_gettime"; +pub const VDSO_CGT_VER = "LINUX_2.6"; +pub const VDSO_GETCPU_SYM = "__vdso_getcpu"; +pub const VDSO_GETCPU_VER = "LINUX_2.6"; + +pub const ARCH_SET_GS = 0x1001; +pub const ARCH_SET_FS = 0x1002; +pub const ARCH_GET_FS = 0x1003; +pub const ARCH_GET_GS = 0x1004; + +pub const REG_R8 = 0; +pub const REG_R9 = 1; +pub const REG_R10 = 2; +pub const REG_R11 = 3; +pub const REG_R12 = 4; +pub const REG_R13 = 5; +pub const REG_R14 = 6; +pub const REG_R15 = 7; +pub const REG_RDI = 8; +pub const REG_RSI = 9; +pub const REG_RBP = 10; +pub const REG_RBX = 11; +pub const REG_RDX = 12; +pub const REG_RAX = 13; +pub const REG_RCX = 14; +pub const REG_RSP = 15; +pub const REG_RIP = 16; +pub const REG_EFL = 17; +pub const REG_CSGSFS = 18; +pub const REG_ERR = 19; +pub const REG_TRAPNO = 20; +pub const REG_OLDMASK = 21; +pub const REG_CR2 = 22; + +pub const msghdr = extern struct { + msg_name: ?*sockaddr, + msg_namelen: socklen_t, + msg_iov: [*]iovec, + msg_iovlen: i32, + __pad1: i32, + msg_control: ?*c_void, + msg_controllen: socklen_t, + __pad2: socklen_t, + msg_flags: i32, +}; + +pub const msghdr_const = extern struct { + msg_name: ?*const sockaddr, + msg_namelen: socklen_t, + msg_iov: [*]iovec_const, + msg_iovlen: i32, + __pad1: i32, + msg_control: ?*c_void, + msg_controllen: socklen_t, + __pad2: socklen_t, + msg_flags: i32, +}; + +pub const off_t = i64; + +/// Renamed to Stat to not conflict with the stat function. +/// atime, mtime, and ctime have functions to return `timespec`, +/// because although this is a POSIX API, the layout and names of +/// the structs are inconsistent across operating systems, and +/// in C, macros are used to hide the differences. Here we use +/// methods to accomplish this. +pub const Stat = extern struct { + dev: u64, + ino: u64, + nlink: usize, + + mode: u32, + uid: u32, + gid: u32, + __pad0: u32, + rdev: u64, + size: off_t, + blksize: isize, + blocks: i64, + + atim: timespec, + mtim: timespec, + ctim: timespec, + __unused: [3]isize, + + pub fn atime(self: Stat) timespec { + return self.atim; + } + + pub fn mtime(self: Stat) timespec { + return self.mtim; + } + + pub fn ctime(self: Stat) timespec { + return self.ctim; + } +}; + +pub const timespec = extern struct { + tv_sec: isize, + tv_nsec: isize, +}; + +pub const timeval = extern struct { + tv_sec: isize, + tv_usec: isize, +}; + +pub const timezone = extern struct { + tz_minuteswest: i32, + tz_dsttime: i32, +}; + +pub const Elf_Symndx = u32; + +pub const sigval = extern union { + int: i32, + ptr: *c_void, +}; + +pub const siginfo_t = extern struct { + signo: i32, + errno: i32, + code: i32, + fields: extern union { + pad: [128 - 2 * @sizeOf(c_int) - @sizeOf(c_long)]u8, + common: extern struct { + first: extern union { + piduid: extern struct { + pid: pid_t, + uid: uid_t, + }, + timer: extern struct { + timerid: i32, + overrun: i32, + }, + }, + second: extern union { + value: sigval, + sigchld: extern struct { + status: i32, + utime: clock_t, + stime: clock_t, + }, + }, + }, + sigfault: extern struct { + addr: *c_void, + addr_lsb: i16, + first: extern union { + addr_bnd: extern struct { + lower: *c_void, + upper: *c_void, + }, + pkey: u32, + }, + }, + sigpoll: extern struct { + band: isize, + fd: i32, + }, + sigsys: extern struct { + call_addr: *c_void, + syscall: i32, + arch: u32, + }, + }, +}; + +pub const greg_t = usize; +pub const gregset_t = [23]greg_t; +pub const fpstate = extern struct { + cwd: u16, + swd: u16, + ftw: u16, + fop: u16, + rip: usize, + rdp: usize, + mxcsr: u32, + mxcr_mask: u32, + st: [8]extern struct { + significand: [4]u16, + exponent: u16, + padding: [3]u16 = undefined, + }, + xmm: [16]extern struct { + element: [4]u32, + }, + padding: [24]u32 = undefined, +}; +pub const fpregset_t = *fpstate; +pub const sigcontext = extern struct { + r8: usize, + r9: usize, + r10: usize, + r11: usize, + r12: usize, + r13: usize, + r14: usize, + r15: usize, + + rdi: usize, + rsi: usize, + rbp: usize, + rbx: usize, + rdx: usize, + rax: usize, + rcx: usize, + rsp: usize, + rip: usize, + eflags: usize, + + cs: u16, + gs: u16, + fs: u16, + pad0: u16 = undefined, + + err: usize, + trapno: usize, + oldmask: usize, + cr2: usize, + + fpstate: *fpstate, + reserved1: [8]usize = undefined, +}; + +pub const mcontext_t = extern struct { + gregs: gregset_t, + fpregs: fpregset_t, + reserved1: [8]usize = undefined, +}; + +pub const ucontext_t = extern struct { + flags: usize, + link: *ucontext_t, + stack: stack_t, + mcontext: mcontext_t, + sigmask: sigset_t, + fpregs_mem: [64]usize, +}; diff --git a/lib/std/os/bits/netbsd.zig b/lib/std/os/bits/netbsd.zig new file mode 100644 index 0000000000..14c35faf6c --- /dev/null +++ b/lib/std/os/bits/netbsd.zig @@ -0,0 +1,825 @@ +const std = @import("../../std.zig"); +const maxInt = std.math.maxInt; + +pub const fd_t = c_int; +pub const pid_t = c_int; + +/// Renamed from `kevent` to `Kevent` to avoid conflict with function name. +pub const Kevent = extern struct { + ident: usize, + filter: i32, + flags: u32, + fflags: u32, + data: i64, + udata: usize, +}; + +pub const pthread_attr_t = extern struct { + pta_magic: u32, + pta_flags: c_int, + pta_private: *c_void, +}; + +pub const dl_phdr_info = extern struct { + dlpi_addr: usize, + dlpi_name: ?[*]const u8, + dlpi_phdr: [*]std.elf.Phdr, + dlpi_phnum: u16, +}; + +pub const msghdr = extern struct { + /// optional address + msg_name: ?*sockaddr, + + /// size of address + msg_namelen: socklen_t, + + /// scatter/gather array + msg_iov: [*]iovec, + + /// # elements in msg_iov + msg_iovlen: i32, + + /// ancillary data + msg_control: ?*c_void, + + /// ancillary data buffer len + msg_controllen: socklen_t, + + /// flags on received message + msg_flags: i32, +}; + +pub const msghdr_const = extern struct { + /// optional address + msg_name: ?*const sockaddr, + + /// size of address + msg_namelen: socklen_t, + + /// scatter/gather array + msg_iov: [*]iovec_const, + + /// # elements in msg_iov + msg_iovlen: i32, + + /// ancillary data + msg_control: ?*c_void, + + /// ancillary data buffer len + msg_controllen: socklen_t, + + /// flags on received message + msg_flags: i32, +}; + +pub const off_t = i64; + +/// Renamed to Stat to not conflict with the stat function. +/// atime, mtime, and ctime have functions to return `timespec`, +/// because although this is a POSIX API, the layout and names of +/// the structs are inconsistent across operating systems, and +/// in C, macros are used to hide the differences. Here we use +/// methods to accomplish this. +pub const Stat = extern struct { + dev: u64, + mode: u32, + ino: u64, + nlink: usize, + + uid: u32, + gid: u32, + rdev: u64, + + atim: timespec, + mtim: timespec, + ctim: timespec, + birthtim: timespec, + + size: off_t, + blocks: i64, + blksize: isize, + flags: u32, + gen: u32, + __spare: [2]u32, + + pub fn atime(self: Stat) timespec { + return self.atim; + } + + pub fn mtime(self: Stat) timespec { + return self.mtim; + } + + pub fn ctime(self: Stat) timespec { + return self.ctim; + } +}; + +pub const timespec = extern struct { + tv_sec: i64, + tv_nsec: isize, +}; + +pub const dirent = extern struct { + d_fileno: u64, + d_reclen: u16, + d_namlen: u16, + d_type: u8, + d_off: i64, + d_name: [512]u8, +}; + +pub const in_port_t = u16; +pub const sa_family_t = u8; + +pub const sockaddr = extern union { + in: sockaddr_in, + in6: sockaddr_in6, +}; + +pub const sockaddr_in = extern struct { + len: u8, + family: sa_family_t, + port: in_port_t, + addr: u32, + zero: [8]u8, +}; + +pub const sockaddr_in6 = extern struct { + len: u8, + family: sa_family_t, + port: in_port_t, + flowinfo: u32, + addr: [16]u8, + scope_id: u32, +}; + +pub const CTL_KERN = 1; +pub const CTL_DEBUG = 5; + +pub const KERN_PROC_ARGS = 48; // struct: process argv/env +pub const KERN_PROC_PATHNAME = 5; // path to executable + +pub const PATH_MAX = 1024; + +pub const STDIN_FILENO = 0; +pub const STDOUT_FILENO = 1; +pub const STDERR_FILENO = 2; + +pub const PROT_NONE = 0; +pub const PROT_READ = 1; +pub const PROT_WRITE = 2; +pub const PROT_EXEC = 4; + +pub const CLOCK_REALTIME = 0; +pub const CLOCK_VIRTUAL = 1; +pub const CLOCK_PROF = 2; +pub const CLOCK_MONOTONIC = 3; +pub const CLOCK_THREAD_CPUTIME_ID = 0x20000000; +pub const CLOCK_PROCESS_CPUTIME_ID = 0x40000000; + +pub const MAP_FAILED = @intToPtr(*c_void, maxInt(usize)); +pub const MAP_SHARED = 0x0001; +pub const MAP_PRIVATE = 0x0002; +pub const MAP_REMAPDUP = 0x0004; +pub const MAP_FIXED = 0x0010; +pub const MAP_RENAME = 0x0020; +pub const MAP_NORESERVE = 0x0040; +pub const MAP_INHERIT = 0x0080; +pub const MAP_HASSEMAPHORE = 0x0200; +pub const MAP_TRYFIXED = 0x0400; +pub const MAP_WIRED = 0x0800; + +pub const MAP_FILE = 0x0000; +pub const MAP_NOSYNC = 0x0800; +pub const MAP_ANON = 0x1000; +pub const MAP_ANONYMOUS = MAP_ANON; +pub const MAP_STACK = 0x2000; + +pub const WNOHANG = 0x00000001; +pub const WUNTRACED = 0x00000002; +pub const WSTOPPED = WUNTRACED; +pub const WCONTINUED = 0x00000010; +pub const WNOWAIT = 0x00010000; +pub const WEXITED = 0x00000020; +pub const WTRAPPED = 0x00000040; + +pub const SA_ONSTACK = 0x0001; +pub const SA_RESTART = 0x0002; +pub const SA_RESETHAND = 0x0004; +pub const SA_NOCLDSTOP = 0x0008; +pub const SA_NODEFER = 0x0010; +pub const SA_NOCLDWAIT = 0x0020; +pub const SA_SIGINFO = 0x0040; + +pub const SIGHUP = 1; +pub const SIGINT = 2; +pub const SIGQUIT = 3; +pub const SIGILL = 4; +pub const SIGTRAP = 5; +pub const SIGABRT = 6; +pub const SIGIOT = SIGABRT; +pub const SIGEMT = 7; +pub const SIGFPE = 8; +pub const SIGKILL = 9; +pub const SIGBUS = 10; +pub const SIGSEGV = 11; +pub const SIGSYS = 12; +pub const SIGPIPE = 13; +pub const SIGALRM = 14; +pub const SIGTERM = 15; +pub const SIGURG = 16; +pub const SIGSTOP = 17; +pub const SIGTSTP = 18; +pub const SIGCONT = 19; +pub const SIGCHLD = 20; +pub const SIGTTIN = 21; +pub const SIGTTOU = 22; +pub const SIGIO = 23; +pub const SIGXCPU = 24; +pub const SIGXFSZ = 25; +pub const SIGVTALRM = 26; +pub const SIGPROF = 27; +pub const SIGWINCH = 28; +pub const SIGINFO = 29; +pub const SIGUSR1 = 30; +pub const SIGUSR2 = 31; +pub const SIGPWR = 32; + +pub const SIGRTMIN = 33; +pub const SIGRTMAX = 63; + +// access function +pub const F_OK = 0; // test for existence of file +pub const X_OK = 1; // test for execute or search permission +pub const W_OK = 2; // test for write permission +pub const R_OK = 4; // test for read permission + +pub const O_RDONLY = 0x0000; +pub const O_WRONLY = 0x0001; +pub const O_RDWR = 0x0002; +pub const O_ACCMODE = 0x0003; + +pub const O_CREAT = 0x0200; +pub const O_EXCL = 0x0800; +pub const O_NOCTTY = 0x8000; +pub const O_TRUNC = 0x0400; +pub const O_APPEND = 0x0008; +pub const O_NONBLOCK = 0x0004; +pub const O_DSYNC = 0x00010000; +pub const O_SYNC = 0x0080; +pub const O_RSYNC = 0x00020000; +pub const O_DIRECTORY = 0x00080000; +pub const O_NOFOLLOW = 0x00000100; +pub const O_CLOEXEC = 0x00400000; + +pub const O_ASYNC = 0x0040; +pub const O_DIRECT = 0x00080000; +pub const O_LARGEFILE = 0; +pub const O_NOATIME = 0; +pub const O_PATH = 0; +pub const O_TMPFILE = 0; +pub const O_NDELAY = O_NONBLOCK; + +pub const F_DUPFD = 0; +pub const F_GETFD = 1; +pub const F_SETFD = 2; +pub const F_GETFL = 3; +pub const F_SETFL = 4; + +pub const F_GETOWN = 5; +pub const F_SETOWN = 6; + +pub const F_GETLK = 7; +pub const F_SETLK = 8; +pub const F_SETLKW = 9; + +pub const SEEK_SET = 0; +pub const SEEK_CUR = 1; +pub const SEEK_END = 2; + +pub const SIG_BLOCK = 1; +pub const SIG_UNBLOCK = 2; +pub const SIG_SETMASK = 3; + +pub const SOCK_STREAM = 1; +pub const SOCK_DGRAM = 2; +pub const SOCK_RAW = 3; +pub const SOCK_RDM = 4; +pub const SOCK_SEQPACKET = 5; + +pub const SOCK_CLOEXEC = 0x10000000; +pub const SOCK_NONBLOCK = 0x20000000; + +pub const PROTO_ip = 0; +pub const PROTO_icmp = 1; +pub const PROTO_igmp = 2; +pub const PROTO_ggp = 3; +pub const PROTO_ipencap = 4; +pub const PROTO_tcp = 6; +pub const PROTO_egp = 8; +pub const PROTO_pup = 12; +pub const PROTO_udp = 17; +pub const PROTO_xns_idp = 22; +pub const PROTO_iso_tp4 = 29; +pub const PROTO_ipv6 = 41; +pub const PROTO_ipv6_route = 43; +pub const PROTO_ipv6_frag = 44; +pub const PROTO_rsvp = 46; +pub const PROTO_gre = 47; +pub const PROTO_esp = 50; +pub const PROTO_ah = 51; +pub const PROTO_ipv6_icmp = 58; +pub const PROTO_ipv6_nonxt = 59; +pub const PROTO_ipv6_opts = 60; +pub const PROTO_encap = 98; +pub const PROTO_pim = 103; +pub const PROTO_raw = 255; + +pub const PF_UNSPEC = 0; +pub const PF_LOCAL = 1; +pub const PF_UNIX = PF_LOCAL; +pub const PF_FILE = PF_LOCAL; +pub const PF_INET = 2; +pub const PF_APPLETALK = 16; +pub const PF_INET6 = 24; +pub const PF_DECnet = 12; +pub const PF_KEY = 29; +pub const PF_ROUTE = 34; +pub const PF_SNA = 11; +pub const PF_MPLS = 33; +pub const PF_CAN = 35; +pub const PF_BLUETOOTH = 31; +pub const PF_ISDN = 26; +pub const PF_MAX = 37; + +pub const AF_UNSPEC = PF_UNSPEC; +pub const AF_LOCAL = PF_LOCAL; +pub const AF_UNIX = AF_LOCAL; +pub const AF_FILE = AF_LOCAL; +pub const AF_INET = PF_INET; +pub const AF_APPLETALK = PF_APPLETALK; +pub const AF_INET6 = PF_INET6; +pub const AF_KEY = PF_KEY; +pub const AF_ROUTE = PF_ROUTE; +pub const AF_SNA = PF_SNA; +pub const AF_MPLS = PF_MPLS; +pub const AF_CAN = PF_CAN; +pub const AF_BLUETOOTH = PF_BLUETOOTH; +pub const AF_ISDN = PF_ISDN; +pub const AF_MAX = PF_MAX; + +pub const DT_UNKNOWN = 0; +pub const DT_FIFO = 1; +pub const DT_CHR = 2; +pub const DT_DIR = 4; +pub const DT_BLK = 6; +pub const DT_REG = 8; +pub const DT_LNK = 10; +pub const DT_SOCK = 12; +pub const DT_WHT = 14; + +/// add event to kq (implies enable) +pub const EV_ADD = 0x0001; + +/// delete event from kq +pub const EV_DELETE = 0x0002; + +/// enable event +pub const EV_ENABLE = 0x0004; + +/// disable event (not reported) +pub const EV_DISABLE = 0x0008; + +/// only report one occurrence +pub const EV_ONESHOT = 0x0010; + +/// clear event state after reporting +pub const EV_CLEAR = 0x0020; + +/// force immediate event output +/// ... with or without EV_ERROR +/// ... use KEVENT_FLAG_ERROR_EVENTS +/// on syscalls supporting flags +pub const EV_RECEIPT = 0x0040; + +/// disable event after reporting +pub const EV_DISPATCH = 0x0080; + +pub const EVFILT_READ = 0; +pub const EVFILT_WRITE = 1; + +/// attached to aio requests +pub const EVFILT_AIO = 2; + +/// attached to vnodes +pub const EVFILT_VNODE = 3; + +/// attached to struct proc +pub const EVFILT_PROC = 4; + +/// attached to struct proc +pub const EVFILT_SIGNAL = 5; + +/// timers +pub const EVFILT_TIMER = 6; + +/// Filesystem events +pub const EVFILT_FS = 7; + +/// On input, NOTE_TRIGGER causes the event to be triggered for output. +pub const NOTE_TRIGGER = 0x08000000; + +/// low water mark +pub const NOTE_LOWAT = 0x00000001; + +/// vnode was removed +pub const NOTE_DELETE = 0x00000001; + +/// data contents changed +pub const NOTE_WRITE = 0x00000002; + +/// size increased +pub const NOTE_EXTEND = 0x00000004; + +/// attributes changed +pub const NOTE_ATTRIB = 0x00000008; + +/// link count changed +pub const NOTE_LINK = 0x00000010; + +/// vnode was renamed +pub const NOTE_RENAME = 0x00000020; + +/// vnode access was revoked +pub const NOTE_REVOKE = 0x00000040; + +/// process exited +pub const NOTE_EXIT = 0x80000000; + +/// process forked +pub const NOTE_FORK = 0x40000000; + +/// process exec'd +pub const NOTE_EXEC = 0x20000000; + +/// mask for signal & exit status +pub const NOTE_PDATAMASK = 0x000fffff; +pub const NOTE_PCTRLMASK = 0xf0000000; + +pub const TIOCCBRK = 0x2000747a; +pub const TIOCCDTR = 0x20007478; +pub const TIOCCONS = 0x80047462; +pub const TIOCDCDTIMESTAMP = 0x40107458; +pub const TIOCDRAIN = 0x2000745e; +pub const TIOCEXCL = 0x2000740d; +pub const TIOCEXT = 0x80047460; +pub const TIOCFLAG_CDTRCTS = 0x10; +pub const TIOCFLAG_CLOCAL = 0x2; +pub const TIOCFLAG_CRTSCTS = 0x4; +pub const TIOCFLAG_MDMBUF = 0x8; +pub const TIOCFLAG_SOFTCAR = 0x1; +pub const TIOCFLUSH = 0x80047410; +pub const TIOCGETA = 0x402c7413; +pub const TIOCGETD = 0x4004741a; +pub const TIOCGFLAGS = 0x4004745d; +pub const TIOCGLINED = 0x40207442; +pub const TIOCGPGRP = 0x40047477; +pub const TIOCGQSIZE = 0x40047481; +pub const TIOCGRANTPT = 0x20007447; +pub const TIOCGSID = 0x40047463; +pub const TIOCGSIZE = 0x40087468; +pub const TIOCGWINSZ = 0x40087468; +pub const TIOCMBIC = 0x8004746b; +pub const TIOCMBIS = 0x8004746c; +pub const TIOCMGET = 0x4004746a; +pub const TIOCMSET = 0x8004746d; +pub const TIOCM_CAR = 0x40; +pub const TIOCM_CD = 0x40; +pub const TIOCM_CTS = 0x20; +pub const TIOCM_DSR = 0x100; +pub const TIOCM_DTR = 0x2; +pub const TIOCM_LE = 0x1; +pub const TIOCM_RI = 0x80; +pub const TIOCM_RNG = 0x80; +pub const TIOCM_RTS = 0x4; +pub const TIOCM_SR = 0x10; +pub const TIOCM_ST = 0x8; +pub const TIOCNOTTY = 0x20007471; +pub const TIOCNXCL = 0x2000740e; +pub const TIOCOUTQ = 0x40047473; +pub const TIOCPKT = 0x80047470; +pub const TIOCPKT_DATA = 0x0; +pub const TIOCPKT_DOSTOP = 0x20; +pub const TIOCPKT_FLUSHREAD = 0x1; +pub const TIOCPKT_FLUSHWRITE = 0x2; +pub const TIOCPKT_IOCTL = 0x40; +pub const TIOCPKT_NOSTOP = 0x10; +pub const TIOCPKT_START = 0x8; +pub const TIOCPKT_STOP = 0x4; +pub const TIOCPTMGET = 0x40287446; +pub const TIOCPTSNAME = 0x40287448; +pub const TIOCRCVFRAME = 0x80087445; +pub const TIOCREMOTE = 0x80047469; +pub const TIOCSBRK = 0x2000747b; +pub const TIOCSCTTY = 0x20007461; +pub const TIOCSDTR = 0x20007479; +pub const TIOCSETA = 0x802c7414; +pub const TIOCSETAF = 0x802c7416; +pub const TIOCSETAW = 0x802c7415; +pub const TIOCSETD = 0x8004741b; +pub const TIOCSFLAGS = 0x8004745c; +pub const TIOCSIG = 0x2000745f; +pub const TIOCSLINED = 0x80207443; +pub const TIOCSPGRP = 0x80047476; +pub const TIOCSQSIZE = 0x80047480; +pub const TIOCSSIZE = 0x80087467; +pub const TIOCSTART = 0x2000746e; +pub const TIOCSTAT = 0x80047465; +pub const TIOCSTI = 0x80017472; +pub const TIOCSTOP = 0x2000746f; +pub const TIOCSWINSZ = 0x80087467; +pub const TIOCUCNTL = 0x80047466; +pub const TIOCXMTFRAME = 0x80087444; + +pub fn WEXITSTATUS(s: u32) u32 { + return (s >> 8) & 0xff; +} +pub fn WTERMSIG(s: u32) u32 { + return s & 0x7f; +} +pub fn WSTOPSIG(s: u32) u32 { + return WEXITSTATUS(s); +} +pub fn WIFEXITED(s: u32) bool { + return WTERMSIG(s) == 0; +} + +pub fn WIFCONTINUED(s: u32) bool { + return ((s & 0x7f) == 0xffff); +} + +pub fn WIFSTOPPED(s: u32) bool { + return ((s & 0x7f != 0x7f) and !WIFCONTINUED(s)); +} + +pub fn WIFSIGNALED(s: u32) bool { + return !WIFSTOPPED(s) and !WIFCONTINUED(s) and !WIFEXITED(s); +} + +pub const winsize = extern struct { + ws_row: u16, + ws_col: u16, + ws_xpixel: u16, + ws_ypixel: u16, +}; + +const NSIG = 32; + +pub const SIG_ERR = @intToPtr(extern fn (i32) void, maxInt(usize)); +pub const SIG_DFL = @intToPtr(extern fn (i32) void, 0); +pub const SIG_IGN = @intToPtr(extern fn (i32) void, 1); + +/// Renamed from `sigaction` to `Sigaction` to avoid conflict with the syscall. +pub const Sigaction = extern struct { + /// signal handler + __sigaction_u: extern union { + __sa_handler: extern fn (i32) void, + __sa_sigaction: extern fn (i32, *__siginfo, usize) void, + }, + + /// see signal options + sa_flags: u32, + + /// signal mask to apply + sa_mask: sigset_t, +}; + +pub const _SIG_WORDS = 4; +pub const _SIG_MAXSIG = 128; + +pub inline fn _SIG_IDX(sig: usize) usize { + return sig - 1; +} +pub inline fn _SIG_WORD(sig: usize) usize { + return_SIG_IDX(sig) >> 5; +} +pub inline fn _SIG_BIT(sig: usize) usize { + return 1 << (_SIG_IDX(sig) & 31); +} +pub inline fn _SIG_VALID(sig: usize) usize { + return sig <= _SIG_MAXSIG and sig > 0; +} + +pub const sigset_t = extern struct { + __bits: [_SIG_WORDS]u32, +}; + +pub const EPERM = 1; // Operation not permitted +pub const ENOENT = 2; // No such file or directory +pub const ESRCH = 3; // No such process +pub const EINTR = 4; // Interrupted system call +pub const EIO = 5; // Input/output error +pub const ENXIO = 6; // Device not configured +pub const E2BIG = 7; // Argument list too long +pub const ENOEXEC = 8; // Exec format error +pub const EBADF = 9; // Bad file descriptor +pub const ECHILD = 10; // No child processes +pub const EDEADLK = 11; // Resource deadlock avoided +// 11 was EAGAIN +pub const ENOMEM = 12; // Cannot allocate memory +pub const EACCES = 13; // Permission denied +pub const EFAULT = 14; // Bad address +pub const ENOTBLK = 15; // Block device required +pub const EBUSY = 16; // Device busy +pub const EEXIST = 17; // File exists +pub const EXDEV = 18; // Cross-device link +pub const ENODEV = 19; // Operation not supported by device +pub const ENOTDIR = 20; // Not a directory +pub const EISDIR = 21; // Is a directory +pub const EINVAL = 22; // Invalid argument +pub const ENFILE = 23; // Too many open files in system +pub const EMFILE = 24; // Too many open files +pub const ENOTTY = 25; // Inappropriate ioctl for device +pub const ETXTBSY = 26; // Text file busy +pub const EFBIG = 27; // File too large +pub const ENOSPC = 28; // No space left on device +pub const ESPIPE = 29; // Illegal seek +pub const EROFS = 30; // Read-only file system +pub const EMLINK = 31; // Too many links +pub const EPIPE = 32; // Broken pipe + +// math software +pub const EDOM = 33; // Numerical argument out of domain +pub const ERANGE = 34; // Result too large or too small + +// non-blocking and interrupt i/o +pub const EAGAIN = 35; // Resource temporarily unavailable +pub const EWOULDBLOCK = EAGAIN; // Operation would block +pub const EINPROGRESS = 36; // Operation now in progress +pub const EALREADY = 37; // Operation already in progress + +// ipc/network software -- argument errors +pub const ENOTSOCK = 38; // Socket operation on non-socket +pub const EDESTADDRREQ = 39; // Destination address required +pub const EMSGSIZE = 40; // Message too long +pub const EPROTOTYPE = 41; // Protocol wrong type for socket +pub const ENOPROTOOPT = 42; // Protocol option not available +pub const EPROTONOSUPPORT = 43; // Protocol not supported +pub const ESOCKTNOSUPPORT = 44; // Socket type not supported +pub const EOPNOTSUPP = 45; // Operation not supported +pub const EPFNOSUPPORT = 46; // Protocol family not supported +pub const EAFNOSUPPORT = 47; // Address family not supported by protocol family +pub const EADDRINUSE = 48; // Address already in use +pub const EADDRNOTAVAIL = 49; // Can't assign requested address + +// ipc/network software -- operational errors +pub const ENETDOWN = 50; // Network is down +pub const ENETUNREACH = 51; // Network is unreachable +pub const ENETRESET = 52; // Network dropped connection on reset +pub const ECONNABORTED = 53; // Software caused connection abort +pub const ECONNRESET = 54; // Connection reset by peer +pub const ENOBUFS = 55; // No buffer space available +pub const EISCONN = 56; // Socket is already connected +pub const ENOTCONN = 57; // Socket is not connected +pub const ESHUTDOWN = 58; // Can't send after socket shutdown +pub const ETOOMANYREFS = 59; // Too many references: can't splice +pub const ETIMEDOUT = 60; // Operation timed out +pub const ECONNREFUSED = 61; // Connection refused + +pub const ELOOP = 62; // Too many levels of symbolic links +pub const ENAMETOOLONG = 63; // File name too long + +// should be rearranged +pub const EHOSTDOWN = 64; // Host is down +pub const EHOSTUNREACH = 65; // No route to host +pub const ENOTEMPTY = 66; // Directory not empty + +// quotas & mush +pub const EPROCLIM = 67; // Too many processes +pub const EUSERS = 68; // Too many users +pub const EDQUOT = 69; // Disc quota exceeded + +// Network File System +pub const ESTALE = 70; // Stale NFS file handle +pub const EREMOTE = 71; // Too many levels of remote in path +pub const EBADRPC = 72; // RPC struct is bad +pub const ERPCMISMATCH = 73; // RPC version wrong +pub const EPROGUNAVAIL = 74; // RPC prog. not avail +pub const EPROGMISMATCH = 75; // Program version wrong +pub const EPROCUNAVAIL = 76; // Bad procedure for program + +pub const ENOLCK = 77; // No locks available +pub const ENOSYS = 78; // Function not implemented + +pub const EFTYPE = 79; // Inappropriate file type or format +pub const EAUTH = 80; // Authentication error +pub const ENEEDAUTH = 81; // Need authenticator + +// SystemV IPC +pub const EIDRM = 82; // Identifier removed +pub const ENOMSG = 83; // No message of desired type +pub const EOVERFLOW = 84; // Value too large to be stored in data type + +// Wide/multibyte-character handling, ISO/IEC 9899/AMD1:1995 +pub const EILSEQ = 85; // Illegal byte sequence + +// From IEEE Std 1003.1-2001 +// Base, Realtime, Threads or Thread Priority Scheduling option errors +pub const ENOTSUP = 86; // Not supported + +// Realtime option errors +pub const ECANCELED = 87; // Operation canceled + +// Realtime, XSI STREAMS option errors +pub const EBADMSG = 88; // Bad or Corrupt message + +// XSI STREAMS option errors +pub const ENODATA = 89; // No message available +pub const ENOSR = 90; // No STREAM resources +pub const ENOSTR = 91; // Not a STREAM +pub const ETIME = 92; // STREAM ioctl timeout + +// File system extended attribute errors +pub const ENOATTR = 93; // Attribute not found + +// Realtime, XSI STREAMS option errors +pub const EMULTIHOP = 94; // Multihop attempted +pub const ENOLINK = 95; // Link has been severed +pub const EPROTO = 96; // Protocol error + +pub const ELAST = 96; // Must equal largest errno + +pub const MINSIGSTKSZ = 8192; +pub const SIGSTKSZ = MINSIGSTKSZ + 32768; + +pub const SS_ONSTACK = 1; +pub const SS_DISABLE = 4; + +pub const stack_t = extern struct { + ss_sp: [*]u8, + ss_size: isize, + ss_flags: i32, +}; + +pub const S_IFMT = 0o170000; + +pub const S_IFIFO = 0o010000; +pub const S_IFCHR = 0o020000; +pub const S_IFDIR = 0o040000; +pub const S_IFBLK = 0o060000; +pub const S_IFREG = 0o100000; +pub const S_IFLNK = 0o120000; +pub const S_IFSOCK = 0o140000; +pub const S_IFWHT = 0o160000; + +pub const S_ISUID = 0o4000; +pub const S_ISGID = 0o2000; +pub const S_ISVTX = 0o1000; +pub const S_IRWXU = 0o700; +pub const S_IRUSR = 0o400; +pub const S_IWUSR = 0o200; +pub const S_IXUSR = 0o100; +pub const S_IRWXG = 0o070; +pub const S_IRGRP = 0o040; +pub const S_IWGRP = 0o020; +pub const S_IXGRP = 0o010; +pub const S_IRWXO = 0o007; +pub const S_IROTH = 0o004; +pub const S_IWOTH = 0o002; +pub const S_IXOTH = 0o001; + +pub fn S_ISFIFO(m: u32) bool { + return m & S_IFMT == S_IFIFO; +} + +pub fn S_ISCHR(m: u32) bool { + return m & S_IFMT == S_IFCHR; +} + +pub fn S_ISDIR(m: u32) bool { + return m & S_IFMT == S_IFDIR; +} + +pub fn S_ISBLK(m: u32) bool { + return m & S_IFMT == S_IFBLK; +} + +pub fn S_ISREG(m: u32) bool { + return m & S_IFMT == S_IFREG; +} + +pub fn S_ISLNK(m: u32) bool { + return m & S_IFMT == S_IFLNK; +} + +pub fn S_ISSOCK(m: u32) bool { + return m & S_IFMT == S_IFSOCK; +} + +pub fn S_IWHT(m: u32) bool { + return m & S_IFMT == S_IFWHT; +} + +pub const HOST_NAME_MAX = 255; diff --git a/lib/std/os/bits/wasi.zig b/lib/std/os/bits/wasi.zig new file mode 100644 index 0000000000..93d2a82fde --- /dev/null +++ b/lib/std/os/bits/wasi.zig @@ -0,0 +1,307 @@ +pub const STDIN_FILENO = 0; +pub const STDOUT_FILENO = 1; +pub const STDERR_FILENO = 2; + +pub const advice_t = u8; +pub const ADVICE_NORMAL: advice_t = 0; +pub const ADVICE_SEQUENTIAL: advice_t = 1; +pub const ADVICE_RANDOM: advice_t = 2; +pub const ADVICE_WILLNEED: advice_t = 3; +pub const ADVICE_DONTNEED: advice_t = 4; +pub const ADVICE_NOREUSE: advice_t = 5; + +pub const clockid_t = u32; +pub const CLOCK_REALTIME: clockid_t = 0; +pub const CLOCK_MONOTONIC: clockid_t = 1; +pub const CLOCK_PROCESS_CPUTIME_ID: clockid_t = 2; +pub const CLOCK_THREAD_CPUTIME_ID: clockid_t = 3; + +pub const device_t = u64; + +pub const dircookie_t = u64; +pub const DIRCOOKIE_START: dircookie_t = 0; + +pub const dirent_t = extern struct { + d_next: dircookie_t, + d_ino: inode_t, + d_namlen: u32, + d_type: filetype_t, +}; + +pub const errno_t = u16; +pub const ESUCCESS: errno_t = 0; +pub const E2BIG: errno_t = 1; +pub const EACCES: errno_t = 2; +pub const EADDRINUSE: errno_t = 3; +pub const EADDRNOTAVAIL: errno_t = 4; +pub const EAFNOSUPPORT: errno_t = 5; +pub const EAGAIN: errno_t = 6; +pub const EALREADY: errno_t = 7; +pub const EBADF: errno_t = 8; +pub const EBADMSG: errno_t = 9; +pub const EBUSY: errno_t = 10; +pub const ECANCELED: errno_t = 11; +pub const ECHILD: errno_t = 12; +pub const ECONNABORTED: errno_t = 13; +pub const ECONNREFUSED: errno_t = 14; +pub const ECONNRESET: errno_t = 15; +pub const EDEADLK: errno_t = 16; +pub const EDESTADDRREQ: errno_t = 17; +pub const EDOM: errno_t = 18; +pub const EDQUOT: errno_t = 19; +pub const EEXIST: errno_t = 20; +pub const EFAULT: errno_t = 21; +pub const EFBIG: errno_t = 22; +pub const EHOSTUNREACH: errno_t = 23; +pub const EIDRM: errno_t = 24; +pub const EILSEQ: errno_t = 25; +pub const EINPROGRESS: errno_t = 26; +pub const EINTR: errno_t = 27; +pub const EINVAL: errno_t = 28; +pub const EIO: errno_t = 29; +pub const EISCONN: errno_t = 30; +pub const EISDIR: errno_t = 31; +pub const ELOOP: errno_t = 32; +pub const EMFILE: errno_t = 33; +pub const EMLINK: errno_t = 34; +pub const EMSGSIZE: errno_t = 35; +pub const EMULTIHOP: errno_t = 36; +pub const ENAMETOOLONG: errno_t = 37; +pub const ENETDOWN: errno_t = 38; +pub const ENETRESET: errno_t = 39; +pub const ENETUNREACH: errno_t = 40; +pub const ENFILE: errno_t = 41; +pub const ENOBUFS: errno_t = 42; +pub const ENODEV: errno_t = 43; +pub const ENOENT: errno_t = 44; +pub const ENOEXEC: errno_t = 45; +pub const ENOLCK: errno_t = 46; +pub const ENOLINK: errno_t = 47; +pub const ENOMEM: errno_t = 48; +pub const ENOMSG: errno_t = 49; +pub const ENOPROTOOPT: errno_t = 50; +pub const ENOSPC: errno_t = 51; +pub const ENOSYS: errno_t = 52; +pub const ENOTCONN: errno_t = 53; +pub const ENOTDIR: errno_t = 54; +pub const ENOTEMPTY: errno_t = 55; +pub const ENOTRECOVERABLE: errno_t = 56; +pub const ENOTSOCK: errno_t = 57; +pub const ENOTSUP: errno_t = 58; +pub const ENOTTY: errno_t = 59; +pub const ENXIO: errno_t = 60; +pub const EOVERFLOW: errno_t = 61; +pub const EOWNERDEAD: errno_t = 62; +pub const EPERM: errno_t = 63; +pub const EPIPE: errno_t = 64; +pub const EPROTO: errno_t = 65; +pub const EPROTONOSUPPORT: errno_t = 66; +pub const EPROTOTYPE: errno_t = 67; +pub const ERANGE: errno_t = 68; +pub const EROFS: errno_t = 69; +pub const ESPIPE: errno_t = 70; +pub const ESRCH: errno_t = 71; +pub const ESTALE: errno_t = 72; +pub const ETIMEDOUT: errno_t = 73; +pub const ETXTBSY: errno_t = 74; +pub const EXDEV: errno_t = 75; +pub const ENOTCAPABLE: errno_t = 76; + +pub const event_t = extern struct { + userdata: userdata_t, + @"error": errno_t, + @"type": eventtype_t, + u: extern union { + fd_readwrite: extern struct { + nbytes: filesize_t, + flags: eventrwflags_t, + }, + }, +}; + +pub const eventrwflags_t = u16; +pub const EVENT_FD_READWRITE_HANGUP: eventrwflags_t = 0x0001; + +pub const eventtype_t = u8; +pub const EVENTTYPE_CLOCK: eventtype_t = 0; +pub const EVENTTYPE_FD_READ: eventtype_t = 1; +pub const EVENTTYPE_FD_WRITE: eventtype_t = 2; + +pub const exitcode_t = u32; + +pub const fd_t = u32; + +pub const fdflags_t = u16; +pub const FDFLAG_APPEND: fdflags_t = 0x0001; +pub const FDFLAG_DSYNC: fdflags_t = 0x0002; +pub const FDFLAG_NONBLOCK: fdflags_t = 0x0004; +pub const FDFLAG_RSYNC: fdflags_t = 0x0008; +pub const FDFLAG_SYNC: fdflags_t = 0x0010; + +const fdstat_t = extern struct { + fs_filetype: filetype_t, + fs_flags: fdflags_t, + fs_rights_base: rights_t, + fs_rights_inheriting: rights_t, +}; + +pub const filedelta_t = i64; + +pub const filesize_t = u64; + +pub const filestat_t = extern struct { + st_dev: device_t, + st_ino: inode_t, + st_filetype: filetype_t, + st_nlink: linkcount_t, + st_size: filesize_t, + st_atim: timestamp_t, + st_mtim: timestamp_t, + st_ctim: timestamp_t, +}; + +pub const filetype_t = u8; +pub const FILETYPE_UNKNOWN: filetype_t = 0; +pub const FILETYPE_BLOCK_DEVICE: filetype_t = 1; +pub const FILETYPE_CHARACTER_DEVICE: filetype_t = 2; +pub const FILETYPE_DIRECTORY: filetype_t = 3; +pub const FILETYPE_REGULAR_FILE: filetype_t = 4; +pub const FILETYPE_SOCKET_DGRAM: filetype_t = 5; +pub const FILETYPE_SOCKET_STREAM: filetype_t = 6; +pub const FILETYPE_SYMBOLIC_LINK: filetype_t = 7; + +pub const fstflags_t = u16; +pub const FILESTAT_SET_ATIM: fstflags_t = 0x0001; +pub const FILESTAT_SET_ATIM_NOW: fstflags_t = 0x0002; +pub const FILESTAT_SET_MTIM: fstflags_t = 0x0004; +pub const FILESTAT_SET_MTIM_NOW: fstflags_t = 0x0008; + +pub const inode_t = u64; + +pub const linkcount_t = u32; + +pub const lookupflags_t = u32; +pub const LOOKUP_SYMLINK_FOLLOW: lookupflags_t = 0x00000001; + +pub const oflags_t = u16; +pub const O_CREAT: oflags_t = 0x0001; +pub const O_DIRECTORY: oflags_t = 0x0002; +pub const O_EXCL: oflags_t = 0x0004; +pub const O_TRUNC: oflags_t = 0x0008; + +pub const preopentype_t = u8; +pub const PREOPENTYPE_DIR: preopentype_t = 0; + +pub const prestat_t = extern struct { + pr_type: preopentype_t, + u: extern union { + dir: extern struct { + pr_name_len: usize, + }, + }, +}; + +pub const riflags_t = u16; +pub const SOCK_RECV_PEEK: riflags_t = 0x0001; +pub const SOCK_RECV_WAITALL: riflags_t = 0x0002; + +pub const rights_t = u64; +pub const RIGHT_FD_DATASYNC: rights_t = 0x0000000000000001; +pub const RIGHT_FD_READ: rights_t = 0x0000000000000002; +pub const RIGHT_FD_SEEK: rights_t = 0x0000000000000004; +pub const RIGHT_FD_FDSTAT_SET_FLAGS: rights_t = 0x0000000000000008; +pub const RIGHT_FD_SYNC: rights_t = 0x0000000000000010; +pub const RIGHT_FD_TELL: rights_t = 0x0000000000000020; +pub const RIGHT_FD_WRITE: rights_t = 0x0000000000000040; +pub const RIGHT_FD_ADVISE: rights_t = 0x0000000000000080; +pub const RIGHT_FD_ALLOCATE: rights_t = 0x0000000000000100; +pub const RIGHT_PATH_CREATE_DIRECTORY: rights_t = 0x0000000000000200; +pub const RIGHT_PATH_CREATE_FILE: rights_t = 0x0000000000000400; +pub const RIGHT_PATH_LINK_SOURCE: rights_t = 0x0000000000000800; +pub const RIGHT_PATH_LINK_TARGET: rights_t = 0x0000000000001000; +pub const RIGHT_PATH_OPEN: rights_t = 0x0000000000002000; +pub const RIGHT_FD_READDIR: rights_t = 0x0000000000004000; +pub const RIGHT_PATH_READLINK: rights_t = 0x0000000000008000; +pub const RIGHT_PATH_RENAME_SOURCE: rights_t = 0x0000000000010000; +pub const RIGHT_PATH_RENAME_TARGET: rights_t = 0x0000000000020000; +pub const RIGHT_PATH_FILESTAT_GET: rights_t = 0x0000000000040000; +pub const RIGHT_PATH_FILESTAT_SET_SIZE: rights_t = 0x0000000000080000; +pub const RIGHT_PATH_FILESTAT_SET_TIMES: rights_t = 0x0000000000100000; +pub const RIGHT_FD_FILESTAT_GET: rights_t = 0x0000000000200000; +pub const RIGHT_FD_FILESTAT_SET_SIZE: rights_t = 0x0000000000400000; +pub const RIGHT_FD_FILESTAT_SET_TIMES: rights_t = 0x0000000000800000; +pub const RIGHT_PATH_SYMLINK: rights_t = 0x0000000001000000; +pub const RIGHT_PATH_REMOVE_DIRECTORY: rights_t = 0x0000000002000000; +pub const RIGHT_PATH_UNLINK_FILE: rights_t = 0x0000000004000000; +pub const RIGHT_POLL_FD_READWRITE: rights_t = 0x0000000008000000; +pub const RIGHT_SOCK_SHUTDOWN: rights_t = 0x0000000010000000; + +pub const roflags_t = u16; +pub const SOCK_RECV_DATA_TRUNCATED: roflags_t = 0x0001; + +pub const sdflags_t = u8; +pub const SHUT_RD: sdflags_t = 0x01; +pub const SHUT_WR: sdflags_t = 0x02; + +pub const siflags_t = u16; + +pub const signal_t = u8; +pub const SIGHUP: signal_t = 1; +pub const SIGINT: signal_t = 2; +pub const SIGQUIT: signal_t = 3; +pub const SIGILL: signal_t = 4; +pub const SIGTRAP: signal_t = 5; +pub const SIGABRT: signal_t = 6; +pub const SIGBUS: signal_t = 7; +pub const SIGFPE: signal_t = 8; +pub const SIGKILL: signal_t = 9; +pub const SIGUSR1: signal_t = 10; +pub const SIGSEGV: signal_t = 11; +pub const SIGUSR2: signal_t = 12; +pub const SIGPIPE: signal_t = 13; +pub const SIGALRM: signal_t = 14; +pub const SIGTERM: signal_t = 15; +pub const SIGCHLD: signal_t = 16; +pub const SIGCONT: signal_t = 17; +pub const SIGSTOP: signal_t = 18; +pub const SIGTSTP: signal_t = 19; +pub const SIGTTIN: signal_t = 20; +pub const SIGTTOU: signal_t = 21; +pub const SIGURG: signal_t = 22; +pub const SIGXCPU: signal_t = 23; +pub const SIGXFSZ: signal_t = 24; +pub const SIGVTALRM: signal_t = 25; +pub const SIGPROF: signal_t = 26; +pub const SIGWINCH: signal_t = 27; +pub const SIGPOLL: signal_t = 28; +pub const SIGPWR: signal_t = 29; +pub const SIGSYS: signal_t = 30; + +pub const subclockflags_t = u16; +pub const SUBSCRIPTION_CLOCK_ABSTIME: subclockflags_t = 0x0001; + +pub const subscription_t = extern struct { + userdata: userdata_t, + @"type": eventtype_t, + u: extern union { + clock: extern struct { + identifier: userdata_t, + clock_id: clockid_t, + timeout: timestamp_t, + precision: timestamp_t, + flags: subclockflags_t, + }, + fd_readwrite: extern struct { + fd: fd_t, + }, + }, +}; + +pub const timestamp_t = u64; + +pub const userdata_t = u64; + +pub const whence_t = u8; +pub const WHENCE_CUR: whence_t = 0; +pub const WHENCE_END: whence_t = 1; +pub const WHENCE_SET: whence_t = 2; diff --git a/lib/std/os/bits/windows.zig b/lib/std/os/bits/windows.zig new file mode 100644 index 0000000000..fc148d812f --- /dev/null +++ b/lib/std/os/bits/windows.zig @@ -0,0 +1,160 @@ +// The reference for these types and values is Microsoft Windows's ucrt (Universal C RunTime). + +usingnamespace @import("../windows/bits.zig"); + +pub const fd_t = HANDLE; +pub const pid_t = HANDLE; + +pub const PATH_MAX = 260; + +pub const time_t = c_longlong; + +pub const timespec = extern struct { + tv_sec: time_t, + tv_nsec: c_long, +}; + +pub const sig_atomic_t = c_int; + +/// maximum signal number + 1 +pub const NSIG = 23; + +// Signal types + +/// interrupt +pub const SIGINT = 2; + +/// illegal instruction - invalid function image +pub const SIGILL = 4; + +/// floating point exception +pub const SIGFPE = 8; + +/// segment violation +pub const SIGSEGV = 11; + +/// Software termination signal from kill +pub const SIGTERM = 15; + +/// Ctrl-Break sequence +pub const SIGBREAK = 21; + +/// abnormal termination triggered by abort call +pub const SIGABRT = 22; + +/// SIGABRT compatible with other platforms, same as SIGABRT +pub const SIGABRT_COMPAT = 6; + +// Signal action codes + +/// default signal action +pub const SIG_DFL = 0; + +/// ignore signal +pub const SIG_IGN = 1; + +/// return current value +pub const SIG_GET = 2; + +/// signal gets error +pub const SIG_SGE = 3; + +/// acknowledge +pub const SIG_ACK = 4; + +/// Signal error value (returned by signal call on error) +pub const SIG_ERR = -1; + +pub const SEEK_SET = 0; +pub const SEEK_CUR = 1; +pub const SEEK_END = 2; + +pub const EPERM = 1; +pub const ENOENT = 2; +pub const ESRCH = 3; +pub const EINTR = 4; +pub const EIO = 5; +pub const ENXIO = 6; +pub const E2BIG = 7; +pub const ENOEXEC = 8; +pub const EBADF = 9; +pub const ECHILD = 10; +pub const EAGAIN = 11; +pub const ENOMEM = 12; +pub const EACCES = 13; +pub const EFAULT = 14; +pub const EBUSY = 16; +pub const EEXIST = 17; +pub const EXDEV = 18; +pub const ENODEV = 19; +pub const ENOTDIR = 20; +pub const EISDIR = 21; +pub const ENFILE = 23; +pub const EMFILE = 24; +pub const ENOTTY = 25; +pub const EFBIG = 27; +pub const ENOSPC = 28; +pub const ESPIPE = 29; +pub const EROFS = 30; +pub const EMLINK = 31; +pub const EPIPE = 32; +pub const EDOM = 33; +pub const EDEADLK = 36; +pub const ENAMETOOLONG = 38; +pub const ENOLCK = 39; +pub const ENOSYS = 40; +pub const ENOTEMPTY = 41; + +pub const EINVAL = 22; +pub const ERANGE = 34; +pub const EILSEQ = 42; +pub const STRUNCATE = 80; + +// Support EDEADLOCK for compatibility with older Microsoft C versions +pub const EDEADLOCK = EDEADLK; + +// POSIX Supplement +pub const EADDRINUSE = 100; +pub const EADDRNOTAVAIL = 101; +pub const EAFNOSUPPORT = 102; +pub const EALREADY = 103; +pub const EBADMSG = 104; +pub const ECANCELED = 105; +pub const ECONNABORTED = 106; +pub const ECONNREFUSED = 107; +pub const ECONNRESET = 108; +pub const EDESTADDRREQ = 109; +pub const EHOSTUNREACH = 110; +pub const EIDRM = 111; +pub const EINPROGRESS = 112; +pub const EISCONN = 113; +pub const ELOOP = 114; +pub const EMSGSIZE = 115; +pub const ENETDOWN = 116; +pub const ENETRESET = 117; +pub const ENETUNREACH = 118; +pub const ENOBUFS = 119; +pub const ENODATA = 120; +pub const ENOLINK = 121; +pub const ENOMSG = 122; +pub const ENOPROTOOPT = 123; +pub const ENOSR = 124; +pub const ENOSTR = 125; +pub const ENOTCONN = 126; +pub const ENOTRECOVERABLE = 127; +pub const ENOTSOCK = 128; +pub const ENOTSUP = 129; +pub const EOPNOTSUPP = 130; +pub const EOTHER = 131; +pub const EOVERFLOW = 132; +pub const EOWNERDEAD = 133; +pub const EPROTO = 134; +pub const EPROTONOSUPPORT = 135; +pub const EPROTOTYPE = 136; +pub const ETIME = 137; +pub const ETIMEDOUT = 138; +pub const ETXTBSY = 139; +pub const EWOULDBLOCK = 140; +pub const EDQUOT = 10069; + +pub const F_OK = 0; diff --git a/lib/std/os/darwin.zig b/lib/std/os/darwin.zig new file mode 100644 index 0000000000..0adf71affb --- /dev/null +++ b/lib/std/os/darwin.zig @@ -0,0 +1,8 @@ +const builtin = @import("builtin"); +const std = @import("../std.zig"); +pub const is_the_target = switch (builtin.os) { + .macosx, .tvos, .watchos, .ios => true, + else => false, +}; +pub usingnamespace std.c; +pub usingnamespace @import("bits.zig"); diff --git a/lib/std/os/freebsd.zig b/lib/std/os/freebsd.zig new file mode 100644 index 0000000000..ddbf98f2bc --- /dev/null +++ b/lib/std/os/freebsd.zig @@ -0,0 +1,5 @@ +const std = @import("../std.zig"); +const builtin = @import("builtin"); +pub const is_the_target = builtin.os == .freebsd; +pub usingnamespace std.c; +pub usingnamespace @import("bits.zig"); diff --git a/lib/std/os/linux.zig b/lib/std/os/linux.zig new file mode 100644 index 0000000000..7dcd01572e --- /dev/null +++ b/lib/std/os/linux.zig @@ -0,0 +1,1045 @@ +// This file provides the system interface functions for Linux matching those +// that are provided by libc, whether or not libc is linked. The following +// abstractions are made: +// * Work around kernel bugs and limitations. For example, see sendmmsg. +// * Implement all the syscalls in the same way that libc functions will +// provide `rename` when only the `renameat` syscall exists. +// * Does not support POSIX thread cancellation. +const std = @import("../std.zig"); +const builtin = @import("builtin"); +const assert = std.debug.assert; +const maxInt = std.math.maxInt; +const elf = std.elf; +const vdso = @import("linux/vdso.zig"); +const dl = @import("../dynamic_library.zig"); + +pub const is_the_target = builtin.os == .linux; +pub usingnamespace switch (builtin.arch) { + .x86_64 => @import("linux/x86_64.zig"), + .aarch64 => @import("linux/arm64.zig"), + .arm => @import("linux/arm-eabi.zig"), + .riscv64 => @import("linux/riscv64.zig"), + else => struct {}, +}; +pub usingnamespace @import("bits.zig"); +pub const tls = @import("linux/tls.zig"); + +/// Set by startup code, used by `getauxval`. +pub var elf_aux_maybe: ?[*]std.elf.Auxv = null; + +/// See `std.elf` for the constants. +pub fn getauxval(index: usize) usize { + const auxv = elf_aux_maybe orelse return 0; + var i: usize = 0; + while (auxv[i].a_type != std.elf.AT_NULL) : (i += 1) { + if (auxv[i].a_type == index) + return auxv[i].a_un.a_val; + } + return 0; +} + +/// Get the errno from a syscall return value, or 0 for no error. +pub fn getErrno(r: usize) u12 { + const signed_r = @bitCast(isize, r); + return if (signed_r > -4096 and signed_r < 0) @intCast(u12, -signed_r) else 0; +} + +pub fn dup2(old: i32, new: i32) usize { + if (@hasDecl(@This(), "SYS_dup2")) { + return syscall2(SYS_dup2, @bitCast(usize, isize(old)), @bitCast(usize, isize(new))); + } else { + if (old == new) { + if (std.debug.runtime_safety) { + const rc = syscall2(SYS_fcntl, @bitCast(usize, isize(old)), F_GETFD); + if (@bitCast(isize, rc) < 0) return rc; + } + return @intCast(usize, old); + } else { + return syscall3(SYS_dup3, @bitCast(usize, isize(old)), @bitCast(usize, isize(new)), 0); + } + } +} + +pub fn dup3(old: i32, new: i32, flags: u32) usize { + return syscall3(SYS_dup3, @bitCast(usize, isize(old)), @bitCast(usize, isize(new)), flags); +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn chdir(path: [*]const u8) usize { + return syscall1(SYS_chdir, @ptrToInt(path)); +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn chroot(path: [*]const u8) usize { + return syscall1(SYS_chroot, @ptrToInt(path)); +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn execve(path: [*]const u8, argv: [*]const ?[*]const u8, envp: [*]const ?[*]const u8) usize { + return syscall3(SYS_execve, @ptrToInt(path), @ptrToInt(argv), @ptrToInt(envp)); +} + +pub fn fork() usize { + if (@hasDecl(@This(), "SYS_fork")) { + return syscall0(SYS_fork); + } else { + return syscall2(SYS_clone, SIGCHLD, 0); + } +} + +/// This must be inline, and inline call the syscall function, because if the +/// child does a return it will clobber the parent's stack. +/// It is advised to avoid this function and use clone instead, because +/// the compiler is not aware of how vfork affects control flow and you may +/// see different results in optimized builds. +pub inline fn vfork() usize { + return @inlineCall(syscall0, SYS_vfork); +} + +pub fn futimens(fd: i32, times: *const [2]timespec) usize { + return utimensat(fd, null, times, 0); +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn utimensat(dirfd: i32, path: ?[*]const u8, times: *const [2]timespec, flags: u32) usize { + return syscall4(SYS_utimensat, @bitCast(usize, isize(dirfd)), @ptrToInt(path), @ptrToInt(times), flags); +} + +pub fn futex_wait(uaddr: *const i32, futex_op: u32, val: i32, timeout: ?*timespec) usize { + return syscall4(SYS_futex, @ptrToInt(uaddr), futex_op, @bitCast(u32, val), @ptrToInt(timeout)); +} + +pub fn futex_wake(uaddr: *const i32, futex_op: u32, val: i32) usize { + return syscall3(SYS_futex, @ptrToInt(uaddr), futex_op, @bitCast(u32, val)); +} + +pub fn getcwd(buf: [*]u8, size: usize) usize { + return syscall2(SYS_getcwd, @ptrToInt(buf), size); +} + +pub fn getdents(fd: i32, dirp: [*]u8, len: usize) usize { + return syscall3( + SYS_getdents, + @bitCast(usize, isize(fd)), + @ptrToInt(dirp), + std.math.min(len, maxInt(c_int)), + ); +} + +pub fn getdents64(fd: i32, dirp: [*]u8, len: usize) usize { + return syscall3( + SYS_getdents64, + @bitCast(usize, isize(fd)), + @ptrToInt(dirp), + std.math.min(len, maxInt(c_int)), + ); +} + +pub fn inotify_init1(flags: u32) usize { + return syscall1(SYS_inotify_init1, flags); +} + +pub fn inotify_add_watch(fd: i32, pathname: [*]const u8, mask: u32) usize { + return syscall3(SYS_inotify_add_watch, @bitCast(usize, isize(fd)), @ptrToInt(pathname), mask); +} + +pub fn inotify_rm_watch(fd: i32, wd: i32) usize { + return syscall2(SYS_inotify_rm_watch, @bitCast(usize, isize(fd)), @bitCast(usize, isize(wd))); +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn readlink(noalias path: [*]const u8, noalias buf_ptr: [*]u8, buf_len: usize) usize { + if (@hasDecl(@This(), "SYS_readlink")) { + return syscall3(SYS_readlink, @ptrToInt(path), @ptrToInt(buf_ptr), buf_len); + } else { + return syscall4(SYS_readlinkat, @bitCast(usize, isize(AT_FDCWD)), @ptrToInt(path), @ptrToInt(buf_ptr), buf_len); + } +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn readlinkat(dirfd: i32, noalias path: [*]const u8, noalias buf_ptr: [*]u8, buf_len: usize) usize { + return syscall4(SYS_readlinkat, @bitCast(usize, isize(dirfd)), @ptrToInt(path), @ptrToInt(buf_ptr), buf_len); +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn mkdir(path: [*]const u8, mode: u32) usize { + if (@hasDecl(@This(), "SYS_mkdir")) { + return syscall2(SYS_mkdir, @ptrToInt(path), mode); + } else { + return syscall3(SYS_mkdirat, @bitCast(usize, isize(AT_FDCWD)), @ptrToInt(path), mode); + } +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn mkdirat(dirfd: i32, path: [*]const u8, mode: u32) usize { + return syscall3(SYS_mkdirat, @bitCast(usize, isize(dirfd)), @ptrToInt(path), mode); +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn mount(special: [*]const u8, dir: [*]const u8, fstype: [*]const u8, flags: u32, data: usize) usize { + return syscall5(SYS_mount, @ptrToInt(special), @ptrToInt(dir), @ptrToInt(fstype), flags, data); +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn umount(special: [*]const u8) usize { + return syscall2(SYS_umount2, @ptrToInt(special), 0); +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn umount2(special: [*]const u8, flags: u32) usize { + return syscall2(SYS_umount2, @ptrToInt(special), flags); +} + +pub fn mmap(address: ?[*]u8, length: usize, prot: usize, flags: u32, fd: i32, offset: u64) usize { + if (@hasDecl(@This(), "SYS_mmap2")) { + return syscall6(SYS_mmap2, @ptrToInt(address), length, prot, flags, @bitCast(usize, isize(fd)), @truncate(usize, offset / MMAP2_UNIT)); + } else { + return syscall6(SYS_mmap, @ptrToInt(address), length, prot, flags, @bitCast(usize, isize(fd)), offset); + } +} + +pub fn mprotect(address: [*]const u8, length: usize, protection: usize) usize { + return syscall3(SYS_mprotect, @ptrToInt(address), length, protection); +} + +pub fn munmap(address: [*]const u8, length: usize) usize { + return syscall2(SYS_munmap, @ptrToInt(address), length); +} + +pub fn read(fd: i32, buf: [*]u8, count: usize) usize { + return syscall3(SYS_read, @bitCast(usize, isize(fd)), @ptrToInt(buf), count); +} + +pub fn preadv(fd: i32, iov: [*]const iovec, count: usize, offset: u64) usize { + return syscall5( + SYS_preadv, + @bitCast(usize, isize(fd)), + @ptrToInt(iov), + count, + @truncate(usize, offset), + @truncate(usize, offset >> 32), + ); +} + +pub fn preadv2(fd: i32, iov: [*]const iovec, count: usize, offset: u64, flags: kernel_rwf) usize { + return syscall6( + SYS_preadv2, + @bitCast(usize, isize(fd)), + @ptrToInt(iov), + count, + @truncate(usize, offset), + @truncate(usize, offset >> 32), + flags, + ); +} + +pub fn readv(fd: i32, iov: [*]const iovec, count: usize) usize { + return syscall3(SYS_readv, @bitCast(usize, isize(fd)), @ptrToInt(iov), count); +} + +pub fn writev(fd: i32, iov: [*]const iovec_const, count: usize) usize { + return syscall3(SYS_writev, @bitCast(usize, isize(fd)), @ptrToInt(iov), count); +} + +pub fn pwritev(fd: i32, iov: [*]const iovec_const, count: usize, offset: u64) usize { + return syscall5( + SYS_pwritev, + @bitCast(usize, isize(fd)), + @ptrToInt(iov), + count, + @truncate(usize, offset), + @truncate(usize, offset >> 32), + ); +} + +pub fn pwritev2(fd: i32, iov: [*]const iovec_const, count: usize, offset: u64, flags: kernel_rwf) usize { + return syscall6( + SYS_pwritev2, + @bitCast(usize, isize(fd)), + @ptrToInt(iov), + count, + @truncate(usize, offset), + @truncate(usize, offset >> 32), + flags, + ); +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn rmdir(path: [*]const u8) usize { + if (@hasDecl(@This(), "SYS_rmdir")) { + return syscall1(SYS_rmdir, @ptrToInt(path)); + } else { + return syscall3(SYS_unlinkat, @bitCast(usize, isize(AT_FDCWD)), @ptrToInt(path), AT_REMOVEDIR); + } +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn symlink(existing: [*]const u8, new: [*]const u8) usize { + if (@hasDecl(@This(), "SYS_symlink")) { + return syscall2(SYS_symlink, @ptrToInt(existing), @ptrToInt(new)); + } else { + return syscall3(SYS_symlinkat, @ptrToInt(existing), @bitCast(usize, isize(AT_FDCWD)), @ptrToInt(new)); + } +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn symlinkat(existing: [*]const u8, newfd: i32, newpath: [*]const u8) usize { + return syscall3(SYS_symlinkat, @ptrToInt(existing), @bitCast(usize, isize(newfd)), @ptrToInt(newpath)); +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn pread(fd: i32, buf: [*]u8, count: usize, offset: usize) usize { + return syscall4(SYS_pread, @bitCast(usize, isize(fd)), @ptrToInt(buf), count, offset); +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn access(path: [*]const u8, mode: u32) usize { + if (@hasDecl(@This(), "SYS_access")) { + return syscall2(SYS_access, @ptrToInt(path), mode); + } else { + return syscall4(SYS_faccessat, @bitCast(usize, isize(AT_FDCWD)), @ptrToInt(path), mode, 0); + } +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn faccessat(dirfd: i32, path: [*]const u8, mode: u32, flags: u32) usize { + return syscall4(SYS_faccessat, @bitCast(usize, isize(dirfd)), @ptrToInt(path), mode, flags); +} + +pub fn pipe(fd: *[2]i32) usize { + if (@hasDecl(@This(), "SYS_pipe")) { + return syscall1(SYS_pipe, @ptrToInt(fd)); + } else { + return syscall2(SYS_pipe2, @ptrToInt(fd), 0); + } +} + +pub fn pipe2(fd: *[2]i32, flags: u32) usize { + return syscall2(SYS_pipe2, @ptrToInt(fd), flags); +} + +pub fn write(fd: i32, buf: [*]const u8, count: usize) usize { + return syscall3(SYS_write, @bitCast(usize, isize(fd)), @ptrToInt(buf), count); +} + +pub fn pwrite(fd: i32, buf: [*]const u8, count: usize, offset: usize) usize { + return syscall4(SYS_pwrite, @bitCast(usize, isize(fd)), @ptrToInt(buf), count, offset); +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn rename(old: [*]const u8, new: [*]const u8) usize { + if (@hasDecl(@This(), "SYS_rename")) { + return syscall2(SYS_rename, @ptrToInt(old), @ptrToInt(new)); + } else if (@hasDecl(@This(), "SYS_renameat")) { + return syscall4(SYS_renameat, @bitCast(usize, isize(AT_FDCWD)), @ptrToInt(old), @bitCast(usize, isize(AT_FDCWD)), @ptrToInt(new)); + } else { + return syscall5(SYS_renameat2, @bitCast(usize, isize(AT_FDCWD)), @ptrToInt(old), @bitCast(usize, isize(AT_FDCWD)), @ptrToInt(new), 0); + } +} + +pub fn renameat(oldfd: i32, oldpath: [*]const u8, newfd: i32, newpath: [*]const u8) usize { + if (@hasDecl(@This(), "SYS_renameat")) { + return syscall4( + SYS_renameat, + @bitCast(usize, isize(oldfd)), + @ptrToInt(old), + @bitCast(usize, isize(newfd)), + @ptrToInt(new), + ); + } else { + return syscall5( + SYS_renameat2, + @bitCast(usize, isize(oldfd)), + @ptrToInt(old), + @bitCast(usize, isize(newfd)), + @ptrToInt(new), + 0, + ); + } +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn renameat2(oldfd: i32, oldpath: [*]const u8, newfd: i32, newpath: [*]const u8, flags: u32) usize { + return syscall5( + SYS_renameat2, + @bitCast(usize, isize(oldfd)), + @ptrToInt(oldpath), + @bitCast(usize, isize(newfd)), + @ptrToInt(newpath), + flags, + ); +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn open(path: [*]const u8, flags: u32, perm: usize) usize { + if (@hasDecl(@This(), "SYS_open")) { + return syscall3(SYS_open, @ptrToInt(path), flags, perm); + } else { + return syscall4( + SYS_openat, + @bitCast(usize, isize(AT_FDCWD)), + @ptrToInt(path), + flags, + perm, + ); + } +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn create(path: [*]const u8, perm: usize) usize { + return syscall2(SYS_creat, @ptrToInt(path), perm); +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn openat(dirfd: i32, path: [*]const u8, flags: u32, mode: usize) usize { + // dirfd could be negative, for example AT_FDCWD is -100 + return syscall4(SYS_openat, @bitCast(usize, isize(dirfd)), @ptrToInt(path), flags, mode); +} + +/// See also `clone` (from the arch-specific include) +pub fn clone5(flags: usize, child_stack_ptr: usize, parent_tid: *i32, child_tid: *i32, newtls: usize) usize { + return syscall5(SYS_clone, flags, child_stack_ptr, @ptrToInt(parent_tid), @ptrToInt(child_tid), newtls); +} + +/// See also `clone` (from the arch-specific include) +pub fn clone2(flags: u32, child_stack_ptr: usize) usize { + return syscall2(SYS_clone, flags, child_stack_ptr); +} + +pub fn close(fd: i32) usize { + return syscall1(SYS_close, @bitCast(usize, isize(fd))); +} + +/// Can only be called on 32 bit systems. For 64 bit see `lseek`. +pub fn llseek(fd: i32, offset: u64, result: ?*u64, whence: usize) usize { + return syscall5( + SYS__llseek, + @bitCast(usize, isize(fd)), + @truncate(usize, offset >> 32), + @truncate(usize, offset), + @ptrToInt(result), + whence, + ); +} + +/// Can only be called on 64 bit systems. For 32 bit see `llseek`. +pub fn lseek(fd: i32, offset: i64, whence: usize) usize { + return syscall3(SYS_lseek, @bitCast(usize, isize(fd)), @bitCast(usize, offset), whence); +} + +pub fn exit(status: i32) noreturn { + _ = syscall1(SYS_exit, @bitCast(usize, isize(status))); + unreachable; +} + +pub fn exit_group(status: i32) noreturn { + _ = syscall1(SYS_exit_group, @bitCast(usize, isize(status))); + unreachable; +} + +pub fn getrandom(buf: [*]u8, count: usize, flags: u32) usize { + return syscall3(SYS_getrandom, @ptrToInt(buf), count, flags); +} + +pub fn kill(pid: i32, sig: i32) usize { + return syscall2(SYS_kill, @bitCast(usize, isize(pid)), @bitCast(usize, isize(sig))); +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn unlink(path: [*]const u8) usize { + if (@hasDecl(@This(), "SYS_unlink")) { + return syscall1(SYS_unlink, @ptrToInt(path)); + } else { + return syscall3(SYS_unlinkat, @bitCast(usize, isize(AT_FDCWD)), @ptrToInt(path), 0); + } +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn unlinkat(dirfd: i32, path: [*]const u8, flags: u32) usize { + return syscall3(SYS_unlinkat, @bitCast(usize, isize(dirfd)), @ptrToInt(path), flags); +} + +pub fn waitpid(pid: i32, status: *u32, flags: u32) usize { + return syscall4(SYS_wait4, @bitCast(usize, isize(pid)), @ptrToInt(status), flags, 0); +} + +var vdso_clock_gettime = @ptrCast(?*const c_void, init_vdso_clock_gettime); + +// We must follow the C calling convention when we call into the VDSO +const vdso_clock_gettime_ty = extern fn (i32, *timespec) usize; + +pub fn clock_gettime(clk_id: i32, tp: *timespec) usize { + if (@hasDecl(@This(), "VDSO_CGT_SYM")) { + const ptr = @atomicLoad(?*const c_void, &vdso_clock_gettime, .Unordered); + if (ptr) |fn_ptr| { + const f = @ptrCast(vdso_clock_gettime_ty, fn_ptr); + const rc = f(clk_id, tp); + switch (rc) { + 0, @bitCast(usize, isize(-EINVAL)) => return rc, + else => {}, + } + } + } + return syscall2(SYS_clock_gettime, @bitCast(usize, isize(clk_id)), @ptrToInt(tp)); +} + +extern fn init_vdso_clock_gettime(clk: i32, ts: *timespec) usize { + const ptr = @intToPtr(?*const c_void, vdso.lookup(VDSO_CGT_VER, VDSO_CGT_SYM)); + // Note that we may not have a VDSO at all, update the stub address anyway + // so that clock_gettime will fall back on the good old (and slow) syscall + _ = @cmpxchgStrong(?*const c_void, &vdso_clock_gettime, &init_vdso_clock_gettime, ptr, .Monotonic, .Monotonic); + // Call into the VDSO if available + if (ptr) |fn_ptr| { + const f = @ptrCast(vdso_clock_gettime_ty, fn_ptr); + return f(clk, ts); + } + return @bitCast(usize, isize(-ENOSYS)); +} + +pub fn clock_getres(clk_id: i32, tp: *timespec) usize { + return syscall2(SYS_clock_getres, @bitCast(usize, isize(clk_id)), @ptrToInt(tp)); +} + +pub fn clock_settime(clk_id: i32, tp: *const timespec) usize { + return syscall2(SYS_clock_settime, @bitCast(usize, isize(clk_id)), @ptrToInt(tp)); +} + +pub fn gettimeofday(tv: *timeval, tz: *timezone) usize { + return syscall2(SYS_gettimeofday, @ptrToInt(tv), @ptrToInt(tz)); +} + +pub fn settimeofday(tv: *const timeval, tz: *const timezone) usize { + return syscall2(SYS_settimeofday, @ptrToInt(tv), @ptrToInt(tz)); +} + +pub fn nanosleep(req: *const timespec, rem: ?*timespec) usize { + return syscall2(SYS_nanosleep, @ptrToInt(req), @ptrToInt(rem)); +} + +pub fn setuid(uid: u32) usize { + if (@hasDecl(@This(), "SYS_setuid32")) { + return syscall1(SYS_setuid32, uid); + } else { + return syscall1(SYS_setuid, uid); + } +} + +pub fn setgid(gid: u32) usize { + if (@hasDecl(@This(), "SYS_setgid32")) { + return syscall1(SYS_setgid32, gid); + } else { + return syscall1(SYS_setgid, gid); + } +} + +pub fn setreuid(ruid: u32, euid: u32) usize { + if (@hasDecl(@This(), "SYS_setreuid32")) { + return syscall2(SYS_setreuid32, ruid, euid); + } else { + return syscall2(SYS_setreuid, ruid, euid); + } +} + +pub fn setregid(rgid: u32, egid: u32) usize { + if (@hasDecl(@This(), "SYS_setregid32")) { + return syscall2(SYS_setregid32, rgid, egid); + } else { + return syscall2(SYS_setregid, rgid, egid); + } +} + +pub fn getuid() u32 { + if (@hasDecl(@This(), "SYS_getuid32")) { + return u32(syscall0(SYS_getuid32)); + } else { + return u32(syscall0(SYS_getuid)); + } +} + +pub fn getgid() u32 { + if (@hasDecl(@This(), "SYS_getgid32")) { + return u32(syscall0(SYS_getgid32)); + } else { + return u32(syscall0(SYS_getgid)); + } +} + +pub fn geteuid() u32 { + if (@hasDecl(@This(), "SYS_geteuid32")) { + return u32(syscall0(SYS_geteuid32)); + } else { + return u32(syscall0(SYS_geteuid)); + } +} + +pub fn getegid() u32 { + if (@hasDecl(@This(), "SYS_getegid32")) { + return u32(syscall0(SYS_getegid32)); + } else { + return u32(syscall0(SYS_getegid)); + } +} + +pub fn seteuid(euid: u32) usize { + return setreuid(std.math.maxInt(u32), euid); +} + +pub fn setegid(egid: u32) usize { + return setregid(std.math.maxInt(u32), egid); +} + +pub fn getresuid(ruid: *u32, euid: *u32, suid: *u32) usize { + if (@hasDecl(@This(), "SYS_getresuid32")) { + return syscall3(SYS_getresuid32, @ptrToInt(ruid), @ptrToInt(euid), @ptrToInt(suid)); + } else { + return syscall3(SYS_getresuid, @ptrToInt(ruid), @ptrToInt(euid), @ptrToInt(suid)); + } +} + +pub fn getresgid(rgid: *u32, egid: *u32, sgid: *u32) usize { + if (@hasDecl(@This(), "SYS_getresgid32")) { + return syscall3(SYS_getresgid32, @ptrToInt(rgid), @ptrToInt(egid), @ptrToInt(sgid)); + } else { + return syscall3(SYS_getresgid, @ptrToInt(rgid), @ptrToInt(egid), @ptrToInt(sgid)); + } +} + +pub fn setresuid(ruid: u32, euid: u32, suid: u32) usize { + if (@hasDecl(@This(), "SYS_setresuid32")) { + return syscall3(SYS_setresuid32, ruid, euid, suid); + } else { + return syscall3(SYS_setresuid, ruid, euid, suid); + } +} + +pub fn setresgid(rgid: u32, egid: u32, sgid: u32) usize { + if (@hasDecl(@This(), "SYS_setresgid32")) { + return syscall3(SYS_setresgid32, rgid, egid, sgid); + } else { + return syscall3(SYS_setresgid, rgid, egid, sgid); + } +} + +pub fn getgroups(size: usize, list: *u32) usize { + if (@hasDecl(@This(), "SYS_getgroups32")) { + return syscall2(SYS_getgroups32, size, @ptrToInt(list)); + } else { + return syscall2(SYS_getgroups, size, @ptrToInt(list)); + } +} + +pub fn setgroups(size: usize, list: *const u32) usize { + if (@hasDecl(@This(), "SYS_setgroups32")) { + return syscall2(SYS_setgroups32, size, @ptrToInt(list)); + } else { + return syscall2(SYS_setgroups, size, @ptrToInt(list)); + } +} + +pub fn getpid() i32 { + return @bitCast(i32, @truncate(u32, syscall0(SYS_getpid))); +} + +pub fn gettid() i32 { + return @bitCast(i32, @truncate(u32, syscall0(SYS_gettid))); +} + +pub fn sigprocmask(flags: u32, noalias set: *const sigset_t, noalias oldset: ?*sigset_t) usize { + return syscall4(SYS_rt_sigprocmask, flags, @ptrToInt(set), @ptrToInt(oldset), NSIG / 8); +} + +pub fn sigaction(sig: u6, noalias act: *const Sigaction, noalias oact: ?*Sigaction) usize { + assert(sig >= 1); + assert(sig != SIGKILL); + assert(sig != SIGSTOP); + var ksa = k_sigaction{ + .sigaction = act.sigaction, + .flags = act.flags | SA_RESTORER, + .mask = undefined, + .restorer = @ptrCast(extern fn () void, restore_rt), + }; + var ksa_old: k_sigaction = undefined; + @memcpy(@ptrCast([*]u8, &ksa.mask), @ptrCast([*]const u8, &act.mask), 8); + const result = syscall4(SYS_rt_sigaction, sig, @ptrToInt(&ksa), @ptrToInt(&ksa_old), @sizeOf(@typeOf(ksa.mask))); + const err = getErrno(result); + if (err != 0) { + return result; + } + if (oact) |old| { + old.sigaction = ksa_old.sigaction; + old.flags = @truncate(u32, ksa_old.flags); + @memcpy(@ptrCast([*]u8, &old.mask), @ptrCast([*]const u8, &ksa_old.mask), @sizeOf(@typeOf(ksa_old.mask))); + } + return 0; +} + +pub fn blockAllSignals(set: *sigset_t) void { + _ = syscall4(SYS_rt_sigprocmask, SIG_BLOCK, @ptrToInt(&all_mask), @ptrToInt(set), NSIG / 8); +} + +pub fn blockAppSignals(set: *sigset_t) void { + _ = syscall4(SYS_rt_sigprocmask, SIG_BLOCK, @ptrToInt(&app_mask), @ptrToInt(set), NSIG / 8); +} + +pub fn restoreSignals(set: *sigset_t) void { + _ = syscall4(SYS_rt_sigprocmask, SIG_SETMASK, @ptrToInt(set), 0, NSIG / 8); +} + +pub fn sigaddset(set: *sigset_t, sig: u6) void { + const s = sig - 1; + (set.*)[@intCast(usize, s) / usize.bit_count] |= @intCast(usize, 1) << (s & (usize.bit_count - 1)); +} + +pub fn sigismember(set: *const sigset_t, sig: u6) bool { + const s = sig - 1; + return ((set.*)[@intCast(usize, s) / usize.bit_count] & (@intCast(usize, 1) << (s & (usize.bit_count - 1)))) != 0; +} + +pub fn getsockname(fd: i32, noalias addr: *sockaddr, noalias len: *socklen_t) usize { + return syscall3(SYS_getsockname, @bitCast(usize, isize(fd)), @ptrToInt(addr), @ptrToInt(len)); +} + +pub fn getpeername(fd: i32, noalias addr: *sockaddr, noalias len: *socklen_t) usize { + return syscall3(SYS_getpeername, @bitCast(usize, isize(fd)), @ptrToInt(addr), @ptrToInt(len)); +} + +pub fn socket(domain: u32, socket_type: u32, protocol: u32) usize { + return syscall3(SYS_socket, domain, socket_type, protocol); +} + +pub fn setsockopt(fd: i32, level: u32, optname: u32, optval: [*]const u8, optlen: socklen_t) usize { + return syscall5(SYS_setsockopt, @bitCast(usize, isize(fd)), level, optname, @ptrToInt(optval), @intCast(usize, optlen)); +} + +pub fn getsockopt(fd: i32, level: u32, optname: u32, noalias optval: [*]u8, noalias optlen: *socklen_t) usize { + return syscall5(SYS_getsockopt, @bitCast(usize, isize(fd)), level, optname, @ptrToInt(optval), @ptrToInt(optlen)); +} + +pub fn sendmsg(fd: i32, msg: *msghdr_const, flags: u32) usize { + return syscall3(SYS_sendmsg, @bitCast(usize, isize(fd)), @ptrToInt(msg), flags); +} + +pub fn sendmmsg(fd: i32, msgvec: [*]mmsghdr_const, vlen: u32, flags: u32) usize { + if (@typeInfo(usize).Int.bits > @typeInfo(@typeOf(mmsghdr(undefined).msg_len)).Int.bits) { + // workaround kernel brokenness: + // if adding up all iov_len overflows a i32 then split into multiple calls + // see https://www.openwall.com/lists/musl/2014/06/07/5 + const kvlen = if (vlen > IOV_MAX) IOV_MAX else vlen; // matches kernel + var next_unsent: usize = 0; + for (msgvec[0..kvlen]) |*msg, i| { + var size: i32 = 0; + const msg_iovlen = @intCast(usize, msg.msg_hdr.msg_iovlen); // kernel side this is treated as unsigned + for (msg.msg_hdr.msg_iov[0..msg_iovlen]) |iov, j| { + if (iov.iov_len > std.math.maxInt(i32) or @addWithOverflow(i32, size, @intCast(i32, iov.iov_len), &size)) { + // batch-send all messages up to the current message + if (next_unsent < i) { + const batch_size = i - next_unsent; + const r = syscall4(SYS_sendmmsg, @bitCast(usize, isize(fd)), @ptrToInt(&msgvec[next_unsent]), batch_size, flags); + if (getErrno(r) != 0) return next_unsent; + if (r < batch_size) return next_unsent + r; + } + // send current message as own packet + const r = sendmsg(fd, &msg.msg_hdr, flags); + if (getErrno(r) != 0) return r; + // Linux limits the total bytes sent by sendmsg to INT_MAX, so this cast is safe. + msg.msg_len = @intCast(u32, r); + next_unsent = i + 1; + break; + } + } + } + if (next_unsent < kvlen or next_unsent == 0) { // want to make sure at least one syscall occurs (e.g. to trigger MSG_EOR) + const batch_size = kvlen - next_unsent; + const r = syscall4(SYS_sendmmsg, @bitCast(usize, isize(fd)), @ptrToInt(&msgvec[next_unsent]), batch_size, flags); + if (getErrno(r) != 0) return r; + return next_unsent + r; + } + return kvlen; + } + return syscall4(SYS_sendmmsg, @bitCast(usize, isize(fd)), @ptrToInt(msgvec), vlen, flags); +} + +pub fn connect(fd: i32, addr: *const c_void, len: socklen_t) usize { + return syscall3(SYS_connect, @bitCast(usize, isize(fd)), @ptrToInt(addr), len); +} + +pub fn recvmsg(fd: i32, msg: *msghdr, flags: u32) usize { + return syscall3(SYS_recvmsg, @bitCast(usize, isize(fd)), @ptrToInt(msg), flags); +} + +pub fn recvfrom(fd: i32, noalias buf: [*]u8, len: usize, flags: u32, noalias addr: ?*sockaddr, noalias alen: ?*socklen_t) usize { + return syscall6(SYS_recvfrom, @bitCast(usize, isize(fd)), @ptrToInt(buf), len, flags, @ptrToInt(addr), @ptrToInt(alen)); +} + +pub fn shutdown(fd: i32, how: i32) usize { + return syscall2(SYS_shutdown, @bitCast(usize, isize(fd)), @bitCast(usize, isize(how))); +} + +pub fn bind(fd: i32, addr: *const sockaddr, len: socklen_t) usize { + return syscall3(SYS_bind, @bitCast(usize, isize(fd)), @ptrToInt(addr), @intCast(usize, len)); +} + +pub fn listen(fd: i32, backlog: u32) usize { + return syscall2(SYS_listen, @bitCast(usize, isize(fd)), backlog); +} + +pub fn sendto(fd: i32, buf: [*]const u8, len: usize, flags: u32, addr: ?*const sockaddr, alen: socklen_t) usize { + return syscall6(SYS_sendto, @bitCast(usize, isize(fd)), @ptrToInt(buf), len, flags, @ptrToInt(addr), @intCast(usize, alen)); +} + +pub fn socketpair(domain: i32, socket_type: i32, protocol: i32, fd: [2]i32) usize { + return syscall4(SYS_socketpair, @intCast(usize, domain), @intCast(usize, socket_type), @intCast(usize, protocol), @ptrToInt(&fd[0])); +} + +pub fn accept(fd: i32, noalias addr: *sockaddr, noalias len: *socklen_t) usize { + return accept4(fd, addr, len, 0); +} + +pub fn accept4(fd: i32, noalias addr: *sockaddr, noalias len: *socklen_t, flags: u32) usize { + return syscall4(SYS_accept4, @bitCast(usize, isize(fd)), @ptrToInt(addr), @ptrToInt(len), flags); +} + +pub fn fstat(fd: i32, stat_buf: *Stat) usize { + if (@hasDecl(@This(), "SYS_fstat64")) { + return syscall2(SYS_fstat64, @bitCast(usize, isize(fd)), @ptrToInt(stat_buf)); + } else { + return syscall2(SYS_fstat, @bitCast(usize, isize(fd)), @ptrToInt(stat_buf)); + } +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn stat(pathname: [*]const u8, statbuf: *Stat) usize { + if (@hasDecl(@This(), "SYS_stat64")) { + return syscall2(SYS_stat64, @ptrToInt(pathname), @ptrToInt(statbuf)); + } else { + return syscall2(SYS_stat, @ptrToInt(pathname), @ptrToInt(statbuf)); + } +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn lstat(pathname: [*]const u8, statbuf: *Stat) usize { + if (@hasDecl(@This(), "SYS_lstat64")) { + return syscall2(SYS_lstat64, @ptrToInt(pathname), @ptrToInt(statbuf)); + } else { + return syscall2(SYS_lstat, @ptrToInt(pathname), @ptrToInt(statbuf)); + } +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn fstatat(dirfd: i32, path: [*]const u8, stat_buf: *Stat, flags: u32) usize { + if (@hasDecl(@This(), "SYS_fstatat64")) { + return syscall4(SYS_fstatat64, @bitCast(usize, isize(dirfd)), @ptrToInt(path), @ptrToInt(stat_buf), flags); + } else { + return syscall4(SYS_fstatat, @bitCast(usize, isize(dirfd)), @ptrToInt(path), @ptrToInt(stat_buf), flags); + } +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn listxattr(path: [*]const u8, list: [*]u8, size: usize) usize { + return syscall3(SYS_listxattr, @ptrToInt(path), @ptrToInt(list), size); +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn llistxattr(path: [*]const u8, list: [*]u8, size: usize) usize { + return syscall3(SYS_llistxattr, @ptrToInt(path), @ptrToInt(list), size); +} + +pub fn flistxattr(fd: usize, list: [*]u8, size: usize) usize { + return syscall3(SYS_flistxattr, fd, @ptrToInt(list), size); +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn getxattr(path: [*]const u8, name: [*]const u8, value: [*]u8, size: usize) usize { + return syscall4(SYS_getxattr, @ptrToInt(path), @ptrToInt(name), @ptrToInt(value), size); +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn lgetxattr(path: [*]const u8, name: [*]const u8, value: [*]u8, size: usize) usize { + return syscall4(SYS_lgetxattr, @ptrToInt(path), @ptrToInt(name), @ptrToInt(value), size); +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn fgetxattr(fd: usize, name: [*]const u8, value: [*]u8, size: usize) usize { + return syscall4(SYS_lgetxattr, fd, @ptrToInt(name), @ptrToInt(value), size); +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn setxattr(path: [*]const u8, name: [*]const u8, value: *const void, size: usize, flags: usize) usize { + return syscall5(SYS_setxattr, @ptrToInt(path), @ptrToInt(name), @ptrToInt(value), size, flags); +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn lsetxattr(path: [*]const u8, name: [*]const u8, value: *const void, size: usize, flags: usize) usize { + return syscall5(SYS_lsetxattr, @ptrToInt(path), @ptrToInt(name), @ptrToInt(value), size, flags); +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn fsetxattr(fd: usize, name: [*]const u8, value: *const void, size: usize, flags: usize) usize { + return syscall5(SYS_fsetxattr, fd, @ptrToInt(name), @ptrToInt(value), size, flags); +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn removexattr(path: [*]const u8, name: [*]const u8) usize { + return syscall2(SYS_removexattr, @ptrToInt(path), @ptrToInt(name)); +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn lremovexattr(path: [*]const u8, name: [*]const u8) usize { + return syscall2(SYS_lremovexattr, @ptrToInt(path), @ptrToInt(name)); +} + +// TODO https://github.com/ziglang/zig/issues/265 +pub fn fremovexattr(fd: usize, name: [*]const u8) usize { + return syscall2(SYS_fremovexattr, fd, @ptrToInt(name)); +} + +pub fn sched_getaffinity(pid: i32, size: usize, set: *cpu_set_t) usize { + const rc = syscall3(SYS_sched_getaffinity, @bitCast(usize, isize(pid)), size, @ptrToInt(set)); + if (@bitCast(isize, rc) < 0) return rc; + if (rc < size) @memset(@ptrCast([*]u8, set) + rc, 0, size - rc); + return 0; +} + +pub fn epoll_create() usize { + return epoll_create1(0); +} + +pub fn epoll_create1(flags: usize) usize { + return syscall1(SYS_epoll_create1, flags); +} + +pub fn epoll_ctl(epoll_fd: i32, op: u32, fd: i32, ev: ?*epoll_event) usize { + return syscall4(SYS_epoll_ctl, @bitCast(usize, isize(epoll_fd)), @intCast(usize, op), @bitCast(usize, isize(fd)), @ptrToInt(ev)); +} + +pub fn epoll_wait(epoll_fd: i32, events: [*]epoll_event, maxevents: u32, timeout: i32) usize { + return epoll_pwait(epoll_fd, events, maxevents, timeout, null); +} + +pub fn epoll_pwait(epoll_fd: i32, events: [*]epoll_event, maxevents: u32, timeout: i32, sigmask: ?*sigset_t) usize { + return syscall6( + SYS_epoll_pwait, + @bitCast(usize, isize(epoll_fd)), + @ptrToInt(events), + @intCast(usize, maxevents), + @bitCast(usize, isize(timeout)), + @ptrToInt(sigmask), + @sizeOf(sigset_t), + ); +} + +pub fn eventfd(count: u32, flags: u32) usize { + return syscall2(SYS_eventfd2, count, flags); +} + +pub fn timerfd_create(clockid: i32, flags: u32) usize { + return syscall2(SYS_timerfd_create, @bitCast(usize, isize(clockid)), flags); +} + +pub const itimerspec = extern struct { + it_interval: timespec, + it_value: timespec, +}; + +pub fn timerfd_gettime(fd: i32, curr_value: *itimerspec) usize { + return syscall2(SYS_timerfd_gettime, @bitCast(usize, isize(fd)), @ptrToInt(curr_value)); +} + +pub fn timerfd_settime(fd: i32, flags: u32, new_value: *const itimerspec, old_value: ?*itimerspec) usize { + return syscall4(SYS_timerfd_settime, @bitCast(usize, isize(fd)), flags, @ptrToInt(new_value), @ptrToInt(old_value)); +} + +pub fn unshare(flags: usize) usize { + return syscall1(SYS_unshare, flags); +} + +pub fn capget(hdrp: *cap_user_header_t, datap: *cap_user_data_t) usize { + return syscall2(SYS_capget, @ptrToInt(hdrp), @ptrToInt(datap)); +} + +pub fn capset(hdrp: *cap_user_header_t, datap: *const cap_user_data_t) usize { + return syscall2(SYS_capset, @ptrToInt(hdrp), @ptrToInt(datap)); +} + +pub fn sigaltstack(ss: ?*stack_t, old_ss: ?*stack_t) usize { + return syscall2(SYS_sigaltstack, @ptrToInt(ss), @ptrToInt(old_ss)); +} + +pub fn uname(uts: *utsname) usize { + return syscall1(SYS_uname, @ptrToInt(uts)); +} + +// XXX: This should be weak +extern const __ehdr_start: elf.Ehdr = undefined; + +pub fn dl_iterate_phdr(comptime T: type, callback: extern fn (info: *dl_phdr_info, size: usize, data: ?*T) i32, data: ?*T) isize { + if (builtin.link_libc) { + return std.c.dl_iterate_phdr(@ptrCast(std.c.dl_iterate_phdr_callback, callback), @ptrCast(?*c_void, data)); + } + + const elf_base = @ptrToInt(&__ehdr_start); + const n_phdr = __ehdr_start.e_phnum; + const phdrs = (@intToPtr([*]elf.Phdr, elf_base + __ehdr_start.e_phoff))[0..n_phdr]; + + var it = dl.linkmap_iterator(phdrs) catch return 0; + + // The executable has no dynamic link segment, create a single entry for + // the whole ELF image + if (it.end()) { + var info = dl_phdr_info{ + .dlpi_addr = elf_base, + .dlpi_name = c"/proc/self/exe", + .dlpi_phdr = @intToPtr([*]elf.Phdr, elf_base + __ehdr_start.e_phoff), + .dlpi_phnum = __ehdr_start.e_phnum, + }; + + return callback(&info, @sizeOf(dl_phdr_info), data); + } + + // Last return value from the callback function + var last_r: isize = 0; + while (it.next()) |entry| { + var dlpi_phdr: usize = undefined; + var dlpi_phnum: u16 = undefined; + + if (entry.l_addr != 0) { + const elf_header = @intToPtr(*elf.Ehdr, entry.l_addr); + dlpi_phdr = entry.l_addr + elf_header.e_phoff; + dlpi_phnum = elf_header.e_phnum; + } else { + // This is the running ELF image + dlpi_phdr = elf_base + __ehdr_start.e_phoff; + dlpi_phnum = __ehdr_start.e_phnum; + } + + var info = dl_phdr_info{ + .dlpi_addr = entry.l_addr, + .dlpi_name = entry.l_name, + .dlpi_phdr = @intToPtr([*]elf.Phdr, dlpi_phdr), + .dlpi_phnum = dlpi_phnum, + }; + + last_r = callback(&info, @sizeOf(dl_phdr_info), data); + if (last_r != 0) break; + } + + return last_r; +} + +pub fn io_uring_setup(entries: u32, p: *io_uring_params) usize { + return syscall2(SYS_io_uring_setup, entries, @ptrToInt(p)); +} + +pub fn io_uring_enter(fd: i32, to_submit: u32, min_complete: u32, flags: u32, sig: ?*sigset_t) usize { + return syscall6(SYS_io_uring_enter, @bitCast(usize, isize(fd)), to_submit, min_complete, flags, @ptrToInt(sig), NSIG / 8); +} + +pub fn io_uring_register(fd: i32, opcode: u32, arg: ?*const c_void, nr_args: u32) usize { + return syscall4(SYS_io_uring_register, @bitCast(usize, isize(fd)), opcode, @ptrToInt(arg), nr_args); +} + +test "" { + if (is_the_target) { + _ = @import("linux/test.zig"); + } +} diff --git a/lib/std/os/linux/arm-eabi.zig b/lib/std/os/linux/arm-eabi.zig new file mode 100644 index 0000000000..a15234d742 --- /dev/null +++ b/lib/std/os/linux/arm-eabi.zig @@ -0,0 +1,96 @@ +pub fn syscall0(number: usize) usize { + return asm volatile ("svc #0" + : [ret] "={r0}" (-> usize) + : [number] "{r7}" (number) + : "memory" + ); +} + +pub fn syscall1(number: usize, arg1: usize) usize { + return asm volatile ("svc #0" + : [ret] "={r0}" (-> usize) + : [number] "{r7}" (number), + [arg1] "{r0}" (arg1) + : "memory" + ); +} + +pub fn syscall2(number: usize, arg1: usize, arg2: usize) usize { + return asm volatile ("svc #0" + : [ret] "={r0}" (-> usize) + : [number] "{r7}" (number), + [arg1] "{r0}" (arg1), + [arg2] "{r1}" (arg2) + : "memory" + ); +} + +pub fn syscall3(number: usize, arg1: usize, arg2: usize, arg3: usize) usize { + return asm volatile ("svc #0" + : [ret] "={r0}" (-> usize) + : [number] "{r7}" (number), + [arg1] "{r0}" (arg1), + [arg2] "{r1}" (arg2), + [arg3] "{r2}" (arg3) + : "memory" + ); +} + +pub fn syscall4(number: usize, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize { + return asm volatile ("svc #0" + : [ret] "={r0}" (-> usize) + : [number] "{r7}" (number), + [arg1] "{r0}" (arg1), + [arg2] "{r1}" (arg2), + [arg3] "{r2}" (arg3), + [arg4] "{r3}" (arg4) + : "memory" + ); +} + +pub fn syscall5(number: usize, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize { + return asm volatile ("svc #0" + : [ret] "={r0}" (-> usize) + : [number] "{r7}" (number), + [arg1] "{r0}" (arg1), + [arg2] "{r1}" (arg2), + [arg3] "{r2}" (arg3), + [arg4] "{r3}" (arg4), + [arg5] "{r4}" (arg5) + : "memory" + ); +} + +pub fn syscall6( + number: usize, + arg1: usize, + arg2: usize, + arg3: usize, + arg4: usize, + arg5: usize, + arg6: usize, +) usize { + return asm volatile ("svc #0" + : [ret] "={r0}" (-> usize) + : [number] "{r7}" (number), + [arg1] "{r0}" (arg1), + [arg2] "{r1}" (arg2), + [arg3] "{r2}" (arg3), + [arg4] "{r3}" (arg4), + [arg5] "{r4}" (arg5), + [arg6] "{r5}" (arg6) + : "memory" + ); +} + +/// This matches the libc clone function. +pub extern fn clone(func: extern fn (arg: usize) u8, stack: usize, flags: u32, arg: usize, ptid: *i32, tls: usize, ctid: *i32) usize; + +// LLVM calls this when the read-tp-hard feature is set to false. Currently, there is no way to pass +// that to llvm via zig, see https://github.com/ziglang/zig/issues/2883. +// LLVM expects libc to provide this function as __aeabi_read_tp, so it is exported if needed from special/c.zig. +pub extern fn getThreadPointer() usize { + return asm volatile ("mrc p15, 0, %[ret], c13, c0, 3" + : [ret] "=r" (-> usize) + ); +} diff --git a/lib/std/os/linux/arm64.zig b/lib/std/os/linux/arm64.zig new file mode 100644 index 0000000000..28da9af1c6 --- /dev/null +++ b/lib/std/os/linux/arm64.zig @@ -0,0 +1,87 @@ +pub fn syscall0(number: usize) usize { + return asm volatile ("svc #0" + : [ret] "={x0}" (-> usize) + : [number] "{x8}" (number) + : "memory", "cc" + ); +} + +pub fn syscall1(number: usize, arg1: usize) usize { + return asm volatile ("svc #0" + : [ret] "={x0}" (-> usize) + : [number] "{x8}" (number), + [arg1] "{x0}" (arg1) + : "memory", "cc" + ); +} + +pub fn syscall2(number: usize, arg1: usize, arg2: usize) usize { + return asm volatile ("svc #0" + : [ret] "={x0}" (-> usize) + : [number] "{x8}" (number), + [arg1] "{x0}" (arg1), + [arg2] "{x1}" (arg2) + : "memory", "cc" + ); +} + +pub fn syscall3(number: usize, arg1: usize, arg2: usize, arg3: usize) usize { + return asm volatile ("svc #0" + : [ret] "={x0}" (-> usize) + : [number] "{x8}" (number), + [arg1] "{x0}" (arg1), + [arg2] "{x1}" (arg2), + [arg3] "{x2}" (arg3) + : "memory", "cc" + ); +} + +pub fn syscall4(number: usize, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize { + return asm volatile ("svc #0" + : [ret] "={x0}" (-> usize) + : [number] "{x8}" (number), + [arg1] "{x0}" (arg1), + [arg2] "{x1}" (arg2), + [arg3] "{x2}" (arg3), + [arg4] "{x3}" (arg4) + : "memory", "cc" + ); +} + +pub fn syscall5(number: usize, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize { + return asm volatile ("svc #0" + : [ret] "={x0}" (-> usize) + : [number] "{x8}" (number), + [arg1] "{x0}" (arg1), + [arg2] "{x1}" (arg2), + [arg3] "{x2}" (arg3), + [arg4] "{x3}" (arg4), + [arg5] "{x4}" (arg5) + : "memory", "cc" + ); +} + +pub fn syscall6( + number: usize, + arg1: usize, + arg2: usize, + arg3: usize, + arg4: usize, + arg5: usize, + arg6: usize, +) usize { + return asm volatile ("svc #0" + : [ret] "={x0}" (-> usize) + : [number] "{x8}" (number), + [arg1] "{x0}" (arg1), + [arg2] "{x1}" (arg2), + [arg3] "{x2}" (arg3), + [arg4] "{x3}" (arg4), + [arg5] "{x4}" (arg5), + [arg6] "{x5}" (arg6) + : "memory", "cc" + ); +} + +/// This matches the libc clone function. +pub extern fn clone(func: extern fn (arg: usize) u8, stack: usize, flags: u32, arg: usize, ptid: *i32, tls: usize, ctid: *i32) usize; diff --git a/lib/std/os/linux/riscv64.zig b/lib/std/os/linux/riscv64.zig new file mode 100644 index 0000000000..7bfe0295d3 --- /dev/null +++ b/lib/std/os/linux/riscv64.zig @@ -0,0 +1,86 @@ +pub fn syscall0(number: usize) usize { + return asm volatile ("ecall" + : [ret] "={x10}" (-> usize) + : [number] "{x17}" (number) + : "memory" + ); +} + +pub fn syscall1(number: usize, arg1: usize) usize { + return asm volatile ("ecall" + : [ret] "={x10}" (-> usize) + : [number] "{x17}" (number), + [arg1] "{x10}" (arg1) + : "memory" + ); +} + +pub fn syscall2(number: usize, arg1: usize, arg2: usize) usize { + return asm volatile ("ecall" + : [ret] "={x10}" (-> usize) + : [number] "{x17}" (number), + [arg1] "{x10}" (arg1), + [arg2] "{x11}" (arg2) + : "memory" + ); +} + +pub fn syscall3(number: usize, arg1: usize, arg2: usize, arg3: usize) usize { + return asm volatile ("ecall" + : [ret] "={x10}" (-> usize) + : [number] "{x17}" (number), + [arg1] "{x10}" (arg1), + [arg2] "{x11}" (arg2), + [arg3] "{x12}" (arg3) + : "memory" + ); +} + +pub fn syscall4(number: usize, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize { + return asm volatile ("ecall" + : [ret] "={x10}" (-> usize) + : [number] "{x17}" (number), + [arg1] "{x10}" (arg1), + [arg2] "{x11}" (arg2), + [arg3] "{x12}" (arg3), + [arg4] "{x13}" (arg4) + : "memory" + ); +} + +pub fn syscall5(number: usize, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize { + return asm volatile ("ecall" + : [ret] "={x10}" (-> usize) + : [number] "{x17}" (number), + [arg1] "{x10}" (arg1), + [arg2] "{x11}" (arg2), + [arg3] "{x12}" (arg3), + [arg4] "{x13}" (arg4), + [arg5] "{x14}" (arg5) + : "memory" + ); +} + +pub fn syscall6( + number: usize, + arg1: usize, + arg2: usize, + arg3: usize, + arg4: usize, + arg5: usize, + arg6: usize, +) usize { + return asm volatile ("ecall" + : [ret] "={x10}" (-> usize) + : [number] "{x17}" (number), + [arg1] "{x10}" (arg1), + [arg2] "{x11}" (arg2), + [arg3] "{x12}" (arg3), + [arg4] "{x13}" (arg4), + [arg5] "{x14}" (arg5), + [arg6] "{x15}" (arg6) + : "memory" + ); +} + +pub extern fn clone(func: extern fn (arg: usize) u8, stack: usize, flags: u32, arg: usize, ptid: *i32, tls: usize, ctid: *i32) usize; diff --git a/lib/std/os/linux/test.zig b/lib/std/os/linux/test.zig new file mode 100644 index 0000000000..97bbcc402d --- /dev/null +++ b/lib/std/os/linux/test.zig @@ -0,0 +1,46 @@ +const std = @import("../../std.zig"); +const builtin = @import("builtin"); +const linux = std.os.linux; +const mem = std.mem; +const elf = std.elf; +const expect = std.testing.expect; + +test "getpid" { + expect(linux.getpid() != 0); +} + +test "timer" { + const epoll_fd = linux.epoll_create(); + var err: usize = linux.getErrno(epoll_fd); + expect(err == 0); + + const timer_fd = linux.timerfd_create(linux.CLOCK_MONOTONIC, 0); + expect(linux.getErrno(timer_fd) == 0); + + const time_interval = linux.timespec{ + .tv_sec = 0, + .tv_nsec = 2000000, + }; + + const new_time = linux.itimerspec{ + .it_interval = time_interval, + .it_value = time_interval, + }; + + err = linux.timerfd_settime(@intCast(i32, timer_fd), 0, &new_time, null); + expect(err == 0); + + var event = linux.epoll_event{ + .events = linux.EPOLLIN | linux.EPOLLOUT | linux.EPOLLET, + .data = linux.epoll_data{ .ptr = 0 }, + }; + + err = linux.epoll_ctl(@intCast(i32, epoll_fd), linux.EPOLL_CTL_ADD, @intCast(i32, timer_fd), &event); + expect(err == 0); + + const events_one: linux.epoll_event = undefined; + var events = [_]linux.epoll_event{events_one} ** 8; + + // TODO implicit cast from *[N]T to [*]T + err = linux.epoll_wait(@intCast(i32, epoll_fd), @ptrCast([*]linux.epoll_event, &events), 8, -1); +} diff --git a/lib/std/os/linux/tls.zig b/lib/std/os/linux/tls.zig new file mode 100644 index 0000000000..167839570e --- /dev/null +++ b/lib/std/os/linux/tls.zig @@ -0,0 +1,285 @@ +const std = @import("std"); +const os = std.os; +const mem = std.mem; +const elf = std.elf; +const builtin = @import("builtin"); +const assert = std.debug.assert; + +// This file implements the two TLS variants [1] used by ELF-based systems. +// +// The variant I has the following layout in memory: +// ------------------------------------------------------- +// | DTV | Zig | DTV | Alignment | TLS | +// | storage | thread data | pointer | | block | +// ------------------------^------------------------------ +// `-- The thread pointer register points here +// +// In this case we allocate additional space for our control structure that's +// placed _before_ the DTV pointer together with the DTV. +// +// NOTE: Some systems such as power64 or mips use this variant with a twist: the +// alignment is not present and the tp and DTV addresses are offset by a +// constant. +// +// On the other hand the variant II has the following layout in memory: +// --------------------------------------- +// | TLS | TCB | Zig | DTV | +// | block | | thread data | storage | +// --------^------------------------------ +// `-- The thread pointer register points here +// +// The structure of the TCB is not defined by the ABI so we reserve enough space +// for a single pointer as some architectures such as i386 and x86_64 need a +// pointer to the TCB block itself at the address pointed by the tp. +// +// In this case the control structure and DTV are placed one after another right +// after the TLS block data. +// +// At the moment the DTV is very simple since we only support static TLS, all we +// need is a two word vector to hold the number of entries (1) and the address +// of the first TLS block. +// +// [1] https://www.akkadia.org/drepper/tls.pdf + +const TLSVariant = enum { + VariantI, + VariantII, +}; + +const tls_variant = switch (builtin.arch) { + .arm, .armeb, .aarch64, .aarch64_be, .riscv32, .riscv64, .mipsel => TLSVariant.VariantI, + .x86_64, .i386 => TLSVariant.VariantII, + else => @compileError("undefined tls_variant for this architecture"), +}; + +// Controls how many bytes are reserved for the Thread Control Block +const tls_tcb_size = switch (builtin.arch) { + // ARM EABI mandates enough space for two pointers: the first one points to + // the DTV while the second one is unspecified but reserved + .arm, .armeb, .aarch64, .aarch64_be => 2 * @sizeOf(usize), + else => @sizeOf(usize), +}; + +// Controls if the TCB should be aligned according to the TLS segment p_align +const tls_tcb_align_size = switch (builtin.arch) { + .arm, .armeb, .aarch64, .aarch64_be => true, + else => false, +}; + +// Controls if the TP points to the end of the TCB instead of its beginning +const tls_tp_points_past_tcb = switch (builtin.arch) { + .riscv32, .riscv64, .mipsel, .powerpc64, .powerpc64le => true, + else => false, +}; + +// Check if the architecture-specific parameters look correct +comptime { + if (tls_tcb_align_size and tls_variant != TLSVariant.VariantI) { + @compileError("tls_tcb_align_size is only meaningful for variant I TLS"); + } +} + +// Some architectures add some offset to the tp and dtv addresses in order to +// make the generated code more efficient + +const tls_tp_offset = switch (builtin.arch) { + .mipsel => 0x7000, + else => 0, +}; + +const tls_dtv_offset = switch (builtin.arch) { + .mipsel => 0x8000, + .riscv32, .riscv64 => 0x800, + else => 0, +}; + +// Per-thread storage for Zig's use +const CustomData = packed struct {}; + +// Dynamic Thread Vector +const DTV = packed struct { + entries: usize, + tls_block: [1]usize, +}; + +// Holds all the information about the process TLS image +const TLSImage = struct { + data_src: []u8, + alloc_size: usize, + tcb_offset: usize, + dtv_offset: usize, + data_offset: usize, +}; + +pub var tls_image: ?TLSImage = null; + +pub fn setThreadPointer(addr: usize) void { + switch (builtin.arch) { + .x86_64 => { + const rc = std.os.linux.syscall2(std.os.linux.SYS_arch_prctl, std.os.linux.ARCH_SET_FS, addr); + assert(rc == 0); + }, + .aarch64 => { + asm volatile ( + \\ msr tpidr_el0, %[addr] + : + : [addr] "r" (addr) + ); + }, + .arm => |arm| { + const rc = std.os.linux.syscall1(std.os.linux.SYS_set_tls, addr); + assert(rc == 0); + }, + .riscv64 => { + asm volatile ( + \\ mv tp, %[addr] + : + : [addr] "r" (addr) + ); + }, + else => @compileError("Unsupported architecture"), + } +} + +pub fn initTLS() ?*elf.Phdr { + var tls_phdr: ?*elf.Phdr = null; + var img_base: usize = 0; + + const auxv = std.os.linux.elf_aux_maybe.?; + var at_phent: usize = undefined; + var at_phnum: usize = undefined; + var at_phdr: usize = undefined; + var at_hwcap: usize = undefined; + + var i: usize = 0; + while (auxv[i].a_type != std.elf.AT_NULL) : (i += 1) { + switch (auxv[i].a_type) { + elf.AT_PHENT => at_phent = auxv[i].a_un.a_val, + elf.AT_PHNUM => at_phnum = auxv[i].a_un.a_val, + elf.AT_PHDR => at_phdr = auxv[i].a_un.a_val, + elf.AT_HWCAP => at_hwcap = auxv[i].a_un.a_val, + else => continue, + } + } + + // Sanity check + assert(at_phent == @sizeOf(elf.Phdr)); + + // Search the TLS section + const phdrs = (@intToPtr([*]elf.Phdr, at_phdr))[0..at_phnum]; + + var gnu_stack: ?*elf.Phdr = null; + + for (phdrs) |*phdr| { + switch (phdr.p_type) { + elf.PT_PHDR => img_base = at_phdr - phdr.p_vaddr, + elf.PT_TLS => tls_phdr = phdr, + elf.PT_GNU_STACK => gnu_stack = phdr, + else => continue, + } + } + + if (tls_phdr) |phdr| { + // If the cpu is arm-based, check if it supports the TLS register + if (builtin.arch == builtin.Arch.arm and at_hwcap & std.os.linux.HWCAP_TLS == 0) { + // If the CPU does not support TLS via a coprocessor register, + // a kernel helper function can be used instead on certain linux kernels. + // See linux/arch/arm/include/asm/tls.h and musl/src/thread/arm/__set_thread_area.c. + @panic("TODO: Implement ARM fallback TLS functionality"); + } + + // Offsets into the allocated TLS area + var tcb_offset: usize = undefined; + var dtv_offset: usize = undefined; + var data_offset: usize = undefined; + var thread_data_offset: usize = undefined; + // Compute the total size of the ABI-specific data plus our own control + // structures + const alloc_size = switch (tls_variant) { + .VariantI => blk: { + var l: usize = 0; + dtv_offset = l; + l += @sizeOf(DTV); + thread_data_offset = l; + l += @sizeOf(CustomData); + l = mem.alignForward(l, phdr.p_align); + tcb_offset = l; + if (tls_tcb_align_size) { + l += mem.alignForward(tls_tcb_size, phdr.p_align); + } else { + l += tls_tcb_size; + } + data_offset = l; + l += phdr.p_memsz; + break :blk l; + }, + .VariantII => blk: { + var l: usize = 0; + data_offset = l; + l += phdr.p_memsz; + l = mem.alignForward(l, phdr.p_align); + tcb_offset = l; + l += tls_tcb_size; + thread_data_offset = l; + l += @sizeOf(CustomData); + dtv_offset = l; + l += @sizeOf(DTV); + break :blk l; + }, + }; + + tls_image = TLSImage{ + .data_src = @intToPtr([*]u8, phdr.p_vaddr + img_base)[0..phdr.p_filesz], + .alloc_size = alloc_size, + .tcb_offset = tcb_offset, + .dtv_offset = dtv_offset, + .data_offset = data_offset, + }; + } + + return gnu_stack; +} + +pub fn copyTLS(addr: usize) usize { + const tls_img = tls_image.?; + + // Be paranoid, clear the area we're going to use + @memset(@intToPtr([*]u8, addr), 0, tls_img.alloc_size); + // Prepare the DTV + const dtv = @intToPtr(*DTV, addr + tls_img.dtv_offset); + dtv.entries = 1; + dtv.tls_block[0] = addr + tls_img.data_offset + tls_dtv_offset; + // Set-up the TCB + const tcb_ptr = @intToPtr(*usize, addr + tls_img.tcb_offset); + if (tls_variant == TLSVariant.VariantI) { + tcb_ptr.* = addr + tls_img.dtv_offset; + } else { + tcb_ptr.* = addr + tls_img.tcb_offset; + } + // Copy the data + @memcpy(@intToPtr([*]u8, addr + tls_img.data_offset), tls_img.data_src.ptr, tls_img.data_src.len); + + // Return the corrected (if needed) value for the tp register + return addr + tls_tp_offset + + if (tls_tp_points_past_tcb) tls_img.data_offset else tls_img.tcb_offset; +} + +var main_thread_tls_buffer: [256]u8 align(32) = undefined; + +pub fn allocateTLS(size: usize) usize { + // Small TLS allocation, use our local buffer + if (size < main_thread_tls_buffer.len) { + return @ptrToInt(&main_thread_tls_buffer); + } + + const slice = os.mmap( + null, + size, + os.PROT_READ | os.PROT_WRITE, + os.MAP_PRIVATE | os.MAP_ANONYMOUS, + -1, + 0, + ) catch @panic("out of memory"); + + return @ptrToInt(slice.ptr); +} diff --git a/lib/std/os/linux/vdso.zig b/lib/std/os/linux/vdso.zig new file mode 100644 index 0000000000..86d54bfbf8 --- /dev/null +++ b/lib/std/os/linux/vdso.zig @@ -0,0 +1,91 @@ +const std = @import("../../std.zig"); +const elf = std.elf; +const linux = std.os.linux; +const mem = std.mem; +const maxInt = std.math.maxInt; + +pub fn lookup(vername: []const u8, name: []const u8) usize { + const vdso_addr = std.os.system.getauxval(std.elf.AT_SYSINFO_EHDR); + if (vdso_addr == 0) return 0; + + const eh = @intToPtr(*elf.Ehdr, vdso_addr); + var ph_addr: usize = vdso_addr + eh.e_phoff; + const ph = @intToPtr(*elf.Phdr, ph_addr); + + var maybe_dynv: ?[*]usize = null; + var base: usize = maxInt(usize); + { + var i: usize = 0; + while (i < eh.e_phnum) : ({ + i += 1; + ph_addr += eh.e_phentsize; + }) { + const this_ph = @intToPtr(*elf.Phdr, ph_addr); + switch (this_ph.p_type) { + elf.PT_LOAD => base = vdso_addr + this_ph.p_offset - this_ph.p_vaddr, + elf.PT_DYNAMIC => maybe_dynv = @intToPtr([*]usize, vdso_addr + this_ph.p_offset), + else => {}, + } + } + } + const dynv = maybe_dynv orelse return 0; + if (base == maxInt(usize)) return 0; + + var maybe_strings: ?[*]u8 = null; + var maybe_syms: ?[*]elf.Sym = null; + var maybe_hashtab: ?[*]linux.Elf_Symndx = null; + var maybe_versym: ?[*]u16 = null; + var maybe_verdef: ?*elf.Verdef = null; + + { + var i: usize = 0; + while (dynv[i] != 0) : (i += 2) { + const p = base + dynv[i + 1]; + switch (dynv[i]) { + elf.DT_STRTAB => maybe_strings = @intToPtr([*]u8, p), + elf.DT_SYMTAB => maybe_syms = @intToPtr([*]elf.Sym, p), + elf.DT_HASH => maybe_hashtab = @intToPtr([*]linux.Elf_Symndx, p), + elf.DT_VERSYM => maybe_versym = @intToPtr([*]u16, p), + elf.DT_VERDEF => maybe_verdef = @intToPtr(*elf.Verdef, p), + else => {}, + } + } + } + + const strings = maybe_strings orelse return 0; + const syms = maybe_syms orelse return 0; + const hashtab = maybe_hashtab orelse return 0; + if (maybe_verdef == null) maybe_versym = null; + + const OK_TYPES = (1 << elf.STT_NOTYPE | 1 << elf.STT_OBJECT | 1 << elf.STT_FUNC | 1 << elf.STT_COMMON); + const OK_BINDS = (1 << elf.STB_GLOBAL | 1 << elf.STB_WEAK | 1 << elf.STB_GNU_UNIQUE); + + var i: usize = 0; + while (i < hashtab[1]) : (i += 1) { + if (0 == (u32(1) << @intCast(u5, syms[i].st_info & 0xf) & OK_TYPES)) continue; + if (0 == (u32(1) << @intCast(u5, syms[i].st_info >> 4) & OK_BINDS)) continue; + if (0 == syms[i].st_shndx) continue; + if (!mem.eql(u8, name, mem.toSliceConst(u8, strings + syms[i].st_name))) continue; + if (maybe_versym) |versym| { + if (!checkver(maybe_verdef.?, versym[i], vername, strings)) + continue; + } + return base + syms[i].st_value; + } + + return 0; +} + +fn checkver(def_arg: *elf.Verdef, vsym_arg: i32, vername: []const u8, strings: [*]u8) bool { + var def = def_arg; + const vsym = @bitCast(u32, vsym_arg) & 0x7fff; + while (true) { + if (0 == (def.vd_flags & elf.VER_FLG_BASE) and (def.vd_ndx & 0x7fff) == vsym) + break; + if (def.vd_next == 0) + return false; + def = @intToPtr(*elf.Verdef, @ptrToInt(def) + def.vd_next); + } + const aux = @intToPtr(*elf.Verdaux, @ptrToInt(def) + def.vd_aux); + return mem.eql(u8, vername, mem.toSliceConst(u8, strings + aux.vda_name)); +} diff --git a/lib/std/os/linux/x86_64.zig b/lib/std/os/linux/x86_64.zig new file mode 100644 index 0000000000..0f3a36636a --- /dev/null +++ b/lib/std/os/linux/x86_64.zig @@ -0,0 +1,97 @@ +usingnamespace @import("../bits.zig"); + +pub fn syscall0(number: usize) usize { + return asm volatile ("syscall" + : [ret] "={rax}" (-> usize) + : [number] "{rax}" (number) + : "rcx", "r11", "memory" + ); +} + +pub fn syscall1(number: usize, arg1: usize) usize { + return asm volatile ("syscall" + : [ret] "={rax}" (-> usize) + : [number] "{rax}" (number), + [arg1] "{rdi}" (arg1) + : "rcx", "r11", "memory" + ); +} + +pub fn syscall2(number: usize, arg1: usize, arg2: usize) usize { + return asm volatile ("syscall" + : [ret] "={rax}" (-> usize) + : [number] "{rax}" (number), + [arg1] "{rdi}" (arg1), + [arg2] "{rsi}" (arg2) + : "rcx", "r11", "memory" + ); +} + +pub fn syscall3(number: usize, arg1: usize, arg2: usize, arg3: usize) usize { + return asm volatile ("syscall" + : [ret] "={rax}" (-> usize) + : [number] "{rax}" (number), + [arg1] "{rdi}" (arg1), + [arg2] "{rsi}" (arg2), + [arg3] "{rdx}" (arg3) + : "rcx", "r11", "memory" + ); +} + +pub fn syscall4(number: usize, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize { + return asm volatile ("syscall" + : [ret] "={rax}" (-> usize) + : [number] "{rax}" (number), + [arg1] "{rdi}" (arg1), + [arg2] "{rsi}" (arg2), + [arg3] "{rdx}" (arg3), + [arg4] "{r10}" (arg4) + : "rcx", "r11", "memory" + ); +} + +pub fn syscall5(number: usize, arg1: usize, arg2: usize, arg3: usize, arg4: usize, arg5: usize) usize { + return asm volatile ("syscall" + : [ret] "={rax}" (-> usize) + : [number] "{rax}" (number), + [arg1] "{rdi}" (arg1), + [arg2] "{rsi}" (arg2), + [arg3] "{rdx}" (arg3), + [arg4] "{r10}" (arg4), + [arg5] "{r8}" (arg5) + : "rcx", "r11", "memory" + ); +} + +pub fn syscall6( + number: usize, + arg1: usize, + arg2: usize, + arg3: usize, + arg4: usize, + arg5: usize, + arg6: usize, +) usize { + return asm volatile ("syscall" + : [ret] "={rax}" (-> usize) + : [number] "{rax}" (number), + [arg1] "{rdi}" (arg1), + [arg2] "{rsi}" (arg2), + [arg3] "{rdx}" (arg3), + [arg4] "{r10}" (arg4), + [arg5] "{r8}" (arg5), + [arg6] "{r9}" (arg6) + : "rcx", "r11", "memory" + ); +} + +/// This matches the libc clone function. +pub extern fn clone(func: extern fn (arg: usize) u8, stack: usize, flags: usize, arg: usize, ptid: *i32, tls: usize, ctid: *i32) usize; + +pub nakedcc fn restore_rt() void { + return asm volatile ("syscall" + : + : [number] "{rax}" (usize(SYS_rt_sigreturn)) + : "rcx", "r11" + ); +} diff --git a/lib/std/os/netbsd.zig b/lib/std/os/netbsd.zig new file mode 100644 index 0000000000..d484e7374b --- /dev/null +++ b/lib/std/os/netbsd.zig @@ -0,0 +1,5 @@ +const builtin = @import("builtin"); +const std = @import("../std.zig"); +pub const is_the_target = builtin.os == .netbsd; +pub usingnamespace std.c; +pub usingnamespace @import("bits.zig"); diff --git a/lib/std/os/test.zig b/lib/std/os/test.zig new file mode 100644 index 0000000000..87d57b36c0 --- /dev/null +++ b/lib/std/os/test.zig @@ -0,0 +1,225 @@ +const std = @import("../std.zig"); +const os = std.os; +const testing = std.testing; +const expect = std.testing.expect; +const io = std.io; +const fs = std.fs; +const mem = std.mem; +const elf = std.elf; +const File = std.fs.File; +const Thread = std.Thread; + +const a = std.debug.global_allocator; + +const builtin = @import("builtin"); +const AtomicRmwOp = builtin.AtomicRmwOp; +const AtomicOrder = builtin.AtomicOrder; + +test "makePath, put some files in it, deleteTree" { + try fs.makePath(a, "os_test_tmp" ++ fs.path.sep_str ++ "b" ++ fs.path.sep_str ++ "c"); + try io.writeFile("os_test_tmp" ++ fs.path.sep_str ++ "b" ++ fs.path.sep_str ++ "c" ++ fs.path.sep_str ++ "file.txt", "nonsense"); + try io.writeFile("os_test_tmp" ++ fs.path.sep_str ++ "b" ++ fs.path.sep_str ++ "file2.txt", "blah"); + try fs.deleteTree(a, "os_test_tmp"); + if (fs.Dir.open(a, "os_test_tmp")) |dir| { + @panic("expected error"); + } else |err| { + expect(err == error.FileNotFound); + } +} + +test "access file" { + try fs.makePath(a, "os_test_tmp"); + if (File.access("os_test_tmp" ++ fs.path.sep_str ++ "file.txt")) |ok| { + @panic("expected error"); + } else |err| { + expect(err == error.FileNotFound); + } + + try io.writeFile("os_test_tmp" ++ fs.path.sep_str ++ "file.txt", ""); + try os.access("os_test_tmp" ++ fs.path.sep_str ++ "file.txt", os.F_OK); + try fs.deleteTree(a, "os_test_tmp"); +} + +fn testThreadIdFn(thread_id: *Thread.Id) void { + thread_id.* = Thread.getCurrentId(); +} + +test "std.Thread.getCurrentId" { + if (builtin.single_threaded) return error.SkipZigTest; + + var thread_current_id: Thread.Id = undefined; + const thread = try Thread.spawn(&thread_current_id, testThreadIdFn); + const thread_id = thread.handle(); + thread.wait(); + if (Thread.use_pthreads) { + expect(thread_current_id == thread_id); + } else if (os.windows.is_the_target) { + expect(Thread.getCurrentId() != thread_current_id); + } else { + // If the thread completes very quickly, then thread_id can be 0. See the + // documentation comments for `std.Thread.handle`. + expect(thread_id == 0 or thread_current_id == thread_id); + } +} + +test "spawn threads" { + if (builtin.single_threaded) return error.SkipZigTest; + + var shared_ctx: i32 = 1; + + const thread1 = try Thread.spawn({}, start1); + const thread2 = try Thread.spawn(&shared_ctx, start2); + const thread3 = try Thread.spawn(&shared_ctx, start2); + const thread4 = try Thread.spawn(&shared_ctx, start2); + + thread1.wait(); + thread2.wait(); + thread3.wait(); + thread4.wait(); + + expect(shared_ctx == 4); +} + +fn start1(ctx: void) u8 { + return 0; +} + +fn start2(ctx: *i32) u8 { + _ = @atomicRmw(i32, ctx, AtomicRmwOp.Add, 1, AtomicOrder.SeqCst); + return 0; +} + +test "cpu count" { + const cpu_count = try Thread.cpuCount(); + expect(cpu_count >= 1); +} + +test "AtomicFile" { + if (builtin.arch == .aarch64 and builtin.glibc_version != null) { + // TODO https://github.com/ziglang/zig/issues/3288 + return error.SkipZigTest; + } + var buffer: [1024]u8 = undefined; + const allocator = &std.heap.FixedBufferAllocator.init(buffer[0..]).allocator; + const test_out_file = "tmp_atomic_file_test_dest.txt"; + const test_content = + \\ hello! + \\ this is a test file + ; + { + var af = try fs.AtomicFile.init(test_out_file, File.default_mode); + defer af.deinit(); + try af.file.write(test_content); + try af.finish(); + } + const content = try io.readFileAlloc(allocator, test_out_file); + expect(mem.eql(u8, content, test_content)); + + try fs.deleteFile(test_out_file); +} + +test "thread local storage" { + if (builtin.single_threaded) return error.SkipZigTest; + const thread1 = try Thread.spawn({}, testTls); + const thread2 = try Thread.spawn({}, testTls); + testTls({}); + thread1.wait(); + thread2.wait(); +} + +threadlocal var x: i32 = 1234; +fn testTls(context: void) void { + if (x != 1234) @panic("bad start value"); + x += 1; + if (x != 1235) @panic("bad end value"); +} + +test "getrandom" { + var buf_a: [50]u8 = undefined; + var buf_b: [50]u8 = undefined; + try os.getrandom(&buf_a); + try os.getrandom(&buf_b); + // If this test fails the chance is significantly higher that there is a bug than + // that two sets of 50 bytes were equal. + expect(!mem.eql(u8, buf_a, buf_b)); +} + +test "getcwd" { + // at least call it so it gets compiled + var buf: [std.fs.MAX_PATH_BYTES]u8 = undefined; + _ = os.getcwd(&buf) catch undefined; +} + +test "realpath" { + var buf: [std.fs.MAX_PATH_BYTES]u8 = undefined; + testing.expectError(error.FileNotFound, fs.realpath("definitely_bogus_does_not_exist1234", &buf)); +} + +test "sigaltstack" { + if (builtin.os == .windows or builtin.os == .wasi) return error.SkipZigTest; + + var st: os.stack_t = undefined; + try os.sigaltstack(null, &st); + // Setting a stack size less than MINSIGSTKSZ returns ENOMEM + st.ss_flags = 0; + st.ss_size = 1; + testing.expectError(error.SizeTooSmall, os.sigaltstack(&st, null)); +} + +// If the type is not available use void to avoid erroring out when `iter_fn` is +// analyzed +const dl_phdr_info = if (@hasDecl(os, "dl_phdr_info")) os.dl_phdr_info else c_void; + +export fn iter_fn(info: *dl_phdr_info, size: usize, data: ?*usize) i32 { + if (builtin.os == .windows or builtin.os == .wasi or builtin.os == .macosx) + return 0; + + var counter = data.?; + // Count how many libraries are loaded + counter.* += usize(1); + + // The image should contain at least a PT_LOAD segment + if (info.dlpi_phnum < 1) return -1; + + // Quick & dirty validation of the phdr pointers, make sure we're not + // pointing to some random gibberish + var i: usize = 0; + var found_load = false; + while (i < info.dlpi_phnum) : (i += 1) { + const phdr = info.dlpi_phdr[i]; + + if (phdr.p_type != elf.PT_LOAD) continue; + + // Find the ELF header + const elf_header = @intToPtr(*elf.Ehdr, phdr.p_vaddr - phdr.p_offset); + // Validate the magic + if (!mem.eql(u8, elf_header.e_ident[0..4], "\x7fELF")) return -1; + // Consistency check + if (elf_header.e_phnum != info.dlpi_phnum) return -1; + + found_load = true; + break; + } + + if (!found_load) return -1; + + return 42; +} + +test "dl_iterate_phdr" { + if (builtin.os == .windows or builtin.os == .wasi or builtin.os == .macosx) + return error.SkipZigTest; + + var counter: usize = 0; + expect(os.dl_iterate_phdr(usize, iter_fn, &counter) != 0); + expect(counter != 0); +} + +test "gethostname" { + if (os.windows.is_the_target) + return error.SkipZigTest; + + var buf: [os.HOST_NAME_MAX]u8 = undefined; + const hostname = try os.gethostname(&buf); + expect(hostname.len != 0); +} diff --git a/lib/std/os/uefi.zig b/lib/std/os/uefi.zig new file mode 100644 index 0000000000..db46d50c1f --- /dev/null +++ b/lib/std/os/uefi.zig @@ -0,0 +1,45 @@ +pub const protocols = @import("uefi/protocols.zig"); +pub const status = @import("uefi/status.zig"); +pub const tables = @import("uefi/tables.zig"); + +const builtin = @import("builtin"); +pub const is_the_target = builtin.os == .uefi; + +pub var handle: Handle = undefined; +pub var system_table: *tables.SystemTable = undefined; + +pub const Event = *@OpaqueType(); +// GUIDs must be align(8) +pub const Guid = extern struct { + time_low: u32, + time_mid: u16, + time_high_and_version: u16, + clock_seq_high_and_reserved: u8, + clock_seq_low: u8, + node: [6]u8, +}; +pub const Handle = *@OpaqueType(); +pub const Time = extern struct { + year: u16, + month: u8, + day: u8, + hour: u8, + minute: u8, + second: u8, + _pad1: u8, + nanosecond: u32, + timezone: i16, + daylight: packed struct { + _pad1: u6, + in_daylight: bool, + adjust_daylight: bool, + }, + _pad2: u8, + + pub const unspecified_timezone: i16 = 0x7ff; +}; +pub const TimeCapabilities = extern struct { + resolution: u32, + accuracy: u32, + sets_to_zero: bool, +}; diff --git a/lib/std/os/uefi/protocols.zig b/lib/std/os/uefi/protocols.zig new file mode 100644 index 0000000000..2c8d870af0 --- /dev/null +++ b/lib/std/os/uefi/protocols.zig @@ -0,0 +1,32 @@ +pub const InputKey = @import("protocols/simple_text_input_ex_protocol.zig").InputKey; +pub const KeyData = @import("protocols/simple_text_input_ex_protocol.zig").KeyData; +pub const KeyState = @import("protocols/simple_text_input_ex_protocol.zig").KeyState; +pub const SimpleTextInputExProtocol = @import("protocols/simple_text_input_ex_protocol.zig").SimpleTextInputExProtocol; + +pub const SimpleTextOutputMode = @import("protocols/simple_text_output_protocol.zig").SimpleTextOutputMode; +pub const SimpleTextOutputProtocol = @import("protocols/simple_text_output_protocol.zig").SimpleTextOutputProtocol; + +pub const SimplePointerMode = @import("protocols/simple_pointer_protocol.zig").SimplePointerMode; +pub const SimplePointerProtocol = @import("protocols/simple_pointer_protocol.zig").SimplePointerProtocol; +pub const SimplePointerState = @import("protocols/simple_pointer_protocol.zig").SimplePointerState; + +pub const AbsolutePointerMode = @import("protocols/absolute_pointer_protocol.zig").AbsolutePointerMode; +pub const AbsolutePointerProtocol = @import("protocols/absolute_pointer_protocol.zig").AbsolutePointerProtocol; +pub const AbsolutePointerState = @import("protocols/absolute_pointer_protocol.zig").AbsolutePointerState; + +pub const GraphicsOutputBltPixel = @import("protocols/graphics_output_protocol.zig").GraphicsOutputBltPixel; +pub const GraphicsOutputBltOperation = @import("protocols/graphics_output_protocol.zig").GraphicsOutputBltOperation; +pub const GraphicsOutputModeInformation = @import("protocols/graphics_output_protocol.zig").GraphicsOutputModeInformation; +pub const GraphicsOutputProtocol = @import("protocols/graphics_output_protocol.zig").GraphicsOutputProtocol; +pub const GraphicsOutputProtocolMode = @import("protocols/graphics_output_protocol.zig").GraphicsOutputProtocolMode; +pub const GraphicsPixelFormat = @import("protocols/graphics_output_protocol.zig").GraphicsPixelFormat; +pub const PixelBitmask = @import("protocols/graphics_output_protocol.zig").PixelBitmask; + +pub const EdidDiscoveredProtocol = @import("protocols/edid_discovered_protocol.zig").EdidDiscoveredProtocol; + +pub const EdidActiveProtocol = @import("protocols/edid_active_protocol.zig").EdidActiveProtocol; + +pub const EdidOverrideProtocol = @import("protocols/edid_override_protocol.zig").EdidOverrideProtocol; +pub const EdidOverrideProtocolAttributes = @import("protocols/edid_override_protocol.zig").EdidOverrideProtocolAttributes; + +pub const RNGProtocol = @import("protocols/rng_protocol.zig").RNGProtocol; diff --git a/lib/std/os/uefi/protocols/absolute_pointer_protocol.zig b/lib/std/os/uefi/protocols/absolute_pointer_protocol.zig new file mode 100644 index 0000000000..df5a930319 --- /dev/null +++ b/lib/std/os/uefi/protocols/absolute_pointer_protocol.zig @@ -0,0 +1,53 @@ +const uefi = @import("std").os.uefi; +const Event = uefi.Event; +const Guid = uefi.Guid; + +/// UEFI Specification, Version 2.8, 12.7 +pub const AbsolutePointerProtocol = extern struct { + _reset: extern fn (*const AbsolutePointerProtocol, bool) usize, + _get_state: extern fn (*const AbsolutePointerProtocol, *AbsolutePointerState) usize, + wait_for_input: Event, + mode: *AbsolutePointerMode, + + pub fn reset(self: *const AbsolutePointerProtocol, verify: bool) usize { + return self._reset(self, verify); + } + + pub fn getState(self: *const AbsolutePointerProtocol, state: *AbsolutePointerState) usize { + return self._get_state(self, state); + } + + pub const guid align(8) = Guid{ + .time_low = 0x8d59d32b, + .time_mid = 0xc655, + .time_high_and_version = 0x4ae9, + .clock_seq_high_and_reserved = 0x9b, + .clock_seq_low = 0x15, + .node = [_]u8{ 0xf2, 0x59, 0x04, 0x99, 0x2a, 0x43 }, + }; +}; + +pub const AbsolutePointerMode = extern struct { + absolute_min_x: u64, + absolute_min_y: u64, + absolute_min_z: u64, + absolute_max_x: u64, + absolute_max_y: u64, + absolute_max_z: u64, + attributes: packed struct { + supports_alt_active: bool, + supports_pressure_as_z: bool, + _pad1: u30, + }, +}; + +pub const AbsolutePointerState = extern struct { + current_x: u64 = undefined, + current_y: u64 = undefined, + current_z: u64 = undefined, + active_buttons: packed struct { + touch_active: bool, + alt_active: bool, + _pad1: u30, + } = undefined, +}; diff --git a/lib/std/os/uefi/protocols/edid_active_protocol.zig b/lib/std/os/uefi/protocols/edid_active_protocol.zig new file mode 100644 index 0000000000..1a96cb6cd5 --- /dev/null +++ b/lib/std/os/uefi/protocols/edid_active_protocol.zig @@ -0,0 +1,17 @@ +const uefi = @import("std").os.uefi; +const Guid = uefi.Guid; + +/// UEFI Specification, Version 2.8, 12.9 +pub const EdidActiveProtocol = extern struct { + size_of_edid: u32, + edid: ?[*]u8, + + pub const guid align(8) = Guid{ + .time_low = 0xbd8c1056, + .time_mid = 0x9f36, + .time_high_and_version = 0x44ec, + .clock_seq_high_and_reserved = 0x92, + .clock_seq_low = 0xa8, + .node = [_]u8{ 0xa6, 0x33, 0x7f, 0x81, 0x79, 0x86 }, + }; +}; diff --git a/lib/std/os/uefi/protocols/edid_discovered_protocol.zig b/lib/std/os/uefi/protocols/edid_discovered_protocol.zig new file mode 100644 index 0000000000..f68b0fa3d6 --- /dev/null +++ b/lib/std/os/uefi/protocols/edid_discovered_protocol.zig @@ -0,0 +1,17 @@ +const uefi = @import("std").os.uefi; +const Guid = uefi.Guid; + +/// UEFI Specification, Version 2.8, 12.9 +pub const EdidDiscoveredProtocol = extern struct { + size_of_edid: u32, + edid: ?[*]u8, + + pub const guid align(8) = Guid{ + .time_low = 0x1c0c34f6, + .time_mid = 0xd380, + .time_high_and_version = 0x41fa, + .clock_seq_high_and_reserved = 0xa0, + .clock_seq_low = 0x49, + .node = [_]u8{ 0x8a, 0xd0, 0x6c, 0x1a, 0x66, 0xaa }, + }; +}; diff --git a/lib/std/os/uefi/protocols/edid_override_protocol.zig b/lib/std/os/uefi/protocols/edid_override_protocol.zig new file mode 100644 index 0000000000..ad2eec1207 --- /dev/null +++ b/lib/std/os/uefi/protocols/edid_override_protocol.zig @@ -0,0 +1,28 @@ +const uefi = @import("std").os.uefi; +const Guid = uefi.Guid; +const Handle = uefi.Handle; + +/// UEFI Specification, Version 2.8, 12.9 +pub const EdidOverrideProtocol = extern struct { + _get_edid: extern fn (*const EdidOverrideProtocol, Handle, *u32, *usize, *?[*]u8) usize, + + /// attributes must be align(4) + pub fn getEdid(self: *const EdidOverrideProtocol, handle: Handle, attributes: *EdidOverrideProtocolAttributes, edid_size: *usize, edid: *?[*]u8) usize { + return self._get_edid(self, handle, attributes, edid_size, edid); + } + + pub const guid align(8) = Guid{ + .time_low = 0x48ecb431, + .time_mid = 0xfb72, + .time_high_and_version = 0x45c0, + .clock_seq_high_and_reserved = 0xa9, + .clock_seq_low = 0x22, + .node = [_]u8{ 0xf4, 0x58, 0xfe, 0x04, 0x0b, 0xd5 }, + }; +}; + +pub const EdidOverrideProtocolAttributes = packed struct { + dont_override: bool, + enable_hot_plug: bool, + _pad1: u30, +}; diff --git a/lib/std/os/uefi/protocols/graphics_output_protocol.zig b/lib/std/os/uefi/protocols/graphics_output_protocol.zig new file mode 100644 index 0000000000..4713df0501 --- /dev/null +++ b/lib/std/os/uefi/protocols/graphics_output_protocol.zig @@ -0,0 +1,79 @@ +const uefi = @import("std").os.uefi; +const Guid = uefi.Guid; + +/// UEFI Specification, Version 2.8, 12.9 +pub const GraphicsOutputProtocol = extern struct { + _query_mode: extern fn (*const GraphicsOutputProtocol, u32, *usize, **GraphicsOutputModeInformation) usize, + _set_mode: extern fn (*const GraphicsOutputProtocol, u32) usize, + _blt: extern fn (*const GraphicsOutputProtocol, ?[*]GraphicsOutputBltPixel, GraphicsOutputBltOperation, usize, usize, usize, usize, usize, usize, usize) usize, + mode: *GraphicsOutputProtocolMode, + + pub fn queryMode(self: *const GraphicsOutputProtocol, mode: u32, size_of_info: *usize, info: **GraphicsOutputModeInformation) usize { + return self._query_mode(self, mode, size_of_info, info); + } + + pub fn setMode(self: *const GraphicsOutputProtocol, mode: u32) usize { + return self._set_mode(self, mode); + } + + pub fn blt(self: *const GraphicsOutputProtocol, blt_buffer: ?[*]GraphicsOutputBltPixel, blt_operation: GraphicsOutputBltOperation, source_x: usize, source_y: usize, destination_x: usize, destination_y: usize, width: usize, height: usize, delta: usize) usize { + return self._blt(self, blt_buffer, blt_operation, source_x, source_y, destination_x, destination_y, width, height, delta); + } + + pub const guid align(8) = Guid{ + .time_low = 0x9042a9de, + .time_mid = 0x23dc, + .time_high_and_version = 0x4a38, + .clock_seq_high_and_reserved = 0x96, + .clock_seq_low = 0xfb, + .node = [_]u8{ 0x7a, 0xde, 0xd0, 0x80, 0x51, 0x6a }, + }; +}; + +pub const GraphicsOutputProtocolMode = extern struct { + max_mode: u32, + mode: u32, + info: *GraphicsOutputModeInformation, + size_of_info: usize, + frame_buffer_base: u64, + frame_buffer_size: usize, +}; + +pub const GraphicsOutputModeInformation = extern struct { + version: u32 = undefined, + horizontal_resolution: u32 = undefined, + vertical_resolution: u32 = undefined, + pixel_format: GraphicsPixelFormat = undefined, + pixel_information: PixelBitmask = undefined, + pixels_per_scan_line: u32 = undefined, +}; + +pub const GraphicsPixelFormat = extern enum(u32) { + PixelRedGreenBlueReserved8BitPerColor, + PixelBlueGreenRedReserved8BitPerColor, + PixelBitMask, + PixelBltOnly, + PixelFormatMax, +}; + +pub const PixelBitmask = extern struct { + red_mask: u32, + green_mask: u32, + blue_mask: u32, + reserved_mask: u32, +}; + +pub const GraphicsOutputBltPixel = extern struct { + blue: u8, + green: u8, + red: u8, + reserved: u8 = undefined, +}; + +pub const GraphicsOutputBltOperation = extern enum(u32) { + BltVideoFill, + BltVideoToBltBuffer, + BltBufferToVideo, + BltVideoToVideo, + GraphicsOutputBltOperationMax, +}; diff --git a/lib/std/os/uefi/protocols/rng_protocol.zig b/lib/std/os/uefi/protocols/rng_protocol.zig new file mode 100644 index 0000000000..565832caf9 --- /dev/null +++ b/lib/std/os/uefi/protocols/rng_protocol.zig @@ -0,0 +1,73 @@ +const uefi = @import("std").os.uefi; +const Guid = uefi.Guid; + +/// UEFI Specification, Version 2.8, 37.5 +pub const RNGProtocol = extern struct { + _get_info: extern fn (*const RNGProtocol, *usize, [*]align(8) Guid) usize, + _get_rng: extern fn (*const RNGProtocol, ?*align(8) const Guid, usize, [*]u8) usize, + + pub fn getInfo(self: *const RNGProtocol, list_size: *usize, list: [*]align(8) Guid) usize { + return self._get_info(self, list_size, list); + } + + pub fn getRNG(self: *const RNGProtocol, algo: ?*const Guid, value_length: usize, value: [*]u8) usize { + return self._get_rng(self, algo, value_length, value); + } + + pub const guid align(8) = Guid{ + .time_low = 0x3152bca5, + .time_mid = 0xeade, + .time_high_and_version = 0x433d, + .clock_seq_high_and_reserved = 0x86, + .clock_seq_low = 0x2e, + .node = [_]u8{ 0xc0, 0x1c, 0xdc, 0x29, 0x1f, 0x44 }, + }; + pub const algorithm_sp800_90_hash_256 align(8) = Guid{ + .time_low = 0xa7af67cb, + .time_mid = 0x603b, + .time_high_and_version = 0x4d42, + .clock_seq_high_and_reserved = 0xba, + .clock_seq_low = 0x21, + .node = [_]u8{ 0x70, 0xbf, 0xb6, 0x29, 0x3f, 0x96 }, + }; + pub const algorithm_sp800_90_hmac_256 align(8) = Guid{ + .time_low = 0xc5149b43, + .time_mid = 0xae85, + .time_high_and_version = 0x4f53, + .clock_seq_high_and_reserved = 0x99, + .clock_seq_low = 0x82, + .node = [_]u8{ 0xb9, 0x43, 0x35, 0xd3, 0xa9, 0xe7 }, + }; + pub const algorithm_sp800_90_ctr_256 align(8) = Guid{ + .time_low = 0x44f0de6e, + .time_mid = 0x4d8c, + .time_high_and_version = 0x4045, + .clock_seq_high_and_reserved = 0xa8, + .clock_seq_low = 0xc7, + .node = [_]u8{ 0x4d, 0xd1, 0x68, 0x85, 0x6b, 0x9e }, + }; + pub const algorithm_x9_31_3des align(8) = Guid{ + .time_low = 0x63c4785a, + .time_mid = 0xca34, + .time_high_and_version = 0x4012, + .clock_seq_high_and_reserved = 0xa3, + .clock_seq_low = 0xc8, + .node = [_]u8{ 0x0b, 0x6a, 0x32, 0x4f, 0x55, 0x46 }, + }; + pub const algorithm_x9_31_aes align(8) = Guid{ + .time_low = 0xacd03321, + .time_mid = 0x777e, + .time_high_and_version = 0x4d3d, + .clock_seq_high_and_reserved = 0xb1, + .clock_seq_low = 0xc8, + .node = [_]u8{ 0x20, 0xcf, 0xd8, 0x88, 0x20, 0xc9 }, + }; + pub const algorithm_raw align(8) = Guid{ + .time_low = 0xe43176d7, + .time_mid = 0xb6e8, + .time_high_and_version = 0x4827, + .clock_seq_high_and_reserved = 0xb7, + .clock_seq_low = 0x84, + .node = [_]u8{ 0x7f, 0xfd, 0xc4, 0xb6, 0x85, 0x61 }, + }; +}; diff --git a/lib/std/os/uefi/protocols/simple_pointer_protocol.zig b/lib/std/os/uefi/protocols/simple_pointer_protocol.zig new file mode 100644 index 0000000000..369bc76aaa --- /dev/null +++ b/lib/std/os/uefi/protocols/simple_pointer_protocol.zig @@ -0,0 +1,44 @@ +const uefi = @import("std").os.uefi; +const Event = uefi.Event; +const Guid = uefi.Guid; + +/// UEFI Specification, Version 2.8, 12.5 +pub const SimplePointerProtocol = struct { + _reset: extern fn (*const SimplePointerProtocol, bool) usize, + _get_state: extern fn (*const SimplePointerProtocol, *SimplePointerState) usize, + wait_for_input: Event, + mode: *SimplePointerMode, + + pub fn reset(self: *const SimplePointerProtocol, verify: bool) usize { + return self._reset(self, verify); + } + + pub fn getState(self: *const SimplePointerProtocol, state: *SimplePointerState) usize { + return self._get_state(self, state); + } + + pub const guid align(8) = Guid{ + .time_low = 0x31878c87, + .time_mid = 0x0b75, + .time_high_and_version = 0x11d5, + .clock_seq_high_and_reserved = 0x9a, + .clock_seq_low = 0x4f, + .node = [_]u8{ 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d }, + }; +}; + +pub const SimplePointerMode = struct { + resolution_x: u64, + resolution_y: u64, + resolution_z: u64, + left_button: bool, + right_button: bool, +}; + +pub const SimplePointerState = struct { + relative_movement_x: i32 = undefined, + relative_movement_y: i32 = undefined, + relative_movement_z: i32 = undefined, + left_button: bool = undefined, + right_button: bool = undefined, +}; diff --git a/lib/std/os/uefi/protocols/simple_text_input_ex_protocol.zig b/lib/std/os/uefi/protocols/simple_text_input_ex_protocol.zig new file mode 100644 index 0000000000..5507b8950c --- /dev/null +++ b/lib/std/os/uefi/protocols/simple_text_input_ex_protocol.zig @@ -0,0 +1,77 @@ +const uefi = @import("std").os.uefi; +const Event = uefi.Event; +const Guid = uefi.Guid; + +/// UEFI Specification, Version 2.8, 12.3 +pub const SimpleTextInputExProtocol = extern struct { + _reset: extern fn (*const SimpleTextInputExProtocol, bool) usize, + _read_key_stroke_ex: extern fn (*const SimpleTextInputExProtocol, *KeyData) usize, + wait_for_key_ex: Event, + _set_state: extern fn (*const SimpleTextInputExProtocol, *const u8) usize, + _register_key_notify: extern fn (*const SimpleTextInputExProtocol, *const KeyData, extern fn (*const KeyData) usize, **c_void) usize, + _unregister_key_notify: extern fn (*const SimpleTextInputExProtocol, *const c_void) usize, + + pub fn reset(self: *const SimpleTextInputExProtocol, verify: bool) usize { + return self._reset(self, verify); + } + + pub fn readKeyStrokeEx(self: *const SimpleTextInputExProtocol, key_data: *KeyData) usize { + return self._read_key_stroke_ex(self, key_data); + } + + pub fn setState(self: *const SimpleTextInputExProtocol, state: *const u8) usize { + return self._set_state(self, state); + } + + pub fn registerKeyNotify(self: *const SimpleTextInputExProtocol, key_data: *const KeyData, notify: extern fn (*const KeyData) usize, handle: **c_void) usize { + return self._register_key_notify(self, key_data, notify, handle); + } + + pub fn unregisterKeyNotify(self: *const SimpleTextInputExProtocol, handle: *const c_void) usize { + return self._unregister_key_notify(self, handle); + } + + pub const guid align(8) = Guid{ + .time_low = 0xdd9e7534, + .time_mid = 0x7762, + .time_high_and_version = 0x4698, + .clock_seq_high_and_reserved = 0x8c, + .clock_seq_low = 0x14, + .node = [_]u8{ 0xf5, 0x85, 0x17, 0xa6, 0x25, 0xaa }, + }; +}; + +pub const KeyData = extern struct { + key: InputKey = undefined, + key_state: KeyState = undefined, +}; + +pub const KeyState = extern struct { + key_shift_state: packed struct { + right_shift_pressed: bool, + left_shift_pressed: bool, + right_control_pressed: bool, + left_control_pressed: bool, + right_alt_pressed: bool, + left_alt_pressed: bool, + right_logo_pressed: bool, + left_logo_pressed: bool, + menu_key_pressed: bool, + sys_req_pressed: bool, + _pad1: u21, + shift_state_valid: bool, + }, + key_toggle_state: packed struct { + scroll_lock_active: bool, + num_lock_active: bool, + caps_lock_active: bool, + _pad1: u3, + key_state_exposed: bool, + toggle_state_valid: bool, + }, +}; + +pub const InputKey = extern struct { + scan_code: u16, + unicode_char: u16, +}; diff --git a/lib/std/os/uefi/protocols/simple_text_output_protocol.zig b/lib/std/os/uefi/protocols/simple_text_output_protocol.zig new file mode 100644 index 0000000000..e6b2e21c70 --- /dev/null +++ b/lib/std/os/uefi/protocols/simple_text_output_protocol.zig @@ -0,0 +1,143 @@ +const uefi = @import("std").os.uefi; +const Guid = uefi.Guid; + +/// UEFI Specification, Version 2.8, 12.4 +pub const SimpleTextOutputProtocol = extern struct { + _reset: extern fn (*const SimpleTextOutputProtocol, bool) usize, + _output_string: extern fn (*const SimpleTextOutputProtocol, [*]const u16) usize, + _test_string: extern fn (*const SimpleTextOutputProtocol, [*]const u16) usize, + _query_mode: extern fn (*const SimpleTextOutputProtocol, usize, *usize, *usize) usize, + _set_mode: extern fn (*const SimpleTextOutputProtocol, usize) usize, + _set_attribute: extern fn (*const SimpleTextOutputProtocol, usize) usize, + _clear_screen: extern fn (*const SimpleTextOutputProtocol) usize, + _set_cursor_position: extern fn (*const SimpleTextOutputProtocol, usize, usize) usize, + _enable_cursor: extern fn (*const SimpleTextOutputProtocol, bool) usize, + mode: *SimpleTextOutputMode, + + pub fn reset(self: *const SimpleTextOutputProtocol, verify: bool) usize { + return self._reset(self, verify); + } + + pub fn outputString(self: *const SimpleTextOutputProtocol, msg: [*]const u16) usize { + return self._output_string(self, msg); + } + + pub fn testString(self: *const SimpleTextOutputProtocol, msg: [*]const u16) usize { + return self._test_string(self, msg); + } + + pub fn queryMode(self: *const SimpleTextOutputProtocol, mode_number: usize, columns: *usize, rows: *usize) usize { + return self._query_mode(self, mode_number, columns, rows); + } + + pub fn setMode(self: *const SimpleTextOutputProtocol, mode_number: usize) usize { + return self._set_mode(self, mode_number); + } + + pub fn setAttribute(self: *const SimpleTextOutputProtocol, attribute: usize) usize { + return self._set_attribute(self, attribute); + } + + pub fn clearScreen(self: *const SimpleTextOutputProtocol) usize { + return self._clear_screen(self); + } + + pub fn setCursorPosition(self: *const SimpleTextOutputProtocol, column: usize, row: usize) usize { + return self._set_cursor_position(self, column, row); + } + + pub fn enableCursor(self: *const SimpleTextOutputProtocol, visible: bool) usize { + return self._enable_cursor(self, visible); + } + + pub const guid align(8) = Guid{ + .time_low = 0x387477c2, + .time_mid = 0x69c7, + .time_high_and_version = 0x11d2, + .clock_seq_high_and_reserved = 0x8e, + .clock_seq_low = 0x39, + .node = [_]u8{ 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b }, + }; + pub const boxdraw_horizontal: u16 = 0x2500; + pub const boxdraw_vertical: u16 = 0x2502; + pub const boxdraw_down_right: u16 = 0x250c; + pub const boxdraw_down_left: u16 = 0x2510; + pub const boxdraw_up_right: u16 = 0x2514; + pub const boxdraw_up_left: u16 = 0x2518; + pub const boxdraw_vertical_right: u16 = 0x251c; + pub const boxdraw_vertical_left: u16 = 0x2524; + pub const boxdraw_down_horizontal: u16 = 0x252c; + pub const boxdraw_up_horizontal: u16 = 0x2534; + pub const boxdraw_vertical_horizontal: u16 = 0x253c; + pub const boxdraw_double_horizontal: u16 = 0x2550; + pub const boxdraw_double_vertical: u16 = 0x2551; + pub const boxdraw_down_right_double: u16 = 0x2552; + pub const boxdraw_down_double_right: u16 = 0x2553; + pub const boxdraw_double_down_right: u16 = 0x2554; + pub const boxdraw_down_left_double: u16 = 0x2555; + pub const boxdraw_down_double_left: u16 = 0x2556; + pub const boxdraw_double_down_left: u16 = 0x2557; + pub const boxdraw_up_right_double: u16 = 0x2558; + pub const boxdraw_up_double_right: u16 = 0x2559; + pub const boxdraw_double_up_right: u16 = 0x255a; + pub const boxdraw_up_left_double: u16 = 0x255b; + pub const boxdraw_up_double_left: u16 = 0x255c; + pub const boxdraw_double_up_left: u16 = 0x255d; + pub const boxdraw_vertical_right_double: u16 = 0x255e; + pub const boxdraw_vertical_double_right: u16 = 0x255f; + pub const boxdraw_double_vertical_right: u16 = 0x2560; + pub const boxdraw_vertical_left_double: u16 = 0x2561; + pub const boxdraw_vertical_double_left: u16 = 0x2562; + pub const boxdraw_double_vertical_left: u16 = 0x2563; + pub const boxdraw_down_horizontal_double: u16 = 0x2564; + pub const boxdraw_down_double_horizontal: u16 = 0x2565; + pub const boxdraw_double_down_horizontal: u16 = 0x2566; + pub const boxdraw_up_horizontal_double: u16 = 0x2567; + pub const boxdraw_up_double_horizontal: u16 = 0x2568; + pub const boxdraw_double_up_horizontal: u16 = 0x2569; + pub const boxdraw_vertical_horizontal_double: u16 = 0x256a; + pub const boxdraw_vertical_double_horizontal: u16 = 0x256b; + pub const boxdraw_double_vertical_horizontal: u16 = 0x256c; + pub const blockelement_full_block: u16 = 0x2588; + pub const blockelement_light_shade: u16 = 0x2591; + pub const geometricshape_up_triangle: u16 = 0x25b2; + pub const geometricshape_right_triangle: u16 = 0x25ba; + pub const geometricshape_down_triangle: u16 = 0x25bc; + pub const geometricshape_left_triangle: u16 = 0x25c4; + pub const arrow_up: u16 = 0x2591; + pub const arrow_down: u16 = 0x2593; + pub const black: u8 = 0x00; + pub const blue: u8 = 0x01; + pub const green: u8 = 0x02; + pub const cyan: u8 = 0x03; + pub const red: u8 = 0x04; + pub const magenta: u8 = 0x05; + pub const brown: u8 = 0x06; + pub const lightgray: u8 = 0x07; + pub const bright: u8 = 0x08; + pub const darkgray: u8 = 0x08; + pub const lightblue: u8 = 0x09; + pub const lightgreen: u8 = 0x0a; + pub const lightcyan: u8 = 0x0b; + pub const lightred: u8 = 0x0c; + pub const lightmagenta: u8 = 0x0d; + pub const yellow: u8 = 0x0e; + pub const white: u8 = 0x0f; + pub const background_black: u8 = 0x00; + pub const background_blue: u8 = 0x10; + pub const background_green: u8 = 0x20; + pub const background_cyan: u8 = 0x30; + pub const background_red: u8 = 0x40; + pub const background_magenta: u8 = 0x50; + pub const background_brown: u8 = 0x60; + pub const background_lightgray: u8 = 0x70; +}; + +pub const SimpleTextOutputMode = extern struct { + max_mode: u32, // specified as signed + mode: u32, // specified as signed + attribute: i32, + cursor_column: i32, + cursor_row: i32, + cursor_visible: bool, +}; diff --git a/lib/std/os/uefi/status.zig b/lib/std/os/uefi/status.zig new file mode 100644 index 0000000000..6deb741d0d --- /dev/null +++ b/lib/std/os/uefi/status.zig @@ -0,0 +1,46 @@ +const high_bit = 1 << @typeInfo(usize).Int.bits - 1; + +/// UEFI Specification, Version 2.8, Appendix D +pub const success: usize = 0; + +pub const load_error: usize = high_bit | 1; +pub const invalid_parameter: usize = high_bit | 2; +pub const unsupported: usize = high_bit | 3; +pub const bad_buffer_size: usize = high_bit | 4; +pub const buffer_too_small: usize = high_bit | 5; +pub const not_ready: usize = high_bit | 6; +pub const device_error: usize = high_bit | 7; +pub const write_protected: usize = high_bit | 8; +pub const out_of_resources: usize = high_bit | 9; +pub const volume_corrupted: usize = high_bit | 10; +pub const volume_full: usize = high_bit | 11; +pub const no_media: usize = high_bit | 12; +pub const media_changed: usize = high_bit | 13; +pub const not_found: usize = high_bit | 14; +pub const access_denied: usize = high_bit | 15; +pub const no_response: usize = high_bit | 16; +pub const no_mapping: usize = high_bit | 17; +pub const timeout: usize = high_bit | 18; +pub const not_started: usize = high_bit | 19; +pub const already_started: usize = high_bit | 20; +pub const aborted: usize = high_bit | 21; +pub const icmp_error: usize = high_bit | 22; +pub const tftp_error: usize = high_bit | 23; +pub const protocol_error: usize = high_bit | 24; +pub const incompatible_version: usize = high_bit | 25; +pub const security_violation: usize = high_bit | 26; +pub const crc_error: usize = high_bit | 27; +pub const end_of_media: usize = high_bit | 28; +pub const end_of_file: usize = high_bit | 31; +pub const invalid_language: usize = high_bit | 32; +pub const compromised_data: usize = high_bit | 33; +pub const ip_address_conflict: usize = high_bit | 34; +pub const http_error: usize = high_bit | 35; + +pub const warn_unknown_glyph: usize = 1; +pub const warn_delete_failure: usize = 2; +pub const warn_write_failure: usize = 3; +pub const warn_buffer_too_small: usize = 4; +pub const warn_stale_data: usize = 5; +pub const warn_file_system: usize = 6; +pub const warn_reset_required: usize = 7; diff --git a/lib/std/os/uefi/tables.zig b/lib/std/os/uefi/tables.zig new file mode 100644 index 0000000000..fbb9abe7f6 --- /dev/null +++ b/lib/std/os/uefi/tables.zig @@ -0,0 +1,9 @@ +pub const BootServices = @import("tables/boot_services.zig").BootServices; +pub const ConfigurationTable = @import("tables/configuration_table.zig").ConfigurationTable; +pub const global_variable align(8) = @import("tables/runtime_services.zig").global_variable; +pub const MemoryDescriptor = @import("tables/boot_services.zig").MemoryDescriptor; +pub const ResetType = @import("tables/runtime_services.zig").ResetType; +pub const RuntimeServices = @import("tables/runtime_services.zig").RuntimeServices; +pub const SystemTable = @import("tables/system_table.zig").SystemTable; +pub const TableHeader = @import("tables/table_header.zig").TableHeader; +pub const TimerDelay = @import("tables/boot_services.zig").TimerDelay; diff --git a/lib/std/os/uefi/tables/boot_services.zig b/lib/std/os/uefi/tables/boot_services.zig new file mode 100644 index 0000000000..55b0de3478 --- /dev/null +++ b/lib/std/os/uefi/tables/boot_services.zig @@ -0,0 +1,125 @@ +const uefi = @import("std").os.uefi; +const Event = uefi.Event; +const Guid = uefi.Guid; +const Handle = uefi.Handle; +const TableHeader = uefi.tables.TableHeader; + +/// UEFI Specification, Version 2.8, 4.4 +/// +/// As the boot_services table may grow with new UEFI versions, it is important to check hdr.header_size. +/// +/// Boot Services must not be used after exitBootServices has been called. The only exception is +/// getMemoryMap, which may be used after the first unsuccessful call to exitBootServices. +/// After successfully calling exitBootServices, system_table.console_in_handle, system_table.con_in, +/// system_table.console_out_handle, system_table.con_out, system_table.standard_error_handle, +/// system_table.std_err, and system_table.boot_services should be set to null. After setting these +/// attributes to null, system_table.hdr.crc32 must be recomputed. See UEFI Specification, Version 2.8, 7.4. +pub const BootServices = extern struct { + hdr: TableHeader, + raiseTpl: usize, // TODO + restoreTpl: usize, // TODO + allocatePages: usize, // TODO + freePages: usize, // TODO + getMemoryMap: extern fn (*usize, [*]MemoryDescriptor, *usize, *usize, *u32) usize, + allocatePool: usize, // TODO + freePool: usize, // TODO + createEvent: extern fn (u32, usize, ?extern fn (Event, ?*const c_void) void, ?*const c_void, *Event) usize, + setTimer: extern fn (Event, TimerDelay, u64) usize, + waitForEvent: extern fn (usize, [*]const Event, *usize) usize, + signalEvent: extern fn (Event) usize, + closeEvent: extern fn (Event) usize, + checkEvent: usize, // TODO + installProtocolInterface: usize, // TODO + reinstallProtocolInterface: usize, // TODO + uninstallProtocolInterface: usize, // TODO + handleProtocol: usize, // TODO + reserved: *c_void, + registerProtocolNotify: usize, // TODO + locateHandle: usize, // TODO + locateDevicePath: usize, // TODO + installConfigurationTable: usize, // TODO + imageLoad: usize, // TODO + imageStart: usize, // TODO + exit: extern fn (Handle, usize, usize, ?*const c_void) usize, + imageUnload: usize, // TODO + exitBootServices: usize, // TODO + getNextMonotonicCount: usize, // TODO + stall: extern fn (usize) usize, + setWatchdogTimer: extern fn (usize, u64, usize, ?[*]const u16) usize, + connectController: usize, // TODO + disconnectController: usize, // TODO + openProtocol: usize, // TODO + closeProtocol: usize, // TODO + openProtocolInformation: usize, // TODO + protocolsPerHandle: usize, // TODO + locateHandleBuffer: usize, // TODO + locateProtocol: extern fn (*align(8) const Guid, ?*const c_void, *?*c_void) usize, + installMultipleProtocolInterfaces: usize, // TODO + uninstallMultipleProtocolInterfaces: usize, // TODO + calculateCrc32: usize, // TODO + copyMem: usize, // TODO + setMem: usize, // TODO + createEventEx: usize, // TODO + + pub const signature: u64 = 0x56524553544f4f42; + + pub const event_timer: u32 = 0x80000000; + pub const event_runtime: u32 = 0x40000000; + pub const event_notify_wait: u32 = 0x00000100; + pub const event_notify_signal: u32 = 0x00000200; + pub const event_signal_exit_boot_services: u32 = 0x00000201; + pub const event_signal_virtual_address_change: u32 = 0x00000202; + + pub const tpl_application: usize = 4; + pub const tpl_callback: usize = 8; + pub const tpl_notify: usize = 16; + pub const tpl_high_level: usize = 31; +}; + +pub const TimerDelay = extern enum(u32) { + TimerCancel, + TimerPeriodic, + TimerRelative, +}; + +pub const MemoryDescriptor = extern struct { + type: extern enum(u32) { + ReservedMemoryType, + LoaderCode, + LoaderData, + BootServicesCode, + BootServicesData, + RuntimeServicesCode, + RuntimeServicesData, + ConventionalMemory, + UnusableMemory, + ACPIReclaimMemory, + ACPIMemoryNVS, + MemoryMappedIO, + MemoryMappedIOPortSpace, + PalCode, + PersistentMemory, + MaxMemoryType, + }, + physical_start: u64, + virtual_start: u64, + number_of_pages: usize, + attribute: packed struct { + uc: bool, + wc: bool, + wt: bool, + wb: bool, + uce: bool, + _pad1: u7, + wp: bool, + rp: bool, + xp: bool, + nv: bool, + more_reliable: bool, + ro: bool, + sp: bool, + cpu_crypto: bool, + _pad2: u43, + memory_runtime: bool, + }, +}; diff --git a/lib/std/os/uefi/tables/configuration_table.zig b/lib/std/os/uefi/tables/configuration_table.zig new file mode 100644 index 0000000000..eb99e08477 --- /dev/null +++ b/lib/std/os/uefi/tables/configuration_table.zig @@ -0,0 +1,82 @@ +const uefi = @import("std").os.uefi; +const Guid = uefi.Guid; + +/// UEFI Specification, Version 2.8, 4.6 +/// Because GUIDs must be align(8), structs of this type also must be align(8) +pub const ConfigurationTable = extern struct { + vendor_guid: Guid, + vendor_table: *c_void, + + pub const acpi_20_table_guid align(8) = Guid{ + .time_low = 0x8868e871, + .time_mid = 0xe4f1, + .time_high_and_version = 0x11d3, + .clock_seq_high_and_reserved = 0xbc, + .clock_seq_low = 0x22, + .node = [_]u8{ 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81 }, + }; + pub const acpi_10_table_guid align(8) = Guid{ + .time_low = 0xeb9d2d30, + .time_mid = 0x2d88, + .time_high_and_version = 0x11d3, + .clock_seq_high_and_reserved = 0x9a, + .clock_seq_low = 0x16, + .node = [_]u8{ 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d }, + }; + pub const sal_system_table_guid align(8) = Guid{ + .time_low = 0xeb9d2d32, + .time_mid = 0x2d88, + .time_high_and_version = 0x113d, + .clock_seq_high_and_reserved = 0x9a, + .clock_seq_low = 0x16, + .node = [_]u8{ 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d }, + }; + pub const smbios_table_guid align(8) = Guid{ + .time_low = 0xeb9d2d31, + .time_mid = 0x2d88, + .time_high_and_version = 0x11d3, + .clock_seq_high_and_reserved = 0x9a, + .clock_seq_low = 0x16, + .node = [_]u8{ 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d }, + }; + pub const smbios3_table_guid align(8) = Guid{ + .time_low = 0xf2fd1544, + .time_mid = 0x9794, + .time_high_and_version = 0x4a2c, + .clock_seq_high_and_reserved = 0x99, + .clock_seq_low = 0x2e, + .node = [_]u8{ 0xe5, 0xbb, 0xcf, 0x20, 0xe3, 0x94 }, + }; + pub const mps_table_guid align(8) = Guid{ + .time_low = 0xeb9d2d2f, + .time_mid = 0x2d88, + .time_high_and_version = 0x11d3, + .clock_seq_high_and_reserved = 0x9a, + .clock_seq_low = 0x16, + .node = [_]u8{ 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d }, + }; + pub const json_config_data_table_guid align(8) = Guid{ + .time_low = 0x87367f87, + .time_mid = 0x1119, + .time_high_and_version = 0x41ce, + .clock_seq_high_and_reserved = 0xaa, + .clock_seq_low = 0xec, + .node = [_]u8{ 0x8b, 0xe0, 0x11, 0x1f, 0x55, 0x8a }, + }; + pub const json_capsule_data_table_guid align(8) = Guid{ + .time_low = 0x35e7a725, + .time_mid = 0x8dd2, + .time_high_and_version = 0x4cac, + .clock_seq_high_and_reserved = 0x80, + .clock_seq_low = 0x11, + .node = [_]u8{ 0x33, 0xcd, 0xa8, 0x10, 0x90, 0x56 }, + }; + pub const json_capsule_result_table_guid align(8) = Guid{ + .time_low = 0xdbc461c3, + .time_mid = 0xb3de, + .time_high_and_version = 0x422a, + .clock_seq_high_and_reserved = 0xb9, + .clock_seq_low = 0xb4, + .node = [_]u8{ 0x98, 0x86, 0xfd, 0x49, 0xa1, 0xe5 }, + }; +}; diff --git a/lib/std/os/uefi/tables/runtime_services.zig b/lib/std/os/uefi/tables/runtime_services.zig new file mode 100644 index 0000000000..53cb17db50 --- /dev/null +++ b/lib/std/os/uefi/tables/runtime_services.zig @@ -0,0 +1,51 @@ +const uefi = @import("std").os.uefi; +const Guid = uefi.Guid; +const TableHeader = uefi.tables.TableHeader; +const Time = uefi.Time; +const TimeCapabilities = uefi.TimeCapabilities; + +/// UEFI Specification, Version 2.8, 4.5 +/// +/// As the runtime_services table may grow with new UEFI versions, it is important to check hdr.header_size. +/// +/// Some functions may not be supported. Check the RuntimeServicesSupported variable using getVariable. +/// getVariable is one of the functions that may not be supported. See UEFI Specification, Version 2.8, 8.1. +/// +/// Some functions may not be called while other functions are running. See UEFI Specification, Version 2.8, 8.1. +pub const RuntimeServices = extern struct { + hdr: TableHeader, + getTime: extern fn (*uefi.Time, ?*TimeCapabilities) usize, + setTime: usize, // TODO + getWakeupTime: usize, // TODO + setWakeupTime: usize, // TODO + setVirtualAddressMap: usize, // TODO + convertPointer: usize, // TODO + getVariable: extern fn ([*]const u16, *align(8) const Guid, ?*u32, *usize, ?*c_void) usize, + getNextVariableName: extern fn (*usize, [*]u16, *align(8) Guid) usize, + setVariable: extern fn ([*]const u16, *align(8) const Guid, u32, usize, *c_void) usize, + getNextHighMonotonicCount: usize, // TODO + resetSystem: extern fn (ResetType, usize, usize, ?*const c_void) noreturn, + updateCapsule: usize, // TODO + queryCapsuleCapabilities: usize, // TODO + queryVariableInfo: usize, // TODO + + pub const signature: u64 = 0x56524553544e5552; +}; + +/// UEFI Specification, Version 2.8, 8.5.1 +pub const ResetType = extern enum(u32) { + ResetCold, + ResetWarm, + ResetShutdown, + ResetPlatformSpecific, +}; + +/// UEFI Specification, Version 2.8, 3.3 +pub const global_variable align(8) = Guid{ + .time_low = 0x8be4df61, + .time_mid = 0x93ca, + .time_high_and_version = 0x11d2, + .clock_seq_high_and_reserved = 0xaa, + .clock_seq_low = 0x0d, + .node = [_]u8{ 0x00, 0xe0, 0x98, 0x03, 0x2b, 0x8c }, +}; diff --git a/lib/std/os/uefi/tables/system_table.zig b/lib/std/os/uefi/tables/system_table.zig new file mode 100644 index 0000000000..23140f984e --- /dev/null +++ b/lib/std/os/uefi/tables/system_table.zig @@ -0,0 +1,46 @@ +const uefi = @import("std").os.uefi; +const BootServices = uefi.tables.BootServices; +const ConfigurationTable = uefi.tables.ConfigurationTable; +const Handle = uefi.Handle; +const RuntimeServices = uefi.tables.RuntimeServices; +const SimpleTextInputExProtocol = uefi.protocols.SimpleTextInputExProtocol; +const SimpleTextOutputProtocol = uefi.protocols.SimpleTextOutputProtocol; +const TableHeader = uefi.tables.TableHeader; + +/// UEFI Specification, Version 2.8, 4.3 +/// +/// As the system_table may grow with new UEFI versions, it is important to check hdr.header_size. +/// +/// After successfully calling boot_services.exitBootServices, console_in_handle, +/// con_in, console_out_handle, con_out, standard_error_handle, std_err, and +/// boot_services should be set to null. After setting these attributes to null, +/// hdr.crc32 must be recomputed. See UEFI Specification, Version 2.8, 7.4. +pub const SystemTable = extern struct { + hdr: TableHeader, + firmware_vendor: *u16, + firmware_revision: u32, + console_in_handle: ?Handle, + con_in: ?*SimpleTextInputExProtocol, + console_out_handle: ?Handle, + con_out: ?*SimpleTextOutputProtocol, + standard_error_handle: ?Handle, + std_err: ?*SimpleTextOutputProtocol, + runtime_services: *RuntimeServices, + boot_services: ?*BootServices, + number_of_table_entries: usize, + configuration_table: *ConfigurationTable, + + pub const signature: u64 = 0x5453595320494249; + pub const revision_1_02: u32 = (1 << 16) | 2; + pub const revision_1_10: u32 = (1 << 16) | 10; + pub const revision_2_00: u32 = (2 << 16); + pub const revision_2_10: u32 = (2 << 16) | 10; + pub const revision_2_20: u32 = (2 << 16) | 20; + pub const revision_2_30: u32 = (2 << 16) | 30; + pub const revision_2_31: u32 = (2 << 16) | 31; + pub const revision_2_40: u32 = (2 << 16) | 40; + pub const revision_2_50: u32 = (2 << 16) | 50; + pub const revision_2_60: u32 = (2 << 16) | 60; + pub const revision_2_70: u32 = (2 << 16) | 70; + pub const revision_2_80: u32 = (2 << 16) | 80; +}; diff --git a/lib/std/os/uefi/tables/table_header.zig b/lib/std/os/uefi/tables/table_header.zig new file mode 100644 index 0000000000..b955768e63 --- /dev/null +++ b/lib/std/os/uefi/tables/table_header.zig @@ -0,0 +1,8 @@ +/// UEFI Specification, Version 2.8, 4.2 +pub const TableHeader = extern struct { + signature: u64, + revision: u32, + header_size: u32, + crc32: u32, + reserved: u32, +}; diff --git a/lib/std/os/wasi.zig b/lib/std/os/wasi.zig new file mode 100644 index 0000000000..57b708395c --- /dev/null +++ b/lib/std/os/wasi.zig @@ -0,0 +1,80 @@ +// Based on https://github.com/CraneStation/wasi-sysroot/blob/wasi/libc-bottom-half/headers/public/wasi/core.h +// and https://github.com/WebAssembly/WASI/blob/master/design/WASI-core.md +const builtin = @import("builtin"); +const std = @import("std"); +const assert = std.debug.assert; + +pub const is_the_target = builtin.os == .wasi; +pub usingnamespace @import("bits.zig"); + +comptime { + assert(@alignOf(i8) == 1); + assert(@alignOf(u8) == 1); + assert(@alignOf(i16) == 2); + assert(@alignOf(u16) == 2); + assert(@alignOf(i32) == 4); + assert(@alignOf(u32) == 4); + assert(@alignOf(i64) == 8); + assert(@alignOf(u64) == 8); +} + +pub const iovec_t = iovec; +pub const ciovec_t = iovec_const; + +pub extern "wasi_unstable" fn args_get(argv: [*][*]u8, argv_buf: [*]u8) errno_t; +pub extern "wasi_unstable" fn args_sizes_get(argc: *usize, argv_buf_size: *usize) errno_t; + +pub extern "wasi_unstable" fn clock_res_get(clock_id: clockid_t, resolution: *timestamp_t) errno_t; +pub extern "wasi_unstable" fn clock_time_get(clock_id: clockid_t, precision: timestamp_t, timestamp: *timestamp_t) errno_t; + +pub extern "wasi_unstable" fn environ_get(environ: [*]?[*]u8, environ_buf: [*]u8) errno_t; +pub extern "wasi_unstable" fn environ_sizes_get(environ_count: *usize, environ_buf_size: *usize) errno_t; + +pub extern "wasi_unstable" fn fd_advise(fd: fd_t, offset: filesize_t, len: filesize_t, advice: advice_t) errno_t; +pub extern "wasi_unstable" fn fd_allocate(fd: fd_t, offset: filesize_t, len: filesize_t) errno_t; +pub extern "wasi_unstable" fn fd_close(fd: fd_t) errno_t; +pub extern "wasi_unstable" fn fd_datasync(fd: fd_t) errno_t; +pub extern "wasi_unstable" fn fd_pread(fd: fd_t, iovs: [*]const iovec_t, iovs_len: usize, offset: filesize_t, nread: *usize) errno_t; +pub extern "wasi_unstable" fn fd_pwrite(fd: fd_t, iovs: [*]const ciovec_t, iovs_len: usize, offset: filesize_t, nwritten: *usize) errno_t; +pub extern "wasi_unstable" fn fd_read(fd: fd_t, iovs: [*]const iovec_t, iovs_len: usize, nread: *usize) errno_t; +pub extern "wasi_unstable" fn fd_readdir(fd: fd_t, buf: [*]u8, buf_len: usize, cookie: dircookie_t, bufused: *usize) errno_t; +pub extern "wasi_unstable" fn fd_renumber(from: fd_t, to: fd_t) errno_t; +pub extern "wasi_unstable" fn fd_seek(fd: fd_t, offset: filedelta_t, whence: whence_t, newoffset: *filesize_t) errno_t; +pub extern "wasi_unstable" fn fd_sync(fd: fd_t) errno_t; +pub extern "wasi_unstable" fn fd_tell(fd: fd_t, newoffset: *filesize_t) errno_t; +pub extern "wasi_unstable" fn fd_write(fd: fd_t, iovs: [*]const ciovec_t, iovs_len: usize, nwritten: *usize) errno_t; + +pub extern "wasi_unstable" fn fd_fdstat_get(fd: fd_t, buf: *fdstat_t) errno_t; +pub extern "wasi_unstable" fn fd_fdstat_set_flags(fd: fd_t, flags: fdflags_t) errno_t; +pub extern "wasi_unstable" fn fd_fdstat_set_rights(fd: fd_t, fs_rights_base: rights_t, fs_rights_inheriting: rights_t) errno_t; + +pub extern "wasi_unstable" fn fd_filestat_get(fd: fd_t, buf: *filestat_t) errno_t; +pub extern "wasi_unstable" fn fd_filestat_set_size(fd: fd_t, st_size: filesize_t) errno_t; +pub extern "wasi_unstable" fn fd_filestat_set_times(fd: fd_t, st_atim: timestamp_t, st_mtim: timestamp_t, fstflags: fstflags_t) errno_t; + +pub extern "wasi_unstable" fn fd_prestat_get(fd: fd_t, buf: *prestat_t) errno_t; +pub extern "wasi_unstable" fn fd_prestat_dir_name(fd: fd_t, path: [*]u8, path_len: usize) errno_t; + +pub extern "wasi_unstable" fn path_create_directory(fd: fd_t, path: [*]const u8, path_len: usize) errno_t; +pub extern "wasi_unstable" fn path_filestat_get(fd: fd_t, flags: lookupflags_t, path: [*]const u8, path_len: usize, buf: *filestat_t) errno_t; +pub extern "wasi_unstable" fn path_filestat_set_times(fd: fd_t, flags: lookupflags_t, path: [*]const u8, path_len: usize, st_atim: timestamp_t, st_mtim: timestamp_t, fstflags: fstflags_t) errno_t; +pub extern "wasi_unstable" fn path_link(old_fd: fd_t, old_flags: lookupflags_t, old_path: [*]const u8, old_path_len: usize, new_fd: fd_t, new_path: [*]const u8, new_path_len: usize) errno_t; +pub extern "wasi_unstable" fn path_open(dirfd: fd_t, dirflags: lookupflags_t, path: [*]const u8, path_len: usize, oflags: oflags_t, fs_rights_base: rights_t, fs_rights_inheriting: rights_t, fs_flags: fdflags_t, fd: *fd_t) errno_t; +pub extern "wasi_unstable" fn path_readlink(fd: fd_t, path: [*]const u8, path_len: usize, buf: [*]u8, buf_len: usize, bufused: *usize) errno_t; +pub extern "wasi_unstable" fn path_remove_directory(fd: fd_t, path: [*]const u8, path_len: usize) errno_t; +pub extern "wasi_unstable" fn path_rename(old_fd: fd_t, old_path: [*]const u8, old_path_len: usize, new_fd: fd_t, new_path: [*]const u8, new_path_len: usize) errno_t; +pub extern "wasi_unstable" fn path_symlink(old_path: [*]const u8, old_path_len: usize, fd: fd_t, new_path: [*]const u8, new_path_len: usize) errno_t; +pub extern "wasi_unstable" fn path_unlink_file(fd: fd_t, path: [*]const u8, path_len: usize) errno_t; + +pub extern "wasi_unstable" fn poll_oneoff(in: *const subscription_t, out: *event_t, nsubscriptions: usize, nevents: *usize) errno_t; + +pub extern "wasi_unstable" fn proc_exit(rval: exitcode_t) noreturn; +pub extern "wasi_unstable" fn proc_raise(sig: signal_t) errno_t; + +pub extern "wasi_unstable" fn random_get(buf: [*]u8, buf_len: usize) errno_t; + +pub extern "wasi_unstable" fn sched_yield() errno_t; + +pub extern "wasi_unstable" fn sock_recv(sock: fd_t, ri_data: *const iovec_t, ri_data_len: usize, ri_flags: riflags_t, ro_datalen: *usize, ro_flags: *roflags_t) errno_t; +pub extern "wasi_unstable" fn sock_send(sock: fd_t, si_data: *const ciovec_t, si_data_len: usize, si_flags: siflags_t, so_datalen: *usize) errno_t; +pub extern "wasi_unstable" fn sock_shutdown(sock: fd_t, how: sdflags_t) errno_t; diff --git a/lib/std/os/windows.zig b/lib/std/os/windows.zig new file mode 100644 index 0000000000..7c1761a4b8 --- /dev/null +++ b/lib/std/os/windows.zig @@ -0,0 +1,886 @@ +// This file contains thin wrappers around Windows-specific APIs, with these +// specific goals in mind: +// * Convert "errno"-style error codes into Zig errors. +// * When null-terminated or UTF16LE byte buffers are required, provide APIs which accept +// slices as well as APIs which accept null-terminated UTF16LE byte buffers. + +const builtin = @import("builtin"); +const std = @import("../std.zig"); +const mem = std.mem; +const assert = std.debug.assert; +const math = std.math; +const maxInt = std.math.maxInt; + +pub const is_the_target = builtin.os == .windows; +pub const advapi32 = @import("windows/advapi32.zig"); +pub const kernel32 = @import("windows/kernel32.zig"); +pub const ntdll = @import("windows/ntdll.zig"); +pub const ole32 = @import("windows/ole32.zig"); +pub const shell32 = @import("windows/shell32.zig"); + +pub usingnamespace @import("windows/bits.zig"); + +/// `builtin` is missing `subsystem` when the subsystem is automatically detected, +/// so Zig standard library has the subsystem detection logic here. This should generally be +/// used rather than `builtin.subsystem`. +/// On non-windows targets, this is `null`. +pub const subsystem: ?builtin.SubSystem = blk: { + if (@hasDecl(builtin, "subsystem")) break :blk builtin.subsystem; + switch (builtin.os) { + .windows => { + if (builtin.is_test) { + break :blk builtin.SubSystem.Console; + } + const root = @import("root"); + if (@hasDecl(root, "WinMain") or + @hasDecl(root, "wWinMain") or + @hasDecl(root, "WinMainCRTStartup") or + @hasDecl(root, "wWinMainCRTStartup")) + { + break :blk builtin.SubSystem.Windows; + } else { + break :blk builtin.SubSystem.Console; + } + }, + .uefi => break :blk builtin.SubSystem.EfiApplication, + else => break :blk null, + } +}; + +pub const CreateFileError = error{ + SharingViolation, + PathAlreadyExists, + + /// When any of the path components can not be found or the file component can not + /// be found. Some operating systems distinguish between path components not found and + /// file components not found, but they are collapsed into FileNotFound to gain + /// consistency across operating systems. + FileNotFound, + + AccessDenied, + PipeBusy, + NameTooLong, + + /// On Windows, file paths must be valid Unicode. + InvalidUtf8, + + /// On Windows, file paths cannot contain these characters: + /// '/', '*', '?', '"', '<', '>', '|' + BadPathName, + + Unexpected, +}; + +pub fn CreateFile( + file_path: []const u8, + desired_access: DWORD, + share_mode: DWORD, + lpSecurityAttributes: ?LPSECURITY_ATTRIBUTES, + creation_disposition: DWORD, + flags_and_attrs: DWORD, + hTemplateFile: ?HANDLE, +) CreateFileError!HANDLE { + const file_path_w = try sliceToPrefixedFileW(file_path); + return CreateFileW(&file_path_w, desired_access, share_mode, lpSecurityAttributes, creation_disposition, flags_and_attrs, hTemplateFile); +} + +pub fn CreateFileW( + file_path_w: [*]const u16, + desired_access: DWORD, + share_mode: DWORD, + lpSecurityAttributes: ?LPSECURITY_ATTRIBUTES, + creation_disposition: DWORD, + flags_and_attrs: DWORD, + hTemplateFile: ?HANDLE, +) CreateFileError!HANDLE { + const result = kernel32.CreateFileW(file_path_w, desired_access, share_mode, lpSecurityAttributes, creation_disposition, flags_and_attrs, hTemplateFile); + + if (result == INVALID_HANDLE_VALUE) { + switch (kernel32.GetLastError()) { + ERROR.SHARING_VIOLATION => return error.SharingViolation, + ERROR.ALREADY_EXISTS => return error.PathAlreadyExists, + ERROR.FILE_EXISTS => return error.PathAlreadyExists, + ERROR.FILE_NOT_FOUND => return error.FileNotFound, + ERROR.PATH_NOT_FOUND => return error.FileNotFound, + ERROR.ACCESS_DENIED => return error.AccessDenied, + ERROR.PIPE_BUSY => return error.PipeBusy, + ERROR.FILENAME_EXCED_RANGE => return error.NameTooLong, + else => |err| return unexpectedError(err), + } + } + + return result; +} + +pub const CreatePipeError = error{Unexpected}; + +pub fn CreatePipe(rd: *HANDLE, wr: *HANDLE, sattr: *const SECURITY_ATTRIBUTES) CreatePipeError!void { + if (kernel32.CreatePipe(rd, wr, sattr, 0) == 0) { + switch (kernel32.GetLastError()) { + else => |err| return unexpectedError(err), + } + } +} + +pub const SetHandleInformationError = error{Unexpected}; + +pub fn SetHandleInformation(h: HANDLE, mask: DWORD, flags: DWORD) SetHandleInformationError!void { + if (kernel32.SetHandleInformation(h, mask, flags) == 0) { + switch (kernel32.GetLastError()) { + else => |err| return unexpectedError(err), + } + } +} + +pub const RtlGenRandomError = error{Unexpected}; + +/// Call RtlGenRandom() instead of CryptGetRandom() on Windows +/// https://github.com/rust-lang-nursery/rand/issues/111 +/// https://bugzilla.mozilla.org/show_bug.cgi?id=504270 +pub fn RtlGenRandom(output: []u8) RtlGenRandomError!void { + var total_read: usize = 0; + var buff: []u8 = output[0..]; + const max_read_size: ULONG = maxInt(ULONG); + + while (total_read < output.len) { + const to_read: ULONG = math.min(buff.len, max_read_size); + + if (advapi32.RtlGenRandom(buff.ptr, to_read) == 0) { + return unexpectedError(kernel32.GetLastError()); + } + + total_read += to_read; + buff = buff[to_read..]; + } +} + +pub const WaitForSingleObjectError = error{ + WaitAbandoned, + WaitTimeOut, + Unexpected, +}; + +pub fn WaitForSingleObject(handle: HANDLE, milliseconds: DWORD) WaitForSingleObjectError!void { + switch (kernel32.WaitForSingleObject(handle, milliseconds)) { + WAIT_ABANDONED => return error.WaitAbandoned, + WAIT_OBJECT_0 => return, + WAIT_TIMEOUT => return error.WaitTimeOut, + WAIT_FAILED => switch (kernel32.GetLastError()) { + else => |err| return unexpectedError(err), + }, + else => return error.Unexpected, + } +} + +pub const FindFirstFileError = error{ + FileNotFound, + InvalidUtf8, + BadPathName, + NameTooLong, + Unexpected, +}; + +pub fn FindFirstFile(dir_path: []const u8, find_file_data: *WIN32_FIND_DATAW) FindFirstFileError!HANDLE { + const dir_path_w = try sliceToPrefixedSuffixedFileW(dir_path, [_]u16{ '\\', '*', 0 }); + const handle = kernel32.FindFirstFileW(&dir_path_w, find_file_data); + + if (handle == INVALID_HANDLE_VALUE) { + switch (kernel32.GetLastError()) { + ERROR.FILE_NOT_FOUND => return error.FileNotFound, + ERROR.PATH_NOT_FOUND => return error.FileNotFound, + else => |err| return unexpectedError(err), + } + } + + return handle; +} + +pub const FindNextFileError = error{Unexpected}; + +/// Returns `true` if there was another file, `false` otherwise. +pub fn FindNextFile(handle: HANDLE, find_file_data: *WIN32_FIND_DATAW) FindNextFileError!bool { + if (kernel32.FindNextFileW(handle, find_file_data) == 0) { + switch (kernel32.GetLastError()) { + ERROR.NO_MORE_FILES => return false, + else => |err| return unexpectedError(err), + } + } + return true; +} + +pub const CreateIoCompletionPortError = error{Unexpected}; + +pub fn CreateIoCompletionPort( + file_handle: HANDLE, + existing_completion_port: ?HANDLE, + completion_key: usize, + concurrent_thread_count: DWORD, +) CreateIoCompletionPortError!HANDLE { + const handle = kernel32.CreateIoCompletionPort(file_handle, existing_completion_port, completion_key, concurrent_thread_count) orelse { + switch (kernel32.GetLastError()) { + ERROR.INVALID_PARAMETER => unreachable, + else => |err| return unexpectedError(err), + } + }; + return handle; +} + +pub const PostQueuedCompletionStatusError = error{Unexpected}; + +pub fn PostQueuedCompletionStatus( + completion_port: HANDLE, + bytes_transferred_count: DWORD, + completion_key: usize, + lpOverlapped: ?*OVERLAPPED, +) PostQueuedCompletionStatusError!void { + if (kernel32.PostQueuedCompletionStatus(completion_port, bytes_transferred_count, completion_key, lpOverlapped) == 0) { + switch (kernel32.GetLastError()) { + else => |err| return unexpectedError(err), + } + } +} + +pub const GetQueuedCompletionStatusResult = enum { + Normal, + Aborted, + Cancelled, + EOF, +}; + +pub fn GetQueuedCompletionStatus( + completion_port: HANDLE, + bytes_transferred_count: *DWORD, + lpCompletionKey: *usize, + lpOverlapped: *?*OVERLAPPED, + dwMilliseconds: DWORD, +) GetQueuedCompletionStatusResult { + if (kernel32.GetQueuedCompletionStatus( + completion_port, + bytes_transferred_count, + lpCompletionKey, + lpOverlapped, + dwMilliseconds, + ) == FALSE) { + switch (kernel32.GetLastError()) { + ERROR.ABANDONED_WAIT_0 => return GetQueuedCompletionStatusResult.Aborted, + ERROR.OPERATION_ABORTED => return GetQueuedCompletionStatusResult.Cancelled, + ERROR.HANDLE_EOF => return GetQueuedCompletionStatusResult.EOF, + else => |err| { + if (std.debug.runtime_safety) { + std.debug.panic("unexpected error: {}\n", err); + } + }, + } + } + return GetQueuedCompletionStatusResult.Normal; +} + +pub fn CloseHandle(hObject: HANDLE) void { + assert(kernel32.CloseHandle(hObject) != 0); +} + +pub fn FindClose(hFindFile: HANDLE) void { + assert(kernel32.FindClose(hFindFile) != 0); +} + +pub const ReadFileError = error{Unexpected}; + +pub fn ReadFile(in_hFile: HANDLE, buffer: []u8) ReadFileError!usize { + var index: usize = 0; + while (index < buffer.len) { + const want_read_count = @intCast(DWORD, math.min(DWORD(maxInt(DWORD)), buffer.len - index)); + var amt_read: DWORD = undefined; + if (kernel32.ReadFile(in_hFile, buffer.ptr + index, want_read_count, &amt_read, null) == 0) { + switch (kernel32.GetLastError()) { + ERROR.OPERATION_ABORTED => continue, + ERROR.BROKEN_PIPE => return index, + else => |err| return unexpectedError(err), + } + } + if (amt_read == 0) return index; + index += amt_read; + } + return index; +} + +pub const WriteFileError = error{ + SystemResources, + OperationAborted, + BrokenPipe, + Unexpected, +}; + +/// This function is for blocking file descriptors only. For non-blocking, see +/// `WriteFileAsync`. +pub fn WriteFile(handle: HANDLE, bytes: []const u8) WriteFileError!void { + var bytes_written: DWORD = undefined; + // TODO replace this @intCast with a loop that writes all the bytes + if (kernel32.WriteFile(handle, bytes.ptr, @intCast(u32, bytes.len), &bytes_written, null) == 0) { + switch (kernel32.GetLastError()) { + ERROR.INVALID_USER_BUFFER => return error.SystemResources, + ERROR.NOT_ENOUGH_MEMORY => return error.SystemResources, + ERROR.OPERATION_ABORTED => return error.OperationAborted, + ERROR.NOT_ENOUGH_QUOTA => return error.SystemResources, + ERROR.IO_PENDING => unreachable, // this function is for blocking files only + ERROR.BROKEN_PIPE => return error.BrokenPipe, + else => |err| return unexpectedError(err), + } + } +} + +pub const GetCurrentDirectoryError = error{ + NameTooLong, + Unexpected, +}; + +/// The result is a slice of `buffer`, indexed from 0. +pub fn GetCurrentDirectory(buffer: []u8) GetCurrentDirectoryError![]u8 { + var utf16le_buf: [PATH_MAX_WIDE]u16 = undefined; + const result = kernel32.GetCurrentDirectoryW(utf16le_buf.len, &utf16le_buf); + if (result == 0) { + switch (kernel32.GetLastError()) { + else => |err| return unexpectedError(err), + } + } + assert(result <= utf16le_buf.len); + const utf16le_slice = utf16le_buf[0..result]; + // Trust that Windows gives us valid UTF-16LE. + var end_index: usize = 0; + var it = std.unicode.Utf16LeIterator.init(utf16le_slice); + while (it.nextCodepoint() catch unreachable) |codepoint| { + const seq_len = std.unicode.utf8CodepointSequenceLength(codepoint) catch unreachable; + if (end_index + seq_len >= buffer.len) + return error.NameTooLong; + end_index += std.unicode.utf8Encode(codepoint, buffer[end_index..]) catch unreachable; + } + return buffer[0..end_index]; +} + +pub const CreateSymbolicLinkError = error{Unexpected}; + +pub fn CreateSymbolicLink( + sym_link_path: []const u8, + target_path: []const u8, + flags: DWORD, +) CreateSymbolicLinkError!void { + const sym_link_path_w = try sliceToPrefixedFileW(sym_link_path); + const target_path_w = try sliceToPrefixedFileW(target_path); + return CreateSymbolicLinkW(&sym_link_path_w, &target_path_w, flags); +} + +pub fn CreateSymbolicLinkW( + sym_link_path: [*]const u16, + target_path: [*]const u16, + flags: DWORD, +) CreateSymbolicLinkError!void { + if (kernel32.CreateSymbolicLinkW(sym_link_path, target_path, flags) == 0) { + switch (kernel32.GetLastError()) { + else => |err| return unexpectedError(err), + } + } +} + +pub const DeleteFileError = error{ + FileNotFound, + AccessDenied, + NameTooLong, + FileBusy, + Unexpected, +}; + +pub fn DeleteFile(filename: []const u8) DeleteFileError!void { + const filename_w = try sliceToPrefixedFileW(filename); + return DeleteFileW(&filename_w); +} + +pub fn DeleteFileW(filename: [*]const u16) DeleteFileError!void { + if (kernel32.DeleteFileW(filename) == 0) { + switch (kernel32.GetLastError()) { + ERROR.FILE_NOT_FOUND => return error.FileNotFound, + ERROR.PATH_NOT_FOUND => return error.FileNotFound, + ERROR.ACCESS_DENIED => return error.AccessDenied, + ERROR.FILENAME_EXCED_RANGE => return error.NameTooLong, + ERROR.INVALID_PARAMETER => return error.NameTooLong, + ERROR.SHARING_VIOLATION => return error.FileBusy, + else => |err| return unexpectedError(err), + } + } +} + +pub const MoveFileError = error{Unexpected}; + +pub fn MoveFileEx(old_path: []const u8, new_path: []const u8, flags: DWORD) MoveFileError!void { + const old_path_w = try sliceToPrefixedFileW(old_path); + const new_path_w = try sliceToPrefixedFileW(new_path); + return MoveFileExW(&old_path_w, &new_path_w, flags); +} + +pub fn MoveFileExW(old_path: [*]const u16, new_path: [*]const u16, flags: DWORD) MoveFileError!void { + if (kernel32.MoveFileExW(old_path, new_path, flags) == 0) { + switch (kernel32.GetLastError()) { + else => |err| return unexpectedError(err), + } + } +} + +pub const CreateDirectoryError = error{ + PathAlreadyExists, + FileNotFound, + Unexpected, +}; + +pub fn CreateDirectory(pathname: []const u8, attrs: ?*SECURITY_ATTRIBUTES) CreateDirectoryError!void { + const pathname_w = try sliceToPrefixedFileW(pathname); + return CreateDirectoryW(&pathname_w, attrs); +} + +pub fn CreateDirectoryW(pathname: [*]const u16, attrs: ?*SECURITY_ATTRIBUTES) CreateDirectoryError!void { + if (kernel32.CreateDirectoryW(pathname, attrs) == 0) { + switch (kernel32.GetLastError()) { + ERROR.ALREADY_EXISTS => return error.PathAlreadyExists, + ERROR.PATH_NOT_FOUND => return error.FileNotFound, + else => |err| return unexpectedError(err), + } + } +} + +pub const RemoveDirectoryError = error{ + FileNotFound, + DirNotEmpty, + Unexpected, +}; + +pub fn RemoveDirectory(dir_path: []const u8) RemoveDirectoryError!void { + const dir_path_w = try sliceToPrefixedFileW(dir_path); + return RemoveDirectoryW(&dir_path_w); +} + +pub fn RemoveDirectoryW(dir_path_w: [*]const u16) RemoveDirectoryError!void { + if (kernel32.RemoveDirectoryW(dir_path_w) == 0) { + switch (kernel32.GetLastError()) { + ERROR.PATH_NOT_FOUND => return error.FileNotFound, + ERROR.DIR_NOT_EMPTY => return error.DirNotEmpty, + else => |err| return unexpectedError(err), + } + } +} + +pub const GetStdHandleError = error{ + NoStandardHandleAttached, + Unexpected, +}; + +pub fn GetStdHandle(handle_id: DWORD) GetStdHandleError!HANDLE { + const handle = kernel32.GetStdHandle(handle_id) orelse return error.NoStandardHandleAttached; + if (handle == INVALID_HANDLE_VALUE) { + switch (kernel32.GetLastError()) { + else => |err| return unexpectedError(err), + } + } + return handle; +} + +pub const SetFilePointerError = error{Unexpected}; + +/// The SetFilePointerEx function with the `dwMoveMethod` parameter set to `FILE_BEGIN`. +pub fn SetFilePointerEx_BEGIN(handle: HANDLE, offset: u64) SetFilePointerError!void { + // "The starting point is zero or the beginning of the file. If [FILE_BEGIN] + // is specified, then the liDistanceToMove parameter is interpreted as an unsigned value." + // https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-setfilepointerex + const ipos = @bitCast(LARGE_INTEGER, offset); + if (kernel32.SetFilePointerEx(handle, ipos, null, FILE_BEGIN) == 0) { + switch (kernel32.GetLastError()) { + ERROR.INVALID_PARAMETER => unreachable, + ERROR.INVALID_HANDLE => unreachable, + else => |err| return unexpectedError(err), + } + } +} + +/// The SetFilePointerEx function with the `dwMoveMethod` parameter set to `FILE_CURRENT`. +pub fn SetFilePointerEx_CURRENT(handle: HANDLE, offset: i64) SetFilePointerError!void { + if (kernel32.SetFilePointerEx(handle, offset, null, FILE_CURRENT) == 0) { + switch (kernel32.GetLastError()) { + ERROR.INVALID_PARAMETER => unreachable, + ERROR.INVALID_HANDLE => unreachable, + else => |err| return unexpectedError(err), + } + } +} + +/// The SetFilePointerEx function with the `dwMoveMethod` parameter set to `FILE_END`. +pub fn SetFilePointerEx_END(handle: HANDLE, offset: i64) SetFilePointerError!void { + if (kernel32.SetFilePointerEx(handle, offset, null, FILE_END) == 0) { + switch (kernel32.GetLastError()) { + ERROR.INVALID_PARAMETER => unreachable, + ERROR.INVALID_HANDLE => unreachable, + else => |err| return unexpectedError(err), + } + } +} + +/// The SetFilePointerEx function with parameters to get the current offset. +pub fn SetFilePointerEx_CURRENT_get(handle: HANDLE) SetFilePointerError!u64 { + var result: LARGE_INTEGER = undefined; + if (kernel32.SetFilePointerEx(handle, 0, &result, FILE_CURRENT) == 0) { + switch (kernel32.GetLastError()) { + ERROR.INVALID_PARAMETER => unreachable, + ERROR.INVALID_HANDLE => unreachable, + else => |err| return unexpectedError(err), + } + } + // Based on the docs for FILE_BEGIN, it seems that the returned signed integer + // should be interpreted as an unsigned integer. + return @bitCast(u64, result); +} + +pub const GetFinalPathNameByHandleError = error{ + FileNotFound, + SystemResources, + NameTooLong, + Unexpected, +}; + +pub fn GetFinalPathNameByHandleW( + hFile: HANDLE, + buf_ptr: [*]u16, + buf_len: DWORD, + flags: DWORD, +) GetFinalPathNameByHandleError!DWORD { + const rc = kernel32.GetFinalPathNameByHandleW(hFile, buf_ptr, buf_len, flags); + if (rc == 0) { + switch (kernel32.GetLastError()) { + ERROR.FILE_NOT_FOUND => return error.FileNotFound, + ERROR.PATH_NOT_FOUND => return error.FileNotFound, + ERROR.NOT_ENOUGH_MEMORY => return error.SystemResources, + ERROR.FILENAME_EXCED_RANGE => return error.NameTooLong, + ERROR.INVALID_PARAMETER => unreachable, + else => |err| return unexpectedError(err), + } + } + return rc; +} + +pub const GetFileSizeError = error{Unexpected}; + +pub fn GetFileSizeEx(hFile: HANDLE) GetFileSizeError!u64 { + var file_size: LARGE_INTEGER = undefined; + if (kernel32.GetFileSizeEx(hFile, &file_size) == 0) { + switch (kernel32.GetLastError()) { + else => |err| return unexpectedError(err), + } + } + return @bitCast(u64, file_size); +} + +pub const GetFileAttributesError = error{ + FileNotFound, + PermissionDenied, + Unexpected, +}; + +pub fn GetFileAttributes(filename: []const u8) GetFileAttributesError!DWORD { + const filename_w = try sliceToPrefixedFileW(filename); + return GetFileAttributesW(&filename_w); +} + +pub fn GetFileAttributesW(lpFileName: [*]const u16) GetFileAttributesError!DWORD { + const rc = kernel32.GetFileAttributesW(lpFileName); + if (rc == INVALID_FILE_ATTRIBUTES) { + switch (kernel32.GetLastError()) { + ERROR.FILE_NOT_FOUND => return error.FileNotFound, + ERROR.PATH_NOT_FOUND => return error.FileNotFound, + ERROR.ACCESS_DENIED => return error.PermissionDenied, + else => |err| return unexpectedError(err), + } + } + return rc; +} + +const GetModuleFileNameError = error{Unexpected}; + +pub fn GetModuleFileNameW(hModule: ?HMODULE, buf_ptr: [*]u16, buf_len: DWORD) GetModuleFileNameError![]u16 { + const rc = kernel32.GetModuleFileNameW(hModule, buf_ptr, buf_len); + if (rc == 0) { + switch (kernel32.GetLastError()) { + else => |err| return unexpectedError(err), + } + } + return buf_ptr[0..rc]; +} + +pub const TerminateProcessError = error{Unexpected}; + +pub fn TerminateProcess(hProcess: HANDLE, uExitCode: UINT) TerminateProcessError!void { + if (kernel32.TerminateProcess(hProcess, uExitCode) == 0) { + switch (kernel32.GetLastError()) { + else => |err| return unexpectedError(err), + } + } +} + +pub const VirtualAllocError = error{Unexpected}; + +pub fn VirtualAlloc(addr: ?LPVOID, size: usize, alloc_type: DWORD, flProtect: DWORD) VirtualAllocError!LPVOID { + return kernel32.VirtualAlloc(addr, size, alloc_type, flProtect) orelse { + switch (kernel32.GetLastError()) { + else => |err| return unexpectedError(err), + } + }; +} + +pub fn VirtualFree(lpAddress: ?LPVOID, dwSize: usize, dwFreeType: DWORD) void { + assert(kernel32.VirtualFree(lpAddress, dwSize, dwFreeType) != 0); +} + +pub const SetConsoleTextAttributeError = error{Unexpected}; + +pub fn SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) SetConsoleTextAttributeError!void { + if (kernel32.SetConsoleTextAttribute(hConsoleOutput, wAttributes) == 0) { + switch (kernel32.GetLastError()) { + else => |err| return unexpectedError(err), + } + } +} + +pub const GetEnvironmentStringsError = error{OutOfMemory}; + +pub fn GetEnvironmentStringsW() GetEnvironmentStringsError![*]u16 { + return kernel32.GetEnvironmentStringsW() orelse return error.OutOfMemory; +} + +pub fn FreeEnvironmentStringsW(penv: [*]u16) void { + assert(kernel32.FreeEnvironmentStringsW(penv) != 0); +} + +pub const GetEnvironmentVariableError = error{ + EnvironmentVariableNotFound, + Unexpected, +}; + +pub fn GetEnvironmentVariableW(lpName: LPWSTR, lpBuffer: LPWSTR, nSize: DWORD) GetEnvironmentVariableError!DWORD { + const rc = kernel32.GetEnvironmentVariableW(lpName, lpBuffer, nSize); + if (rc == 0) { + switch (kernel32.GetLastError()) { + ERROR.ENVVAR_NOT_FOUND => return error.EnvironmentVariableNotFound, + else => |err| return unexpectedError(err), + } + } + return rc; +} + +pub const CreateProcessError = error{ + FileNotFound, + AccessDenied, + InvalidName, + Unexpected, +}; + +pub fn CreateProcessW( + lpApplicationName: ?LPWSTR, + lpCommandLine: LPWSTR, + lpProcessAttributes: ?*SECURITY_ATTRIBUTES, + lpThreadAttributes: ?*SECURITY_ATTRIBUTES, + bInheritHandles: BOOL, + dwCreationFlags: DWORD, + lpEnvironment: ?*c_void, + lpCurrentDirectory: ?LPWSTR, + lpStartupInfo: *STARTUPINFOW, + lpProcessInformation: *PROCESS_INFORMATION, +) CreateProcessError!void { + if (kernel32.CreateProcessW( + lpApplicationName, + lpCommandLine, + lpProcessAttributes, + lpThreadAttributes, + bInheritHandles, + dwCreationFlags, + lpEnvironment, + lpCurrentDirectory, + lpStartupInfo, + lpProcessInformation, + ) == 0) { + switch (kernel32.GetLastError()) { + ERROR.FILE_NOT_FOUND => return error.FileNotFound, + ERROR.PATH_NOT_FOUND => return error.FileNotFound, + ERROR.ACCESS_DENIED => return error.AccessDenied, + ERROR.INVALID_PARAMETER => unreachable, + ERROR.INVALID_NAME => return error.InvalidName, + else => |err| return unexpectedError(err), + } + } +} + +pub const LoadLibraryError = error{ + FileNotFound, + Unexpected, +}; + +pub fn LoadLibraryW(lpLibFileName: [*]const u16) LoadLibraryError!HMODULE { + return kernel32.LoadLibraryW(lpLibFileName) orelse { + switch (kernel32.GetLastError()) { + ERROR.FILE_NOT_FOUND => return error.FileNotFound, + ERROR.PATH_NOT_FOUND => return error.FileNotFound, + ERROR.MOD_NOT_FOUND => return error.FileNotFound, + else => |err| return unexpectedError(err), + } + }; +} + +pub fn FreeLibrary(hModule: HMODULE) void { + assert(kernel32.FreeLibrary(hModule) != 0); +} + +pub fn QueryPerformanceFrequency() u64 { + // "On systems that run Windows XP or later, the function will always succeed" + // https://docs.microsoft.com/en-us/windows/desktop/api/profileapi/nf-profileapi-queryperformancefrequency + var result: LARGE_INTEGER = undefined; + assert(kernel32.QueryPerformanceFrequency(&result) != 0); + // The kernel treats this integer as unsigned. + return @bitCast(u64, result); +} + +pub fn QueryPerformanceCounter() u64 { + // "On systems that run Windows XP or later, the function will always succeed" + // https://docs.microsoft.com/en-us/windows/desktop/api/profileapi/nf-profileapi-queryperformancecounter + var result: LARGE_INTEGER = undefined; + assert(kernel32.QueryPerformanceCounter(&result) != 0); + // The kernel treats this integer as unsigned. + return @bitCast(u64, result); +} + +pub fn InitOnceExecuteOnce(InitOnce: *INIT_ONCE, InitFn: INIT_ONCE_FN, Parameter: ?*c_void, Context: ?*c_void) void { + assert(kernel32.InitOnceExecuteOnce(InitOnce, InitFn, Parameter, Context) != 0); +} + +pub fn HeapFree(hHeap: HANDLE, dwFlags: DWORD, lpMem: *c_void) void { + assert(kernel32.HeapFree(hHeap, dwFlags, lpMem) != 0); +} + +pub fn HeapDestroy(hHeap: HANDLE) void { + assert(kernel32.HeapDestroy(hHeap) != 0); +} + +pub const GetFileInformationByHandleError = error{Unexpected}; + +pub fn GetFileInformationByHandle( + hFile: HANDLE, +) GetFileInformationByHandleError!BY_HANDLE_FILE_INFORMATION { + var info: BY_HANDLE_FILE_INFORMATION = undefined; + const rc = ntdll.GetFileInformationByHandle(hFile, &info); + if (rc == 0) { + switch (kernel32.GetLastError()) { + else => |err| return unexpectedError(err), + } + } + return info; +} + +pub const SetFileTimeError = error{Unexpected}; + +pub fn SetFileTime( + hFile: HANDLE, + lpCreationTime: ?*const FILETIME, + lpLastAccessTime: ?*const FILETIME, + lpLastWriteTime: ?*const FILETIME, +) SetFileTimeError!void { + const rc = kernel32.SetFileTime(hFile, lpCreationTime, lpLastAccessTime, lpLastWriteTime); + if (rc == 0) { + switch (kernel32.GetLastError()) { + else => |err| return unexpectedError(err), + } + } +} + +/// A file time is a 64-bit value that represents the number of 100-nanosecond +/// intervals that have elapsed since 12:00 A.M. January 1, 1601 Coordinated +/// Universal Time (UTC). +/// This function returns the number of nanoseconds since the canonical epoch, +/// which is the POSIX one (Jan 01, 1970 AD). +pub fn fromSysTime(hns: i64) i64 { + const adjusted_epoch = hns + std.time.epoch.windows * (std.time.ns_per_s / 100); + return adjusted_epoch * 100; +} + +pub fn toSysTime(ns: i64) i64 { + const hns = @divFloor(ns, 100); + return hns - std.time.epoch.windows * (std.time.ns_per_s / 100); +} + +pub fn fileTimeToNanoSeconds(ft: FILETIME) i64 { + const hns = @bitCast(i64, (u64(ft.dwHighDateTime) << 32) | ft.dwLowDateTime); + return fromSysTime(hns); +} + +/// Converts a number of nanoseconds since the POSIX epoch to a Windows FILETIME. +pub fn nanoSecondsToFileTime(ns: i64) FILETIME { + const adjusted = @bitCast(u64, toSysTime(ns)); + return FILETIME{ + .dwHighDateTime = @truncate(u32, adjusted >> 32), + .dwLowDateTime = @truncate(u32, adjusted), + }; +} + +pub fn cStrToPrefixedFileW(s: [*]const u8) ![PATH_MAX_WIDE + 1]u16 { + return sliceToPrefixedFileW(mem.toSliceConst(u8, s)); +} + +pub fn sliceToPrefixedFileW(s: []const u8) ![PATH_MAX_WIDE + 1]u16 { + return sliceToPrefixedSuffixedFileW(s, [_]u16{0}); +} + +pub fn sliceToPrefixedSuffixedFileW(s: []const u8, comptime suffix: []const u16) ![PATH_MAX_WIDE + suffix.len]u16 { + // TODO https://github.com/ziglang/zig/issues/2765 + var result: [PATH_MAX_WIDE + suffix.len]u16 = undefined; + // > File I/O functions in the Windows API convert "/" to "\" as part of + // > converting the name to an NT-style name, except when using the "\\?\" + // > prefix as detailed in the following sections. + // from https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file#maximum-path-length-limitation + // Because we want the larger maximum path length for absolute paths, we + // disallow forward slashes in zig std lib file functions on Windows. + for (s) |byte| { + switch (byte) { + '/', '*', '?', '"', '<', '>', '|' => return error.BadPathName, + else => {}, + } + } + const start_index = if (mem.startsWith(u8, s, "\\\\") or !std.fs.path.isAbsolute(s)) 0 else blk: { + const prefix = [_]u16{ '\\', '\\', '?', '\\' }; + mem.copy(u16, result[0..], prefix); + break :blk prefix.len; + }; + const end_index = start_index + try std.unicode.utf8ToUtf16Le(result[start_index..], s); + assert(end_index <= result.len); + if (end_index + suffix.len > result.len) return error.NameTooLong; + mem.copy(u16, result[end_index..], suffix); + return result; +} + +inline fn MAKELANGID(p: c_ushort, s: c_ushort) LANGID { + return (s << 10) | p; +} + +/// Call this when you made a windows DLL call or something that does SetLastError +/// and you get an unexpected error. +pub fn unexpectedError(err: DWORD) std.os.UnexpectedError { + if (std.os.unexpected_error_tracing) { + // 614 is the length of the longest windows error desciption + var buf_u16: [614]u16 = undefined; + var buf_u8: [614]u8 = undefined; + var len = kernel32.FormatMessageW(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, null, err, MAKELANGID(LANG.NEUTRAL, SUBLANG.DEFAULT), buf_u16[0..].ptr, buf_u16.len / @sizeOf(TCHAR), null); + _ = std.unicode.utf16leToUtf8(&buf_u8, buf_u16[0..len]) catch unreachable; + std.debug.warn("error.Unexpected: GetLastError({}): {}\n", err, buf_u8[0..len]); + std.debug.dumpCurrentStackTrace(null); + } + return error.Unexpected; +} + +/// Call this when you made a windows NtDll call +/// and you get an unexpected status. +pub fn unexpectedStatus(status: NTSTATUS) std.os.UnexpectedError { + if (std.os.unexpected_error_tracing) { + std.debug.warn("error.Unexpected NTSTATUS={}\n", status); + std.debug.dumpCurrentStackTrace(null); + } + return error.Unexpected; +} diff --git a/lib/std/os/windows/advapi32.zig b/lib/std/os/windows/advapi32.zig new file mode 100644 index 0000000000..940f10994c --- /dev/null +++ b/lib/std/os/windows/advapi32.zig @@ -0,0 +1,23 @@ +usingnamespace @import("bits.zig"); + +pub extern "advapi32" stdcallcc fn RegOpenKeyExW( + hKey: HKEY, + lpSubKey: LPCWSTR, + ulOptions: DWORD, + samDesired: REGSAM, + phkResult: *HKEY, +) LSTATUS; + +pub extern "advapi32" stdcallcc fn RegQueryValueExW( + hKey: HKEY, + lpValueName: LPCWSTR, + lpReserved: LPDWORD, + lpType: LPDWORD, + lpData: LPBYTE, + lpcbData: LPDWORD, +) LSTATUS; + +// RtlGenRandom is known as SystemFunction036 under advapi32 +// http://msdn.microsoft.com/en-us/library/windows/desktop/aa387694.aspx */ +pub extern "advapi32" stdcallcc fn SystemFunction036(output: [*]u8, length: ULONG) BOOL; +pub const RtlGenRandom = SystemFunction036; diff --git a/lib/std/os/windows/bits.zig b/lib/std/os/windows/bits.zig new file mode 100644 index 0000000000..ddfdd27e1b --- /dev/null +++ b/lib/std/os/windows/bits.zig @@ -0,0 +1,734 @@ +// Platform-dependent types and values that are used along with OS-specific APIs. + +const builtin = @import("builtin"); +const std = @import("../../std.zig"); +const assert = std.debug.assert; +const maxInt = std.math.maxInt; + +pub const ERROR = @import("error.zig"); +pub const STATUS = @import("status.zig"); +pub const LANG = @import("lang.zig"); +pub const SUBLANG = @import("sublang.zig"); + +/// The standard input device. Initially, this is the console input buffer, CONIN$. +pub const STD_INPUT_HANDLE = maxInt(DWORD) - 10 + 1; + +/// The standard output device. Initially, this is the active console screen buffer, CONOUT$. +pub const STD_OUTPUT_HANDLE = maxInt(DWORD) - 11 + 1; + +/// The standard error device. Initially, this is the active console screen buffer, CONOUT$. +pub const STD_ERROR_HANDLE = maxInt(DWORD) - 12 + 1; + +pub const SHORT = c_short; +pub const BOOL = c_int; +pub const BOOLEAN = BYTE; +pub const BYTE = u8; +pub const CHAR = u8; +pub const DWORD = u32; +pub const FLOAT = f32; +pub const HANDLE = *c_void; +pub const HCRYPTPROV = ULONG_PTR; +pub const HINSTANCE = *@OpaqueType(); +pub const HMODULE = *@OpaqueType(); +pub const FARPROC = *@OpaqueType(); +pub const INT = c_int; +pub const LPBYTE = *BYTE; +pub const LPCH = *CHAR; +pub const LPCSTR = [*]const CHAR; +pub const LPCTSTR = [*]const TCHAR; +pub const LPCVOID = *const c_void; +pub const LPDWORD = *DWORD; +pub const LPSTR = [*]CHAR; +pub const LPTSTR = if (UNICODE) LPWSTR else LPSTR; +pub const LPVOID = *c_void; +pub const LPWSTR = [*]WCHAR; +pub const LPCWSTR = [*]const WCHAR; +pub const PVOID = *c_void; +pub const PWSTR = [*]WCHAR; +pub const SIZE_T = usize; +pub const TCHAR = if (UNICODE) WCHAR else u8; +pub const UINT = c_uint; +pub const ULONG_PTR = usize; +pub const DWORD_PTR = ULONG_PTR; +pub const UNICODE = false; +pub const WCHAR = u16; +pub const WORD = u16; +pub const LARGE_INTEGER = i64; +pub const ULONG = u32; +pub const LONG = i32; +pub const ULONGLONG = u64; +pub const LONGLONG = i64; +pub const HLOCAL = HANDLE; +pub const LANGID = c_ushort; +pub const NTSTATUS = ULONG; + +pub const va_list = *@OpaqueType(); + +pub const TRUE = 1; +pub const FALSE = 0; + +pub const INVALID_HANDLE_VALUE = @intToPtr(HANDLE, maxInt(usize)); + +pub const INVALID_FILE_ATTRIBUTES = DWORD(maxInt(DWORD)); + +pub const FILE_ALL_INFORMATION = extern struct { + BasicInformation: FILE_BASIC_INFORMATION, + StandardInformation: FILE_STANDARD_INFORMATION, + InternalInformation: FILE_INTERNAL_INFORMATION, + EaInformation: FILE_EA_INFORMATION, + AccessInformation: FILE_ACCESS_INFORMATION, + PositionInformation: FILE_POSITION_INFORMATION, + ModeInformation: FILE_MODE_INFORMATION, + AlignmentInformation: FILE_ALIGNMENT_INFORMATION, + NameInformation: FILE_NAME_INFORMATION, +}; + +pub const FILE_BASIC_INFORMATION = extern struct { + CreationTime: LARGE_INTEGER, + LastAccessTime: LARGE_INTEGER, + LastWriteTime: LARGE_INTEGER, + ChangeTime: LARGE_INTEGER, + FileAttributes: ULONG, +}; + +pub const FILE_STANDARD_INFORMATION = extern struct { + AllocationSize: LARGE_INTEGER, + EndOfFile: LARGE_INTEGER, + NumberOfLinks: ULONG, + DeletePending: BOOLEAN, + Directory: BOOLEAN, +}; + +pub const FILE_INTERNAL_INFORMATION = extern struct { + IndexNumber: LARGE_INTEGER, +}; + +pub const FILE_EA_INFORMATION = extern struct { + EaSize: ULONG, +}; + +pub const FILE_ACCESS_INFORMATION = extern struct { + AccessFlags: ACCESS_MASK, +}; + +pub const FILE_POSITION_INFORMATION = extern struct { + CurrentByteOffset: LARGE_INTEGER, +}; + +pub const FILE_MODE_INFORMATION = extern struct { + Mode: ULONG, +}; + +pub const FILE_ALIGNMENT_INFORMATION = extern struct { + AlignmentRequirement: ULONG, +}; + +pub const FILE_NAME_INFORMATION = extern struct { + FileNameLength: ULONG, + FileName: [1]WCHAR, +}; + +pub const IO_STATUS_BLOCK = extern struct { + Status: usize, + Information: ULONG_PTR, +}; + +pub const FILE_INFORMATION_CLASS = extern enum { + FileDirectoryInformation = 1, + FileFullDirectoryInformation, + FileBothDirectoryInformation, + FileBasicInformation, + FileStandardInformation, + FileInternalInformation, + FileEaInformation, + FileAccessInformation, + FileNameInformation, + FileRenameInformation, + FileLinkInformation, + FileNamesInformation, + FileDispositionInformation, + FilePositionInformation, + FileFullEaInformation, + FileModeInformation, + FileAlignmentInformation, + FileAllInformation, + FileAllocationInformation, + FileEndOfFileInformation, + FileAlternateNameInformation, + FileStreamInformation, + FilePipeInformation, + FilePipeLocalInformation, + FilePipeRemoteInformation, + FileMailslotQueryInformation, + FileMailslotSetInformation, + FileCompressionInformation, + FileObjectIdInformation, + FileCompletionInformation, + FileMoveClusterInformation, + FileQuotaInformation, + FileReparsePointInformation, + FileNetworkOpenInformation, + FileAttributeTagInformation, + FileTrackingInformation, + FileIdBothDirectoryInformation, + FileIdFullDirectoryInformation, + FileValidDataLengthInformation, + FileShortNameInformation, + FileIoCompletionNotificationInformation, + FileIoStatusBlockRangeInformation, + FileIoPriorityHintInformation, + FileSfioReserveInformation, + FileSfioVolumeInformation, + FileHardLinkInformation, + FileProcessIdsUsingFileInformation, + FileNormalizedNameInformation, + FileNetworkPhysicalNameInformation, + FileIdGlobalTxDirectoryInformation, + FileIsRemoteDeviceInformation, + FileUnusedInformation, + FileNumaNodeInformation, + FileStandardLinkInformation, + FileRemoteProtocolInformation, + FileRenameInformationBypassAccessCheck, + FileLinkInformationBypassAccessCheck, + FileVolumeNameInformation, + FileIdInformation, + FileIdExtdDirectoryInformation, + FileReplaceCompletionInformation, + FileHardLinkFullIdInformation, + FileIdExtdBothDirectoryInformation, + FileDispositionInformationEx, + FileRenameInformationEx, + FileRenameInformationExBypassAccessCheck, + FileDesiredStorageClassInformation, + FileStatInformation, + FileMemoryPartitionInformation, + FileStatLxInformation, + FileCaseSensitiveInformation, + FileLinkInformationEx, + FileLinkInformationExBypassAccessCheck, + FileStorageReserveIdInformation, + FileCaseSensitiveInformationForceAccessCheck, + FileMaximumInformation, +}; + +pub const OVERLAPPED = extern struct { + Internal: ULONG_PTR, + InternalHigh: ULONG_PTR, + Offset: DWORD, + OffsetHigh: DWORD, + hEvent: ?HANDLE, +}; +pub const LPOVERLAPPED = *OVERLAPPED; + +pub const MAX_PATH = 260; + +// TODO issue #305 +pub const FILE_INFO_BY_HANDLE_CLASS = u32; +pub const FileBasicInfo = 0; +pub const FileStandardInfo = 1; +pub const FileNameInfo = 2; +pub const FileRenameInfo = 3; +pub const FileDispositionInfo = 4; +pub const FileAllocationInfo = 5; +pub const FileEndOfFileInfo = 6; +pub const FileStreamInfo = 7; +pub const FileCompressionInfo = 8; +pub const FileAttributeTagInfo = 9; +pub const FileIdBothDirectoryInfo = 10; +pub const FileIdBothDirectoryRestartInfo = 11; +pub const FileIoPriorityHintInfo = 12; +pub const FileRemoteProtocolInfo = 13; +pub const FileFullDirectoryInfo = 14; +pub const FileFullDirectoryRestartInfo = 15; +pub const FileStorageInfo = 16; +pub const FileAlignmentInfo = 17; +pub const FileIdInfo = 18; +pub const FileIdExtdDirectoryInfo = 19; +pub const FileIdExtdDirectoryRestartInfo = 20; + +pub const BY_HANDLE_FILE_INFORMATION = extern struct { + dwFileAttributes: DWORD, + ftCreationTime: FILETIME, + ftLastAccessTime: FILETIME, + ftLastWriteTime: FILETIME, + dwVolumeSerialNumber: DWORD, + nFileSizeHigh: DWORD, + nFileSizeLow: DWORD, + nNumberOfLinks: DWORD, + nFileIndexHigh: DWORD, + nFileIndexLow: DWORD, +}; + +pub const FILE_NAME_INFO = extern struct { + FileNameLength: DWORD, + FileName: [1]WCHAR, +}; + +/// Return the normalized drive name. This is the default. +pub const FILE_NAME_NORMALIZED = 0x0; + +/// Return the opened file name (not normalized). +pub const FILE_NAME_OPENED = 0x8; + +/// Return the path with the drive letter. This is the default. +pub const VOLUME_NAME_DOS = 0x0; + +/// Return the path with a volume GUID path instead of the drive name. +pub const VOLUME_NAME_GUID = 0x1; + +/// Return the path with no drive information. +pub const VOLUME_NAME_NONE = 0x4; + +/// Return the path with the volume device path. +pub const VOLUME_NAME_NT = 0x2; + +pub const SECURITY_ATTRIBUTES = extern struct { + nLength: DWORD, + lpSecurityDescriptor: ?*c_void, + bInheritHandle: BOOL, +}; +pub const PSECURITY_ATTRIBUTES = *SECURITY_ATTRIBUTES; +pub const LPSECURITY_ATTRIBUTES = *SECURITY_ATTRIBUTES; + +pub const GENERIC_READ = 0x80000000; +pub const GENERIC_WRITE = 0x40000000; +pub const GENERIC_EXECUTE = 0x20000000; +pub const GENERIC_ALL = 0x10000000; + +pub const FILE_SHARE_DELETE = 0x00000004; +pub const FILE_SHARE_READ = 0x00000001; +pub const FILE_SHARE_WRITE = 0x00000002; + +pub const CREATE_ALWAYS = 2; +pub const CREATE_NEW = 1; +pub const OPEN_ALWAYS = 4; +pub const OPEN_EXISTING = 3; +pub const TRUNCATE_EXISTING = 5; + +pub const FILE_ATTRIBUTE_ARCHIVE = 0x20; +pub const FILE_ATTRIBUTE_COMPRESSED = 0x800; +pub const FILE_ATTRIBUTE_DEVICE = 0x40; +pub const FILE_ATTRIBUTE_DIRECTORY = 0x10; +pub const FILE_ATTRIBUTE_ENCRYPTED = 0x4000; +pub const FILE_ATTRIBUTE_HIDDEN = 0x2; +pub const FILE_ATTRIBUTE_INTEGRITY_STREAM = 0x8000; +pub const FILE_ATTRIBUTE_NORMAL = 0x80; +pub const FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 0x2000; +pub const FILE_ATTRIBUTE_NO_SCRUB_DATA = 0x20000; +pub const FILE_ATTRIBUTE_OFFLINE = 0x1000; +pub const FILE_ATTRIBUTE_READONLY = 0x1; +pub const FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS = 0x400000; +pub const FILE_ATTRIBUTE_RECALL_ON_OPEN = 0x40000; +pub const FILE_ATTRIBUTE_REPARSE_POINT = 0x400; +pub const FILE_ATTRIBUTE_SPARSE_FILE = 0x200; +pub const FILE_ATTRIBUTE_SYSTEM = 0x4; +pub const FILE_ATTRIBUTE_TEMPORARY = 0x100; +pub const FILE_ATTRIBUTE_VIRTUAL = 0x10000; + +pub const PROCESS_INFORMATION = extern struct { + hProcess: HANDLE, + hThread: HANDLE, + dwProcessId: DWORD, + dwThreadId: DWORD, +}; + +pub const STARTUPINFOW = extern struct { + cb: DWORD, + lpReserved: ?LPWSTR, + lpDesktop: ?LPWSTR, + lpTitle: ?LPWSTR, + dwX: DWORD, + dwY: DWORD, + dwXSize: DWORD, + dwYSize: DWORD, + dwXCountChars: DWORD, + dwYCountChars: DWORD, + dwFillAttribute: DWORD, + dwFlags: DWORD, + wShowWindow: WORD, + cbReserved2: WORD, + lpReserved2: ?LPBYTE, + hStdInput: ?HANDLE, + hStdOutput: ?HANDLE, + hStdError: ?HANDLE, +}; + +pub const STARTF_FORCEONFEEDBACK = 0x00000040; +pub const STARTF_FORCEOFFFEEDBACK = 0x00000080; +pub const STARTF_PREVENTPINNING = 0x00002000; +pub const STARTF_RUNFULLSCREEN = 0x00000020; +pub const STARTF_TITLEISAPPID = 0x00001000; +pub const STARTF_TITLEISLINKNAME = 0x00000800; +pub const STARTF_UNTRUSTEDSOURCE = 0x00008000; +pub const STARTF_USECOUNTCHARS = 0x00000008; +pub const STARTF_USEFILLATTRIBUTE = 0x00000010; +pub const STARTF_USEHOTKEY = 0x00000200; +pub const STARTF_USEPOSITION = 0x00000004; +pub const STARTF_USESHOWWINDOW = 0x00000001; +pub const STARTF_USESIZE = 0x00000002; +pub const STARTF_USESTDHANDLES = 0x00000100; + +pub const INFINITE = 4294967295; + +pub const WAIT_ABANDONED = 0x00000080; +pub const WAIT_OBJECT_0 = 0x00000000; +pub const WAIT_TIMEOUT = 0x00000102; +pub const WAIT_FAILED = 0xFFFFFFFF; + +pub const HANDLE_FLAG_INHERIT = 0x00000001; +pub const HANDLE_FLAG_PROTECT_FROM_CLOSE = 0x00000002; + +pub const MOVEFILE_COPY_ALLOWED = 2; +pub const MOVEFILE_CREATE_HARDLINK = 16; +pub const MOVEFILE_DELAY_UNTIL_REBOOT = 4; +pub const MOVEFILE_FAIL_IF_NOT_TRACKABLE = 32; +pub const MOVEFILE_REPLACE_EXISTING = 1; +pub const MOVEFILE_WRITE_THROUGH = 8; + +pub const FILE_BEGIN = 0; +pub const FILE_CURRENT = 1; +pub const FILE_END = 2; + +pub const HEAP_CREATE_ENABLE_EXECUTE = 0x00040000; +pub const HEAP_GENERATE_EXCEPTIONS = 0x00000004; +pub const HEAP_NO_SERIALIZE = 0x00000001; + +// AllocationType values +pub const MEM_COMMIT = 0x1000; +pub const MEM_RESERVE = 0x2000; +pub const MEM_RESET = 0x80000; +pub const MEM_RESET_UNDO = 0x1000000; +pub const MEM_LARGE_PAGES = 0x20000000; +pub const MEM_PHYSICAL = 0x400000; +pub const MEM_TOP_DOWN = 0x100000; +pub const MEM_WRITE_WATCH = 0x200000; + +// Protect values +pub const PAGE_EXECUTE = 0x10; +pub const PAGE_EXECUTE_READ = 0x20; +pub const PAGE_EXECUTE_READWRITE = 0x40; +pub const PAGE_EXECUTE_WRITECOPY = 0x80; +pub const PAGE_NOACCESS = 0x01; +pub const PAGE_READONLY = 0x02; +pub const PAGE_READWRITE = 0x04; +pub const PAGE_WRITECOPY = 0x08; +pub const PAGE_TARGETS_INVALID = 0x40000000; +pub const PAGE_TARGETS_NO_UPDATE = 0x40000000; // Same as PAGE_TARGETS_INVALID +pub const PAGE_GUARD = 0x100; +pub const PAGE_NOCACHE = 0x200; +pub const PAGE_WRITECOMBINE = 0x400; + +// FreeType values +pub const MEM_COALESCE_PLACEHOLDERS = 0x1; +pub const MEM_RESERVE_PLACEHOLDERS = 0x2; +pub const MEM_DECOMMIT = 0x4000; +pub const MEM_RELEASE = 0x8000; + +pub const PTHREAD_START_ROUTINE = extern fn (LPVOID) DWORD; +pub const LPTHREAD_START_ROUTINE = PTHREAD_START_ROUTINE; + +pub const WIN32_FIND_DATAW = extern struct { + dwFileAttributes: DWORD, + ftCreationTime: FILETIME, + ftLastAccessTime: FILETIME, + ftLastWriteTime: FILETIME, + nFileSizeHigh: DWORD, + nFileSizeLow: DWORD, + dwReserved0: DWORD, + dwReserved1: DWORD, + cFileName: [260]u16, + cAlternateFileName: [14]u16, +}; + +pub const FILETIME = extern struct { + dwLowDateTime: DWORD, + dwHighDateTime: DWORD, +}; + +pub const SYSTEM_INFO = extern struct { + anon1: extern union { + dwOemId: DWORD, + anon2: extern struct { + wProcessorArchitecture: WORD, + wReserved: WORD, + }, + }, + dwPageSize: DWORD, + lpMinimumApplicationAddress: LPVOID, + lpMaximumApplicationAddress: LPVOID, + dwActiveProcessorMask: DWORD_PTR, + dwNumberOfProcessors: DWORD, + dwProcessorType: DWORD, + dwAllocationGranularity: DWORD, + wProcessorLevel: WORD, + wProcessorRevision: WORD, +}; + +pub const HRESULT = c_long; + +pub const KNOWNFOLDERID = GUID; +pub const GUID = extern struct { + Data1: c_ulong, + Data2: c_ushort, + Data3: c_ushort, + Data4: [8]u8, + + pub fn parse(str: []const u8) GUID { + var guid: GUID = undefined; + var index: usize = 0; + assert(str[index] == '{'); + index += 1; + + guid.Data1 = std.fmt.parseUnsigned(c_ulong, str[index .. index + 8], 16) catch unreachable; + index += 8; + + assert(str[index] == '-'); + index += 1; + + guid.Data2 = std.fmt.parseUnsigned(c_ushort, str[index .. index + 4], 16) catch unreachable; + index += 4; + + assert(str[index] == '-'); + index += 1; + + guid.Data3 = std.fmt.parseUnsigned(c_ushort, str[index .. index + 4], 16) catch unreachable; + index += 4; + + assert(str[index] == '-'); + index += 1; + + guid.Data4[0] = std.fmt.parseUnsigned(u8, str[index .. index + 2], 16) catch unreachable; + index += 2; + guid.Data4[1] = std.fmt.parseUnsigned(u8, str[index .. index + 2], 16) catch unreachable; + index += 2; + + assert(str[index] == '-'); + index += 1; + + var i: usize = 2; + while (i < guid.Data4.len) : (i += 1) { + guid.Data4[i] = std.fmt.parseUnsigned(u8, str[index .. index + 2], 16) catch unreachable; + index += 2; + } + + assert(str[index] == '}'); + index += 1; + return guid; + } +}; + +pub const FOLDERID_LocalAppData = GUID.parse("{F1B32785-6FBA-4FCF-9D55-7B8E7F157091}"); + +pub const KF_FLAG_DEFAULT = 0; +pub const KF_FLAG_NO_APPCONTAINER_REDIRECTION = 65536; +pub const KF_FLAG_CREATE = 32768; +pub const KF_FLAG_DONT_VERIFY = 16384; +pub const KF_FLAG_DONT_UNEXPAND = 8192; +pub const KF_FLAG_NO_ALIAS = 4096; +pub const KF_FLAG_INIT = 2048; +pub const KF_FLAG_DEFAULT_PATH = 1024; +pub const KF_FLAG_NOT_PARENT_RELATIVE = 512; +pub const KF_FLAG_SIMPLE_IDLIST = 256; +pub const KF_FLAG_ALIAS_ONLY = -2147483648; + +pub const S_OK = 0; +pub const E_NOTIMPL = @bitCast(c_long, c_ulong(0x80004001)); +pub const E_NOINTERFACE = @bitCast(c_long, c_ulong(0x80004002)); +pub const E_POINTER = @bitCast(c_long, c_ulong(0x80004003)); +pub const E_ABORT = @bitCast(c_long, c_ulong(0x80004004)); +pub const E_FAIL = @bitCast(c_long, c_ulong(0x80004005)); +pub const E_UNEXPECTED = @bitCast(c_long, c_ulong(0x8000FFFF)); +pub const E_ACCESSDENIED = @bitCast(c_long, c_ulong(0x80070005)); +pub const E_HANDLE = @bitCast(c_long, c_ulong(0x80070006)); +pub const E_OUTOFMEMORY = @bitCast(c_long, c_ulong(0x8007000E)); +pub const E_INVALIDARG = @bitCast(c_long, c_ulong(0x80070057)); + +pub const FILE_FLAG_BACKUP_SEMANTICS = 0x02000000; +pub const FILE_FLAG_DELETE_ON_CLOSE = 0x04000000; +pub const FILE_FLAG_NO_BUFFERING = 0x20000000; +pub const FILE_FLAG_OPEN_NO_RECALL = 0x00100000; +pub const FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000; +pub const FILE_FLAG_OVERLAPPED = 0x40000000; +pub const FILE_FLAG_POSIX_SEMANTICS = 0x0100000; +pub const FILE_FLAG_RANDOM_ACCESS = 0x10000000; +pub const FILE_FLAG_SESSION_AWARE = 0x00800000; +pub const FILE_FLAG_SEQUENTIAL_SCAN = 0x08000000; +pub const FILE_FLAG_WRITE_THROUGH = 0x80000000; + +pub const SMALL_RECT = extern struct { + Left: SHORT, + Top: SHORT, + Right: SHORT, + Bottom: SHORT, +}; + +pub const COORD = extern struct { + X: SHORT, + Y: SHORT, +}; + +pub const CREATE_UNICODE_ENVIRONMENT = 1024; + +pub const TLS_OUT_OF_INDEXES = 4294967295; +pub const IMAGE_TLS_DIRECTORY = extern struct { + StartAddressOfRawData: usize, + EndAddressOfRawData: usize, + AddressOfIndex: usize, + AddressOfCallBacks: usize, + SizeOfZeroFill: u32, + Characteristics: u32, +}; +pub const IMAGE_TLS_DIRECTORY64 = IMAGE_TLS_DIRECTORY; +pub const IMAGE_TLS_DIRECTORY32 = IMAGE_TLS_DIRECTORY; + +pub const PIMAGE_TLS_CALLBACK = ?extern fn (PVOID, DWORD, PVOID) void; + +pub const PROV_RSA_FULL = 1; + +pub const REGSAM = ACCESS_MASK; +pub const ACCESS_MASK = DWORD; +pub const PHKEY = *HKEY; +pub const HKEY = *HKEY__; +pub const HKEY__ = extern struct { + unused: c_int, +}; +pub const LSTATUS = LONG; + +pub const FILE_NOTIFY_INFORMATION = extern struct { + NextEntryOffset: DWORD, + Action: DWORD, + FileNameLength: DWORD, + FileName: [1]WCHAR, +}; + +pub const FILE_ACTION_ADDED = 0x00000001; +pub const FILE_ACTION_REMOVED = 0x00000002; +pub const FILE_ACTION_MODIFIED = 0x00000003; +pub const FILE_ACTION_RENAMED_OLD_NAME = 0x00000004; +pub const FILE_ACTION_RENAMED_NEW_NAME = 0x00000005; + +pub const LPOVERLAPPED_COMPLETION_ROUTINE = ?extern fn (DWORD, DWORD, *OVERLAPPED) void; + +pub const FILE_LIST_DIRECTORY = 1; + +pub const FILE_NOTIFY_CHANGE_CREATION = 64; +pub const FILE_NOTIFY_CHANGE_SIZE = 8; +pub const FILE_NOTIFY_CHANGE_SECURITY = 256; +pub const FILE_NOTIFY_CHANGE_LAST_ACCESS = 32; +pub const FILE_NOTIFY_CHANGE_LAST_WRITE = 16; +pub const FILE_NOTIFY_CHANGE_DIR_NAME = 2; +pub const FILE_NOTIFY_CHANGE_FILE_NAME = 1; +pub const FILE_NOTIFY_CHANGE_ATTRIBUTES = 4; + +pub const CONSOLE_SCREEN_BUFFER_INFO = extern struct { + dwSize: COORD, + dwCursorPosition: COORD, + wAttributes: WORD, + srWindow: SMALL_RECT, + dwMaximumWindowSize: COORD, +}; + +pub const FOREGROUND_BLUE = 1; +pub const FOREGROUND_GREEN = 2; +pub const FOREGROUND_RED = 4; +pub const FOREGROUND_INTENSITY = 8; + +pub const LIST_ENTRY = extern struct { + Flink: *LIST_ENTRY, + Blink: *LIST_ENTRY, +}; + +pub const RTL_CRITICAL_SECTION_DEBUG = extern struct { + Type: WORD, + CreatorBackTraceIndex: WORD, + CriticalSection: *RTL_CRITICAL_SECTION, + ProcessLocksList: LIST_ENTRY, + EntryCount: DWORD, + ContentionCount: DWORD, + Flags: DWORD, + CreatorBackTraceIndexHigh: WORD, + SpareWORD: WORD, +}; + +pub const RTL_CRITICAL_SECTION = extern struct { + DebugInfo: *RTL_CRITICAL_SECTION_DEBUG, + LockCount: LONG, + RecursionCount: LONG, + OwningThread: HANDLE, + LockSemaphore: HANDLE, + SpinCount: ULONG_PTR, +}; + +pub const CRITICAL_SECTION = RTL_CRITICAL_SECTION; +pub const INIT_ONCE = RTL_RUN_ONCE; +pub const INIT_ONCE_STATIC_INIT = RTL_RUN_ONCE_INIT; +pub const INIT_ONCE_FN = extern fn (InitOnce: *INIT_ONCE, Parameter: ?*c_void, Context: ?*c_void) BOOL; + +pub const RTL_RUN_ONCE = extern struct { + Ptr: ?*c_void, +}; + +pub const RTL_RUN_ONCE_INIT = RTL_RUN_ONCE{ .Ptr = null }; + +pub const COINIT_APARTMENTTHREADED = COINIT.COINIT_APARTMENTTHREADED; +pub const COINIT_MULTITHREADED = COINIT.COINIT_MULTITHREADED; +pub const COINIT_DISABLE_OLE1DDE = COINIT.COINIT_DISABLE_OLE1DDE; +pub const COINIT_SPEED_OVER_MEMORY = COINIT.COINIT_SPEED_OVER_MEMORY; +pub const COINIT = extern enum { + COINIT_APARTMENTTHREADED = 2, + COINIT_MULTITHREADED = 0, + COINIT_DISABLE_OLE1DDE = 4, + COINIT_SPEED_OVER_MEMORY = 8, +}; + +/// > The maximum path of 32,767 characters is approximate, because the "\\?\" +/// > prefix may be expanded to a longer string by the system at run time, and +/// > this expansion applies to the total length. +/// from https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file#maximum-path-length-limitation +pub const PATH_MAX_WIDE = 32767; + +pub const FORMAT_MESSAGE_ALLOCATE_BUFFER = 0x00000100; +pub const FORMAT_MESSAGE_ARGUMENT_ARRAY = 0x00002000; +pub const FORMAT_MESSAGE_FROM_HMODULE = 0x00000800; +pub const FORMAT_MESSAGE_FROM_STRING = 0x00000400; +pub const FORMAT_MESSAGE_FROM_SYSTEM = 0x00001000; +pub const FORMAT_MESSAGE_IGNORE_INSERTS = 0x00000200; +pub const FORMAT_MESSAGE_MAX_WIDTH_MASK = 0x000000FF; + +pub const EXCEPTION_DATATYPE_MISALIGNMENT = 0x80000002; +pub const EXCEPTION_ACCESS_VIOLATION = 0xc0000005; +pub const EXCEPTION_ILLEGAL_INSTRUCTION = 0xc000001d; +pub const EXCEPTION_STACK_OVERFLOW = 0xc00000fd; +pub const EXCEPTION_CONTINUE_SEARCH = 0; + +pub const EXCEPTION_RECORD = extern struct { + ExceptionCode: u32, + ExceptionFlags: u32, + ExceptionRecord: *EXCEPTION_RECORD, + ExceptionAddress: *c_void, + NumberParameters: u32, + ExceptionInformation: [15]usize, +}; + +pub const EXCEPTION_POINTERS = extern struct { + ExceptionRecord: *EXCEPTION_RECORD, + ContextRecord: *c_void, +}; + +pub const VECTORED_EXCEPTION_HANDLER = stdcallcc fn (ExceptionInfo: *EXCEPTION_POINTERS) c_long; + +pub const OBJECT_ATTRIBUTES = extern struct { + Length: ULONG, + RootDirectory: HANDLE, + ObjectName: *UNICODE_STRING, + Attributes: ULONG, + SecurityDescriptor: ?*c_void, + SecurityQualityOfService: ?*c_void, +}; + +pub const UNICODE_STRING = extern struct { + Length: USHORT, + MaximumLength: USHORT, + Buffer: [*]WCHAR, +}; diff --git a/lib/std/os/windows/error.zig b/lib/std/os/windows/error.zig new file mode 100644 index 0000000000..f90945d00e --- /dev/null +++ b/lib/std/os/windows/error.zig @@ -0,0 +1,3567 @@ +/// The operation completed successfully. +pub const SUCCESS = 0; + +/// Incorrect function. +pub const INVALID_FUNCTION = 1; + +/// The system cannot find the file specified. +pub const FILE_NOT_FOUND = 2; + +/// The system cannot find the path specified. +pub const PATH_NOT_FOUND = 3; + +/// The system cannot open the file. +pub const TOO_MANY_OPEN_FILES = 4; + +/// Access is denied. +pub const ACCESS_DENIED = 5; + +/// The handle is invalid. +pub const INVALID_HANDLE = 6; + +/// The storage control blocks were destroyed. +pub const ARENA_TRASHED = 7; + +/// Not enough storage is available to process this command. +pub const NOT_ENOUGH_MEMORY = 8; + +/// The storage control block address is invalid. +pub const INVALID_BLOCK = 9; + +/// The environment is incorrect. +pub const BAD_ENVIRONMENT = 10; + +/// An attempt was made to load a program with an incorrect format. +pub const BAD_FORMAT = 11; + +/// The access code is invalid. +pub const INVALID_ACCESS = 12; + +/// The data is invalid. +pub const INVALID_DATA = 13; + +/// Not enough storage is available to complete this operation. +pub const OUTOFMEMORY = 14; + +/// The system cannot find the drive specified. +pub const INVALID_DRIVE = 15; + +/// The directory cannot be removed. +pub const CURRENT_DIRECTORY = 16; + +/// The system cannot move the file to a different disk drive. +pub const NOT_SAME_DEVICE = 17; + +/// There are no more files. +pub const NO_MORE_FILES = 18; + +/// The media is write protected. +pub const WRITE_PROTECT = 19; + +/// The system cannot find the device specified. +pub const BAD_UNIT = 20; + +/// The device is not ready. +pub const NOT_READY = 21; + +/// The device does not recognize the command. +pub const BAD_COMMAND = 22; + +/// Data error (cyclic redundancy check). +pub const CRC = 23; + +/// The program issued a command but the command length is incorrect. +pub const BAD_LENGTH = 24; + +/// The drive cannot locate a specific area or track on the disk. +pub const SEEK = 25; + +/// The specified disk or diskette cannot be accessed. +pub const NOT_DOS_DISK = 26; + +/// The drive cannot find the sector requested. +pub const SECTOR_NOT_FOUND = 27; + +/// The printer is out of paper. +pub const OUT_OF_PAPER = 28; + +/// The system cannot write to the specified device. +pub const WRITE_FAULT = 29; + +/// The system cannot read from the specified device. +pub const READ_FAULT = 30; + +/// A device attached to the system is not functioning. +pub const GEN_FAILURE = 31; + +/// The process cannot access the file because it is being used by another process. +pub const SHARING_VIOLATION = 32; + +/// The process cannot access the file because another process has locked a portion of the file. +pub const LOCK_VIOLATION = 33; + +/// The wrong diskette is in the drive. Insert %2 (Volume Serial Number: %3) into drive %1. +pub const WRONG_DISK = 34; + +/// Too many files opened for sharing. +pub const SHARING_BUFFER_EXCEEDED = 36; + +/// Reached the end of the file. +pub const HANDLE_EOF = 38; + +/// The disk is full. +pub const HANDLE_DISK_FULL = 39; + +/// The request is not supported. +pub const NOT_SUPPORTED = 50; + +/// Windows cannot find the network path. Verify that the network path is correct and the destination computer is not busy or turned off. If Windows still cannot find the network path, contact your network administrator. +pub const REM_NOT_LIST = 51; + +/// You were not connected because a duplicate name exists on the network. If joining a domain, go to System in Control Panel to change the computer name and try again. If joining a workgroup, choose another workgroup name. +pub const DUP_NAME = 52; + +/// The network path was not found. +pub const BAD_NETPATH = 53; + +/// The network is busy. +pub const NETWORK_BUSY = 54; + +/// The specified network resource or device is no longer available. +pub const DEV_NOT_EXIST = 55; + +/// The network BIOS command limit has been reached. +pub const TOO_MANY_CMDS = 56; + +/// A network adapter hardware error occurred. +pub const ADAP_HDW_ERR = 57; + +/// The specified server cannot perform the requested operation. +pub const BAD_NET_RESP = 58; + +/// An unexpected network error occurred. +pub const UNEXP_NET_ERR = 59; + +/// The remote adapter is not compatible. +pub const BAD_REM_ADAP = 60; + +/// The printer queue is full. +pub const PRINTQ_FULL = 61; + +/// Space to store the file waiting to be printed is not available on the server. +pub const NO_SPOOL_SPACE = 62; + +/// Your file waiting to be printed was deleted. +pub const PRINT_CANCELLED = 63; + +/// The specified network name is no longer available. +pub const NETNAME_DELETED = 64; + +/// Network access is denied. +pub const NETWORK_ACCESS_DENIED = 65; + +/// The network resource type is not correct. +pub const BAD_DEV_TYPE = 66; + +/// The network name cannot be found. +pub const BAD_NET_NAME = 67; + +/// The name limit for the local computer network adapter card was exceeded. +pub const TOO_MANY_NAMES = 68; + +/// The network BIOS session limit was exceeded. +pub const TOO_MANY_SESS = 69; + +/// The remote server has been paused or is in the process of being started. +pub const SHARING_PAUSED = 70; + +/// No more connections can be made to this remote computer at this time because there are already as many connections as the computer can accept. +pub const REQ_NOT_ACCEP = 71; + +/// The specified printer or disk device has been paused. +pub const REDIR_PAUSED = 72; + +/// The file exists. +pub const FILE_EXISTS = 80; + +/// The directory or file cannot be created. +pub const CANNOT_MAKE = 82; + +/// Fail on INT 24. +pub const FAIL_I24 = 83; + +/// Storage to process this request is not available. +pub const OUT_OF_STRUCTURES = 84; + +/// The local device name is already in use. +pub const ALREADY_ASSIGNED = 85; + +/// The specified network password is not correct. +pub const INVALID_PASSWORD = 86; + +/// The parameter is incorrect. +pub const INVALID_PARAMETER = 87; + +/// A write fault occurred on the network. +pub const NET_WRITE_FAULT = 88; + +/// The system cannot start another process at this time. +pub const NO_PROC_SLOTS = 89; + +/// Cannot create another system semaphore. +pub const TOO_MANY_SEMAPHORES = 100; + +/// The exclusive semaphore is owned by another process. +pub const EXCL_SEM_ALREADY_OWNED = 101; + +/// The semaphore is set and cannot be closed. +pub const SEM_IS_SET = 102; + +/// The semaphore cannot be set again. +pub const TOO_MANY_SEM_REQUESTS = 103; + +/// Cannot request exclusive semaphores at interrupt time. +pub const INVALID_AT_INTERRUPT_TIME = 104; + +/// The previous ownership of this semaphore has ended. +pub const SEM_OWNER_DIED = 105; + +/// Insert the diskette for drive %1. +pub const SEM_USER_LIMIT = 106; + +/// The program stopped because an alternate diskette was not inserted. +pub const DISK_CHANGE = 107; + +/// The disk is in use or locked by another process. +pub const DRIVE_LOCKED = 108; + +/// The pipe has been ended. +pub const BROKEN_PIPE = 109; + +/// The system cannot open the device or file specified. +pub const OPEN_FAILED = 110; + +/// The file name is too long. +pub const BUFFER_OVERFLOW = 111; + +/// There is not enough space on the disk. +pub const DISK_FULL = 112; + +/// No more internal file identifiers available. +pub const NO_MORE_SEARCH_HANDLES = 113; + +/// The target internal file identifier is incorrect. +pub const INVALID_TARGET_HANDLE = 114; + +/// The IOCTL call made by the application program is not correct. +pub const INVALID_CATEGORY = 117; + +/// The verify-on-write switch parameter value is not correct. +pub const INVALID_VERIFY_SWITCH = 118; + +/// The system does not support the command requested. +pub const BAD_DRIVER_LEVEL = 119; + +/// This function is not supported on this system. +pub const CALL_NOT_IMPLEMENTED = 120; + +/// The semaphore timeout period has expired. +pub const SEM_TIMEOUT = 121; + +/// The data area passed to a system call is too small. +pub const INSUFFICIENT_BUFFER = 122; + +/// The filename, directory name, or volume label syntax is incorrect. +pub const INVALID_NAME = 123; + +/// The system call level is not correct. +pub const INVALID_LEVEL = 124; + +/// The disk has no volume label. +pub const NO_VOLUME_LABEL = 125; + +/// The specified module could not be found. +pub const MOD_NOT_FOUND = 126; + +/// The specified procedure could not be found. +pub const PROC_NOT_FOUND = 127; + +/// There are no child processes to wait for. +pub const WAIT_NO_CHILDREN = 128; + +/// The %1 application cannot be run in Win32 mode. +pub const CHILD_NOT_COMPLETE = 129; + +/// Attempt to use a file handle to an open disk partition for an operation other than raw disk I/O. +pub const DIRECT_ACCESS_HANDLE = 130; + +/// An attempt was made to move the file pointer before the beginning of the file. +pub const NEGATIVE_SEEK = 131; + +/// The file pointer cannot be set on the specified device or file. +pub const SEEK_ON_DEVICE = 132; + +/// A JOIN or SUBST command cannot be used for a drive that contains previously joined drives. +pub const IS_JOIN_TARGET = 133; + +/// An attempt was made to use a JOIN or SUBST command on a drive that has already been joined. +pub const IS_JOINED = 134; + +/// An attempt was made to use a JOIN or SUBST command on a drive that has already been substituted. +pub const IS_SUBSTED = 135; + +/// The system tried to delete the JOIN of a drive that is not joined. +pub const NOT_JOINED = 136; + +/// The system tried to delete the substitution of a drive that is not substituted. +pub const NOT_SUBSTED = 137; + +/// The system tried to join a drive to a directory on a joined drive. +pub const JOIN_TO_JOIN = 138; + +/// The system tried to substitute a drive to a directory on a substituted drive. +pub const SUBST_TO_SUBST = 139; + +/// The system tried to join a drive to a directory on a substituted drive. +pub const JOIN_TO_SUBST = 140; + +/// The system tried to SUBST a drive to a directory on a joined drive. +pub const SUBST_TO_JOIN = 141; + +/// The system cannot perform a JOIN or SUBST at this time. +pub const BUSY_DRIVE = 142; + +/// The system cannot join or substitute a drive to or for a directory on the same drive. +pub const SAME_DRIVE = 143; + +/// The directory is not a subdirectory of the root directory. +pub const DIR_NOT_ROOT = 144; + +/// The directory is not empty. +pub const DIR_NOT_EMPTY = 145; + +/// The path specified is being used in a substitute. +pub const IS_SUBST_PATH = 146; + +/// Not enough resources are available to process this command. +pub const IS_JOIN_PATH = 147; + +/// The path specified cannot be used at this time. +pub const PATH_BUSY = 148; + +/// An attempt was made to join or substitute a drive for which a directory on the drive is the target of a previous substitute. +pub const IS_SUBST_TARGET = 149; + +/// System trace information was not specified in your CONFIG.SYS file, or tracing is disallowed. +pub const SYSTEM_TRACE = 150; + +/// The number of specified semaphore events for DosMuxSemWait is not correct. +pub const INVALID_EVENT_COUNT = 151; + +/// DosMuxSemWait did not execute; too many semaphores are already set. +pub const TOO_MANY_MUXWAITERS = 152; + +/// The DosMuxSemWait list is not correct. +pub const INVALID_LIST_FORMAT = 153; + +/// The volume label you entered exceeds the label character limit of the target file system. +pub const LABEL_TOO_LONG = 154; + +/// Cannot create another thread. +pub const TOO_MANY_TCBS = 155; + +/// The recipient process has refused the signal. +pub const SIGNAL_REFUSED = 156; + +/// The segment is already discarded and cannot be locked. +pub const DISCARDED = 157; + +/// The segment is already unlocked. +pub const NOT_LOCKED = 158; + +/// The address for the thread ID is not correct. +pub const BAD_THREADID_ADDR = 159; + +/// One or more arguments are not correct. +pub const BAD_ARGUMENTS = 160; + +/// The specified path is invalid. +pub const BAD_PATHNAME = 161; + +/// A signal is already pending. +pub const SIGNAL_PENDING = 162; + +/// No more threads can be created in the system. +pub const MAX_THRDS_REACHED = 164; + +/// Unable to lock a region of a file. +pub const LOCK_FAILED = 167; + +/// The requested resource is in use. +pub const BUSY = 170; + +/// Device's command support detection is in progress. +pub const DEVICE_SUPPORT_IN_PROGRESS = 171; + +/// A lock request was not outstanding for the supplied cancel region. +pub const CANCEL_VIOLATION = 173; + +/// The file system does not support atomic changes to the lock type. +pub const ATOMIC_LOCKS_NOT_SUPPORTED = 174; + +/// The system detected a segment number that was not correct. +pub const INVALID_SEGMENT_NUMBER = 180; + +/// The operating system cannot run %1. +pub const INVALID_ORDINAL = 182; + +/// Cannot create a file when that file already exists. +pub const ALREADY_EXISTS = 183; + +/// The flag passed is not correct. +pub const INVALID_FLAG_NUMBER = 186; + +/// The specified system semaphore name was not found. +pub const SEM_NOT_FOUND = 187; + +/// The operating system cannot run %1. +pub const INVALID_STARTING_CODESEG = 188; + +/// The operating system cannot run %1. +pub const INVALID_STACKSEG = 189; + +/// The operating system cannot run %1. +pub const INVALID_MODULETYPE = 190; + +/// Cannot run %1 in Win32 mode. +pub const INVALID_EXE_SIGNATURE = 191; + +/// The operating system cannot run %1. +pub const EXE_MARKED_INVALID = 192; + +/// %1 is not a valid Win32 application. +pub const BAD_EXE_FORMAT = 193; + +/// The operating system cannot run %1. +pub const ITERATED_DATA_EXCEEDS_64k = 194; + +/// The operating system cannot run %1. +pub const INVALID_MINALLOCSIZE = 195; + +/// The operating system cannot run this application program. +pub const DYNLINK_FROM_INVALID_RING = 196; + +/// The operating system is not presently configured to run this application. +pub const IOPL_NOT_ENABLED = 197; + +/// The operating system cannot run %1. +pub const INVALID_SEGDPL = 198; + +/// The operating system cannot run this application program. +pub const AUTODATASEG_EXCEEDS_64k = 199; + +/// The code segment cannot be greater than or equal to 64K. +pub const RING2SEG_MUST_BE_MOVABLE = 200; + +/// The operating system cannot run %1. +pub const RELOC_CHAIN_XEEDS_SEGLIM = 201; + +/// The operating system cannot run %1. +pub const INFLOOP_IN_RELOC_CHAIN = 202; + +/// The system could not find the environment option that was entered. +pub const ENVVAR_NOT_FOUND = 203; + +/// No process in the command subtree has a signal handler. +pub const NO_SIGNAL_SENT = 205; + +/// The filename or extension is too long. +pub const FILENAME_EXCED_RANGE = 206; + +/// The ring 2 stack is in use. +pub const RING2_STACK_IN_USE = 207; + +/// The global filename characters, * or ?, are entered incorrectly or too many global filename characters are specified. +pub const META_EXPANSION_TOO_LONG = 208; + +/// The signal being posted is not correct. +pub const INVALID_SIGNAL_NUMBER = 209; + +/// The signal handler cannot be set. +pub const THREAD_1_INACTIVE = 210; + +/// The segment is locked and cannot be reallocated. +pub const LOCKED = 212; + +/// Too many dynamic-link modules are attached to this program or dynamic-link module. +pub const TOO_MANY_MODULES = 214; + +/// Cannot nest calls to LoadModule. +pub const NESTING_NOT_ALLOWED = 215; + +/// This version of %1 is not compatible with the version of Windows you're running. Check your computer's system information and then contact the software publisher. +pub const EXE_MACHINE_TYPE_MISMATCH = 216; + +/// The image file %1 is signed, unable to modify. +pub const EXE_CANNOT_MODIFY_SIGNED_BINARY = 217; + +/// The image file %1 is strong signed, unable to modify. +pub const EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY = 218; + +/// This file is checked out or locked for editing by another user. +pub const FILE_CHECKED_OUT = 220; + +/// The file must be checked out before saving changes. +pub const CHECKOUT_REQUIRED = 221; + +/// The file type being saved or retrieved has been blocked. +pub const BAD_FILE_TYPE = 222; + +/// The file size exceeds the limit allowed and cannot be saved. +pub const FILE_TOO_LARGE = 223; + +/// Access Denied. Before opening files in this location, you must first add the web site to your trusted sites list, browse to the web site, and select the option to login automatically. +pub const FORMS_AUTH_REQUIRED = 224; + +/// Operation did not complete successfully because the file contains a virus or potentially unwanted software. +pub const VIRUS_INFECTED = 225; + +/// This file contains a virus or potentially unwanted software and cannot be opened. Due to the nature of this virus or potentially unwanted software, the file has been removed from this location. +pub const VIRUS_DELETED = 226; + +/// The pipe is local. +pub const PIPE_LOCAL = 229; + +/// The pipe state is invalid. +pub const BAD_PIPE = 230; + +/// All pipe instances are busy. +pub const PIPE_BUSY = 231; + +/// The pipe is being closed. +pub const NO_DATA = 232; + +/// No process is on the other end of the pipe. +pub const PIPE_NOT_CONNECTED = 233; + +/// More data is available. +pub const MORE_DATA = 234; + +/// The session was canceled. +pub const VC_DISCONNECTED = 240; + +/// The specified extended attribute name was invalid. +pub const INVALID_EA_NAME = 254; + +/// The extended attributes are inconsistent. +pub const EA_LIST_INCONSISTENT = 255; + +/// The wait operation timed out. +pub const IMEOUT = 258; + +/// No more data is available. +pub const NO_MORE_ITEMS = 259; + +/// The copy functions cannot be used. +pub const CANNOT_COPY = 266; + +/// The directory name is invalid. +pub const DIRECTORY = 267; + +/// The extended attributes did not fit in the buffer. +pub const EAS_DIDNT_FIT = 275; + +/// The extended attribute file on the mounted file system is corrupt. +pub const EA_FILE_CORRUPT = 276; + +/// The extended attribute table file is full. +pub const EA_TABLE_FULL = 277; + +/// The specified extended attribute handle is invalid. +pub const INVALID_EA_HANDLE = 278; + +/// The mounted file system does not support extended attributes. +pub const EAS_NOT_SUPPORTED = 282; + +/// Attempt to release mutex not owned by caller. +pub const NOT_OWNER = 288; + +/// Too many posts were made to a semaphore. +pub const TOO_MANY_POSTS = 298; + +/// Only part of a ReadProcessMemory or WriteProcessMemory request was completed. +pub const PARTIAL_COPY = 299; + +/// The oplock request is denied. +pub const OPLOCK_NOT_GRANTED = 300; + +/// An invalid oplock acknowledgment was received by the system. +pub const INVALID_OPLOCK_PROTOCOL = 301; + +/// The volume is too fragmented to complete this operation. +pub const DISK_TOO_FRAGMENTED = 302; + +/// The file cannot be opened because it is in the process of being deleted. +pub const DELETE_PENDING = 303; + +/// Short name settings may not be changed on this volume due to the global registry setting. +pub const INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING = 304; + +/// Short names are not enabled on this volume. +pub const SHORT_NAMES_NOT_ENABLED_ON_VOLUME = 305; + +/// The security stream for the given volume is in an inconsistent state. Please run CHKDSK on the volume. +pub const SECURITY_STREAM_IS_INCONSISTENT = 306; + +/// A requested file lock operation cannot be processed due to an invalid byte range. +pub const INVALID_LOCK_RANGE = 307; + +/// The subsystem needed to support the image type is not present. +pub const IMAGE_SUBSYSTEM_NOT_PRESENT = 308; + +/// The specified file already has a notification GUID associated with it. +pub const NOTIFICATION_GUID_ALREADY_DEFINED = 309; + +/// An invalid exception handler routine has been detected. +pub const INVALID_EXCEPTION_HANDLER = 310; + +/// Duplicate privileges were specified for the token. +pub const DUPLICATE_PRIVILEGES = 311; + +/// No ranges for the specified operation were able to be processed. +pub const NO_RANGES_PROCESSED = 312; + +/// Operation is not allowed on a file system internal file. +pub const NOT_ALLOWED_ON_SYSTEM_FILE = 313; + +/// The physical resources of this disk have been exhausted. +pub const DISK_RESOURCES_EXHAUSTED = 314; + +/// The token representing the data is invalid. +pub const INVALID_TOKEN = 315; + +/// The device does not support the command feature. +pub const DEVICE_FEATURE_NOT_SUPPORTED = 316; + +/// The system cannot find message text for message number 0x%1 in the message file for %2. +pub const MR_MID_NOT_FOUND = 317; + +/// The scope specified was not found. +pub const SCOPE_NOT_FOUND = 318; + +/// The Central Access Policy specified is not defined on the target machine. +pub const UNDEFINED_SCOPE = 319; + +/// The Central Access Policy obtained from Active Directory is invalid. +pub const INVALID_CAP = 320; + +/// The device is unreachable. +pub const DEVICE_UNREACHABLE = 321; + +/// The target device has insufficient resources to complete the operation. +pub const DEVICE_NO_RESOURCES = 322; + +/// A data integrity checksum error occurred. Data in the file stream is corrupt. +pub const DATA_CHECKSUM_ERROR = 323; + +/// An attempt was made to modify both a KERNEL and normal Extended Attribute (EA) in the same operation. +pub const INTERMIXED_KERNEL_EA_OPERATION = 324; + +/// Device does not support file-level TRIM. +pub const FILE_LEVEL_TRIM_NOT_SUPPORTED = 326; + +/// The command specified a data offset that does not align to the device's granularity/alignment. +pub const OFFSET_ALIGNMENT_VIOLATION = 327; + +/// The command specified an invalid field in its parameter list. +pub const INVALID_FIELD_IN_PARAMETER_LIST = 328; + +/// An operation is currently in progress with the device. +pub const OPERATION_IN_PROGRESS = 329; + +/// An attempt was made to send down the command via an invalid path to the target device. +pub const BAD_DEVICE_PATH = 330; + +/// The command specified a number of descriptors that exceeded the maximum supported by the device. +pub const TOO_MANY_DESCRIPTORS = 331; + +/// Scrub is disabled on the specified file. +pub const SCRUB_DATA_DISABLED = 332; + +/// The storage device does not provide redundancy. +pub const NOT_REDUNDANT_STORAGE = 333; + +/// An operation is not supported on a resident file. +pub const RESIDENT_FILE_NOT_SUPPORTED = 334; + +/// An operation is not supported on a compressed file. +pub const COMPRESSED_FILE_NOT_SUPPORTED = 335; + +/// An operation is not supported on a directory. +pub const DIRECTORY_NOT_SUPPORTED = 336; + +/// The specified copy of the requested data could not be read. +pub const NOT_READ_FROM_COPY = 337; + +/// No action was taken as a system reboot is required. +pub const FAIL_NOACTION_REBOOT = 350; + +/// The shutdown operation failed. +pub const FAIL_SHUTDOWN = 351; + +/// The restart operation failed. +pub const FAIL_RESTART = 352; + +/// The maximum number of sessions has been reached. +pub const MAX_SESSIONS_REACHED = 353; + +/// The thread is already in background processing mode. +pub const THREAD_MODE_ALREADY_BACKGROUND = 400; + +/// The thread is not in background processing mode. +pub const THREAD_MODE_NOT_BACKGROUND = 401; + +/// The process is already in background processing mode. +pub const PROCESS_MODE_ALREADY_BACKGROUND = 402; + +/// The process is not in background processing mode. +pub const PROCESS_MODE_NOT_BACKGROUND = 403; + +/// Attempt to access invalid address. +pub const INVALID_ADDRESS = 487; + +/// User profile cannot be loaded. +pub const USER_PROFILE_LOAD = 500; + +/// Arithmetic result exceeded 32 bits. +pub const ARITHMETIC_OVERFLOW = 534; + +/// There is a process on other end of the pipe. +pub const PIPE_CONNECTED = 535; + +/// Waiting for a process to open the other end of the pipe. +pub const PIPE_LISTENING = 536; + +/// Application verifier has found an error in the current process. +pub const VERIFIER_STOP = 537; + +/// An error occurred in the ABIOS subsystem. +pub const ABIOS_ERROR = 538; + +/// A warning occurred in the WX86 subsystem. +pub const WX86_WARNING = 539; + +/// An error occurred in the WX86 subsystem. +pub const WX86_ERROR = 540; + +/// An attempt was made to cancel or set a timer that has an associated APC and the subject thread is not the thread that originally set the timer with an associated APC routine. +pub const TIMER_NOT_CANCELED = 541; + +/// Unwind exception code. +pub const UNWIND = 542; + +/// An invalid or unaligned stack was encountered during an unwind operation. +pub const BAD_STACK = 543; + +/// An invalid unwind target was encountered during an unwind operation. +pub const INVALID_UNWIND_TARGET = 544; + +/// Invalid Object Attributes specified to NtCreatePort or invalid Port Attributes specified to NtConnectPort +pub const INVALID_PORT_ATTRIBUTES = 545; + +/// Length of message passed to NtRequestPort or NtRequestWaitReplyPort was longer than the maximum message allowed by the port. +pub const PORT_MESSAGE_TOO_LONG = 546; + +/// An attempt was made to lower a quota limit below the current usage. +pub const INVALID_QUOTA_LOWER = 547; + +/// An attempt was made to attach to a device that was already attached to another device. +pub const DEVICE_ALREADY_ATTACHED = 548; + +/// An attempt was made to execute an instruction at an unaligned address and the host system does not support unaligned instruction references. +pub const INSTRUCTION_MISALIGNMENT = 549; + +/// Profiling not started. +pub const PROFILING_NOT_STARTED = 550; + +/// Profiling not stopped. +pub const PROFILING_NOT_STOPPED = 551; + +/// The passed ACL did not contain the minimum required information. +pub const COULD_NOT_INTERPRET = 552; + +/// The number of active profiling objects is at the maximum and no more may be started. +pub const PROFILING_AT_LIMIT = 553; + +/// Used to indicate that an operation cannot continue without blocking for I/O. +pub const CANT_WAIT = 554; + +/// Indicates that a thread attempted to terminate itself by default (called NtTerminateThread with NULL) and it was the last thread in the current process. +pub const CANT_TERMINATE_SELF = 555; + +/// If an MM error is returned which is not defined in the standard FsRtl filter, it is converted to one of the following errors which is guaranteed to be in the filter. In this case information is lost, however, the filter correctly handles the exception. +pub const UNEXPECTED_MM_CREATE_ERR = 556; + +/// If an MM error is returned which is not defined in the standard FsRtl filter, it is converted to one of the following errors which is guaranteed to be in the filter. In this case information is lost, however, the filter correctly handles the exception. +pub const UNEXPECTED_MM_MAP_ERROR = 557; + +/// If an MM error is returned which is not defined in the standard FsRtl filter, it is converted to one of the following errors which is guaranteed to be in the filter. In this case information is lost, however, the filter correctly handles the exception. +pub const UNEXPECTED_MM_EXTEND_ERR = 558; + +/// A malformed function table was encountered during an unwind operation. +pub const BAD_FUNCTION_TABLE = 559; + +/// Indicates that an attempt was made to assign protection to a file system file or directory and one of the SIDs in the security descriptor could not be translated into a GUID that could be stored by the file system. This causes the protection attempt to fail, which may cause a file creation attempt to fail. +pub const NO_GUID_TRANSLATION = 560; + +/// Indicates that an attempt was made to grow an LDT by setting its size, or that the size was not an even number of selectors. +pub const INVALID_LDT_SIZE = 561; + +/// Indicates that the starting value for the LDT information was not an integral multiple of the selector size. +pub const INVALID_LDT_OFFSET = 563; + +/// Indicates that the user supplied an invalid descriptor when trying to set up Ldt descriptors. +pub const INVALID_LDT_DESCRIPTOR = 564; + +/// Indicates a process has too many threads to perform the requested action. For example, assignment of a primary token may only be performed when a process has zero or one threads. +pub const TOO_MANY_THREADS = 565; + +/// An attempt was made to operate on a thread within a specific process, but the thread specified is not in the process specified. +pub const THREAD_NOT_IN_PROCESS = 566; + +/// Page file quota was exceeded. +pub const PAGEFILE_QUOTA_EXCEEDED = 567; + +/// The Netlogon service cannot start because another Netlogon service running in the domain conflicts with the specified role. +pub const LOGON_SERVER_CONFLICT = 568; + +/// The SAM database on a Windows Server is significantly out of synchronization with the copy on the Domain Controller. A complete synchronization is required. +pub const SYNCHRONIZATION_REQUIRED = 569; + +/// The NtCreateFile API failed. This error should never be returned to an application, it is a place holder for the Windows Lan Manager Redirector to use in its internal error mapping routines. +pub const NET_OPEN_FAILED = 570; + +/// {Privilege Failed} The I/O permissions for the process could not be changed. +pub const IO_PRIVILEGE_FAILED = 571; + +/// {Application Exit by CTRL+C} The application terminated as a result of a CTRL+C. +pub const CONTROL_C_EXIT = 572; + +/// {Missing System File} The required system file %hs is bad or missing. +pub const MISSING_SYSTEMFILE = 573; + +/// {Application Error} The exception %s (0x%08lx) occurred in the application at location 0x%08lx. +pub const UNHANDLED_EXCEPTION = 574; + +/// {Application Error} The application was unable to start correctly (0x%lx). Click OK to close the application. +pub const APP_INIT_FAILURE = 575; + +/// {Unable to Create Paging File} The creation of the paging file %hs failed (%lx). The requested size was %ld. +pub const PAGEFILE_CREATE_FAILED = 576; + +/// Windows cannot verify the digital signature for this file. A recent hardware or software change might have installed a file that is signed incorrectly or damaged, or that might be malicious software from an unknown source. +pub const INVALID_IMAGE_HASH = 577; + +/// {No Paging File Specified} No paging file was specified in the system configuration. +pub const NO_PAGEFILE = 578; + +/// {EXCEPTION} A real-mode application issued a floating-point instruction and floating-point hardware is not present. +pub const ILLEGAL_FLOAT_CONTEXT = 579; + +/// An event pair synchronization operation was performed using the thread specific client/server event pair object, but no event pair object was associated with the thread. +pub const NO_EVENT_PAIR = 580; + +/// A Windows Server has an incorrect configuration. +pub const DOMAIN_CTRLR_CONFIG_ERROR = 581; + +/// An illegal character was encountered. For a multi-byte character set this includes a lead byte without a succeeding trail byte. For the Unicode character set this includes the characters 0xFFFF and 0xFFFE. +pub const ILLEGAL_CHARACTER = 582; + +/// The Unicode character is not defined in the Unicode character set installed on the system. +pub const UNDEFINED_CHARACTER = 583; + +/// The paging file cannot be created on a floppy diskette. +pub const FLOPPY_VOLUME = 584; + +/// The system BIOS failed to connect a system interrupt to the device or bus for which the device is connected. +pub const BIOS_FAILED_TO_CONNECT_INTERRUPT = 585; + +/// This operation is only allowed for the Primary Domain Controller of the domain. +pub const BACKUP_CONTROLLER = 586; + +/// An attempt was made to acquire a mutant such that its maximum count would have been exceeded. +pub const MUTANT_LIMIT_EXCEEDED = 587; + +/// A volume has been accessed for which a file system driver is required that has not yet been loaded. +pub const FS_DRIVER_REQUIRED = 588; + +/// {Registry File Failure} The registry cannot load the hive (file): %hs or its log or alternate. It is corrupt, absent, or not writable. +pub const CANNOT_LOAD_REGISTRY_FILE = 589; + +/// {Unexpected Failure in DebugActiveProcess} An unexpected failure occurred while processing a DebugActiveProcess API request. You may choose OK to terminate the process, or Cancel to ignore the error. +pub const DEBUG_ATTACH_FAILED = 590; + +/// {Fatal System Error} The %hs system process terminated unexpectedly with a status of 0x%08x (0x%08x 0x%08x). The system has been shut down. +pub const SYSTEM_PROCESS_TERMINATED = 591; + +/// {Data Not Accepted} The TDI client could not handle the data received during an indication. +pub const DATA_NOT_ACCEPTED = 592; + +/// NTVDM encountered a hard error. +pub const VDM_HARD_ERROR = 593; + +/// {Cancel Timeout} The driver %hs failed to complete a cancelled I/O request in the allotted time. +pub const DRIVER_CANCEL_TIMEOUT = 594; + +/// {Reply Message Mismatch} An attempt was made to reply to an LPC message, but the thread specified by the client ID in the message was not waiting on that message. +pub const REPLY_MESSAGE_MISMATCH = 595; + +/// {Delayed Write Failed} Windows was unable to save all the data for the file %hs. The data has been lost. This error may be caused by a failure of your computer hardware or network connection. Please try to save this file elsewhere. +pub const LOST_WRITEBEHIND_DATA = 596; + +/// The parameter(s) passed to the server in the client/server shared memory window were invalid. Too much data may have been put in the shared memory window. +pub const CLIENT_SERVER_PARAMETERS_INVALID = 597; + +/// The stream is not a tiny stream. +pub const NOT_TINY_STREAM = 598; + +/// The request must be handled by the stack overflow code. +pub const STACK_OVERFLOW_READ = 599; + +/// Internal OFS status codes indicating how an allocation operation is handled. Either it is retried after the containing onode is moved or the extent stream is converted to a large stream. +pub const CONVERT_TO_LARGE = 600; + +/// The attempt to find the object found an object matching by ID on the volume but it is out of the scope of the handle used for the operation. +pub const FOUND_OUT_OF_SCOPE = 601; + +/// The bucket array must be grown. Retry transaction after doing so. +pub const ALLOCATE_BUCKET = 602; + +/// The user/kernel marshalling buffer has overflowed. +pub const MARSHALL_OVERFLOW = 603; + +/// The supplied variant structure contains invalid data. +pub const INVALID_VARIANT = 604; + +/// The specified buffer contains ill-formed data. +pub const BAD_COMPRESSION_BUFFER = 605; + +/// {Audit Failed} An attempt to generate a security audit failed. +pub const AUDIT_FAILED = 606; + +/// The timer resolution was not previously set by the current process. +pub const TIMER_RESOLUTION_NOT_SET = 607; + +/// There is insufficient account information to log you on. +pub const INSUFFICIENT_LOGON_INFO = 608; + +/// {Invalid DLL Entrypoint} The dynamic link library %hs is not written correctly. The stack pointer has been left in an inconsistent state. The entrypoint should be declared as WINAPI or STDCALL. Select YES to fail the DLL load. Select NO to continue execution. Selecting NO may cause the application to operate incorrectly. +pub const BAD_DLL_ENTRYPOINT = 609; + +/// {Invalid Service Callback Entrypoint} The %hs service is not written correctly. The stack pointer has been left in an inconsistent state. The callback entrypoint should be declared as WINAPI or STDCALL. Selecting OK will cause the service to continue operation. However, the service process may operate incorrectly. +pub const BAD_SERVICE_ENTRYPOINT = 610; + +/// There is an IP address conflict with another system on the network. +pub const IP_ADDRESS_CONFLICT1 = 611; + +/// There is an IP address conflict with another system on the network. +pub const IP_ADDRESS_CONFLICT2 = 612; + +/// {Low On Registry Space} The system has reached the maximum size allowed for the system part of the registry. Additional storage requests will be ignored. +pub const REGISTRY_QUOTA_LIMIT = 613; + +/// A callback return system service cannot be executed when no callback is active. +pub const NO_CALLBACK_ACTIVE = 614; + +/// The password provided is too short to meet the policy of your user account. Please choose a longer password. +pub const PWD_TOO_SHORT = 615; + +/// The policy of your user account does not allow you to change passwords too frequently. This is done to prevent users from changing back to a familiar, but potentially discovered, password. If you feel your password has been compromised then please contact your administrator immediately to have a new one assigned. +pub const PWD_TOO_RECENT = 616; + +/// You have attempted to change your password to one that you have used in the past. The policy of your user account does not allow this. Please select a password that you have not previously used. +pub const PWD_HISTORY_CONFLICT = 617; + +/// The specified compression format is unsupported. +pub const UNSUPPORTED_COMPRESSION = 618; + +/// The specified hardware profile configuration is invalid. +pub const INVALID_HW_PROFILE = 619; + +/// The specified Plug and Play registry device path is invalid. +pub const INVALID_PLUGPLAY_DEVICE_PATH = 620; + +/// The specified quota list is internally inconsistent with its descriptor. +pub const QUOTA_LIST_INCONSISTENT = 621; + +/// {Windows Evaluation Notification} The evaluation period for this installation of Windows has expired. This system will shutdown in 1 hour. To restore access to this installation of Windows, please upgrade this installation using a licensed distribution of this product. +pub const EVALUATION_EXPIRATION = 622; + +/// {Illegal System DLL Relocation} The system DLL %hs was relocated in memory. The application will not run properly. The relocation occurred because the DLL %hs occupied an address range reserved for Windows system DLLs. The vendor supplying the DLL should be contacted for a new DLL. +pub const ILLEGAL_DLL_RELOCATION = 623; + +/// {DLL Initialization Failed} The application failed to initialize because the window station is shutting down. +pub const DLL_INIT_FAILED_LOGOFF = 624; + +/// The validation process needs to continue on to the next step. +pub const VALIDATE_CONTINUE = 625; + +/// There are no more matches for the current index enumeration. +pub const NO_MORE_MATCHES = 626; + +/// The range could not be added to the range list because of a conflict. +pub const RANGE_LIST_CONFLICT = 627; + +/// The server process is running under a SID different than that required by client. +pub const SERVER_SID_MISMATCH = 628; + +/// A group marked use for deny only cannot be enabled. +pub const CANT_ENABLE_DENY_ONLY = 629; + +/// {EXCEPTION} Multiple floating point faults. +pub const FLOAT_MULTIPLE_FAULTS = 630; + +/// {EXCEPTION} Multiple floating point traps. +pub const FLOAT_MULTIPLE_TRAPS = 631; + +/// The requested interface is not supported. +pub const NOINTERFACE = 632; + +/// {System Standby Failed} The driver %hs does not support standby mode. Updating this driver may allow the system to go to standby mode. +pub const DRIVER_FAILED_SLEEP = 633; + +/// The system file %1 has become corrupt and has been replaced. +pub const CORRUPT_SYSTEM_FILE = 634; + +/// {Virtual Memory Minimum Too Low} Your system is low on virtual memory. Windows is increasing the size of your virtual memory paging file. During this process, memory requests for some applications may be denied. For more information, see Help. +pub const COMMITMENT_MINIMUM = 635; + +/// A device was removed so enumeration must be restarted. +pub const PNP_RESTART_ENUMERATION = 636; + +/// {Fatal System Error} The system image %s is not properly signed. The file has been replaced with the signed file. The system has been shut down. +pub const SYSTEM_IMAGE_BAD_SIGNATURE = 637; + +/// Device will not start without a reboot. +pub const PNP_REBOOT_REQUIRED = 638; + +/// There is not enough power to complete the requested operation. +pub const INSUFFICIENT_POWER = 639; + +/// ERROR_MULTIPLE_FAULT_VIOLATION +pub const MULTIPLE_FAULT_VIOLATION = 640; + +/// The system is in the process of shutting down. +pub const SYSTEM_SHUTDOWN = 641; + +/// An attempt to remove a processes DebugPort was made, but a port was not already associated with the process. +pub const PORT_NOT_SET = 642; + +/// This version of Windows is not compatible with the behavior version of directory forest, domain or domain controller. +pub const DS_VERSION_CHECK_FAILURE = 643; + +/// The specified range could not be found in the range list. +pub const RANGE_NOT_FOUND = 644; + +/// The driver was not loaded because the system is booting into safe mode. +pub const NOT_SAFE_MODE_DRIVER = 646; + +/// The driver was not loaded because it failed its initialization call. +pub const FAILED_DRIVER_ENTRY = 647; + +/// The "%hs" encountered an error while applying power or reading the device configuration. This may be caused by a failure of your hardware or by a poor connection. +pub const DEVICE_ENUMERATION_ERROR = 648; + +/// The create operation failed because the name contained at least one mount point which resolves to a volume to which the specified device object is not attached. +pub const MOUNT_POINT_NOT_RESOLVED = 649; + +/// The device object parameter is either not a valid device object or is not attached to the volume specified by the file name. +pub const INVALID_DEVICE_OBJECT_PARAMETER = 650; + +/// A Machine Check Error has occurred. Please check the system eventlog for additional information. +pub const MCA_OCCURED = 651; + +/// There was error [%2] processing the driver database. +pub const DRIVER_DATABASE_ERROR = 652; + +/// System hive size has exceeded its limit. +pub const SYSTEM_HIVE_TOO_LARGE = 653; + +/// The driver could not be loaded because a previous version of the driver is still in memory. +pub const DRIVER_FAILED_PRIOR_UNLOAD = 654; + +/// {Volume Shadow Copy Service} Please wait while the Volume Shadow Copy Service prepares volume %hs for hibernation. +pub const VOLSNAP_PREPARE_HIBERNATE = 655; + +/// The system has failed to hibernate (The error code is %hs). Hibernation will be disabled until the system is restarted. +pub const HIBERNATION_FAILURE = 656; + +/// The password provided is too long to meet the policy of your user account. Please choose a shorter password. +pub const PWD_TOO_LONG = 657; + +/// The requested operation could not be completed due to a file system limitation. +pub const FILE_SYSTEM_LIMITATION = 665; + +/// An assertion failure has occurred. +pub const ASSERTION_FAILURE = 668; + +/// An error occurred in the ACPI subsystem. +pub const ACPI_ERROR = 669; + +/// WOW Assertion Error. +pub const WOW_ASSERTION = 670; + +/// A device is missing in the system BIOS MPS table. This device will not be used. Please contact your system vendor for system BIOS update. +pub const PNP_BAD_MPS_TABLE = 671; + +/// A translator failed to translate resources. +pub const PNP_TRANSLATION_FAILED = 672; + +/// A IRQ translator failed to translate resources. +pub const PNP_IRQ_TRANSLATION_FAILED = 673; + +/// Driver %2 returned invalid ID for a child device (%3). +pub const PNP_INVALID_ID = 674; + +/// {Kernel Debugger Awakened} the system debugger was awakened by an interrupt. +pub const WAKE_SYSTEM_DEBUGGER = 675; + +/// {Handles Closed} Handles to objects have been automatically closed as a result of the requested operation. +pub const HANDLES_CLOSED = 676; + +/// {Too Much Information} The specified access control list (ACL) contained more information than was expected. +pub const EXTRANEOUS_INFORMATION = 677; + +/// This warning level status indicates that the transaction state already exists for the registry sub-tree, but that a transaction commit was previously aborted. The commit has NOT been completed, but has not been rolled back either (so it may still be committed if desired). +pub const RXACT_COMMIT_NECESSARY = 678; + +/// {Media Changed} The media may have changed. +pub const MEDIA_CHECK = 679; + +/// {GUID Substitution} During the translation of a global identifier (GUID) to a Windows security ID (SID), no administratively-defined GUID prefix was found. A substitute prefix was used, which will not compromise system security. However, this may provide a more restrictive access than intended. +pub const GUID_SUBSTITUTION_MADE = 680; + +/// The create operation stopped after reaching a symbolic link. +pub const STOPPED_ON_SYMLINK = 681; + +/// A long jump has been executed. +pub const LONGJUMP = 682; + +/// The Plug and Play query operation was not successful. +pub const PLUGPLAY_QUERY_VETOED = 683; + +/// A frame consolidation has been executed. +pub const UNWIND_CONSOLIDATE = 684; + +/// {Registry Hive Recovered} Registry hive (file): %hs was corrupted and it has been recovered. Some data might have been lost. +pub const REGISTRY_HIVE_RECOVERED = 685; + +/// The application is attempting to run executable code from the module %hs. This may be insecure. An alternative, %hs, is available. Should the application use the secure module %hs? +pub const DLL_MIGHT_BE_INSECURE = 686; + +/// The application is loading executable code from the module %hs. This is secure, but may be incompatible with previous releases of the operating system. An alternative, %hs, is available. Should the application use the secure module %hs? +pub const DLL_MIGHT_BE_INCOMPATIBLE = 687; + +/// Debugger did not handle the exception. +pub const DBG_EXCEPTION_NOT_HANDLED = 688; + +/// Debugger will reply later. +pub const DBG_REPLY_LATER = 689; + +/// Debugger cannot provide handle. +pub const DBG_UNABLE_TO_PROVIDE_HANDLE = 690; + +/// Debugger terminated thread. +pub const DBG_TERMINATE_THREAD = 691; + +/// Debugger terminated process. +pub const DBG_TERMINATE_PROCESS = 692; + +/// Debugger got control C. +pub const DBG_CONTROL_C = 693; + +/// Debugger printed exception on control C. +pub const DBG_PRINTEXCEPTION_C = 694; + +/// Debugger received RIP exception. +pub const DBG_RIPEXCEPTION = 695; + +/// Debugger received control break. +pub const DBG_CONTROL_BREAK = 696; + +/// Debugger command communication exception. +pub const DBG_COMMAND_EXCEPTION = 697; + +/// {Object Exists} An attempt was made to create an object and the object name already existed. +pub const OBJECT_NAME_EXISTS = 698; + +/// {Thread Suspended} A thread termination occurred while the thread was suspended. The thread was resumed, and termination proceeded. +pub const THREAD_WAS_SUSPENDED = 699; + +/// {Image Relocated} An image file could not be mapped at the address specified in the image file. Local fixups must be performed on this image. +pub const IMAGE_NOT_AT_BASE = 700; + +/// This informational level status indicates that a specified registry sub-tree transaction state did not yet exist and had to be created. +pub const RXACT_STATE_CREATED = 701; + +/// {Segment Load} A virtual DOS machine (VDM) is loading, unloading, or moving an MS-DOS or Win16 program segment image. An exception is raised so a debugger can load, unload or track symbols and breakpoints within these 16-bit segments. +pub const SEGMENT_NOTIFICATION = 702; + +/// {Invalid Current Directory} The process cannot switch to the startup current directory %hs. Select OK to set current directory to %hs, or select CANCEL to exit. +pub const BAD_CURRENT_DIRECTORY = 703; + +/// {Redundant Read} To satisfy a read request, the NT fault-tolerant file system successfully read the requested data from a redundant copy. This was done because the file system encountered a failure on a member of the fault-tolerant volume, but was unable to reassign the failing area of the device. +pub const FT_READ_RECOVERY_FROM_BACKUP = 704; + +/// {Redundant Write} To satisfy a write request, the NT fault-tolerant file system successfully wrote a redundant copy of the information. This was done because the file system encountered a failure on a member of the fault-tolerant volume, but was not able to reassign the failing area of the device. +pub const FT_WRITE_RECOVERY = 705; + +/// {Machine Type Mismatch} The image file %hs is valid, but is for a machine type other than the current machine. Select OK to continue, or CANCEL to fail the DLL load. +pub const IMAGE_MACHINE_TYPE_MISMATCH = 706; + +/// {Partial Data Received} The network transport returned partial data to its client. The remaining data will be sent later. +pub const RECEIVE_PARTIAL = 707; + +/// {Expedited Data Received} The network transport returned data to its client that was marked as expedited by the remote system. +pub const RECEIVE_EXPEDITED = 708; + +/// {Partial Expedited Data Received} The network transport returned partial data to its client and this data was marked as expedited by the remote system. The remaining data will be sent later. +pub const RECEIVE_PARTIAL_EXPEDITED = 709; + +/// {TDI Event Done} The TDI indication has completed successfully. +pub const EVENT_DONE = 710; + +/// {TDI Event Pending} The TDI indication has entered the pending state. +pub const EVENT_PENDING = 711; + +/// Checking file system on %wZ. +pub const CHECKING_FILE_SYSTEM = 712; + +/// {Fatal Application Exit} %hs. +pub const FATAL_APP_EXIT = 713; + +/// The specified registry key is referenced by a predefined handle. +pub const PREDEFINED_HANDLE = 714; + +/// {Page Unlocked} The page protection of a locked page was changed to 'No Access' and the page was unlocked from memory and from the process. +pub const WAS_UNLOCKED = 715; + +/// %hs +pub const SERVICE_NOTIFICATION = 716; + +/// {Page Locked} One of the pages to lock was already locked. +pub const WAS_LOCKED = 717; + +/// Application popup: %1 : %2 +pub const LOG_HARD_ERROR = 718; + +/// ERROR_ALREADY_WIN32 +pub const ALREADY_WIN32 = 719; + +/// {Machine Type Mismatch} The image file %hs is valid, but is for a machine type other than the current machine. +pub const IMAGE_MACHINE_TYPE_MISMATCH_EXE = 720; + +/// A yield execution was performed and no thread was available to run. +pub const NO_YIELD_PERFORMED = 721; + +/// The resumable flag to a timer API was ignored. +pub const TIMER_RESUME_IGNORED = 722; + +/// The arbiter has deferred arbitration of these resources to its parent. +pub const ARBITRATION_UNHANDLED = 723; + +/// The inserted CardBus device cannot be started because of a configuration error on "%hs". +pub const CARDBUS_NOT_SUPPORTED = 724; + +/// The CPUs in this multiprocessor system are not all the same revision level. To use all processors the operating system restricts itself to the features of the least capable processor in the system. Should problems occur with this system, contact the CPU manufacturer to see if this mix of processors is supported. +pub const MP_PROCESSOR_MISMATCH = 725; + +/// The system was put into hibernation. +pub const HIBERNATED = 726; + +/// The system was resumed from hibernation. +pub const RESUME_HIBERNATION = 727; + +/// Windows has detected that the system firmware (BIOS) was updated [previous firmware date = %2, current firmware date %3]. +pub const FIRMWARE_UPDATED = 728; + +/// A device driver is leaking locked I/O pages causing system degradation. The system has automatically enabled tracking code in order to try and catch the culprit. +pub const DRIVERS_LEAKING_LOCKED_PAGES = 729; + +/// The system has awoken. +pub const WAKE_SYSTEM = 730; + +/// ERROR_WAIT_1 +pub const WAIT_1 = 731; + +/// ERROR_WAIT_2 +pub const WAIT_2 = 732; + +/// ERROR_WAIT_3 +pub const WAIT_3 = 733; + +/// ERROR_WAIT_63 +pub const WAIT_63 = 734; + +/// ERROR_ABANDONED_WAIT_0 +pub const ABANDONED_WAIT_0 = 735; + +/// ERROR_ABANDONED_WAIT_63 +pub const ABANDONED_WAIT_63 = 736; + +/// ERROR_USER_APC +pub const USER_APC = 737; + +/// ERROR_KERNEL_APC +pub const KERNEL_APC = 738; + +/// ERROR_ALERTED +pub const ALERTED = 739; + +/// The requested operation requires elevation. +pub const ELEVATION_REQUIRED = 740; + +/// A reparse should be performed by the Object Manager since the name of the file resulted in a symbolic link. +pub const REPARSE = 741; + +/// An open/create operation completed while an oplock break is underway. +pub const OPLOCK_BREAK_IN_PROGRESS = 742; + +/// A new volume has been mounted by a file system. +pub const VOLUME_MOUNTED = 743; + +/// This success level status indicates that the transaction state already exists for the registry sub-tree, but that a transaction commit was previously aborted. The commit has now been completed. +pub const RXACT_COMMITTED = 744; + +/// This indicates that a notify change request has been completed due to closing the handle which made the notify change request. +pub const NOTIFY_CLEANUP = 745; + +/// {Connect Failure on Primary Transport} An attempt was made to connect to the remote server %hs on the primary transport, but the connection failed. The computer WAS able to connect on a secondary transport. +pub const PRIMARY_TRANSPORT_CONNECT_FAILED = 746; + +/// Page fault was a transition fault. +pub const PAGE_FAULT_TRANSITION = 747; + +/// Page fault was a demand zero fault. +pub const PAGE_FAULT_DEMAND_ZERO = 748; + +/// Page fault was a demand zero fault. +pub const PAGE_FAULT_COPY_ON_WRITE = 749; + +/// Page fault was a demand zero fault. +pub const PAGE_FAULT_GUARD_PAGE = 750; + +/// Page fault was satisfied by reading from a secondary storage device. +pub const PAGE_FAULT_PAGING_FILE = 751; + +/// Cached page was locked during operation. +pub const CACHE_PAGE_LOCKED = 752; + +/// Crash dump exists in paging file. +pub const CRASH_DUMP = 753; + +/// Specified buffer contains all zeros. +pub const BUFFER_ALL_ZEROS = 754; + +/// A reparse should be performed by the Object Manager since the name of the file resulted in a symbolic link. +pub const REPARSE_OBJECT = 755; + +/// The device has succeeded a query-stop and its resource requirements have changed. +pub const RESOURCE_REQUIREMENTS_CHANGED = 756; + +/// The translator has translated these resources into the global space and no further translations should be performed. +pub const TRANSLATION_COMPLETE = 757; + +/// A process being terminated has no threads to terminate. +pub const NOTHING_TO_TERMINATE = 758; + +/// The specified process is not part of a job. +pub const PROCESS_NOT_IN_JOB = 759; + +/// The specified process is part of a job. +pub const PROCESS_IN_JOB = 760; + +/// {Volume Shadow Copy Service} The system is now ready for hibernation. +pub const VOLSNAP_HIBERNATE_READY = 761; + +/// A file system or file system filter driver has successfully completed an FsFilter operation. +pub const FSFILTER_OP_COMPLETED_SUCCESSFULLY = 762; + +/// The specified interrupt vector was already connected. +pub const INTERRUPT_VECTOR_ALREADY_CONNECTED = 763; + +/// The specified interrupt vector is still connected. +pub const INTERRUPT_STILL_CONNECTED = 764; + +/// An operation is blocked waiting for an oplock. +pub const WAIT_FOR_OPLOCK = 765; + +/// Debugger handled exception. +pub const DBG_EXCEPTION_HANDLED = 766; + +/// Debugger continued. +pub const DBG_CONTINUE = 767; + +/// An exception occurred in a user mode callback and the kernel callback frame should be removed. +pub const CALLBACK_POP_STACK = 768; + +/// Compression is disabled for this volume. +pub const COMPRESSION_DISABLED = 769; + +/// The data provider cannot fetch backwards through a result set. +pub const CANTFETCHBACKWARDS = 770; + +/// The data provider cannot scroll backwards through a result set. +pub const CANTSCROLLBACKWARDS = 771; + +/// The data provider requires that previously fetched data is released before asking for more data. +pub const ROWSNOTRELEASED = 772; + +/// The data provider was not able to interpret the flags set for a column binding in an accessor. +pub const BAD_ACCESSOR_FLAGS = 773; + +/// One or more errors occurred while processing the request. +pub const ERRORS_ENCOUNTERED = 774; + +/// The implementation is not capable of performing the request. +pub const NOT_CAPABLE = 775; + +/// The client of a component requested an operation which is not valid given the state of the component instance. +pub const REQUEST_OUT_OF_SEQUENCE = 776; + +/// A version number could not be parsed. +pub const VERSION_PARSE_ERROR = 777; + +/// The iterator's start position is invalid. +pub const BADSTARTPOSITION = 778; + +/// The hardware has reported an uncorrectable memory error. +pub const MEMORY_HARDWARE = 779; + +/// The attempted operation required self healing to be enabled. +pub const DISK_REPAIR_DISABLED = 780; + +/// The Desktop heap encountered an error while allocating session memory. There is more information in the system event log. +pub const INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE = 781; + +/// The system power state is transitioning from %2 to %3. +pub const SYSTEM_POWERSTATE_TRANSITION = 782; + +/// The system power state is transitioning from %2 to %3 but could enter %4. +pub const SYSTEM_POWERSTATE_COMPLEX_TRANSITION = 783; + +/// A thread is getting dispatched with MCA EXCEPTION because of MCA. +pub const MCA_EXCEPTION = 784; + +/// Access to %1 is monitored by policy rule %2. +pub const ACCESS_AUDIT_BY_POLICY = 785; + +/// Access to %1 has been restricted by your Administrator by policy rule %2. +pub const ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY = 786; + +/// A valid hibernation file has been invalidated and should be abandoned. +pub const ABANDON_HIBERFILE = 787; + +/// {Delayed Write Failed} Windows was unable to save all the data for the file %hs; the data has been lost. This error may be caused by network connectivity issues. Please try to save this file elsewhere. +pub const LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED = 788; + +/// {Delayed Write Failed} Windows was unable to save all the data for the file %hs; the data has been lost. This error was returned by the server on which the file exists. Please try to save this file elsewhere. +pub const LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR = 789; + +/// {Delayed Write Failed} Windows was unable to save all the data for the file %hs; the data has been lost. This error may be caused if the device has been removed or the media is write-protected. +pub const LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR = 790; + +/// The resources required for this device conflict with the MCFG table. +pub const BAD_MCFG_TABLE = 791; + +/// The volume repair could not be performed while it is online. Please schedule to take the volume offline so that it can be repaired. +pub const DISK_REPAIR_REDIRECTED = 792; + +/// The volume repair was not successful. +pub const DISK_REPAIR_UNSUCCESSFUL = 793; + +/// One of the volume corruption logs is full. Further corruptions that may be detected won't be logged. +pub const CORRUPT_LOG_OVERFULL = 794; + +/// One of the volume corruption logs is internally corrupted and needs to be recreated. The volume may contain undetected corruptions and must be scanned. +pub const CORRUPT_LOG_CORRUPTED = 795; + +/// One of the volume corruption logs is unavailable for being operated on. +pub const CORRUPT_LOG_UNAVAILABLE = 796; + +/// One of the volume corruption logs was deleted while still having corruption records in them. The volume contains detected corruptions and must be scanned. +pub const CORRUPT_LOG_DELETED_FULL = 797; + +/// One of the volume corruption logs was cleared by chkdsk and no longer contains real corruptions. +pub const CORRUPT_LOG_CLEARED = 798; + +/// Orphaned files exist on the volume but could not be recovered because no more new names could be created in the recovery directory. Files must be moved from the recovery directory. +pub const ORPHAN_NAME_EXHAUSTED = 799; + +/// The oplock that was associated with this handle is now associated with a different handle. +pub const OPLOCK_SWITCHED_TO_NEW_HANDLE = 800; + +/// An oplock of the requested level cannot be granted. An oplock of a lower level may be available. +pub const CANNOT_GRANT_REQUESTED_OPLOCK = 801; + +/// The operation did not complete successfully because it would cause an oplock to be broken. The caller has requested that existing oplocks not be broken. +pub const CANNOT_BREAK_OPLOCK = 802; + +/// The handle with which this oplock was associated has been closed. The oplock is now broken. +pub const OPLOCK_HANDLE_CLOSED = 803; + +/// The specified access control entry (ACE) does not contain a condition. +pub const NO_ACE_CONDITION = 804; + +/// The specified access control entry (ACE) contains an invalid condition. +pub const INVALID_ACE_CONDITION = 805; + +/// Access to the specified file handle has been revoked. +pub const FILE_HANDLE_REVOKED = 806; + +/// An image file was mapped at a different address from the one specified in the image file but fixups will still be automatically performed on the image. +pub const IMAGE_AT_DIFFERENT_BASE = 807; + +/// Access to the extended attribute was denied. +pub const EA_ACCESS_DENIED = 994; + +/// The I/O operation has been aborted because of either a thread exit or an application request. +pub const OPERATION_ABORTED = 995; + +/// Overlapped I/O event is not in a signaled state. +pub const IO_INCOMPLETE = 996; + +/// Overlapped I/O operation is in progress. +pub const IO_PENDING = 997; + +/// Invalid access to memory location. +pub const NOACCESS = 998; + +/// Error performing inpage operation. +pub const SWAPERROR = 999; + +/// Recursion too deep; the stack overflowed. +pub const STACK_OVERFLOW = 1001; + +/// The window cannot act on the sent message. +pub const INVALID_MESSAGE = 1002; + +/// Cannot complete this function. +pub const CAN_NOT_COMPLETE = 1003; + +/// Invalid flags. +pub const INVALID_FLAGS = 1004; + +/// The volume does not contain a recognized file system. Please make sure that all required file system drivers are loaded and that the volume is not corrupted. +pub const UNRECOGNIZED_VOLUME = 1005; + +/// The volume for a file has been externally altered so that the opened file is no longer valid. +pub const FILE_INVALID = 1006; + +/// The requested operation cannot be performed in full-screen mode. +pub const FULLSCREEN_MODE = 1007; + +/// An attempt was made to reference a token that does not exist. +pub const NO_TOKEN = 1008; + +/// The configuration registry database is corrupt. +pub const BADDB = 1009; + +/// The configuration registry key is invalid. +pub const BADKEY = 1010; + +/// The configuration registry key could not be opened. +pub const CANTOPEN = 1011; + +/// The configuration registry key could not be read. +pub const CANTREAD = 1012; + +/// The configuration registry key could not be written. +pub const CANTWRITE = 1013; + +/// One of the files in the registry database had to be recovered by use of a log or alternate copy. The recovery was successful. +pub const REGISTRY_RECOVERED = 1014; + +/// The registry is corrupted. The structure of one of the files containing registry data is corrupted, or the system's memory image of the file is corrupted, or the file could not be recovered because the alternate copy or log was absent or corrupted. +pub const REGISTRY_CORRUPT = 1015; + +/// An I/O operation initiated by the registry failed unrecoverably. The registry could not read in, or write out, or flush, one of the files that contain the system's image of the registry. +pub const REGISTRY_IO_FAILED = 1016; + +/// The system has attempted to load or restore a file into the registry, but the specified file is not in a registry file format. +pub const NOT_REGISTRY_FILE = 1017; + +/// Illegal operation attempted on a registry key that has been marked for deletion. +pub const KEY_DELETED = 1018; + +/// System could not allocate the required space in a registry log. +pub const NO_LOG_SPACE = 1019; + +/// Cannot create a symbolic link in a registry key that already has subkeys or values. +pub const KEY_HAS_CHILDREN = 1020; + +/// Cannot create a stable subkey under a volatile parent key. +pub const CHILD_MUST_BE_VOLATILE = 1021; + +/// A notify change request is being completed and the information is not being returned in the caller's buffer. The caller now needs to enumerate the files to find the changes. +pub const NOTIFY_ENUM_DIR = 1022; + +/// A stop control has been sent to a service that other running services are dependent on. +pub const DEPENDENT_SERVICES_RUNNING = 1051; + +/// The requested control is not valid for this service. +pub const INVALID_SERVICE_CONTROL = 1052; + +/// The service did not respond to the start or control request in a timely fashion. +pub const SERVICE_REQUEST_TIMEOUT = 1053; + +/// A thread could not be created for the service. +pub const SERVICE_NO_THREAD = 1054; + +/// The service database is locked. +pub const SERVICE_DATABASE_LOCKED = 1055; + +/// An instance of the service is already running. +pub const SERVICE_ALREADY_RUNNING = 1056; + +/// The account name is invalid or does not exist, or the password is invalid for the account name specified. +pub const INVALID_SERVICE_ACCOUNT = 1057; + +/// The service cannot be started, either because it is disabled or because it has no enabled devices associated with it. +pub const SERVICE_DISABLED = 1058; + +/// Circular service dependency was specified. +pub const CIRCULAR_DEPENDENCY = 1059; + +/// The specified service does not exist as an installed service. +pub const SERVICE_DOES_NOT_EXIST = 1060; + +/// The service cannot accept control messages at this time. +pub const SERVICE_CANNOT_ACCEPT_CTRL = 1061; + +/// The service has not been started. +pub const SERVICE_NOT_ACTIVE = 1062; + +/// The service process could not connect to the service controller. +pub const FAILED_SERVICE_CONTROLLER_CONNECT = 1063; + +/// An exception occurred in the service when handling the control request. +pub const EXCEPTION_IN_SERVICE = 1064; + +/// The database specified does not exist. +pub const DATABASE_DOES_NOT_EXIST = 1065; + +/// The service has returned a service-specific error code. +pub const SERVICE_SPECIFIC_ERROR = 1066; + +/// The process terminated unexpectedly. +pub const PROCESS_ABORTED = 1067; + +/// The dependency service or group failed to start. +pub const SERVICE_DEPENDENCY_FAIL = 1068; + +/// The service did not start due to a logon failure. +pub const SERVICE_LOGON_FAILED = 1069; + +/// After starting, the service hung in a start-pending state. +pub const SERVICE_START_HANG = 1070; + +/// The specified service database lock is invalid. +pub const INVALID_SERVICE_LOCK = 1071; + +/// The specified service has been marked for deletion. +pub const SERVICE_MARKED_FOR_DELETE = 1072; + +/// The specified service already exists. +pub const SERVICE_EXISTS = 1073; + +/// The system is currently running with the last-known-good configuration. +pub const ALREADY_RUNNING_LKG = 1074; + +/// The dependency service does not exist or has been marked for deletion. +pub const SERVICE_DEPENDENCY_DELETED = 1075; + +/// The current boot has already been accepted for use as the last-known-good control set. +pub const BOOT_ALREADY_ACCEPTED = 1076; + +/// No attempts to start the service have been made since the last boot. +pub const SERVICE_NEVER_STARTED = 1077; + +/// The name is already in use as either a service name or a service display name. +pub const DUPLICATE_SERVICE_NAME = 1078; + +/// The account specified for this service is different from the account specified for other services running in the same process. +pub const DIFFERENT_SERVICE_ACCOUNT = 1079; + +/// Failure actions can only be set for Win32 services, not for drivers. +pub const CANNOT_DETECT_DRIVER_FAILURE = 1080; + +/// This service runs in the same process as the service control manager. Therefore, the service control manager cannot take action if this service's process terminates unexpectedly. +pub const CANNOT_DETECT_PROCESS_ABORT = 1081; + +/// No recovery program has been configured for this service. +pub const NO_RECOVERY_PROGRAM = 1082; + +/// The executable program that this service is configured to run in does not implement the service. +pub const SERVICE_NOT_IN_EXE = 1083; + +/// This service cannot be started in Safe Mode. +pub const NOT_SAFEBOOT_SERVICE = 1084; + +/// The physical end of the tape has been reached. +pub const END_OF_MEDIA = 1100; + +/// A tape access reached a filemark. +pub const FILEMARK_DETECTED = 1101; + +/// The beginning of the tape or a partition was encountered. +pub const BEGINNING_OF_MEDIA = 1102; + +/// A tape access reached the end of a set of files. +pub const SETMARK_DETECTED = 1103; + +/// No more data is on the tape. +pub const NO_DATA_DETECTED = 1104; + +/// Tape could not be partitioned. +pub const PARTITION_FAILURE = 1105; + +/// When accessing a new tape of a multivolume partition, the current block size is incorrect. +pub const INVALID_BLOCK_LENGTH = 1106; + +/// Tape partition information could not be found when loading a tape. +pub const DEVICE_NOT_PARTITIONED = 1107; + +/// Unable to lock the media eject mechanism. +pub const UNABLE_TO_LOCK_MEDIA = 1108; + +/// Unable to unload the media. +pub const UNABLE_TO_UNLOAD_MEDIA = 1109; + +/// The media in the drive may have changed. +pub const MEDIA_CHANGED = 1110; + +/// The I/O bus was reset. +pub const BUS_RESET = 1111; + +/// No media in drive. +pub const NO_MEDIA_IN_DRIVE = 1112; + +/// No mapping for the Unicode character exists in the target multi-byte code page. +pub const NO_UNICODE_TRANSLATION = 1113; + +/// A dynamic link library (DLL) initialization routine failed. +pub const DLL_INIT_FAILED = 1114; + +/// A system shutdown is in progress. +pub const SHUTDOWN_IN_PROGRESS = 1115; + +/// Unable to abort the system shutdown because no shutdown was in progress. +pub const NO_SHUTDOWN_IN_PROGRESS = 1116; + +/// The request could not be performed because of an I/O device error. +pub const IO_DEVICE = 1117; + +/// No serial device was successfully initialized. The serial driver will unload. +pub const SERIAL_NO_DEVICE = 1118; + +/// Unable to open a device that was sharing an interrupt request (IRQ) with other devices. At least one other device that uses that IRQ was already opened. +pub const IRQ_BUSY = 1119; + +/// A serial I/O operation was completed by another write to the serial port. The IOCTL_SERIAL_XOFF_COUNTER reached zero.) +pub const MORE_WRITES = 1120; + +/// A serial I/O operation completed because the timeout period expired. The IOCTL_SERIAL_XOFF_COUNTER did not reach zero.) +pub const COUNTER_TIMEOUT = 1121; + +/// No ID address mark was found on the floppy disk. +pub const FLOPPY_ID_MARK_NOT_FOUND = 1122; + +/// Mismatch between the floppy disk sector ID field and the floppy disk controller track address. +pub const FLOPPY_WRONG_CYLINDER = 1123; + +/// The floppy disk controller reported an error that is not recognized by the floppy disk driver. +pub const FLOPPY_UNKNOWN_ERROR = 1124; + +/// The floppy disk controller returned inconsistent results in its registers. +pub const FLOPPY_BAD_REGISTERS = 1125; + +/// While accessing the hard disk, a recalibrate operation failed, even after retries. +pub const DISK_RECALIBRATE_FAILED = 1126; + +/// While accessing the hard disk, a disk operation failed even after retries. +pub const DISK_OPERATION_FAILED = 1127; + +/// While accessing the hard disk, a disk controller reset was needed, but even that failed. +pub const DISK_RESET_FAILED = 1128; + +/// Physical end of tape encountered. +pub const EOM_OVERFLOW = 1129; + +/// Not enough server storage is available to process this command. +pub const NOT_ENOUGH_SERVER_MEMORY = 1130; + +/// A potential deadlock condition has been detected. +pub const POSSIBLE_DEADLOCK = 1131; + +/// The base address or the file offset specified does not have the proper alignment. +pub const MAPPED_ALIGNMENT = 1132; + +/// An attempt to change the system power state was vetoed by another application or driver. +pub const SET_POWER_STATE_VETOED = 1140; + +/// The system BIOS failed an attempt to change the system power state. +pub const SET_POWER_STATE_FAILED = 1141; + +/// An attempt was made to create more links on a file than the file system supports. +pub const TOO_MANY_LINKS = 1142; + +/// The specified program requires a newer version of Windows. +pub const OLD_WIN_VERSION = 1150; + +/// The specified program is not a Windows or MS-DOS program. +pub const APP_WRONG_OS = 1151; + +/// Cannot start more than one instance of the specified program. +pub const SINGLE_INSTANCE_APP = 1152; + +/// The specified program was written for an earlier version of Windows. +pub const RMODE_APP = 1153; + +/// One of the library files needed to run this application is damaged. +pub const INVALID_DLL = 1154; + +/// No application is associated with the specified file for this operation. +pub const NO_ASSOCIATION = 1155; + +/// An error occurred in sending the command to the application. +pub const DDE_FAIL = 1156; + +/// One of the library files needed to run this application cannot be found. +pub const DLL_NOT_FOUND = 1157; + +/// The current process has used all of its system allowance of handles for Window Manager objects. +pub const NO_MORE_USER_HANDLES = 1158; + +/// The message can be used only with synchronous operations. +pub const MESSAGE_SYNC_ONLY = 1159; + +/// The indicated source element has no media. +pub const SOURCE_ELEMENT_EMPTY = 1160; + +/// The indicated destination element already contains media. +pub const DESTINATION_ELEMENT_FULL = 1161; + +/// The indicated element does not exist. +pub const ILLEGAL_ELEMENT_ADDRESS = 1162; + +/// The indicated element is part of a magazine that is not present. +pub const MAGAZINE_NOT_PRESENT = 1163; + +/// The indicated device requires reinitialization due to hardware errors. +pub const DEVICE_REINITIALIZATION_NEEDED = 1164; + +/// The device has indicated that cleaning is required before further operations are attempted. +pub const DEVICE_REQUIRES_CLEANING = 1165; + +/// The device has indicated that its door is open. +pub const DEVICE_DOOR_OPEN = 1166; + +/// The device is not connected. +pub const DEVICE_NOT_CONNECTED = 1167; + +/// Element not found. +pub const NOT_FOUND = 1168; + +/// There was no match for the specified key in the index. +pub const NO_MATCH = 1169; + +/// The property set specified does not exist on the object. +pub const SET_NOT_FOUND = 1170; + +/// The point passed to GetMouseMovePoints is not in the buffer. +pub const POINT_NOT_FOUND = 1171; + +/// The tracking (workstation) service is not running. +pub const NO_TRACKING_SERVICE = 1172; + +/// The Volume ID could not be found. +pub const NO_VOLUME_ID = 1173; + +/// Unable to remove the file to be replaced. +pub const UNABLE_TO_REMOVE_REPLACED = 1175; + +/// Unable to move the replacement file to the file to be replaced. The file to be replaced has retained its original name. +pub const UNABLE_TO_MOVE_REPLACEMENT = 1176; + +/// Unable to move the replacement file to the file to be replaced. The file to be replaced has been renamed using the backup name. +pub const UNABLE_TO_MOVE_REPLACEMENT_2 = 1177; + +/// The volume change journal is being deleted. +pub const JOURNAL_DELETE_IN_PROGRESS = 1178; + +/// The volume change journal is not active. +pub const JOURNAL_NOT_ACTIVE = 1179; + +/// A file was found, but it may not be the correct file. +pub const POTENTIAL_FILE_FOUND = 1180; + +/// The journal entry has been deleted from the journal. +pub const JOURNAL_ENTRY_DELETED = 1181; + +/// A system shutdown has already been scheduled. +pub const SHUTDOWN_IS_SCHEDULED = 1190; + +/// The system shutdown cannot be initiated because there are other users logged on to the computer. +pub const SHUTDOWN_USERS_LOGGED_ON = 1191; + +/// The specified device name is invalid. +pub const BAD_DEVICE = 1200; + +/// The device is not currently connected but it is a remembered connection. +pub const CONNECTION_UNAVAIL = 1201; + +/// The local device name has a remembered connection to another network resource. +pub const DEVICE_ALREADY_REMEMBERED = 1202; + +/// The network path was either typed incorrectly, does not exist, or the network provider is not currently available. Please try retyping the path or contact your network administrator. +pub const NO_NET_OR_BAD_PATH = 1203; + +/// The specified network provider name is invalid. +pub const BAD_PROVIDER = 1204; + +/// Unable to open the network connection profile. +pub const CANNOT_OPEN_PROFILE = 1205; + +/// The network connection profile is corrupted. +pub const BAD_PROFILE = 1206; + +/// Cannot enumerate a noncontainer. +pub const NOT_CONTAINER = 1207; + +/// An extended error has occurred. +pub const EXTENDED_ERROR = 1208; + +/// The format of the specified group name is invalid. +pub const INVALID_GROUPNAME = 1209; + +/// The format of the specified computer name is invalid. +pub const INVALID_COMPUTERNAME = 1210; + +/// The format of the specified event name is invalid. +pub const INVALID_EVENTNAME = 1211; + +/// The format of the specified domain name is invalid. +pub const INVALID_DOMAINNAME = 1212; + +/// The format of the specified service name is invalid. +pub const INVALID_SERVICENAME = 1213; + +/// The format of the specified network name is invalid. +pub const INVALID_NETNAME = 1214; + +/// The format of the specified share name is invalid. +pub const INVALID_SHARENAME = 1215; + +/// The format of the specified password is invalid. +pub const INVALID_PASSWORDNAME = 1216; + +/// The format of the specified message name is invalid. +pub const INVALID_MESSAGENAME = 1217; + +/// The format of the specified message destination is invalid. +pub const INVALID_MESSAGEDEST = 1218; + +/// Multiple connections to a server or shared resource by the same user, using more than one user name, are not allowed. Disconnect all previous connections to the server or shared resource and try again. +pub const SESSION_CREDENTIAL_CONFLICT = 1219; + +/// An attempt was made to establish a session to a network server, but there are already too many sessions established to that server. +pub const REMOTE_SESSION_LIMIT_EXCEEDED = 1220; + +/// The workgroup or domain name is already in use by another computer on the network. +pub const DUP_DOMAINNAME = 1221; + +/// The network is not present or not started. +pub const NO_NETWORK = 1222; + +/// The operation was canceled by the user. +pub const CANCELLED = 1223; + +/// The requested operation cannot be performed on a file with a user-mapped section open. +pub const USER_MAPPED_FILE = 1224; + +/// The remote computer refused the network connection. +pub const CONNECTION_REFUSED = 1225; + +/// The network connection was gracefully closed. +pub const GRACEFUL_DISCONNECT = 1226; + +/// The network transport endpoint already has an address associated with it. +pub const ADDRESS_ALREADY_ASSOCIATED = 1227; + +/// An address has not yet been associated with the network endpoint. +pub const ADDRESS_NOT_ASSOCIATED = 1228; + +/// An operation was attempted on a nonexistent network connection. +pub const CONNECTION_INVALID = 1229; + +/// An invalid operation was attempted on an active network connection. +pub const CONNECTION_ACTIVE = 1230; + +/// The network location cannot be reached. For information about network troubleshooting, see Windows Help. +pub const NETWORK_UNREACHABLE = 1231; + +/// The network location cannot be reached. For information about network troubleshooting, see Windows Help. +pub const HOST_UNREACHABLE = 1232; + +/// The network location cannot be reached. For information about network troubleshooting, see Windows Help. +pub const PROTOCOL_UNREACHABLE = 1233; + +/// No service is operating at the destination network endpoint on the remote system. +pub const PORT_UNREACHABLE = 1234; + +/// The request was aborted. +pub const REQUEST_ABORTED = 1235; + +/// The network connection was aborted by the local system. +pub const CONNECTION_ABORTED = 1236; + +/// The operation could not be completed. A retry should be performed. +pub const RETRY = 1237; + +/// A connection to the server could not be made because the limit on the number of concurrent connections for this account has been reached. +pub const CONNECTION_COUNT_LIMIT = 1238; + +/// Attempting to log in during an unauthorized time of day for this account. +pub const LOGIN_TIME_RESTRICTION = 1239; + +/// The account is not authorized to log in from this station. +pub const LOGIN_WKSTA_RESTRICTION = 1240; + +/// The network address could not be used for the operation requested. +pub const INCORRECT_ADDRESS = 1241; + +/// The service is already registered. +pub const ALREADY_REGISTERED = 1242; + +/// The specified service does not exist. +pub const SERVICE_NOT_FOUND = 1243; + +/// The operation being requested was not performed because the user has not been authenticated. +pub const NOT_AUTHENTICATED = 1244; + +/// The operation being requested was not performed because the user has not logged on to the network. The specified service does not exist. +pub const NOT_LOGGED_ON = 1245; + +/// Continue with work in progress. +pub const CONTINUE = 1246; + +/// An attempt was made to perform an initialization operation when initialization has already been completed. +pub const ALREADY_INITIALIZED = 1247; + +/// No more local devices. +pub const NO_MORE_DEVICES = 1248; + +/// The specified site does not exist. +pub const NO_SUCH_SITE = 1249; + +/// A domain controller with the specified name already exists. +pub const DOMAIN_CONTROLLER_EXISTS = 1250; + +/// This operation is supported only when you are connected to the server. +pub const ONLY_IF_CONNECTED = 1251; + +/// The group policy framework should call the extension even if there are no changes. +pub const OVERRIDE_NOCHANGES = 1252; + +/// The specified user does not have a valid profile. +pub const BAD_USER_PROFILE = 1253; + +/// This operation is not supported on a computer running Windows Server 2003 for Small Business Server. +pub const NOT_SUPPORTED_ON_SBS = 1254; + +/// The server machine is shutting down. +pub const SERVER_SHUTDOWN_IN_PROGRESS = 1255; + +/// The remote system is not available. For information about network troubleshooting, see Windows Help. +pub const HOST_DOWN = 1256; + +/// The security identifier provided is not from an account domain. +pub const NON_ACCOUNT_SID = 1257; + +/// The security identifier provided does not have a domain component. +pub const NON_DOMAIN_SID = 1258; + +/// AppHelp dialog canceled thus preventing the application from starting. +pub const APPHELP_BLOCK = 1259; + +/// This program is blocked by group policy. For more information, contact your system administrator. +pub const ACCESS_DISABLED_BY_POLICY = 1260; + +/// A program attempt to use an invalid register value. Normally caused by an uninitialized register. This error is Itanium specific. +pub const REG_NAT_CONSUMPTION = 1261; + +/// The share is currently offline or does not exist. +pub const CSCSHARE_OFFLINE = 1262; + +/// The Kerberos protocol encountered an error while validating the KDC certificate during smartcard logon. There is more information in the system event log. +pub const PKINIT_FAILURE = 1263; + +/// The Kerberos protocol encountered an error while attempting to utilize the smartcard subsystem. +pub const SMARTCARD_SUBSYSTEM_FAILURE = 1264; + +/// The system cannot contact a domain controller to service the authentication request. Please try again later. +pub const DOWNGRADE_DETECTED = 1265; + +/// The machine is locked and cannot be shut down without the force option. +pub const MACHINE_LOCKED = 1271; + +/// An application-defined callback gave invalid data when called. +pub const CALLBACK_SUPPLIED_INVALID_DATA = 1273; + +/// The group policy framework should call the extension in the synchronous foreground policy refresh. +pub const SYNC_FOREGROUND_REFRESH_REQUIRED = 1274; + +/// This driver has been blocked from loading. +pub const DRIVER_BLOCKED = 1275; + +/// A dynamic link library (DLL) referenced a module that was neither a DLL nor the process's executable image. +pub const INVALID_IMPORT_OF_NON_DLL = 1276; + +/// Windows cannot open this program since it has been disabled. +pub const ACCESS_DISABLED_WEBBLADE = 1277; + +/// Windows cannot open this program because the license enforcement system has been tampered with or become corrupted. +pub const ACCESS_DISABLED_WEBBLADE_TAMPER = 1278; + +/// A transaction recover failed. +pub const RECOVERY_FAILURE = 1279; + +/// The current thread has already been converted to a fiber. +pub const ALREADY_FIBER = 1280; + +/// The current thread has already been converted from a fiber. +pub const ALREADY_THREAD = 1281; + +/// The system detected an overrun of a stack-based buffer in this application. This overrun could potentially allow a malicious user to gain control of this application. +pub const STACK_BUFFER_OVERRUN = 1282; + +/// Data present in one of the parameters is more than the function can operate on. +pub const PARAMETER_QUOTA_EXCEEDED = 1283; + +/// An attempt to do an operation on a debug object failed because the object is in the process of being deleted. +pub const DEBUGGER_INACTIVE = 1284; + +/// An attempt to delay-load a .dll or get a function address in a delay-loaded .dll failed. +pub const DELAY_LOAD_FAILED = 1285; + +/// %1 is a 16-bit application. You do not have permissions to execute 16-bit applications. Check your permissions with your system administrator. +pub const VDM_DISALLOWED = 1286; + +/// Insufficient information exists to identify the cause of failure. +pub const UNIDENTIFIED_ERROR = 1287; + +/// The parameter passed to a C runtime function is incorrect. +pub const INVALID_CRUNTIME_PARAMETER = 1288; + +/// The operation occurred beyond the valid data length of the file. +pub const BEYOND_VDL = 1289; + +/// The service start failed since one or more services in the same process have an incompatible service SID type setting. A service with restricted service SID type can only coexist in the same process with other services with a restricted SID type. If the service SID type for this service was just configured, the hosting process must be restarted in order to start this service. +/// On Windows Server 2003 and Windows XP, an unrestricted service cannot coexist in the same process with other services. The service with the unrestricted service SID type must be moved to an owned process in order to start this service. +pub const INCOMPATIBLE_SERVICE_SID_TYPE = 1290; + +/// The process hosting the driver for this device has been terminated. +pub const DRIVER_PROCESS_TERMINATED = 1291; + +/// An operation attempted to exceed an implementation-defined limit. +pub const IMPLEMENTATION_LIMIT = 1292; + +/// Either the target process, or the target thread's containing process, is a protected process. +pub const PROCESS_IS_PROTECTED = 1293; + +/// The service notification client is lagging too far behind the current state of services in the machine. +pub const SERVICE_NOTIFY_CLIENT_LAGGING = 1294; + +/// The requested file operation failed because the storage quota was exceeded. To free up disk space, move files to a different location or delete unnecessary files. For more information, contact your system administrator. +pub const DISK_QUOTA_EXCEEDED = 1295; + +/// The requested file operation failed because the storage policy blocks that type of file. For more information, contact your system administrator. +pub const CONTENT_BLOCKED = 1296; + +/// A privilege that the service requires to function properly does not exist in the service account configuration. You may use the Services Microsoft Management Console (MMC) snap-in (services.msc) and the Local Security Settings MMC snap-in (secpol.msc) to view the service configuration and the account configuration. +pub const INCOMPATIBLE_SERVICE_PRIVILEGE = 1297; + +/// A thread involved in this operation appears to be unresponsive. +pub const APP_HANG = 1298; + +/// Indicates a particular Security ID may not be assigned as the label of an object. +pub const INVALID_LABEL = 1299; + +/// Not all privileges or groups referenced are assigned to the caller. +pub const NOT_ALL_ASSIGNED = 1300; + +/// Some mapping between account names and security IDs was not done. +pub const SOME_NOT_MAPPED = 1301; + +/// No system quota limits are specifically set for this account. +pub const NO_QUOTAS_FOR_ACCOUNT = 1302; + +/// No encryption key is available. A well-known encryption key was returned. +pub const LOCAL_USER_SESSION_KEY = 1303; + +/// The password is too complex to be converted to a LAN Manager password. The LAN Manager password returned is a NULL string. +pub const NULL_LM_PASSWORD = 1304; + +/// The revision level is unknown. +pub const UNKNOWN_REVISION = 1305; + +/// Indicates two revision levels are incompatible. +pub const REVISION_MISMATCH = 1306; + +/// This security ID may not be assigned as the owner of this object. +pub const INVALID_OWNER = 1307; + +/// This security ID may not be assigned as the primary group of an object. +pub const INVALID_PRIMARY_GROUP = 1308; + +/// An attempt has been made to operate on an impersonation token by a thread that is not currently impersonating a client. +pub const NO_IMPERSONATION_TOKEN = 1309; + +/// The group may not be disabled. +pub const CANT_DISABLE_MANDATORY = 1310; + +/// There are currently no logon servers available to service the logon request. +pub const NO_LOGON_SERVERS = 1311; + +/// A specified logon session does not exist. It may already have been terminated. +pub const NO_SUCH_LOGON_SESSION = 1312; + +/// A specified privilege does not exist. +pub const NO_SUCH_PRIVILEGE = 1313; + +/// A required privilege is not held by the client. +pub const PRIVILEGE_NOT_HELD = 1314; + +/// The name provided is not a properly formed account name. +pub const INVALID_ACCOUNT_NAME = 1315; + +/// The specified account already exists. +pub const USER_EXISTS = 1316; + +/// The specified account does not exist. +pub const NO_SUCH_USER = 1317; + +/// The specified group already exists. +pub const GROUP_EXISTS = 1318; + +/// The specified group does not exist. +pub const NO_SUCH_GROUP = 1319; + +/// Either the specified user account is already a member of the specified group, or the specified group cannot be deleted because it contains a member. +pub const MEMBER_IN_GROUP = 1320; + +/// The specified user account is not a member of the specified group account. +pub const MEMBER_NOT_IN_GROUP = 1321; + +/// This operation is disallowed as it could result in an administration account being disabled, deleted or unable to log on. +pub const LAST_ADMIN = 1322; + +/// Unable to update the password. The value provided as the current password is incorrect. +pub const WRONG_PASSWORD = 1323; + +/// Unable to update the password. The value provided for the new password contains values that are not allowed in passwords. +pub const ILL_FORMED_PASSWORD = 1324; + +/// Unable to update the password. The value provided for the new password does not meet the length, complexity, or history requirements of the domain. +pub const PASSWORD_RESTRICTION = 1325; + +/// The user name or password is incorrect. +pub const LOGON_FAILURE = 1326; + +/// Account restrictions are preventing this user from signing in. For example: blank passwords aren't allowed, sign-in times are limited, or a policy restriction has been enforced. +pub const ACCOUNT_RESTRICTION = 1327; + +/// Your account has time restrictions that keep you from signing in right now. +pub const INVALID_LOGON_HOURS = 1328; + +/// This user isn't allowed to sign in to this computer. +pub const INVALID_WORKSTATION = 1329; + +/// The password for this account has expired. +pub const PASSWORD_EXPIRED = 1330; + +/// This user can't sign in because this account is currently disabled. +pub const ACCOUNT_DISABLED = 1331; + +/// No mapping between account names and security IDs was done. +pub const NONE_MAPPED = 1332; + +/// Too many local user identifiers (LUIDs) were requested at one time. +pub const TOO_MANY_LUIDS_REQUESTED = 1333; + +/// No more local user identifiers (LUIDs) are available. +pub const LUIDS_EXHAUSTED = 1334; + +/// The subauthority part of a security ID is invalid for this particular use. +pub const INVALID_SUB_AUTHORITY = 1335; + +/// The access control list (ACL) structure is invalid. +pub const INVALID_ACL = 1336; + +/// The security ID structure is invalid. +pub const INVALID_SID = 1337; + +/// The security descriptor structure is invalid. +pub const INVALID_SECURITY_DESCR = 1338; + +/// The inherited access control list (ACL) or access control entry (ACE) could not be built. +pub const BAD_INHERITANCE_ACL = 1340; + +/// The server is currently disabled. +pub const SERVER_DISABLED = 1341; + +/// The server is currently enabled. +pub const SERVER_NOT_DISABLED = 1342; + +/// The value provided was an invalid value for an identifier authority. +pub const INVALID_ID_AUTHORITY = 1343; + +/// No more memory is available for security information updates. +pub const ALLOTTED_SPACE_EXCEEDED = 1344; + +/// The specified attributes are invalid, or incompatible with the attributes for the group as a whole. +pub const INVALID_GROUP_ATTRIBUTES = 1345; + +/// Either a required impersonation level was not provided, or the provided impersonation level is invalid. +pub const BAD_IMPERSONATION_LEVEL = 1346; + +/// Cannot open an anonymous level security token. +pub const CANT_OPEN_ANONYMOUS = 1347; + +/// The validation information class requested was invalid. +pub const BAD_VALIDATION_CLASS = 1348; + +/// The type of the token is inappropriate for its attempted use. +pub const BAD_TOKEN_TYPE = 1349; + +/// Unable to perform a security operation on an object that has no associated security. +pub const NO_SECURITY_ON_OBJECT = 1350; + +/// Configuration information could not be read from the domain controller, either because the machine is unavailable, or access has been denied. +pub const CANT_ACCESS_DOMAIN_INFO = 1351; + +/// The security account manager (SAM) or local security authority (LSA) server was in the wrong state to perform the security operation. +pub const INVALID_SERVER_STATE = 1352; + +/// The domain was in the wrong state to perform the security operation. +pub const INVALID_DOMAIN_STATE = 1353; + +/// This operation is only allowed for the Primary Domain Controller of the domain. +pub const INVALID_DOMAIN_ROLE = 1354; + +/// The specified domain either does not exist or could not be contacted. +pub const NO_SUCH_DOMAIN = 1355; + +/// The specified domain already exists. +pub const DOMAIN_EXISTS = 1356; + +/// An attempt was made to exceed the limit on the number of domains per server. +pub const DOMAIN_LIMIT_EXCEEDED = 1357; + +/// Unable to complete the requested operation because of either a catastrophic media failure or a data structure corruption on the disk. +pub const INTERNAL_DB_CORRUPTION = 1358; + +/// An internal error occurred. +pub const INTERNAL_ERROR = 1359; + +/// Generic access types were contained in an access mask which should already be mapped to nongeneric types. +pub const GENERIC_NOT_MAPPED = 1360; + +/// A security descriptor is not in the right format (absolute or self-relative). +pub const BAD_DESCRIPTOR_FORMAT = 1361; + +/// The requested action is restricted for use by logon processes only. The calling process has not registered as a logon process. +pub const NOT_LOGON_PROCESS = 1362; + +/// Cannot start a new logon session with an ID that is already in use. +pub const LOGON_SESSION_EXISTS = 1363; + +/// A specified authentication package is unknown. +pub const NO_SUCH_PACKAGE = 1364; + +/// The logon session is not in a state that is consistent with the requested operation. +pub const BAD_LOGON_SESSION_STATE = 1365; + +/// The logon session ID is already in use. +pub const LOGON_SESSION_COLLISION = 1366; + +/// A logon request contained an invalid logon type value. +pub const INVALID_LOGON_TYPE = 1367; + +/// Unable to impersonate using a named pipe until data has been read from that pipe. +pub const CANNOT_IMPERSONATE = 1368; + +/// The transaction state of a registry subtree is incompatible with the requested operation. +pub const RXACT_INVALID_STATE = 1369; + +/// An internal security database corruption has been encountered. +pub const RXACT_COMMIT_FAILURE = 1370; + +/// Cannot perform this operation on built-in accounts. +pub const SPECIAL_ACCOUNT = 1371; + +/// Cannot perform this operation on this built-in special group. +pub const SPECIAL_GROUP = 1372; + +/// Cannot perform this operation on this built-in special user. +pub const SPECIAL_USER = 1373; + +/// The user cannot be removed from a group because the group is currently the user's primary group. +pub const MEMBERS_PRIMARY_GROUP = 1374; + +/// The token is already in use as a primary token. +pub const TOKEN_ALREADY_IN_USE = 1375; + +/// The specified local group does not exist. +pub const NO_SUCH_ALIAS = 1376; + +/// The specified account name is not a member of the group. +pub const MEMBER_NOT_IN_ALIAS = 1377; + +/// The specified account name is already a member of the group. +pub const MEMBER_IN_ALIAS = 1378; + +/// The specified local group already exists. +pub const ALIAS_EXISTS = 1379; + +/// Logon failure: the user has not been granted the requested logon type at this computer. +pub const LOGON_NOT_GRANTED = 1380; + +/// The maximum number of secrets that may be stored in a single system has been exceeded. +pub const TOO_MANY_SECRETS = 1381; + +/// The length of a secret exceeds the maximum length allowed. +pub const SECRET_TOO_LONG = 1382; + +/// The local security authority database contains an internal inconsistency. +pub const INTERNAL_DB_ERROR = 1383; + +/// During a logon attempt, the user's security context accumulated too many security IDs. +pub const TOO_MANY_CONTEXT_IDS = 1384; + +/// Logon failure: the user has not been granted the requested logon type at this computer. +pub const LOGON_TYPE_NOT_GRANTED = 1385; + +/// A cross-encrypted password is necessary to change a user password. +pub const NT_CROSS_ENCRYPTION_REQUIRED = 1386; + +/// A member could not be added to or removed from the local group because the member does not exist. +pub const NO_SUCH_MEMBER = 1387; + +/// A new member could not be added to a local group because the member has the wrong account type. +pub const INVALID_MEMBER = 1388; + +/// Too many security IDs have been specified. +pub const TOO_MANY_SIDS = 1389; + +/// A cross-encrypted password is necessary to change this user password. +pub const LM_CROSS_ENCRYPTION_REQUIRED = 1390; + +/// Indicates an ACL contains no inheritable components. +pub const NO_INHERITANCE = 1391; + +/// The file or directory is corrupted and unreadable. +pub const FILE_CORRUPT = 1392; + +/// The disk structure is corrupted and unreadable. +pub const DISK_CORRUPT = 1393; + +/// There is no user session key for the specified logon session. +pub const NO_USER_SESSION_KEY = 1394; + +/// The service being accessed is licensed for a particular number of connections. No more connections can be made to the service at this time because there are already as many connections as the service can accept. +pub const LICENSE_QUOTA_EXCEEDED = 1395; + +/// The target account name is incorrect. +pub const WRONG_TARGET_NAME = 1396; + +/// Mutual Authentication failed. The server's password is out of date at the domain controller. +pub const MUTUAL_AUTH_FAILED = 1397; + +/// There is a time and/or date difference between the client and server. +pub const TIME_SKEW = 1398; + +/// This operation cannot be performed on the current domain. +pub const CURRENT_DOMAIN_NOT_ALLOWED = 1399; + +/// Invalid window handle. +pub const INVALID_WINDOW_HANDLE = 1400; + +/// Invalid menu handle. +pub const INVALID_MENU_HANDLE = 1401; + +/// Invalid cursor handle. +pub const INVALID_CURSOR_HANDLE = 1402; + +/// Invalid accelerator table handle. +pub const INVALID_ACCEL_HANDLE = 1403; + +/// Invalid hook handle. +pub const INVALID_HOOK_HANDLE = 1404; + +/// Invalid handle to a multiple-window position structure. +pub const INVALID_DWP_HANDLE = 1405; + +/// Cannot create a top-level child window. +pub const TLW_WITH_WSCHILD = 1406; + +/// Cannot find window class. +pub const CANNOT_FIND_WND_CLASS = 1407; + +/// Invalid window; it belongs to other thread. +pub const WINDOW_OF_OTHER_THREAD = 1408; + +/// Hot key is already registered. +pub const HOTKEY_ALREADY_REGISTERED = 1409; + +/// Class already exists. +pub const CLASS_ALREADY_EXISTS = 1410; + +/// Class does not exist. +pub const CLASS_DOES_NOT_EXIST = 1411; + +/// Class still has open windows. +pub const CLASS_HAS_WINDOWS = 1412; + +/// Invalid index. +pub const INVALID_INDEX = 1413; + +/// Invalid icon handle. +pub const INVALID_ICON_HANDLE = 1414; + +/// Using private DIALOG window words. +pub const PRIVATE_DIALOG_INDEX = 1415; + +/// The list box identifier was not found. +pub const LISTBOX_ID_NOT_FOUND = 1416; + +/// No wildcards were found. +pub const NO_WILDCARD_CHARACTERS = 1417; + +/// Thread does not have a clipboard open. +pub const CLIPBOARD_NOT_OPEN = 1418; + +/// Hot key is not registered. +pub const HOTKEY_NOT_REGISTERED = 1419; + +/// The window is not a valid dialog window. +pub const WINDOW_NOT_DIALOG = 1420; + +/// Control ID not found. +pub const CONTROL_ID_NOT_FOUND = 1421; + +/// Invalid message for a combo box because it does not have an edit control. +pub const INVALID_COMBOBOX_MESSAGE = 1422; + +/// The window is not a combo box. +pub const WINDOW_NOT_COMBOBOX = 1423; + +/// Height must be less than 256. +pub const INVALID_EDIT_HEIGHT = 1424; + +/// Invalid device context (DC) handle. +pub const DC_NOT_FOUND = 1425; + +/// Invalid hook procedure type. +pub const INVALID_HOOK_FILTER = 1426; + +/// Invalid hook procedure. +pub const INVALID_FILTER_PROC = 1427; + +/// Cannot set nonlocal hook without a module handle. +pub const HOOK_NEEDS_HMOD = 1428; + +/// This hook procedure can only be set globally. +pub const GLOBAL_ONLY_HOOK = 1429; + +/// The journal hook procedure is already installed. +pub const JOURNAL_HOOK_SET = 1430; + +/// The hook procedure is not installed. +pub const HOOK_NOT_INSTALLED = 1431; + +/// Invalid message for single-selection list box. +pub const INVALID_LB_MESSAGE = 1432; + +/// LB_SETCOUNT sent to non-lazy list box. +pub const SETCOUNT_ON_BAD_LB = 1433; + +/// This list box does not support tab stops. +pub const LB_WITHOUT_TABSTOPS = 1434; + +/// Cannot destroy object created by another thread. +pub const DESTROY_OBJECT_OF_OTHER_THREAD = 1435; + +/// Child windows cannot have menus. +pub const CHILD_WINDOW_MENU = 1436; + +/// The window does not have a system menu. +pub const NO_SYSTEM_MENU = 1437; + +/// Invalid message box style. +pub const INVALID_MSGBOX_STYLE = 1438; + +/// Invalid system-wide (SPI_*) parameter. +pub const INVALID_SPI_VALUE = 1439; + +/// Screen already locked. +pub const SCREEN_ALREADY_LOCKED = 1440; + +/// All handles to windows in a multiple-window position structure must have the same parent. +pub const HWNDS_HAVE_DIFF_PARENT = 1441; + +/// The window is not a child window. +pub const NOT_CHILD_WINDOW = 1442; + +/// Invalid GW_* command. +pub const INVALID_GW_COMMAND = 1443; + +/// Invalid thread identifier. +pub const INVALID_THREAD_ID = 1444; + +/// Cannot process a message from a window that is not a multiple document interface (MDI) window. +pub const NON_MDICHILD_WINDOW = 1445; + +/// Popup menu already active. +pub const POPUP_ALREADY_ACTIVE = 1446; + +/// The window does not have scroll bars. +pub const NO_SCROLLBARS = 1447; + +/// Scroll bar range cannot be greater than MAXLONG. +pub const INVALID_SCROLLBAR_RANGE = 1448; + +/// Cannot show or remove the window in the way specified. +pub const INVALID_SHOWWIN_COMMAND = 1449; + +/// Insufficient system resources exist to complete the requested service. +pub const NO_SYSTEM_RESOURCES = 1450; + +/// Insufficient system resources exist to complete the requested service. +pub const NONPAGED_SYSTEM_RESOURCES = 1451; + +/// Insufficient system resources exist to complete the requested service. +pub const PAGED_SYSTEM_RESOURCES = 1452; + +/// Insufficient quota to complete the requested service. +pub const WORKING_SET_QUOTA = 1453; + +/// Insufficient quota to complete the requested service. +pub const PAGEFILE_QUOTA = 1454; + +/// The paging file is too small for this operation to complete. +pub const COMMITMENT_LIMIT = 1455; + +/// A menu item was not found. +pub const MENU_ITEM_NOT_FOUND = 1456; + +/// Invalid keyboard layout handle. +pub const INVALID_KEYBOARD_HANDLE = 1457; + +/// Hook type not allowed. +pub const HOOK_TYPE_NOT_ALLOWED = 1458; + +/// This operation requires an interactive window station. +pub const REQUIRES_INTERACTIVE_WINDOWSTATION = 1459; + +/// This operation returned because the timeout period expired. +pub const TIMEOUT = 1460; + +/// Invalid monitor handle. +pub const INVALID_MONITOR_HANDLE = 1461; + +/// Incorrect size argument. +pub const INCORRECT_SIZE = 1462; + +/// The symbolic link cannot be followed because its type is disabled. +pub const SYMLINK_CLASS_DISABLED = 1463; + +/// This application does not support the current operation on symbolic links. +pub const SYMLINK_NOT_SUPPORTED = 1464; + +/// Windows was unable to parse the requested XML data. +pub const XML_PARSE_ERROR = 1465; + +/// An error was encountered while processing an XML digital signature. +pub const XMLDSIG_ERROR = 1466; + +/// This application must be restarted. +pub const RESTART_APPLICATION = 1467; + +/// The caller made the connection request in the wrong routing compartment. +pub const WRONG_COMPARTMENT = 1468; + +/// There was an AuthIP failure when attempting to connect to the remote host. +pub const AUTHIP_FAILURE = 1469; + +/// Insufficient NVRAM resources exist to complete the requested service. A reboot might be required. +pub const NO_NVRAM_RESOURCES = 1470; + +/// Unable to finish the requested operation because the specified process is not a GUI process. +pub const NOT_GUI_PROCESS = 1471; + +/// The event log file is corrupted. +pub const EVENTLOG_FILE_CORRUPT = 1500; + +/// No event log file could be opened, so the event logging service did not start. +pub const EVENTLOG_CANT_START = 1501; + +/// The event log file is full. +pub const LOG_FILE_FULL = 1502; + +/// The event log file has changed between read operations. +pub const EVENTLOG_FILE_CHANGED = 1503; + +/// The specified task name is invalid. +pub const INVALID_TASK_NAME = 1550; + +/// The specified task index is invalid. +pub const INVALID_TASK_INDEX = 1551; + +/// The specified thread is already joining a task. +pub const THREAD_ALREADY_IN_TASK = 1552; + +/// The Windows Installer Service could not be accessed. This can occur if the Windows Installer is not correctly installed. Contact your support personnel for assistance. +pub const INSTALL_SERVICE_FAILURE = 1601; + +/// User cancelled installation. +pub const INSTALL_USEREXIT = 1602; + +/// Fatal error during installation. +pub const INSTALL_FAILURE = 1603; + +/// Installation suspended, incomplete. +pub const INSTALL_SUSPEND = 1604; + +/// This action is only valid for products that are currently installed. +pub const UNKNOWN_PRODUCT = 1605; + +/// Feature ID not registered. +pub const UNKNOWN_FEATURE = 1606; + +/// Component ID not registered. +pub const UNKNOWN_COMPONENT = 1607; + +/// Unknown property. +pub const UNKNOWN_PROPERTY = 1608; + +/// Handle is in an invalid state. +pub const INVALID_HANDLE_STATE = 1609; + +/// The configuration data for this product is corrupt. Contact your support personnel. +pub const BAD_CONFIGURATION = 1610; + +/// Component qualifier not present. +pub const INDEX_ABSENT = 1611; + +/// The installation source for this product is not available. Verify that the source exists and that you can access it. +pub const INSTALL_SOURCE_ABSENT = 1612; + +/// This installation package cannot be installed by the Windows Installer service. You must install a Windows service pack that contains a newer version of the Windows Installer service. +pub const INSTALL_PACKAGE_VERSION = 1613; + +/// Product is uninstalled. +pub const PRODUCT_UNINSTALLED = 1614; + +/// SQL query syntax invalid or unsupported. +pub const BAD_QUERY_SYNTAX = 1615; + +/// Record field does not exist. +pub const INVALID_FIELD = 1616; + +/// The device has been removed. +pub const DEVICE_REMOVED = 1617; + +/// Another installation is already in progress. Complete that installation before proceeding with this install. +pub const INSTALL_ALREADY_RUNNING = 1618; + +/// This installation package could not be opened. Verify that the package exists and that you can access it, or contact the application vendor to verify that this is a valid Windows Installer package. +pub const INSTALL_PACKAGE_OPEN_FAILED = 1619; + +/// This installation package could not be opened. Contact the application vendor to verify that this is a valid Windows Installer package. +pub const INSTALL_PACKAGE_INVALID = 1620; + +/// There was an error starting the Windows Installer service user interface. Contact your support personnel. +pub const INSTALL_UI_FAILURE = 1621; + +/// Error opening installation log file. Verify that the specified log file location exists and that you can write to it. +pub const INSTALL_LOG_FAILURE = 1622; + +/// The language of this installation package is not supported by your system. +pub const INSTALL_LANGUAGE_UNSUPPORTED = 1623; + +/// Error applying transforms. Verify that the specified transform paths are valid. +pub const INSTALL_TRANSFORM_FAILURE = 1624; + +/// This installation is forbidden by system policy. Contact your system administrator. +pub const INSTALL_PACKAGE_REJECTED = 1625; + +/// Function could not be executed. +pub const FUNCTION_NOT_CALLED = 1626; + +/// Function failed during execution. +pub const FUNCTION_FAILED = 1627; + +/// Invalid or unknown table specified. +pub const INVALID_TABLE = 1628; + +/// Data supplied is of wrong type. +pub const DATATYPE_MISMATCH = 1629; + +/// Data of this type is not supported. +pub const UNSUPPORTED_TYPE = 1630; + +/// The Windows Installer service failed to start. Contact your support personnel. +pub const CREATE_FAILED = 1631; + +/// The Temp folder is on a drive that is full or is inaccessible. Free up space on the drive or verify that you have write permission on the Temp folder. +pub const INSTALL_TEMP_UNWRITABLE = 1632; + +/// This installation package is not supported by this processor type. Contact your product vendor. +pub const INSTALL_PLATFORM_UNSUPPORTED = 1633; + +/// Component not used on this computer. +pub const INSTALL_NOTUSED = 1634; + +/// This update package could not be opened. Verify that the update package exists and that you can access it, or contact the application vendor to verify that this is a valid Windows Installer update package. +pub const PATCH_PACKAGE_OPEN_FAILED = 1635; + +/// This update package could not be opened. Contact the application vendor to verify that this is a valid Windows Installer update package. +pub const PATCH_PACKAGE_INVALID = 1636; + +/// This update package cannot be processed by the Windows Installer service. You must install a Windows service pack that contains a newer version of the Windows Installer service. +pub const PATCH_PACKAGE_UNSUPPORTED = 1637; + +/// Another version of this product is already installed. Installation of this version cannot continue. To configure or remove the existing version of this product, use Add/Remove Programs on the Control Panel. +pub const PRODUCT_VERSION = 1638; + +/// Invalid command line argument. Consult the Windows Installer SDK for detailed command line help. +pub const INVALID_COMMAND_LINE = 1639; + +/// Only administrators have permission to add, remove, or configure server software during a Terminal services remote session. If you want to install or configure software on the server, contact your network administrator. +pub const INSTALL_REMOTE_DISALLOWED = 1640; + +/// The requested operation completed successfully. The system will be restarted so the changes can take effect. +pub const SUCCESS_REBOOT_INITIATED = 1641; + +/// The upgrade cannot be installed by the Windows Installer service because the program to be upgraded may be missing, or the upgrade may update a different version of the program. Verify that the program to be upgraded exists on your computer and that you have the correct upgrade. +pub const PATCH_TARGET_NOT_FOUND = 1642; + +/// The update package is not permitted by software restriction policy. +pub const PATCH_PACKAGE_REJECTED = 1643; + +/// One or more customizations are not permitted by software restriction policy. +pub const INSTALL_TRANSFORM_REJECTED = 1644; + +/// The Windows Installer does not permit installation from a Remote Desktop Connection. +pub const INSTALL_REMOTE_PROHIBITED = 1645; + +/// Uninstallation of the update package is not supported. +pub const PATCH_REMOVAL_UNSUPPORTED = 1646; + +/// The update is not applied to this product. +pub const UNKNOWN_PATCH = 1647; + +/// No valid sequence could be found for the set of updates. +pub const PATCH_NO_SEQUENCE = 1648; + +/// Update removal was disallowed by policy. +pub const PATCH_REMOVAL_DISALLOWED = 1649; + +/// The XML update data is invalid. +pub const INVALID_PATCH_XML = 1650; + +/// Windows Installer does not permit updating of managed advertised products. At least one feature of the product must be installed before applying the update. +pub const PATCH_MANAGED_ADVERTISED_PRODUCT = 1651; + +/// The Windows Installer service is not accessible in Safe Mode. Please try again when your computer is not in Safe Mode or you can use System Restore to return your machine to a previous good state. +pub const INSTALL_SERVICE_SAFEBOOT = 1652; + +/// A fail fast exception occurred. Exception handlers will not be invoked and the process will be terminated immediately. +pub const FAIL_FAST_EXCEPTION = 1653; + +/// The app that you are trying to run is not supported on this version of Windows. +pub const INSTALL_REJECTED = 1654; + +/// The string binding is invalid. +pub const RPC_S_INVALID_STRING_BINDING = 1700; + +/// The binding handle is not the correct type. +pub const RPC_S_WRONG_KIND_OF_BINDING = 1701; + +/// The binding handle is invalid. +pub const RPC_S_INVALID_BINDING = 1702; + +/// The RPC protocol sequence is not supported. +pub const RPC_S_PROTSEQ_NOT_SUPPORTED = 1703; + +/// The RPC protocol sequence is invalid. +pub const RPC_S_INVALID_RPC_PROTSEQ = 1704; + +/// The string universal unique identifier (UUID) is invalid. +pub const RPC_S_INVALID_STRING_UUID = 1705; + +/// The endpoint format is invalid. +pub const RPC_S_INVALID_ENDPOINT_FORMAT = 1706; + +/// The network address is invalid. +pub const RPC_S_INVALID_NET_ADDR = 1707; + +/// No endpoint was found. +pub const RPC_S_NO_ENDPOINT_FOUND = 1708; + +/// The timeout value is invalid. +pub const RPC_S_INVALID_TIMEOUT = 1709; + +/// The object universal unique identifier (UUID) was not found. +pub const RPC_S_OBJECT_NOT_FOUND = 1710; + +/// The object universal unique identifier (UUID) has already been registered. +pub const RPC_S_ALREADY_REGISTERED = 1711; + +/// The type universal unique identifier (UUID) has already been registered. +pub const RPC_S_TYPE_ALREADY_REGISTERED = 1712; + +/// The RPC server is already listening. +pub const RPC_S_ALREADY_LISTENING = 1713; + +/// No protocol sequences have been registered. +pub const RPC_S_NO_PROTSEQS_REGISTERED = 1714; + +/// The RPC server is not listening. +pub const RPC_S_NOT_LISTENING = 1715; + +/// The manager type is unknown. +pub const RPC_S_UNKNOWN_MGR_TYPE = 1716; + +/// The interface is unknown. +pub const RPC_S_UNKNOWN_IF = 1717; + +/// There are no bindings. +pub const RPC_S_NO_BINDINGS = 1718; + +/// There are no protocol sequences. +pub const RPC_S_NO_PROTSEQS = 1719; + +/// The endpoint cannot be created. +pub const RPC_S_CANT_CREATE_ENDPOINT = 1720; + +/// Not enough resources are available to complete this operation. +pub const RPC_S_OUT_OF_RESOURCES = 1721; + +/// The RPC server is unavailable. +pub const RPC_S_SERVER_UNAVAILABLE = 1722; + +/// The RPC server is too busy to complete this operation. +pub const RPC_S_SERVER_TOO_BUSY = 1723; + +/// The network options are invalid. +pub const RPC_S_INVALID_NETWORK_OPTIONS = 1724; + +/// There are no remote procedure calls active on this thread. +pub const RPC_S_NO_CALL_ACTIVE = 1725; + +/// The remote procedure call failed. +pub const RPC_S_CALL_FAILED = 1726; + +/// The remote procedure call failed and did not execute. +pub const RPC_S_CALL_FAILED_DNE = 1727; + +/// A remote procedure call (RPC) protocol error occurred. +pub const RPC_S_PROTOCOL_ERROR = 1728; + +/// Access to the HTTP proxy is denied. +pub const RPC_S_PROXY_ACCESS_DENIED = 1729; + +/// The transfer syntax is not supported by the RPC server. +pub const RPC_S_UNSUPPORTED_TRANS_SYN = 1730; + +/// The universal unique identifier (UUID) type is not supported. +pub const RPC_S_UNSUPPORTED_TYPE = 1732; + +/// The tag is invalid. +pub const RPC_S_INVALID_TAG = 1733; + +/// The array bounds are invalid. +pub const RPC_S_INVALID_BOUND = 1734; + +/// The binding does not contain an entry name. +pub const RPC_S_NO_ENTRY_NAME = 1735; + +/// The name syntax is invalid. +pub const RPC_S_INVALID_NAME_SYNTAX = 1736; + +/// The name syntax is not supported. +pub const RPC_S_UNSUPPORTED_NAME_SYNTAX = 1737; + +/// No network address is available to use to construct a universal unique identifier (UUID). +pub const RPC_S_UUID_NO_ADDRESS = 1739; + +/// The endpoint is a duplicate. +pub const RPC_S_DUPLICATE_ENDPOINT = 1740; + +/// The authentication type is unknown. +pub const RPC_S_UNKNOWN_AUTHN_TYPE = 1741; + +/// The maximum number of calls is too small. +pub const RPC_S_MAX_CALLS_TOO_SMALL = 1742; + +/// The string is too long. +pub const RPC_S_STRING_TOO_LONG = 1743; + +/// The RPC protocol sequence was not found. +pub const RPC_S_PROTSEQ_NOT_FOUND = 1744; + +/// The procedure number is out of range. +pub const RPC_S_PROCNUM_OUT_OF_RANGE = 1745; + +/// The binding does not contain any authentication information. +pub const RPC_S_BINDING_HAS_NO_AUTH = 1746; + +/// The authentication service is unknown. +pub const RPC_S_UNKNOWN_AUTHN_SERVICE = 1747; + +/// The authentication level is unknown. +pub const RPC_S_UNKNOWN_AUTHN_LEVEL = 1748; + +/// The security context is invalid. +pub const RPC_S_INVALID_AUTH_IDENTITY = 1749; + +/// The authorization service is unknown. +pub const RPC_S_UNKNOWN_AUTHZ_SERVICE = 1750; + +/// The entry is invalid. +pub const EPT_S_INVALID_ENTRY = 1751; + +/// The server endpoint cannot perform the operation. +pub const EPT_S_CANT_PERFORM_OP = 1752; + +/// There are no more endpoints available from the endpoint mapper. +pub const EPT_S_NOT_REGISTERED = 1753; + +/// No interfaces have been exported. +pub const RPC_S_NOTHING_TO_EXPORT = 1754; + +/// The entry name is incomplete. +pub const RPC_S_INCOMPLETE_NAME = 1755; + +/// The version option is invalid. +pub const RPC_S_INVALID_VERS_OPTION = 1756; + +/// There are no more members. +pub const RPC_S_NO_MORE_MEMBERS = 1757; + +/// There is nothing to unexport. +pub const RPC_S_NOT_ALL_OBJS_UNEXPORTED = 1758; + +/// The interface was not found. +pub const RPC_S_INTERFACE_NOT_FOUND = 1759; + +/// The entry already exists. +pub const RPC_S_ENTRY_ALREADY_EXISTS = 1760; + +/// The entry is not found. +pub const RPC_S_ENTRY_NOT_FOUND = 1761; + +/// The name service is unavailable. +pub const RPC_S_NAME_SERVICE_UNAVAILABLE = 1762; + +/// The network address family is invalid. +pub const RPC_S_INVALID_NAF_ID = 1763; + +/// The requested operation is not supported. +pub const RPC_S_CANNOT_SUPPORT = 1764; + +/// No security context is available to allow impersonation. +pub const RPC_S_NO_CONTEXT_AVAILABLE = 1765; + +/// An internal error occurred in a remote procedure call (RPC). +pub const RPC_S_INTERNAL_ERROR = 1766; + +/// The RPC server attempted an integer division by zero. +pub const RPC_S_ZERO_DIVIDE = 1767; + +/// An addressing error occurred in the RPC server. +pub const RPC_S_ADDRESS_ERROR = 1768; + +/// A floating-point operation at the RPC server caused a division by zero. +pub const RPC_S_FP_DIV_ZERO = 1769; + +/// A floating-point underflow occurred at the RPC server. +pub const RPC_S_FP_UNDERFLOW = 1770; + +/// A floating-point overflow occurred at the RPC server. +pub const RPC_S_FP_OVERFLOW = 1771; + +/// The list of RPC servers available for the binding of auto handles has been exhausted. +pub const RPC_X_NO_MORE_ENTRIES = 1772; + +/// Unable to open the character translation table file. +pub const RPC_X_SS_CHAR_TRANS_OPEN_FAIL = 1773; + +/// The file containing the character translation table has fewer than 512 bytes. +pub const RPC_X_SS_CHAR_TRANS_SHORT_FILE = 1774; + +/// A null context handle was passed from the client to the host during a remote procedure call. +pub const RPC_X_SS_IN_NULL_CONTEXT = 1775; + +/// The context handle changed during a remote procedure call. +pub const RPC_X_SS_CONTEXT_DAMAGED = 1777; + +/// The binding handles passed to a remote procedure call do not match. +pub const RPC_X_SS_HANDLES_MISMATCH = 1778; + +/// The stub is unable to get the remote procedure call handle. +pub const RPC_X_SS_CANNOT_GET_CALL_HANDLE = 1779; + +/// A null reference pointer was passed to the stub. +pub const RPC_X_NULL_REF_POINTER = 1780; + +/// The enumeration value is out of range. +pub const RPC_X_ENUM_VALUE_OUT_OF_RANGE = 1781; + +/// The byte count is too small. +pub const RPC_X_BYTE_COUNT_TOO_SMALL = 1782; + +/// The stub received bad data. +pub const RPC_X_BAD_STUB_DATA = 1783; + +/// The supplied user buffer is not valid for the requested operation. +pub const INVALID_USER_BUFFER = 1784; + +/// The disk media is not recognized. It may not be formatted. +pub const UNRECOGNIZED_MEDIA = 1785; + +/// The workstation does not have a trust secret. +pub const NO_TRUST_LSA_SECRET = 1786; + +/// The security database on the server does not have a computer account for this workstation trust relationship. +pub const NO_TRUST_SAM_ACCOUNT = 1787; + +/// The trust relationship between the primary domain and the trusted domain failed. +pub const TRUSTED_DOMAIN_FAILURE = 1788; + +/// The trust relationship between this workstation and the primary domain failed. +pub const TRUSTED_RELATIONSHIP_FAILURE = 1789; + +/// The network logon failed. +pub const TRUST_FAILURE = 1790; + +/// A remote procedure call is already in progress for this thread. +pub const RPC_S_CALL_IN_PROGRESS = 1791; + +/// An attempt was made to logon, but the network logon service was not started. +pub const NETLOGON_NOT_STARTED = 1792; + +/// The user's account has expired. +pub const ACCOUNT_EXPIRED = 1793; + +/// The redirector is in use and cannot be unloaded. +pub const REDIRECTOR_HAS_OPEN_HANDLES = 1794; + +/// The specified printer driver is already installed. +pub const PRINTER_DRIVER_ALREADY_INSTALLED = 1795; + +/// The specified port is unknown. +pub const UNKNOWN_PORT = 1796; + +/// The printer driver is unknown. +pub const UNKNOWN_PRINTER_DRIVER = 1797; + +/// The print processor is unknown. +pub const UNKNOWN_PRINTPROCESSOR = 1798; + +/// The specified separator file is invalid. +pub const INVALID_SEPARATOR_FILE = 1799; + +/// The specified priority is invalid. +pub const INVALID_PRIORITY = 1800; + +/// The printer name is invalid. +pub const INVALID_PRINTER_NAME = 1801; + +/// The printer already exists. +pub const PRINTER_ALREADY_EXISTS = 1802; + +/// The printer command is invalid. +pub const INVALID_PRINTER_COMMAND = 1803; + +/// The specified datatype is invalid. +pub const INVALID_DATATYPE = 1804; + +/// The environment specified is invalid. +pub const INVALID_ENVIRONMENT = 1805; + +/// There are no more bindings. +pub const RPC_S_NO_MORE_BINDINGS = 1806; + +/// The account used is an interdomain trust account. Use your global user account or local user account to access this server. +pub const NOLOGON_INTERDOMAIN_TRUST_ACCOUNT = 1807; + +/// The account used is a computer account. Use your global user account or local user account to access this server. +pub const NOLOGON_WORKSTATION_TRUST_ACCOUNT = 1808; + +/// The account used is a server trust account. Use your global user account or local user account to access this server. +pub const NOLOGON_SERVER_TRUST_ACCOUNT = 1809; + +/// The name or security ID (SID) of the domain specified is inconsistent with the trust information for that domain. +pub const DOMAIN_TRUST_INCONSISTENT = 1810; + +/// The server is in use and cannot be unloaded. +pub const SERVER_HAS_OPEN_HANDLES = 1811; + +/// The specified image file did not contain a resource section. +pub const RESOURCE_DATA_NOT_FOUND = 1812; + +/// The specified resource type cannot be found in the image file. +pub const RESOURCE_TYPE_NOT_FOUND = 1813; + +/// The specified resource name cannot be found in the image file. +pub const RESOURCE_NAME_NOT_FOUND = 1814; + +/// The specified resource language ID cannot be found in the image file. +pub const RESOURCE_LANG_NOT_FOUND = 1815; + +/// Not enough quota is available to process this command. +pub const NOT_ENOUGH_QUOTA = 1816; + +/// No interfaces have been registered. +pub const RPC_S_NO_INTERFACES = 1817; + +/// The remote procedure call was cancelled. +pub const RPC_S_CALL_CANCELLED = 1818; + +/// The binding handle does not contain all required information. +pub const RPC_S_BINDING_INCOMPLETE = 1819; + +/// A communications failure occurred during a remote procedure call. +pub const RPC_S_COMM_FAILURE = 1820; + +/// The requested authentication level is not supported. +pub const RPC_S_UNSUPPORTED_AUTHN_LEVEL = 1821; + +/// No principal name registered. +pub const RPC_S_NO_PRINC_NAME = 1822; + +/// The error specified is not a valid Windows RPC error code. +pub const RPC_S_NOT_RPC_ERROR = 1823; + +/// A UUID that is valid only on this computer has been allocated. +pub const RPC_S_UUID_LOCAL_ONLY = 1824; + +/// A security package specific error occurred. +pub const RPC_S_SEC_PKG_ERROR = 1825; + +/// Thread is not canceled. +pub const RPC_S_NOT_CANCELLED = 1826; + +/// Invalid operation on the encoding/decoding handle. +pub const RPC_X_INVALID_ES_ACTION = 1827; + +/// Incompatible version of the serializing package. +pub const RPC_X_WRONG_ES_VERSION = 1828; + +/// Incompatible version of the RPC stub. +pub const RPC_X_WRONG_STUB_VERSION = 1829; + +/// The RPC pipe object is invalid or corrupted. +pub const RPC_X_INVALID_PIPE_OBJECT = 1830; + +/// An invalid operation was attempted on an RPC pipe object. +pub const RPC_X_WRONG_PIPE_ORDER = 1831; + +/// Unsupported RPC pipe version. +pub const RPC_X_WRONG_PIPE_VERSION = 1832; + +/// HTTP proxy server rejected the connection because the cookie authentication failed. +pub const RPC_S_COOKIE_AUTH_FAILED = 1833; + +/// The group member was not found. +pub const RPC_S_GROUP_MEMBER_NOT_FOUND = 1898; + +/// The endpoint mapper database entry could not be created. +pub const EPT_S_CANT_CREATE = 1899; + +/// The object universal unique identifier (UUID) is the nil UUID. +pub const RPC_S_INVALID_OBJECT = 1900; + +/// The specified time is invalid. +pub const INVALID_TIME = 1901; + +/// The specified form name is invalid. +pub const INVALID_FORM_NAME = 1902; + +/// The specified form size is invalid. +pub const INVALID_FORM_SIZE = 1903; + +/// The specified printer handle is already being waited on. +pub const ALREADY_WAITING = 1904; + +/// The specified printer has been deleted. +pub const PRINTER_DELETED = 1905; + +/// The state of the printer is invalid. +pub const INVALID_PRINTER_STATE = 1906; + +/// The user's password must be changed before signing in. +pub const PASSWORD_MUST_CHANGE = 1907; + +/// Could not find the domain controller for this domain. +pub const DOMAIN_CONTROLLER_NOT_FOUND = 1908; + +/// The referenced account is currently locked out and may not be logged on to. +pub const ACCOUNT_LOCKED_OUT = 1909; + +/// The object exporter specified was not found. +pub const OR_INVALID_OXID = 1910; + +/// The object specified was not found. +pub const OR_INVALID_OID = 1911; + +/// The object resolver set specified was not found. +pub const OR_INVALID_SET = 1912; + +/// Some data remains to be sent in the request buffer. +pub const RPC_S_SEND_INCOMPLETE = 1913; + +/// Invalid asynchronous remote procedure call handle. +pub const RPC_S_INVALID_ASYNC_HANDLE = 1914; + +/// Invalid asynchronous RPC call handle for this operation. +pub const RPC_S_INVALID_ASYNC_CALL = 1915; + +/// The RPC pipe object has already been closed. +pub const RPC_X_PIPE_CLOSED = 1916; + +/// The RPC call completed before all pipes were processed. +pub const RPC_X_PIPE_DISCIPLINE_ERROR = 1917; + +/// No more data is available from the RPC pipe. +pub const RPC_X_PIPE_EMPTY = 1918; + +/// No site name is available for this machine. +pub const NO_SITENAME = 1919; + +/// The file cannot be accessed by the system. +pub const CANT_ACCESS_FILE = 1920; + +/// The name of the file cannot be resolved by the system. +pub const CANT_RESOLVE_FILENAME = 1921; + +/// The entry is not of the expected type. +pub const RPC_S_ENTRY_TYPE_MISMATCH = 1922; + +/// Not all object UUIDs could be exported to the specified entry. +pub const RPC_S_NOT_ALL_OBJS_EXPORTED = 1923; + +/// Interface could not be exported to the specified entry. +pub const RPC_S_INTERFACE_NOT_EXPORTED = 1924; + +/// The specified profile entry could not be added. +pub const RPC_S_PROFILE_NOT_ADDED = 1925; + +/// The specified profile element could not be added. +pub const RPC_S_PRF_ELT_NOT_ADDED = 1926; + +/// The specified profile element could not be removed. +pub const RPC_S_PRF_ELT_NOT_REMOVED = 1927; + +/// The group element could not be added. +pub const RPC_S_GRP_ELT_NOT_ADDED = 1928; + +/// The group element could not be removed. +pub const RPC_S_GRP_ELT_NOT_REMOVED = 1929; + +/// The printer driver is not compatible with a policy enabled on your computer that blocks NT 4.0 drivers. +pub const KM_DRIVER_BLOCKED = 1930; + +/// The context has expired and can no longer be used. +pub const CONTEXT_EXPIRED = 1931; + +/// The current user's delegated trust creation quota has been exceeded. +pub const PER_USER_TRUST_QUOTA_EXCEEDED = 1932; + +/// The total delegated trust creation quota has been exceeded. +pub const ALL_USER_TRUST_QUOTA_EXCEEDED = 1933; + +/// The current user's delegated trust deletion quota has been exceeded. +pub const USER_DELETE_TRUST_QUOTA_EXCEEDED = 1934; + +/// The computer you are signing into is protected by an authentication firewall. The specified account is not allowed to authenticate to the computer. +pub const AUTHENTICATION_FIREWALL_FAILED = 1935; + +/// Remote connections to the Print Spooler are blocked by a policy set on your machine. +pub const REMOTE_PRINT_CONNECTIONS_BLOCKED = 1936; + +/// Authentication failed because NTLM authentication has been disabled. +pub const NTLM_BLOCKED = 1937; + +/// Logon Failure: EAS policy requires that the user change their password before this operation can be performed. +pub const PASSWORD_CHANGE_REQUIRED = 1938; + +/// The pixel format is invalid. +pub const INVALID_PIXEL_FORMAT = 2000; + +/// The specified driver is invalid. +pub const BAD_DRIVER = 2001; + +/// The window style or class attribute is invalid for this operation. +pub const INVALID_WINDOW_STYLE = 2002; + +/// The requested metafile operation is not supported. +pub const METAFILE_NOT_SUPPORTED = 2003; + +/// The requested transformation operation is not supported. +pub const TRANSFORM_NOT_SUPPORTED = 2004; + +/// The requested clipping operation is not supported. +pub const CLIPPING_NOT_SUPPORTED = 2005; + +/// The specified color management module is invalid. +pub const INVALID_CMM = 2010; + +/// The specified color profile is invalid. +pub const INVALID_PROFILE = 2011; + +/// The specified tag was not found. +pub const TAG_NOT_FOUND = 2012; + +/// A required tag is not present. +pub const TAG_NOT_PRESENT = 2013; + +/// The specified tag is already present. +pub const DUPLICATE_TAG = 2014; + +/// The specified color profile is not associated with the specified device. +pub const PROFILE_NOT_ASSOCIATED_WITH_DEVICE = 2015; + +/// The specified color profile was not found. +pub const PROFILE_NOT_FOUND = 2016; + +/// The specified color space is invalid. +pub const INVALID_COLORSPACE = 2017; + +/// Image Color Management is not enabled. +pub const ICM_NOT_ENABLED = 2018; + +/// There was an error while deleting the color transform. +pub const DELETING_ICM_XFORM = 2019; + +/// The specified color transform is invalid. +pub const INVALID_TRANSFORM = 2020; + +/// The specified transform does not match the bitmap's color space. +pub const COLORSPACE_MISMATCH = 2021; + +/// The specified named color index is not present in the profile. +pub const INVALID_COLORINDEX = 2022; + +/// The specified profile is intended for a device of a different type than the specified device. +pub const PROFILE_DOES_NOT_MATCH_DEVICE = 2023; + +/// The network connection was made successfully, but the user had to be prompted for a password other than the one originally specified. +pub const CONNECTED_OTHER_PASSWORD = 2108; + +/// The network connection was made successfully using default credentials. +pub const CONNECTED_OTHER_PASSWORD_DEFAULT = 2109; + +/// The specified username is invalid. +pub const BAD_USERNAME = 2202; + +/// This network connection does not exist. +pub const NOT_CONNECTED = 2250; + +/// This network connection has files open or requests pending. +pub const OPEN_FILES = 2401; + +/// Active connections still exist. +pub const ACTIVE_CONNECTIONS = 2402; + +/// The device is in use by an active process and cannot be disconnected. +pub const DEVICE_IN_USE = 2404; + +/// The specified print monitor is unknown. +pub const UNKNOWN_PRINT_MONITOR = 3000; + +/// The specified printer driver is currently in use. +pub const PRINTER_DRIVER_IN_USE = 3001; + +/// The spool file was not found. +pub const SPOOL_FILE_NOT_FOUND = 3002; + +/// A StartDocPrinter call was not issued. +pub const SPL_NO_STARTDOC = 3003; + +/// An AddJob call was not issued. +pub const SPL_NO_ADDJOB = 3004; + +/// The specified print processor has already been installed. +pub const PRINT_PROCESSOR_ALREADY_INSTALLED = 3005; + +/// The specified print monitor has already been installed. +pub const PRINT_MONITOR_ALREADY_INSTALLED = 3006; + +/// The specified print monitor does not have the required functions. +pub const INVALID_PRINT_MONITOR = 3007; + +/// The specified print monitor is currently in use. +pub const PRINT_MONITOR_IN_USE = 3008; + +/// The requested operation is not allowed when there are jobs queued to the printer. +pub const PRINTER_HAS_JOBS_QUEUED = 3009; + +/// The requested operation is successful. Changes will not be effective until the system is rebooted. +pub const SUCCESS_REBOOT_REQUIRED = 3010; + +/// The requested operation is successful. Changes will not be effective until the service is restarted. +pub const SUCCESS_RESTART_REQUIRED = 3011; + +/// No printers were found. +pub const PRINTER_NOT_FOUND = 3012; + +/// The printer driver is known to be unreliable. +pub const PRINTER_DRIVER_WARNED = 3013; + +/// The printer driver is known to harm the system. +pub const PRINTER_DRIVER_BLOCKED = 3014; + +/// The specified printer driver package is currently in use. +pub const PRINTER_DRIVER_PACKAGE_IN_USE = 3015; + +/// Unable to find a core driver package that is required by the printer driver package. +pub const CORE_DRIVER_PACKAGE_NOT_FOUND = 3016; + +/// The requested operation failed. A system reboot is required to roll back changes made. +pub const FAIL_REBOOT_REQUIRED = 3017; + +/// The requested operation failed. A system reboot has been initiated to roll back changes made. +pub const FAIL_REBOOT_INITIATED = 3018; + +/// The specified printer driver was not found on the system and needs to be downloaded. +pub const PRINTER_DRIVER_DOWNLOAD_NEEDED = 3019; + +/// The requested print job has failed to print. A print system update requires the job to be resubmitted. +pub const PRINT_JOB_RESTART_REQUIRED = 3020; + +/// The printer driver does not contain a valid manifest, or contains too many manifests. +pub const INVALID_PRINTER_DRIVER_MANIFEST = 3021; + +/// The specified printer cannot be shared. +pub const PRINTER_NOT_SHAREABLE = 3022; + +/// The operation was paused. +pub const REQUEST_PAUSED = 3050; + +/// Reissue the given operation as a cached IO operation. +pub const IO_REISSUE_AS_CACHED = 3950; diff --git a/lib/std/os/windows/kernel32.zig b/lib/std/os/windows/kernel32.zig new file mode 100644 index 0000000000..2ae73ad45a --- /dev/null +++ b/lib/std/os/windows/kernel32.zig @@ -0,0 +1,214 @@ +usingnamespace @import("bits.zig"); + +pub extern "kernel32" stdcallcc fn AddVectoredExceptionHandler(First: c_ulong, Handler: ?VECTORED_EXCEPTION_HANDLER) ?*c_void; +pub extern "kernel32" stdcallcc fn RemoveVectoredExceptionHandler(Handle: HANDLE) c_ulong; + +pub extern "kernel32" stdcallcc fn CancelIoEx(hFile: HANDLE, lpOverlapped: LPOVERLAPPED) BOOL; + +pub extern "kernel32" stdcallcc fn CloseHandle(hObject: HANDLE) BOOL; + +pub extern "kernel32" stdcallcc fn CreateDirectoryW(lpPathName: [*]const u16, lpSecurityAttributes: ?*SECURITY_ATTRIBUTES) BOOL; + +pub extern "kernel32" stdcallcc fn CreateFileW( + lpFileName: [*]const u16, // TODO null terminated pointer type + dwDesiredAccess: DWORD, + dwShareMode: DWORD, + lpSecurityAttributes: ?LPSECURITY_ATTRIBUTES, + dwCreationDisposition: DWORD, + dwFlagsAndAttributes: DWORD, + hTemplateFile: ?HANDLE, +) HANDLE; + +pub extern "kernel32" stdcallcc fn CreatePipe( + hReadPipe: *HANDLE, + hWritePipe: *HANDLE, + lpPipeAttributes: *const SECURITY_ATTRIBUTES, + nSize: DWORD, +) BOOL; + +pub extern "kernel32" stdcallcc fn CreateProcessW( + lpApplicationName: ?LPWSTR, + lpCommandLine: LPWSTR, + lpProcessAttributes: ?*SECURITY_ATTRIBUTES, + lpThreadAttributes: ?*SECURITY_ATTRIBUTES, + bInheritHandles: BOOL, + dwCreationFlags: DWORD, + lpEnvironment: ?*c_void, + lpCurrentDirectory: ?LPWSTR, + lpStartupInfo: *STARTUPINFOW, + lpProcessInformation: *PROCESS_INFORMATION, +) BOOL; + +pub extern "kernel32" stdcallcc fn CreateSymbolicLinkW(lpSymlinkFileName: [*]const u16, lpTargetFileName: [*]const u16, dwFlags: DWORD) BOOLEAN; + +pub extern "kernel32" stdcallcc fn CreateIoCompletionPort(FileHandle: HANDLE, ExistingCompletionPort: ?HANDLE, CompletionKey: ULONG_PTR, NumberOfConcurrentThreads: DWORD) ?HANDLE; + +pub extern "kernel32" stdcallcc fn CreateThread(lpThreadAttributes: ?LPSECURITY_ATTRIBUTES, dwStackSize: SIZE_T, lpStartAddress: LPTHREAD_START_ROUTINE, lpParameter: ?LPVOID, dwCreationFlags: DWORD, lpThreadId: ?LPDWORD) ?HANDLE; + +pub extern "kernel32" stdcallcc fn DeleteFileW(lpFileName: [*]const u16) BOOL; + +pub extern "kernel32" stdcallcc fn ExitProcess(exit_code: UINT) noreturn; + +pub extern "kernel32" stdcallcc fn FindFirstFileW(lpFileName: [*]const u16, lpFindFileData: *WIN32_FIND_DATAW) HANDLE; +pub extern "kernel32" stdcallcc fn FindClose(hFindFile: HANDLE) BOOL; +pub extern "kernel32" stdcallcc fn FindNextFileW(hFindFile: HANDLE, lpFindFileData: *WIN32_FIND_DATAW) BOOL; + +pub extern "kernel32" stdcallcc fn FormatMessageW(dwFlags: DWORD, lpSource: ?LPVOID, dwMessageId: DWORD, dwLanguageId: DWORD, lpBuffer: LPWSTR, nSize: DWORD, Arguments: ?*va_list) DWORD; + +pub extern "kernel32" stdcallcc fn FreeEnvironmentStringsW(penv: [*]u16) BOOL; + +pub extern "kernel32" stdcallcc fn GetCommandLineA() LPSTR; + +pub extern "kernel32" stdcallcc fn GetConsoleMode(in_hConsoleHandle: HANDLE, out_lpMode: *DWORD) BOOL; + +pub extern "kernel32" stdcallcc fn GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: *CONSOLE_SCREEN_BUFFER_INFO) BOOL; + +pub extern "kernel32" stdcallcc fn GetCurrentDirectoryW(nBufferLength: DWORD, lpBuffer: ?[*]WCHAR) DWORD; + +pub extern "kernel32" stdcallcc fn GetCurrentThread() HANDLE; +pub extern "kernel32" stdcallcc fn GetCurrentThreadId() DWORD; + +pub extern "kernel32" stdcallcc fn GetEnvironmentStringsW() ?[*]u16; + +pub extern "kernel32" stdcallcc fn GetEnvironmentVariableW(lpName: LPWSTR, lpBuffer: LPWSTR, nSize: DWORD) DWORD; + +pub extern "kernel32" stdcallcc fn GetExitCodeProcess(hProcess: HANDLE, lpExitCode: *DWORD) BOOL; + +pub extern "kernel32" stdcallcc fn GetFileSizeEx(hFile: HANDLE, lpFileSize: *LARGE_INTEGER) BOOL; + +pub extern "kernel32" stdcallcc fn GetFileAttributesW(lpFileName: [*]const WCHAR) DWORD; + +pub extern "kernel32" stdcallcc fn GetModuleFileNameW(hModule: ?HMODULE, lpFilename: [*]u16, nSize: DWORD) DWORD; + +pub extern "kernel32" stdcallcc fn GetModuleHandleW(lpModuleName: ?[*]const WCHAR) HMODULE; + +pub extern "kernel32" stdcallcc fn GetLastError() DWORD; + +pub extern "kernel32" stdcallcc fn GetFileInformationByHandle( + hFile: HANDLE, + lpFileInformation: *BY_HANDLE_FILE_INFORMATION, +) BOOL; + +pub extern "kernel32" stdcallcc fn GetFileInformationByHandleEx( + in_hFile: HANDLE, + in_FileInformationClass: FILE_INFO_BY_HANDLE_CLASS, + out_lpFileInformation: *c_void, + in_dwBufferSize: DWORD, +) BOOL; + +pub extern "kernel32" stdcallcc fn GetFinalPathNameByHandleW( + hFile: HANDLE, + lpszFilePath: [*]u16, + cchFilePath: DWORD, + dwFlags: DWORD, +) DWORD; + +pub extern "kernel32" stdcallcc fn GetOverlappedResult(hFile: HANDLE, lpOverlapped: *OVERLAPPED, lpNumberOfBytesTransferred: *DWORD, bWait: BOOL) BOOL; + +pub extern "kernel32" stdcallcc fn GetProcessHeap() ?HANDLE; +pub extern "kernel32" stdcallcc fn GetQueuedCompletionStatus(CompletionPort: HANDLE, lpNumberOfBytesTransferred: LPDWORD, lpCompletionKey: *ULONG_PTR, lpOverlapped: *?*OVERLAPPED, dwMilliseconds: DWORD) BOOL; + +pub extern "kernel32" stdcallcc fn GetSystemInfo(lpSystemInfo: *SYSTEM_INFO) void; +pub extern "kernel32" stdcallcc fn GetSystemTimeAsFileTime(*FILETIME) void; + +pub extern "kernel32" stdcallcc fn HeapCreate(flOptions: DWORD, dwInitialSize: SIZE_T, dwMaximumSize: SIZE_T) ?HANDLE; +pub extern "kernel32" stdcallcc fn HeapDestroy(hHeap: HANDLE) BOOL; +pub extern "kernel32" stdcallcc fn HeapReAlloc(hHeap: HANDLE, dwFlags: DWORD, lpMem: *c_void, dwBytes: SIZE_T) ?*c_void; +pub extern "kernel32" stdcallcc fn HeapSize(hHeap: HANDLE, dwFlags: DWORD, lpMem: *const c_void) SIZE_T; +pub extern "kernel32" stdcallcc fn HeapCompact(hHeap: HANDLE, dwFlags: DWORD) SIZE_T; +pub extern "kernel32" stdcallcc fn HeapSummary(hHeap: HANDLE, dwFlags: DWORD, lpSummary: LPHEAP_SUMMARY) BOOL; + +pub extern "kernel32" stdcallcc fn GetStdHandle(in_nStdHandle: DWORD) ?HANDLE; + +pub extern "kernel32" stdcallcc fn HeapAlloc(hHeap: HANDLE, dwFlags: DWORD, dwBytes: SIZE_T) ?*c_void; + +pub extern "kernel32" stdcallcc fn HeapFree(hHeap: HANDLE, dwFlags: DWORD, lpMem: *c_void) BOOL; + +pub extern "kernel32" stdcallcc fn HeapValidate(hHeap: HANDLE, dwFlags: DWORD, lpMem: ?*const c_void) BOOL; + +pub extern "kernel32" stdcallcc fn VirtualAlloc(lpAddress: ?LPVOID, dwSize: SIZE_T, flAllocationType: DWORD, flProtect: DWORD) ?LPVOID; +pub extern "kernel32" stdcallcc fn VirtualFree(lpAddress: ?LPVOID, dwSize: SIZE_T, dwFreeType: DWORD) BOOL; + +pub extern "kernel32" stdcallcc fn MoveFileExW( + lpExistingFileName: [*]const u16, + lpNewFileName: [*]const u16, + dwFlags: DWORD, +) BOOL; + +pub extern "kernel32" stdcallcc fn PostQueuedCompletionStatus(CompletionPort: HANDLE, dwNumberOfBytesTransferred: DWORD, dwCompletionKey: ULONG_PTR, lpOverlapped: ?*OVERLAPPED) BOOL; + +pub extern "kernel32" stdcallcc fn QueryPerformanceCounter(lpPerformanceCount: *LARGE_INTEGER) BOOL; + +pub extern "kernel32" stdcallcc fn QueryPerformanceFrequency(lpFrequency: *LARGE_INTEGER) BOOL; + +pub extern "kernel32" stdcallcc fn ReadDirectoryChangesW( + hDirectory: HANDLE, + lpBuffer: [*]align(@alignOf(FILE_NOTIFY_INFORMATION)) u8, + nBufferLength: DWORD, + bWatchSubtree: BOOL, + dwNotifyFilter: DWORD, + lpBytesReturned: ?*DWORD, + lpOverlapped: ?*OVERLAPPED, + lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE, +) BOOL; + +pub extern "kernel32" stdcallcc fn ReadFile( + in_hFile: HANDLE, + out_lpBuffer: [*]u8, + in_nNumberOfBytesToRead: DWORD, + out_lpNumberOfBytesRead: ?*DWORD, + in_out_lpOverlapped: ?*OVERLAPPED, +) BOOL; + +pub extern "kernel32" stdcallcc fn RemoveDirectoryW(lpPathName: [*]const u16) BOOL; + +pub extern "kernel32" stdcallcc fn SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) BOOL; + +pub extern "kernel32" stdcallcc fn SetFilePointerEx( + in_fFile: HANDLE, + in_liDistanceToMove: LARGE_INTEGER, + out_opt_ldNewFilePointer: ?*LARGE_INTEGER, + in_dwMoveMethod: DWORD, +) BOOL; + +pub extern "kernel32" stdcallcc fn SetFileTime( + hFile: HANDLE, + lpCreationTime: ?*const FILETIME, + lpLastAccessTime: ?*const FILETIME, + lpLastWriteTime: ?*const FILETIME, +) BOOL; + +pub extern "kernel32" stdcallcc fn SetHandleInformation(hObject: HANDLE, dwMask: DWORD, dwFlags: DWORD) BOOL; + +pub extern "kernel32" stdcallcc fn Sleep(dwMilliseconds: DWORD) void; + +pub extern "kernel32" stdcallcc fn TerminateProcess(hProcess: HANDLE, uExitCode: UINT) BOOL; + +pub extern "kernel32" stdcallcc fn TlsAlloc() DWORD; + +pub extern "kernel32" stdcallcc fn TlsFree(dwTlsIndex: DWORD) BOOL; + +pub extern "kernel32" stdcallcc fn WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: DWORD) DWORD; + +pub extern "kernel32" stdcallcc fn WriteFile( + in_hFile: HANDLE, + in_lpBuffer: [*]const u8, + in_nNumberOfBytesToWrite: DWORD, + out_lpNumberOfBytesWritten: ?*DWORD, + in_out_lpOverlapped: ?*OVERLAPPED, +) BOOL; + +pub extern "kernel32" stdcallcc fn WriteFileEx(hFile: HANDLE, lpBuffer: [*]const u8, nNumberOfBytesToWrite: DWORD, lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE) BOOL; + +pub extern "kernel32" stdcallcc fn LoadLibraryW(lpLibFileName: [*]const u16) ?HMODULE; + +pub extern "kernel32" stdcallcc fn GetProcAddress(hModule: HMODULE, lpProcName: [*]const u8) ?FARPROC; + +pub extern "kernel32" stdcallcc fn FreeLibrary(hModule: HMODULE) BOOL; + +pub extern "kernel32" stdcallcc fn InitializeCriticalSection(lpCriticalSection: *CRITICAL_SECTION) void; +pub extern "kernel32" stdcallcc fn EnterCriticalSection(lpCriticalSection: *CRITICAL_SECTION) void; +pub extern "kernel32" stdcallcc fn LeaveCriticalSection(lpCriticalSection: *CRITICAL_SECTION) void; +pub extern "kernel32" stdcallcc fn DeleteCriticalSection(lpCriticalSection: *CRITICAL_SECTION) void; + +pub extern "kernel32" stdcallcc fn InitOnceExecuteOnce(InitOnce: *INIT_ONCE, InitFn: INIT_ONCE_FN, Parameter: ?*c_void, Context: ?*c_void) BOOL; diff --git a/lib/std/os/windows/lang.zig b/lib/std/os/windows/lang.zig new file mode 100644 index 0000000000..b173a62a73 --- /dev/null +++ b/lib/std/os/windows/lang.zig @@ -0,0 +1,140 @@ +pub const NEUTRAL = 0x00; +pub const INVARIANT = 0x7f; +pub const AFRIKAANS = 0x36; +pub const ALBANIAN = 0x1c; +pub const ALSATIAN = 0x84; +pub const AMHARIC = 0x5e; +pub const ARABIC = 0x01; +pub const ARMENIAN = 0x2b; +pub const ASSAMESE = 0x4d; +pub const AZERI = 0x2c; +pub const AZERBAIJANI = 0x2c; +pub const BANGLA = 0x45; +pub const BASHKIR = 0x6d; +pub const BASQUE = 0x2d; +pub const BELARUSIAN = 0x23; +pub const BENGALI = 0x45; +pub const BRETON = 0x7e; +pub const BOSNIAN = 0x1a; +pub const BOSNIAN_NEUTRAL = 0x781a; +pub const BULGARIAN = 0x02; +pub const CATALAN = 0x03; +pub const CENTRAL_KURDISH = 0x92; +pub const CHEROKEE = 0x5c; +pub const CHINESE = 0x04; +pub const CHINESE_SIMPLIFIED = 0x04; +pub const CHINESE_TRADITIONAL = 0x7c04; +pub const CORSICAN = 0x83; +pub const CROATIAN = 0x1a; +pub const CZECH = 0x05; +pub const DANISH = 0x06; +pub const DARI = 0x8c; +pub const DIVEHI = 0x65; +pub const DUTCH = 0x13; +pub const ENGLISH = 0x09; +pub const ESTONIAN = 0x25; +pub const FAEROESE = 0x38; +pub const FARSI = 0x29; +pub const FILIPINO = 0x64; +pub const FINNISH = 0x0b; +pub const FRENCH = 0x0c; +pub const FRISIAN = 0x62; +pub const FULAH = 0x67; +pub const GALICIAN = 0x56; +pub const GEORGIAN = 0x37; +pub const GERMAN = 0x07; +pub const GREEK = 0x08; +pub const GREENLANDIC = 0x6f; +pub const GUJARATI = 0x47; +pub const HAUSA = 0x68; +pub const HAWAIIAN = 0x75; +pub const HEBREW = 0x0d; +pub const HINDI = 0x39; +pub const HUNGARIAN = 0x0e; +pub const ICELANDIC = 0x0f; +pub const IGBO = 0x70; +pub const INDONESIAN = 0x21; +pub const INUKTITUT = 0x5d; +pub const IRISH = 0x3c; +pub const ITALIAN = 0x10; +pub const JAPANESE = 0x11; +pub const KANNADA = 0x4b; +pub const KASHMIRI = 0x60; +pub const KAZAK = 0x3f; +pub const KHMER = 0x53; +pub const KICHE = 0x86; +pub const KINYARWANDA = 0x87; +pub const KONKANI = 0x57; +pub const KOREAN = 0x12; +pub const KYRGYZ = 0x40; +pub const LAO = 0x54; +pub const LATVIAN = 0x26; +pub const LITHUANIAN = 0x27; +pub const LOWER_SORBIAN = 0x2e; +pub const LUXEMBOURGISH = 0x6e; +pub const MACEDONIAN = 0x2f; +pub const MALAY = 0x3e; +pub const MALAYALAM = 0x4c; +pub const MALTESE = 0x3a; +pub const MANIPURI = 0x58; +pub const MAORI = 0x81; +pub const MAPUDUNGUN = 0x7a; +pub const MARATHI = 0x4e; +pub const MOHAWK = 0x7c; +pub const MONGOLIAN = 0x50; +pub const NEPALI = 0x61; +pub const NORWEGIAN = 0x14; +pub const OCCITAN = 0x82; +pub const ODIA = 0x48; +pub const ORIYA = 0x48; +pub const PASHTO = 0x63; +pub const PERSIAN = 0x29; +pub const POLISH = 0x15; +pub const PORTUGUESE = 0x16; +pub const PULAR = 0x67; +pub const PUNJABI = 0x46; +pub const QUECHUA = 0x6b; +pub const ROMANIAN = 0x18; +pub const ROMANSH = 0x17; +pub const RUSSIAN = 0x19; +pub const SAKHA = 0x85; +pub const SAMI = 0x3b; +pub const SANSKRIT = 0x4f; +pub const SCOTTISH_GAELIC = 0x91; +pub const SERBIAN = 0x1a; +pub const SERBIAN_NEUTRAL = 0x7c1a; +pub const SINDHI = 0x59; +pub const SINHALESE = 0x5b; +pub const SLOVAK = 0x1b; +pub const SLOVENIAN = 0x24; +pub const SOTHO = 0x6c; +pub const SPANISH = 0x0a; +pub const SWAHILI = 0x41; +pub const SWEDISH = 0x1d; +pub const SYRIAC = 0x5a; +pub const TAJIK = 0x28; +pub const TAMAZIGHT = 0x5f; +pub const TAMIL = 0x49; +pub const TATAR = 0x44; +pub const TELUGU = 0x4a; +pub const THAI = 0x1e; +pub const TIBETAN = 0x51; +pub const TIGRIGNA = 0x73; +pub const TIGRINYA = 0x73; +pub const TSWANA = 0x32; +pub const TURKISH = 0x1f; +pub const TURKMEN = 0x42; +pub const UIGHUR = 0x80; +pub const UKRAINIAN = 0x22; +pub const UPPER_SORBIAN = 0x2e; +pub const URDU = 0x20; +pub const UZBEK = 0x43; +pub const VALENCIAN = 0x03; +pub const VIETNAMESE = 0x2a; +pub const WELSH = 0x52; +pub const WOLOF = 0x88; +pub const XHOSA = 0x34; +pub const YAKUT = 0x85; +pub const YI = 0x78; +pub const YORUBA = 0x6a; +pub const ZULU = 0x35; diff --git a/lib/std/os/windows/ntdll.zig b/lib/std/os/windows/ntdll.zig new file mode 100644 index 0000000000..bfc98aba8a --- /dev/null +++ b/lib/std/os/windows/ntdll.zig @@ -0,0 +1,24 @@ +usingnamespace @import("bits.zig"); + +pub extern "NtDll" stdcallcc fn RtlCaptureStackBackTrace(FramesToSkip: DWORD, FramesToCapture: DWORD, BackTrace: **c_void, BackTraceHash: ?*DWORD) WORD; +pub extern "NtDll" stdcallcc fn NtQueryInformationFile( + FileHandle: HANDLE, + IoStatusBlock: *IO_STATUS_BLOCK, + FileInformation: *c_void, + Length: ULONG, + FileInformationClass: FILE_INFORMATION_CLASS, +) NTSTATUS; +pub extern "NtDll" stdcallcc fn NtCreateFile( + FileHandle: *HANDLE, + DesiredAccess: ACCESS_MASK, + ObjectAttributes: *OBJECT_ATTRIBUTES, + IoStatusBlock: *IO_STATUS_BLOCK, + AllocationSize: *LARGE_INTEGER, + FileAttributes: ULONG, + ShareAccess: ULONG, + CreateDisposition: ULONG, + CreateOptions: ULONG, + EaBuffer: *c_void, + EaLength: ULONG, +) NTSTATUS; +pub extern "NtDll" stdcallcc fn NtClose(Handle: HANDLE) NTSTATUS; diff --git a/lib/std/os/windows/ole32.zig b/lib/std/os/windows/ole32.zig new file mode 100644 index 0000000000..39c12d074c --- /dev/null +++ b/lib/std/os/windows/ole32.zig @@ -0,0 +1,6 @@ +usingnamespace @import("bits.zig"); + +pub extern "ole32" stdcallcc fn CoTaskMemFree(pv: LPVOID) void; +pub extern "ole32" stdcallcc fn CoUninitialize() void; +pub extern "ole32" stdcallcc fn CoGetCurrentProcess() DWORD; +pub extern "ole32" stdcallcc fn CoInitializeEx(pvReserved: LPVOID, dwCoInit: DWORD) HRESULT; diff --git a/lib/std/os/windows/shell32.zig b/lib/std/os/windows/shell32.zig new file mode 100644 index 0000000000..c178997aad --- /dev/null +++ b/lib/std/os/windows/shell32.zig @@ -0,0 +1,3 @@ +usingnamespace @import("bits.zig"); + +pub extern "shell32" stdcallcc fn SHGetKnownFolderPath(rfid: *const KNOWNFOLDERID, dwFlags: DWORD, hToken: ?HANDLE, ppszPath: *[*]WCHAR) HRESULT; diff --git a/lib/std/os/windows/status.zig b/lib/std/os/windows/status.zig new file mode 100644 index 0000000000..b9fd2b495f --- /dev/null +++ b/lib/std/os/windows/status.zig @@ -0,0 +1,5 @@ +/// The operation completed successfully. +pub const SUCCESS = 0x00000000; + +/// The data was too large to fit into the specified buffer. +pub const BUFFER_OVERFLOW = 0x80000005; diff --git a/lib/std/os/windows/sublang.zig b/lib/std/os/windows/sublang.zig new file mode 100644 index 0000000000..e9929c6d79 --- /dev/null +++ b/lib/std/os/windows/sublang.zig @@ -0,0 +1,244 @@ +pub const NEUTRAL = 0x00; +pub const DEFAULT = 0x01; +pub const SYS_DEFAULT = 0x02; +pub const CUSTOM_DEFAULT = 0x03; +pub const CUSTOM_UNSPECIFIED = 0x04; +pub const UI_CUSTOM_DEFAULT = 0x05; +pub const AFRIKAANS_SOUTH_AFRICA = 0x01; +pub const ALBANIAN_ALBANIA = 0x01; +pub const ALSATIAN_FRANCE = 0x01; +pub const AMHARIC_ETHIOPIA = 0x01; +pub const ARABIC_SAUDI_ARABIA = 0x01; +pub const ARABIC_IRAQ = 0x02; +pub const ARABIC_EGYPT = 0x03; +pub const ARABIC_LIBYA = 0x04; +pub const ARABIC_ALGERIA = 0x05; +pub const ARABIC_MOROCCO = 0x06; +pub const ARABIC_TUNISIA = 0x07; +pub const ARABIC_OMAN = 0x08; +pub const ARABIC_YEMEN = 0x09; +pub const ARABIC_SYRIA = 0x0a; +pub const ARABIC_JORDAN = 0x0b; +pub const ARABIC_LEBANON = 0x0c; +pub const ARABIC_KUWAIT = 0x0d; +pub const ARABIC_UAE = 0x0e; +pub const ARABIC_BAHRAIN = 0x0f; +pub const ARABIC_QATAR = 0x10; +pub const ARMENIAN_ARMENIA = 0x01; +pub const ASSAMESE_INDIA = 0x01; +pub const AZERI_LATIN = 0x01; +pub const AZERI_CYRILLIC = 0x02; +pub const AZERBAIJANI_AZERBAIJAN_LATIN = 0x01; +pub const AZERBAIJANI_AZERBAIJAN_CYRILLIC = 0x02; +pub const BANGLA_INDIA = 0x01; +pub const BANGLA_BANGLADESH = 0x02; +pub const BASHKIR_RUSSIA = 0x01; +pub const BASQUE_BASQUE = 0x01; +pub const BELARUSIAN_BELARUS = 0x01; +pub const BENGALI_INDIA = 0x01; +pub const BENGALI_BANGLADESH = 0x02; +pub const BOSNIAN_BOSNIA_HERZEGOVINA_LATIN = 0x05; +pub const BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC = 0x08; +pub const BRETON_FRANCE = 0x01; +pub const BULGARIAN_BULGARIA = 0x01; +pub const CATALAN_CATALAN = 0x01; +pub const CENTRAL_KURDISH_IRAQ = 0x01; +pub const CHEROKEE_CHEROKEE = 0x01; +pub const CHINESE_TRADITIONAL = 0x01; +pub const CHINESE_SIMPLIFIED = 0x02; +pub const CHINESE_HONGKONG = 0x03; +pub const CHINESE_SINGAPORE = 0x04; +pub const CHINESE_MACAU = 0x05; +pub const CORSICAN_FRANCE = 0x01; +pub const CZECH_CZECH_REPUBLIC = 0x01; +pub const CROATIAN_CROATIA = 0x01; +pub const CROATIAN_BOSNIA_HERZEGOVINA_LATIN = 0x04; +pub const DANISH_DENMARK = 0x01; +pub const DARI_AFGHANISTAN = 0x01; +pub const DIVEHI_MALDIVES = 0x01; +pub const DUTCH = 0x01; +pub const DUTCH_BELGIAN = 0x02; +pub const ENGLISH_US = 0x01; +pub const ENGLISH_UK = 0x02; +pub const ENGLISH_AUS = 0x03; +pub const ENGLISH_CAN = 0x04; +pub const ENGLISH_NZ = 0x05; +pub const ENGLISH_EIRE = 0x06; +pub const ENGLISH_SOUTH_AFRICA = 0x07; +pub const ENGLISH_JAMAICA = 0x08; +pub const ENGLISH_CARIBBEAN = 0x09; +pub const ENGLISH_BELIZE = 0x0a; +pub const ENGLISH_TRINIDAD = 0x0b; +pub const ENGLISH_ZIMBABWE = 0x0c; +pub const ENGLISH_PHILIPPINES = 0x0d; +pub const ENGLISH_INDIA = 0x10; +pub const ENGLISH_MALAYSIA = 0x11; +pub const ENGLISH_SINGAPORE = 0x12; +pub const ESTONIAN_ESTONIA = 0x01; +pub const FAEROESE_FAROE_ISLANDS = 0x01; +pub const FILIPINO_PHILIPPINES = 0x01; +pub const FINNISH_FINLAND = 0x01; +pub const FRENCH = 0x01; +pub const FRENCH_BELGIAN = 0x02; +pub const FRENCH_CANADIAN = 0x03; +pub const FRENCH_SWISS = 0x04; +pub const FRENCH_LUXEMBOURG = 0x05; +pub const FRENCH_MONACO = 0x06; +pub const FRISIAN_NETHERLANDS = 0x01; +pub const FULAH_SENEGAL = 0x02; +pub const GALICIAN_GALICIAN = 0x01; +pub const GEORGIAN_GEORGIA = 0x01; +pub const GERMAN = 0x01; +pub const GERMAN_SWISS = 0x02; +pub const GERMAN_AUSTRIAN = 0x03; +pub const GERMAN_LUXEMBOURG = 0x04; +pub const GERMAN_LIECHTENSTEIN = 0x05; +pub const GREEK_GREECE = 0x01; +pub const GREENLANDIC_GREENLAND = 0x01; +pub const GUJARATI_INDIA = 0x01; +pub const HAUSA_NIGERIA_LATIN = 0x01; +pub const HAWAIIAN_US = 0x01; +pub const HEBREW_ISRAEL = 0x01; +pub const HINDI_INDIA = 0x01; +pub const HUNGARIAN_HUNGARY = 0x01; +pub const ICELANDIC_ICELAND = 0x01; +pub const IGBO_NIGERIA = 0x01; +pub const INDONESIAN_INDONESIA = 0x01; +pub const INUKTITUT_CANADA = 0x01; +pub const INUKTITUT_CANADA_LATIN = 0x02; +pub const IRISH_IRELAND = 0x02; +pub const ITALIAN = 0x01; +pub const ITALIAN_SWISS = 0x02; +pub const JAPANESE_JAPAN = 0x01; +pub const KANNADA_INDIA = 0x01; +pub const KASHMIRI_SASIA = 0x02; +pub const KASHMIRI_INDIA = 0x02; +pub const KAZAK_KAZAKHSTAN = 0x01; +pub const KHMER_CAMBODIA = 0x01; +pub const KICHE_GUATEMALA = 0x01; +pub const KINYARWANDA_RWANDA = 0x01; +pub const KONKANI_INDIA = 0x01; +pub const KOREAN = 0x01; +pub const KYRGYZ_KYRGYZSTAN = 0x01; +pub const LAO_LAO = 0x01; +pub const LATVIAN_LATVIA = 0x01; +pub const LITHUANIAN = 0x01; +pub const LOWER_SORBIAN_GERMANY = 0x02; +pub const LUXEMBOURGISH_LUXEMBOURG = 0x01; +pub const MACEDONIAN_MACEDONIA = 0x01; +pub const MALAY_MALAYSIA = 0x01; +pub const MALAY_BRUNEI_DARUSSALAM = 0x02; +pub const MALAYALAM_INDIA = 0x01; +pub const MALTESE_MALTA = 0x01; +pub const MAORI_NEW_ZEALAND = 0x01; +pub const MAPUDUNGUN_CHILE = 0x01; +pub const MARATHI_INDIA = 0x01; +pub const MOHAWK_MOHAWK = 0x01; +pub const MONGOLIAN_CYRILLIC_MONGOLIA = 0x01; +pub const MONGOLIAN_PRC = 0x02; +pub const NEPALI_INDIA = 0x02; +pub const NEPALI_NEPAL = 0x01; +pub const NORWEGIAN_BOKMAL = 0x01; +pub const NORWEGIAN_NYNORSK = 0x02; +pub const OCCITAN_FRANCE = 0x01; +pub const ODIA_INDIA = 0x01; +pub const ORIYA_INDIA = 0x01; +pub const PASHTO_AFGHANISTAN = 0x01; +pub const PERSIAN_IRAN = 0x01; +pub const POLISH_POLAND = 0x01; +pub const PORTUGUESE = 0x02; +pub const PORTUGUESE_BRAZILIAN = 0x01; +pub const PULAR_SENEGAL = 0x02; +pub const PUNJABI_INDIA = 0x01; +pub const PUNJABI_PAKISTAN = 0x02; +pub const QUECHUA_BOLIVIA = 0x01; +pub const QUECHUA_ECUADOR = 0x02; +pub const QUECHUA_PERU = 0x03; +pub const ROMANIAN_ROMANIA = 0x01; +pub const ROMANSH_SWITZERLAND = 0x01; +pub const RUSSIAN_RUSSIA = 0x01; +pub const SAKHA_RUSSIA = 0x01; +pub const SAMI_NORTHERN_NORWAY = 0x01; +pub const SAMI_NORTHERN_SWEDEN = 0x02; +pub const SAMI_NORTHERN_FINLAND = 0x03; +pub const SAMI_LULE_NORWAY = 0x04; +pub const SAMI_LULE_SWEDEN = 0x05; +pub const SAMI_SOUTHERN_NORWAY = 0x06; +pub const SAMI_SOUTHERN_SWEDEN = 0x07; +pub const SAMI_SKOLT_FINLAND = 0x08; +pub const SAMI_INARI_FINLAND = 0x09; +pub const SANSKRIT_INDIA = 0x01; +pub const SCOTTISH_GAELIC = 0x01; +pub const SERBIAN_BOSNIA_HERZEGOVINA_LATIN = 0x06; +pub const SERBIAN_BOSNIA_HERZEGOVINA_CYRILLIC = 0x07; +pub const SERBIAN_MONTENEGRO_LATIN = 0x0b; +pub const SERBIAN_MONTENEGRO_CYRILLIC = 0x0c; +pub const SERBIAN_SERBIA_LATIN = 0x09; +pub const SERBIAN_SERBIA_CYRILLIC = 0x0a; +pub const SERBIAN_CROATIA = 0x01; +pub const SERBIAN_LATIN = 0x02; +pub const SERBIAN_CYRILLIC = 0x03; +pub const SINDHI_INDIA = 0x01; +pub const SINDHI_PAKISTAN = 0x02; +pub const SINDHI_AFGHANISTAN = 0x02; +pub const SINHALESE_SRI_LANKA = 0x01; +pub const SOTHO_NORTHERN_SOUTH_AFRICA = 0x01; +pub const SLOVAK_SLOVAKIA = 0x01; +pub const SLOVENIAN_SLOVENIA = 0x01; +pub const SPANISH = 0x01; +pub const SPANISH_MEXICAN = 0x02; +pub const SPANISH_MODERN = 0x03; +pub const SPANISH_GUATEMALA = 0x04; +pub const SPANISH_COSTA_RICA = 0x05; +pub const SPANISH_PANAMA = 0x06; +pub const SPANISH_DOMINICAN_REPUBLIC = 0x07; +pub const SPANISH_VENEZUELA = 0x08; +pub const SPANISH_COLOMBIA = 0x09; +pub const SPANISH_PERU = 0x0a; +pub const SPANISH_ARGENTINA = 0x0b; +pub const SPANISH_ECUADOR = 0x0c; +pub const SPANISH_CHILE = 0x0d; +pub const SPANISH_URUGUAY = 0x0e; +pub const SPANISH_PARAGUAY = 0x0f; +pub const SPANISH_BOLIVIA = 0x10; +pub const SPANISH_EL_SALVADOR = 0x11; +pub const SPANISH_HONDURAS = 0x12; +pub const SPANISH_NICARAGUA = 0x13; +pub const SPANISH_PUERTO_RICO = 0x14; +pub const SPANISH_US = 0x15; +pub const SWAHILI_KENYA = 0x01; +pub const SWEDISH = 0x01; +pub const SWEDISH_FINLAND = 0x02; +pub const SYRIAC_SYRIA = 0x01; +pub const TAJIK_TAJIKISTAN = 0x01; +pub const TAMAZIGHT_ALGERIA_LATIN = 0x02; +pub const TAMAZIGHT_MOROCCO_TIFINAGH = 0x04; +pub const TAMIL_INDIA = 0x01; +pub const TAMIL_SRI_LANKA = 0x02; +pub const TATAR_RUSSIA = 0x01; +pub const TELUGU_INDIA = 0x01; +pub const THAI_THAILAND = 0x01; +pub const TIBETAN_PRC = 0x01; +pub const TIGRIGNA_ERITREA = 0x02; +pub const TIGRINYA_ERITREA = 0x02; +pub const TIGRINYA_ETHIOPIA = 0x01; +pub const TSWANA_BOTSWANA = 0x02; +pub const TSWANA_SOUTH_AFRICA = 0x01; +pub const TURKISH_TURKEY = 0x01; +pub const TURKMEN_TURKMENISTAN = 0x01; +pub const UIGHUR_PRC = 0x01; +pub const UKRAINIAN_UKRAINE = 0x01; +pub const UPPER_SORBIAN_GERMANY = 0x01; +pub const URDU_PAKISTAN = 0x01; +pub const URDU_INDIA = 0x02; +pub const UZBEK_LATIN = 0x01; +pub const UZBEK_CYRILLIC = 0x02; +pub const VALENCIAN_VALENCIA = 0x02; +pub const VIETNAMESE_VIETNAM = 0x01; +pub const WELSH_UNITED_KINGDOM = 0x01; +pub const WOLOF_SENEGAL = 0x01; +pub const XHOSA_SOUTH_AFRICA = 0x01; +pub const YAKUT_RUSSIA = 0x01; +pub const YI_PRC = 0x01; +pub const YORUBA_NIGERIA = 0x01; +pub const ZULU_SOUTH_AFRICA = 0x01; diff --git a/lib/std/os/zen.zig b/lib/std/os/zen.zig new file mode 100644 index 0000000000..727f55fa6d --- /dev/null +++ b/lib/std/os/zen.zig @@ -0,0 +1,260 @@ +const std = @import("../std.zig"); +const assert = std.debug.assert; + +////////////////////////// +//// IPC structures //// +////////////////////////// + +pub const Message = struct { + sender: MailboxId, + receiver: MailboxId, + code: usize, + args: [5]usize, + payload: ?[]const u8, + + pub fn from(mailbox_id: MailboxId) Message { + return Message{ + .sender = MailboxId.Undefined, + .receiver = mailbox_id, + .code = undefined, + .args = undefined, + .payload = null, + }; + } + + pub fn to(mailbox_id: MailboxId, msg_code: usize, args: ...) Message { + var message = Message{ + .sender = MailboxId.This, + .receiver = mailbox_id, + .code = msg_code, + .args = undefined, + .payload = null, + }; + + assert(args.len <= message.args.len); + comptime var i = 0; + inline while (i < args.len) : (i += 1) { + message.args[i] = args[i]; + } + + return message; + } + + pub fn as(self: Message, sender: MailboxId) Message { + var message = self; + message.sender = sender; + return message; + } + + pub fn withPayload(self: Message, payload: []const u8) Message { + var message = self; + message.payload = payload; + return message; + } +}; + +pub const MailboxId = union(enum) { + Undefined, + This, + Kernel, + Port: u16, + Thread: u16, +}; + +////////////////////////////////////// +//// Ports reserved for servers //// +////////////////////////////////////// + +pub const Server = struct { + pub const Keyboard = MailboxId{ .Port = 0 }; + pub const Terminal = MailboxId{ .Port = 1 }; +}; + +//////////////////////// +//// POSIX things //// +//////////////////////// + +// Standard streams. +pub const STDIN_FILENO = 0; +pub const STDOUT_FILENO = 1; +pub const STDERR_FILENO = 2; + +// FIXME: let's borrow Linux's error numbers for now. +usingnamespace @import("bits/linux/errno.zig"); +// Get the errno from a syscall return value, or 0 for no error. +pub fn getErrno(r: usize) usize { + const signed_r = @bitCast(isize, r); + return if (signed_r > -4096 and signed_r < 0) @intCast(usize, -signed_r) else 0; +} + +// TODO: implement this correctly. +pub fn read(fd: i32, buf: [*]u8, count: usize) usize { + switch (fd) { + STDIN_FILENO => { + var i: usize = 0; + while (i < count) : (i += 1) { + send(&Message.to(Server.Keyboard, 0)); + + // FIXME: we should be certain that we are receiving from Keyboard. + var message = Message.from(MailboxId.This); + receive(&message); + + buf[i] = @intCast(u8, message.args[0]); + } + }, + else => unreachable, + } + return count; +} + +// TODO: implement this correctly. +pub fn write(fd: i32, buf: [*]const u8, count: usize) usize { + switch (fd) { + STDOUT_FILENO, STDERR_FILENO => { + send(&Message.to(Server.Terminal, 1).withPayload(buf[0..count])); + }, + else => unreachable, + } + return count; +} + +/////////////////////////// +//// Syscall numbers //// +/////////////////////////// + +pub const Syscall = enum(usize) { + exit = 0, + send = 1, + receive = 2, + subscribeIRQ = 3, + inb = 4, + outb = 5, + map = 6, + createThread = 7, +}; + +//////////////////// +//// Syscalls //// +//////////////////// + +pub fn exit(status: i32) noreturn { + _ = syscall1(Syscall.exit, @bitCast(usize, isize(status))); + unreachable; +} + +pub fn send(message: *const Message) void { + _ = syscall1(Syscall.send, @ptrToInt(message)); +} + +pub fn receive(destination: *Message) void { + _ = syscall1(Syscall.receive, @ptrToInt(destination)); +} + +pub fn subscribeIRQ(irq: u8, mailbox_id: *const MailboxId) void { + _ = syscall2(Syscall.subscribeIRQ, irq, @ptrToInt(mailbox_id)); +} + +pub fn inb(port: u16) u8 { + return @intCast(u8, syscall1(Syscall.inb, port)); +} + +pub fn outb(port: u16, value: u8) void { + _ = syscall2(Syscall.outb, port, value); +} + +pub fn map(v_addr: usize, p_addr: usize, size: usize, writable: bool) bool { + return syscall4(Syscall.map, v_addr, p_addr, size, @boolToInt(writable)) != 0; +} + +pub fn createThread(function: fn () void) u16 { + return u16(syscall1(Syscall.createThread, @ptrToInt(function))); +} + +///////////////////////// +//// Syscall stubs //// +///////////////////////// + +inline fn syscall0(number: Syscall) usize { + return asm volatile ("int $0x80" + : [ret] "={eax}" (-> usize) + : [number] "{eax}" (number) + ); +} + +inline fn syscall1(number: Syscall, arg1: usize) usize { + return asm volatile ("int $0x80" + : [ret] "={eax}" (-> usize) + : [number] "{eax}" (number), + [arg1] "{ecx}" (arg1) + ); +} + +inline fn syscall2(number: Syscall, arg1: usize, arg2: usize) usize { + return asm volatile ("int $0x80" + : [ret] "={eax}" (-> usize) + : [number] "{eax}" (number), + [arg1] "{ecx}" (arg1), + [arg2] "{edx}" (arg2) + ); +} + +inline fn syscall3(number: Syscall, arg1: usize, arg2: usize, arg3: usize) usize { + return asm volatile ("int $0x80" + : [ret] "={eax}" (-> usize) + : [number] "{eax}" (number), + [arg1] "{ecx}" (arg1), + [arg2] "{edx}" (arg2), + [arg3] "{ebx}" (arg3) + ); +} + +inline fn syscall4(number: Syscall, arg1: usize, arg2: usize, arg3: usize, arg4: usize) usize { + return asm volatile ("int $0x80" + : [ret] "={eax}" (-> usize) + : [number] "{eax}" (number), + [arg1] "{ecx}" (arg1), + [arg2] "{edx}" (arg2), + [arg3] "{ebx}" (arg3), + [arg4] "{esi}" (arg4) + ); +} + +inline fn syscall5( + number: Syscall, + arg1: usize, + arg2: usize, + arg3: usize, + arg4: usize, + arg5: usize, +) usize { + return asm volatile ("int $0x80" + : [ret] "={eax}" (-> usize) + : [number] "{eax}" (number), + [arg1] "{ecx}" (arg1), + [arg2] "{edx}" (arg2), + [arg3] "{ebx}" (arg3), + [arg4] "{esi}" (arg4), + [arg5] "{edi}" (arg5) + ); +} + +inline fn syscall6( + number: Syscall, + arg1: usize, + arg2: usize, + arg3: usize, + arg4: usize, + arg5: usize, + arg6: usize, +) usize { + return asm volatile ("int $0x80" + : [ret] "={eax}" (-> usize) + : [number] "{eax}" (number), + [arg1] "{ecx}" (arg1), + [arg2] "{edx}" (arg2), + [arg3] "{ebx}" (arg3), + [arg4] "{esi}" (arg4), + [arg5] "{edi}" (arg5), + [arg6] "{ebp}" (arg6) + ); +} diff --git a/lib/std/packed_int_array.zig b/lib/std/packed_int_array.zig new file mode 100644 index 0000000000..5cbab2d33b --- /dev/null +++ b/lib/std/packed_int_array.zig @@ -0,0 +1,646 @@ +const std = @import("std"); +const builtin = @import("builtin"); +const debug = std.debug; +const testing = std.testing; + +pub fn PackedIntIo(comptime Int: type, comptime endian: builtin.Endian) type { + //The general technique employed here is to cast bytes in the array to a container + // integer (having bits % 8 == 0) large enough to contain the number of bits we want, + // then we can retrieve or store the new value with a relative minimum of masking + // and shifting. In this worst case, this means that we'll need an integer that's + // actually 1 byte larger than the minimum required to store the bits, because it + // is possible that the bits start at the end of the first byte, continue through + // zero or more, then end in the beginning of the last. But, if we try to access + // a value in the very last byte of memory with that integer size, that extra byte + // will be out of bounds. Depending on the circumstances of the memory, that might + // mean the OS fatally kills the program. Thus, we use a larger container (MaxIo) + // most of the time, but a smaller container (MinIo) when touching the last byte + // of the memory. + const int_bits = comptime std.meta.bitCount(Int); + + //in the best case, this is the number of bytes we need to touch + // to read or write a value, as bits + const min_io_bits = ((int_bits + 7) / 8) * 8; + + //in the worst case, this is the number of bytes we need to touch + // to read or write a value, as bits + const max_io_bits = switch (int_bits) { + 0 => 0, + 1 => 8, + 2...9 => 16, + 10...65535 => ((int_bits / 8) + 2) * 8, + else => unreachable, + }; + + //we bitcast the desired Int type to an unsigned version of itself + // to avoid issues with shifting signed ints. + const UnInt = @IntType(false, int_bits); + + //The maximum container int type + const MinIo = @IntType(false, min_io_bits); + + //The minimum container int type + const MaxIo = @IntType(false, max_io_bits); + + return struct { + pub fn get(bytes: []const u8, index: usize, bit_offset: u7) Int { + if (int_bits == 0) return 0; + + const bit_index = (index * int_bits) + bit_offset; + const max_end_byte = (bit_index + max_io_bits) / 8; + + //Using the larger container size will potentially read out of bounds + if (max_end_byte > bytes.len) return getBits(bytes, MinIo, bit_index); + return getBits(bytes, MaxIo, bit_index); + } + + fn getBits(bytes: []const u8, comptime Container: type, bit_index: usize) Int { + const container_bits = comptime std.meta.bitCount(Container); + const Shift = std.math.Log2Int(Container); + + const start_byte = bit_index / 8; + const head_keep_bits = bit_index - (start_byte * 8); + const tail_keep_bits = container_bits - (int_bits + head_keep_bits); + + //read bytes as container + const value_ptr = @ptrCast(*align(1) const Container, &bytes[start_byte]); + var value = value_ptr.*; + + if (endian != builtin.endian) value = @byteSwap(Container, value); + + switch (endian) { + .Big => { + value <<= @intCast(Shift, head_keep_bits); + value >>= @intCast(Shift, head_keep_bits); + value >>= @intCast(Shift, tail_keep_bits); + }, + .Little => { + value <<= @intCast(Shift, tail_keep_bits); + value >>= @intCast(Shift, tail_keep_bits); + value >>= @intCast(Shift, head_keep_bits); + }, + } + + return @bitCast(Int, @truncate(UnInt, value)); + } + + pub fn set(bytes: []u8, index: usize, bit_offset: u3, int: Int) void { + if (int_bits == 0) return; + + const bit_index = (index * int_bits) + bit_offset; + const max_end_byte = (bit_index + max_io_bits) / 8; + + //Using the larger container size will potentially write out of bounds + if (max_end_byte > bytes.len) return setBits(bytes, MinIo, bit_index, int); + setBits(bytes, MaxIo, bit_index, int); + } + + fn setBits(bytes: []u8, comptime Container: type, bit_index: usize, int: Int) void { + const container_bits = comptime std.meta.bitCount(Container); + const Shift = std.math.Log2Int(Container); + + const start_byte = bit_index / 8; + const head_keep_bits = bit_index - (start_byte * 8); + const tail_keep_bits = container_bits - (int_bits + head_keep_bits); + const keep_shift = switch (endian) { + .Big => @intCast(Shift, tail_keep_bits), + .Little => @intCast(Shift, head_keep_bits), + }; + + //position the bits where they need to be in the container + const value = @intCast(Container, @bitCast(UnInt, int)) << keep_shift; + + //read existing bytes + const target_ptr = @ptrCast(*align(1) Container, &bytes[start_byte]); + var target = target_ptr.*; + + if (endian != builtin.endian) target = @byteSwap(Container, target); + + //zero the bits we want to replace in the existing bytes + const inv_mask = @intCast(Container, std.math.maxInt(UnInt)) << keep_shift; + const mask = ~inv_mask; + target &= mask; + + //merge the new value + target |= value; + + if (endian != builtin.endian) target = @byteSwap(Container, target); + + //save it back + target_ptr.* = target; + } + + fn slice(bytes: []u8, bit_offset: u3, start: usize, end: usize) PackedIntSliceEndian(Int, endian) { + debug.assert(end >= start); + + const length = end - start; + const bit_index = (start * int_bits) + bit_offset; + const start_byte = bit_index / 8; + const end_byte = (bit_index + (length * int_bits) + 7) / 8; + const new_bytes = bytes[start_byte..end_byte]; + + if (length == 0) return PackedIntSliceEndian(Int, endian).init(new_bytes[0..0], 0); + + var new_slice = PackedIntSliceEndian(Int, endian).init(new_bytes, length); + new_slice.bit_offset = @intCast(u3, (bit_index - (start_byte * 8))); + return new_slice; + } + + fn sliceCast(bytes: []u8, comptime NewInt: type, comptime new_endian: builtin.Endian, bit_offset: u3, old_len: usize) PackedIntSliceEndian(NewInt, new_endian) { + const new_int_bits = comptime std.meta.bitCount(NewInt); + const New = PackedIntSliceEndian(NewInt, new_endian); + + const total_bits = (old_len * int_bits); + const new_int_count = total_bits / new_int_bits; + + debug.assert(total_bits == new_int_count * new_int_bits); + + var new = New.init(bytes, new_int_count); + new.bit_offset = bit_offset; + + return new; + } + }; +} + +///Creates a bit-packed array of integers of type Int. Bits +/// are packed using native endianess and without storing any meta +/// data. PackedIntArray(i3, 8) will occupy exactly 3 bytes of memory. +pub fn PackedIntArray(comptime Int: type, comptime int_count: usize) type { + return PackedIntArrayEndian(Int, builtin.endian, int_count); +} + +///Creates a bit-packed array of integers of type Int. Bits +/// are packed using specified endianess and without storing any meta +/// data. +pub fn PackedIntArrayEndian(comptime Int: type, comptime endian: builtin.Endian, comptime int_count: usize) type { + const int_bits = comptime std.meta.bitCount(Int); + const total_bits = int_bits * int_count; + const total_bytes = (total_bits + 7) / 8; + + const Io = PackedIntIo(Int, endian); + + return struct { + const Self = @This(); + + bytes: [total_bytes]u8, + + ///Returns the number of elements in the packed array + pub fn len(self: Self) usize { + return int_count; + } + + ///Initialize a packed array using an unpacked array + /// or, more likely, an array literal. + pub fn init(ints: [int_count]Int) Self { + var self = Self(undefined); + for (ints) |int, i| self.set(i, int); + return self; + } + + ///Return the Int stored at index + pub fn get(self: Self, index: usize) Int { + debug.assert(index < int_count); + return Io.get(self.bytes, index, 0); + } + + ///Copy int into the array at index + pub fn set(self: *Self, index: usize, int: Int) void { + debug.assert(index < int_count); + return Io.set(&self.bytes, index, 0, int); + } + + ///Create a PackedIntSlice of the array from given start to given end + pub fn slice(self: *Self, start: usize, end: usize) PackedIntSliceEndian(Int, endian) { + debug.assert(start < int_count); + debug.assert(end <= int_count); + return Io.slice(&self.bytes, 0, start, end); + } + + ///Create a PackedIntSlice of the array using NewInt as the bit width integer. + /// NewInt's bit width must fit evenly within the array's Int's total bits. + pub fn sliceCast(self: *Self, comptime NewInt: type) PackedIntSlice(NewInt) { + return self.sliceCastEndian(NewInt, endian); + } + + ///Create a PackedIntSlice of the array using NewInt as the bit width integer + /// and new_endian as the new endianess. NewInt's bit width must fit evenly within + /// the array's Int's total bits. + pub fn sliceCastEndian(self: *Self, comptime NewInt: type, comptime new_endian: builtin.Endian) PackedIntSliceEndian(NewInt, new_endian) { + return Io.sliceCast(&self.bytes, NewInt, new_endian, 0, int_count); + } + }; +} + +///Uses a slice as a bit-packed block of int_count integers of type Int. +/// Bits are packed using native endianess and without storing any meta +/// data. +pub fn PackedIntSlice(comptime Int: type) type { + return PackedIntSliceEndian(Int, builtin.endian); +} + +///Uses a slice as a bit-packed block of int_count integers of type Int. +/// Bits are packed using specified endianess and without storing any meta +/// data. +pub fn PackedIntSliceEndian(comptime Int: type, comptime endian: builtin.Endian) type { + const int_bits = comptime std.meta.bitCount(Int); + const Io = PackedIntIo(Int, endian); + + return struct { + const Self = @This(); + + bytes: []u8, + int_count: usize, + bit_offset: u3, + + ///Returns the number of elements in the packed slice + pub fn len(self: Self) usize { + return self.int_count; + } + + ///Calculates the number of bytes required to store a desired count + /// of Ints + pub fn bytesRequired(int_count: usize) usize { + const total_bits = int_bits * int_count; + const total_bytes = (total_bits + 7) / 8; + return total_bytes; + } + + ///Initialize a packed slice using the memory at bytes, with int_count + /// elements. bytes must be large enough to accomodate the requested + /// count. + pub fn init(bytes: []u8, int_count: usize) Self { + debug.assert(bytes.len >= bytesRequired(int_count)); + + return Self{ + .bytes = bytes, + .int_count = int_count, + .bit_offset = 0, + }; + } + + ///Return the Int stored at index + pub fn get(self: Self, index: usize) Int { + debug.assert(index < self.int_count); + return Io.get(self.bytes, index, self.bit_offset); + } + + ///Copy int into the array at index + pub fn set(self: *Self, index: usize, int: Int) void { + debug.assert(index < self.int_count); + return Io.set(self.bytes, index, self.bit_offset, int); + } + + ///Create a PackedIntSlice of this slice from given start to given end + pub fn slice(self: Self, start: usize, end: usize) PackedIntSliceEndian(Int, endian) { + debug.assert(start < self.int_count); + debug.assert(end <= self.int_count); + return Io.slice(self.bytes, self.bit_offset, start, end); + } + + ///Create a PackedIntSlice of this slice using NewInt as the bit width integer. + /// NewInt's bit width must fit evenly within this slice's Int's total bits. + pub fn sliceCast(self: Self, comptime NewInt: type) PackedIntSliceEndian(NewInt, endian) { + return self.sliceCastEndian(NewInt, endian); + } + + ///Create a PackedIntSlice of this slice using NewInt as the bit width integer + /// and new_endian as the new endianess. NewInt's bit width must fit evenly within + /// this slice's Int's total bits. + pub fn sliceCastEndian(self: Self, comptime NewInt: type, comptime new_endian: builtin.Endian) PackedIntSliceEndian(NewInt, new_endian) { + return Io.sliceCast(self.bytes, NewInt, new_endian, self.bit_offset, self.int_count); + } + }; +} + +test "PackedIntArray" { + @setEvalBranchQuota(10000); + const max_bits = 256; + const int_count = 19; + + comptime var bits = 0; + inline while (bits <= 256) : (bits += 1) { + //alternate unsigned and signed + const even = bits % 2 == 0; + const I = @IntType(even, bits); + + const PackedArray = PackedIntArray(I, int_count); + const expected_bytes = ((bits * int_count) + 7) / 8; + testing.expect(@sizeOf(PackedArray) == expected_bytes); + + var data = PackedArray(undefined); + + //write values, counting up + var i = usize(0); + var count = I(0); + while (i < data.len()) : (i += 1) { + data.set(i, count); + if (bits > 0) count +%= 1; + } + + //read and verify values + i = 0; + count = 0; + while (i < data.len()) : (i += 1) { + const val = data.get(i); + testing.expect(val == count); + if (bits > 0) count +%= 1; + } + } +} + +test "PackedIntArray init" { + const PackedArray = PackedIntArray(u3, 8); + var packed_array = PackedArray.init([_]u3{ 0, 1, 2, 3, 4, 5, 6, 7 }); + var i = usize(0); + while (i < packed_array.len()) : (i += 1) testing.expect(packed_array.get(i) == i); +} + +test "PackedIntSlice" { + @setEvalBranchQuota(10000); + const max_bits = 256; + const int_count = 19; + const total_bits = max_bits * int_count; + const total_bytes = (total_bits + 7) / 8; + + var buffer: [total_bytes]u8 = undefined; + + comptime var bits = 0; + inline while (bits <= 256) : (bits += 1) { + //alternate unsigned and signed + const even = bits % 2 == 0; + const I = @IntType(even, bits); + const P = PackedIntSlice(I); + + var data = P.init(&buffer, int_count); + + //write values, counting up + var i = usize(0); + var count = I(0); + while (i < data.len()) : (i += 1) { + data.set(i, count); + if (bits > 0) count +%= 1; + } + + //read and verify values + i = 0; + count = 0; + while (i < data.len()) : (i += 1) { + const val = data.get(i); + testing.expect(val == count); + if (bits > 0) count +%= 1; + } + } +} + +test "PackedIntSlice of PackedInt(Array/Slice)" { + const max_bits = 16; + const int_count = 19; + + comptime var bits = 0; + inline while (bits <= max_bits) : (bits += 1) { + const Int = @IntType(false, bits); + + const PackedArray = PackedIntArray(Int, int_count); + var packed_array = PackedArray(undefined); + + const limit = (1 << bits); + + var i = usize(0); + while (i < packed_array.len()) : (i += 1) { + packed_array.set(i, @intCast(Int, i % limit)); + } + + //slice of array + var packed_slice = packed_array.slice(2, 5); + testing.expect(packed_slice.len() == 3); + const ps_bit_count = (bits * packed_slice.len()) + packed_slice.bit_offset; + const ps_expected_bytes = (ps_bit_count + 7) / 8; + testing.expect(packed_slice.bytes.len == ps_expected_bytes); + testing.expect(packed_slice.get(0) == 2 % limit); + testing.expect(packed_slice.get(1) == 3 % limit); + testing.expect(packed_slice.get(2) == 4 % limit); + packed_slice.set(1, 7 % limit); + testing.expect(packed_slice.get(1) == 7 % limit); + + //write through slice + testing.expect(packed_array.get(3) == 7 % limit); + + //slice of a slice + const packed_slice_two = packed_slice.slice(0, 3); + testing.expect(packed_slice_two.len() == 3); + const ps2_bit_count = (bits * packed_slice_two.len()) + packed_slice_two.bit_offset; + const ps2_expected_bytes = (ps2_bit_count + 7) / 8; + testing.expect(packed_slice_two.bytes.len == ps2_expected_bytes); + testing.expect(packed_slice_two.get(1) == 7 % limit); + testing.expect(packed_slice_two.get(2) == 4 % limit); + + //size one case + const packed_slice_three = packed_slice_two.slice(1, 2); + testing.expect(packed_slice_three.len() == 1); + const ps3_bit_count = (bits * packed_slice_three.len()) + packed_slice_three.bit_offset; + const ps3_expected_bytes = (ps3_bit_count + 7) / 8; + testing.expect(packed_slice_three.bytes.len == ps3_expected_bytes); + testing.expect(packed_slice_three.get(0) == 7 % limit); + + //empty slice case + const packed_slice_empty = packed_slice.slice(0, 0); + testing.expect(packed_slice_empty.len() == 0); + testing.expect(packed_slice_empty.bytes.len == 0); + + //slicing at byte boundaries + const packed_slice_edge = packed_array.slice(8, 16); + testing.expect(packed_slice_edge.len() == 8); + const pse_bit_count = (bits * packed_slice_edge.len()) + packed_slice_edge.bit_offset; + const pse_expected_bytes = (pse_bit_count + 7) / 8; + testing.expect(packed_slice_edge.bytes.len == pse_expected_bytes); + testing.expect(packed_slice_edge.bit_offset == 0); + } +} + +test "PackedIntSlice accumulating bit offsets" { + //bit_offset is u3, so standard debugging asserts should catch + // anything + { + const PackedArray = PackedIntArray(u3, 16); + var packed_array = PackedArray(undefined); + + var packed_slice = packed_array.slice(0, packed_array.len()); + var i = usize(0); + while (i < packed_array.len() - 1) : (i += 1) { + packed_slice = packed_slice.slice(1, packed_slice.len()); + } + } + { + const PackedArray = PackedIntArray(u11, 88); + var packed_array = PackedArray(undefined); + + var packed_slice = packed_array.slice(0, packed_array.len()); + var i = usize(0); + while (i < packed_array.len() - 1) : (i += 1) { + packed_slice = packed_slice.slice(1, packed_slice.len()); + } + } +} + +//@NOTE: As I do not have a big endian system to test this on, +// big endian values were not tested +test "PackedInt(Array/Slice) sliceCast" { + const PackedArray = PackedIntArray(u1, 16); + var packed_array = PackedArray.init([_]u1{ 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 }); + const packed_slice_cast_2 = packed_array.sliceCast(u2); + const packed_slice_cast_4 = packed_slice_cast_2.sliceCast(u4); + var packed_slice_cast_9 = packed_array.slice(0, (packed_array.len() / 9) * 9).sliceCast(u9); + const packed_slice_cast_3 = packed_slice_cast_9.sliceCast(u3); + + var i = usize(0); + while (i < packed_slice_cast_2.len()) : (i += 1) { + const val = switch (builtin.endian) { + .Big => 0b01, + .Little => 0b10, + }; + testing.expect(packed_slice_cast_2.get(i) == val); + } + i = 0; + while (i < packed_slice_cast_4.len()) : (i += 1) { + const val = switch (builtin.endian) { + .Big => 0b0101, + .Little => 0b1010, + }; + testing.expect(packed_slice_cast_4.get(i) == val); + } + i = 0; + while (i < packed_slice_cast_9.len()) : (i += 1) { + const val = 0b010101010; + testing.expect(packed_slice_cast_9.get(i) == val); + packed_slice_cast_9.set(i, 0b111000111); + } + i = 0; + while (i < packed_slice_cast_3.len()) : (i += 1) { + const val = switch (builtin.endian) { + .Big => if (i % 2 == 0) u3(0b111) else u3(0b000), + .Little => if (i % 2 == 0) u3(0b111) else u3(0b000), + }; + testing.expect(packed_slice_cast_3.get(i) == val); + } +} + +test "PackedInt(Array/Slice)Endian" { + { + const PackedArrayBe = PackedIntArrayEndian(u4, .Big, 8); + var packed_array_be = PackedArrayBe.init([_]u4{ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + }); + testing.expect(packed_array_be.bytes[0] == 0b00000001); + testing.expect(packed_array_be.bytes[1] == 0b00100011); + + var i = usize(0); + while (i < packed_array_be.len()) : (i += 1) { + testing.expect(packed_array_be.get(i) == i); + } + + var packed_slice_le = packed_array_be.sliceCastEndian(u4, .Little); + i = 0; + while (i < packed_slice_le.len()) : (i += 1) { + const val = if (i % 2 == 0) i + 1 else i - 1; + testing.expect(packed_slice_le.get(i) == val); + } + + var packed_slice_le_shift = packed_array_be.slice(1, 5).sliceCastEndian(u4, .Little); + i = 0; + while (i < packed_slice_le_shift.len()) : (i += 1) { + const val = if (i % 2 == 0) i else i + 2; + testing.expect(packed_slice_le_shift.get(i) == val); + } + } + + { + const PackedArrayBe = PackedIntArrayEndian(u11, .Big, 8); + var packed_array_be = PackedArrayBe.init([_]u11{ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + }); + testing.expect(packed_array_be.bytes[0] == 0b00000000); + testing.expect(packed_array_be.bytes[1] == 0b00000000); + testing.expect(packed_array_be.bytes[2] == 0b00000100); + testing.expect(packed_array_be.bytes[3] == 0b00000001); + testing.expect(packed_array_be.bytes[4] == 0b00000000); + + var i = usize(0); + while (i < packed_array_be.len()) : (i += 1) { + testing.expect(packed_array_be.get(i) == i); + } + + var packed_slice_le = packed_array_be.sliceCastEndian(u11, .Little); + testing.expect(packed_slice_le.get(0) == 0b00000000000); + testing.expect(packed_slice_le.get(1) == 0b00010000000); + testing.expect(packed_slice_le.get(2) == 0b00000000100); + testing.expect(packed_slice_le.get(3) == 0b00000000000); + testing.expect(packed_slice_le.get(4) == 0b00010000011); + testing.expect(packed_slice_le.get(5) == 0b00000000010); + testing.expect(packed_slice_le.get(6) == 0b10000010000); + testing.expect(packed_slice_le.get(7) == 0b00000111001); + + var packed_slice_le_shift = packed_array_be.slice(1, 5).sliceCastEndian(u11, .Little); + testing.expect(packed_slice_le_shift.get(0) == 0b00010000000); + testing.expect(packed_slice_le_shift.get(1) == 0b00000000100); + testing.expect(packed_slice_le_shift.get(2) == 0b00000000000); + testing.expect(packed_slice_le_shift.get(3) == 0b00010000011); + } +} + +//@NOTE: Need to manually update this list as more posix os's get +// added to DirectAllocator. + +//These tests prove we aren't accidentally accessing memory past +// the end of the array/slice by placing it at the end of a page +// and reading the last element. The assumption is that the page +// after this one is not mapped and will cause a segfault if we +// don't account for the bounds. +test "PackedIntArray at end of available memory" { + switch (builtin.os) { + .linux, .macosx, .ios, .freebsd, .netbsd, .windows => {}, + else => return, + } + const PackedArray = PackedIntArray(u3, 8); + + const Padded = struct { + _: [std.mem.page_size - @sizeOf(PackedArray)]u8, + p: PackedArray, + }; + + const allocator = std.heap.direct_allocator; + + var pad = try allocator.create(Padded); + defer allocator.destroy(pad); + pad.p.set(7, std.math.maxInt(u3)); +} + +test "PackedIntSlice at end of available memory" { + switch (builtin.os) { + .linux, .macosx, .ios, .freebsd, .netbsd, .windows => {}, + else => return, + } + const PackedSlice = PackedIntSlice(u11); + + const allocator = std.heap.direct_allocator; + + var page = try allocator.alloc(u8, std.mem.page_size); + defer allocator.free(page); + + var p = PackedSlice.init(page[std.mem.page_size - 2 ..], 1); + p.set(0, std.math.maxInt(u11)); +} diff --git a/lib/std/pdb.zig b/lib/std/pdb.zig new file mode 100644 index 0000000000..7a2b2c6b6b --- /dev/null +++ b/lib/std/pdb.zig @@ -0,0 +1,721 @@ +const builtin = @import("builtin"); +const std = @import("std.zig"); +const io = std.io; +const math = std.math; +const mem = std.mem; +const os = std.os; +const warn = std.debug.warn; +const coff = std.coff; +const File = std.fs.File; + +const ArrayList = std.ArrayList; + +// Note: most of this is based on information gathered from LLVM source code, +// documentation and/or contributors. + +// https://llvm.org/docs/PDB/DbiStream.html#stream-header +pub const DbiStreamHeader = packed struct { + VersionSignature: i32, + VersionHeader: u32, + Age: u32, + GlobalStreamIndex: u16, + BuildNumber: u16, + PublicStreamIndex: u16, + PdbDllVersion: u16, + SymRecordStream: u16, + PdbDllRbld: u16, + ModInfoSize: u32, + SectionContributionSize: u32, + SectionMapSize: u32, + SourceInfoSize: i32, + TypeServerSize: i32, + MFCTypeServerIndex: u32, + OptionalDbgHeaderSize: i32, + ECSubstreamSize: i32, + Flags: u16, + Machine: u16, + Padding: u32, +}; + +pub const SectionContribEntry = packed struct { + /// COFF Section index, 1-based + Section: u16, + Padding1: [2]u8, + Offset: u32, + Size: u32, + Characteristics: u32, + ModuleIndex: u16, + Padding2: [2]u8, + DataCrc: u32, + RelocCrc: u32, +}; + +pub const ModInfo = packed struct { + Unused1: u32, + SectionContr: SectionContribEntry, + Flags: u16, + ModuleSymStream: u16, + SymByteSize: u32, + C11ByteSize: u32, + C13ByteSize: u32, + SourceFileCount: u16, + Padding: [2]u8, + Unused2: u32, + SourceFileNameIndex: u32, + PdbFilePathNameIndex: u32, + // These fields are variable length + //ModuleName: char[], + //ObjFileName: char[], +}; + +pub const SectionMapHeader = packed struct { + /// Number of segment descriptors + Count: u16, + + /// Number of logical segment descriptors + LogCount: u16, +}; + +pub const SectionMapEntry = packed struct { + /// See the SectionMapEntryFlags enum below. + Flags: u16, + + /// Logical overlay number + Ovl: u16, + + /// Group index into descriptor array. + Group: u16, + Frame: u16, + + /// Byte index of segment / group name in string table, or 0xFFFF. + SectionName: u16, + + /// Byte index of class in string table, or 0xFFFF. + ClassName: u16, + + /// Byte offset of the logical segment within physical segment. If group is set in flags, this is the offset of the group. + Offset: u32, + + /// Byte count of the segment or group. + SectionLength: u32, +}; + +pub const StreamType = enum(u16) { + Pdb = 1, + Tpi = 2, + Dbi = 3, + Ipi = 4, +}; + +/// Duplicate copy of SymbolRecordKind, but using the official CV names. Useful +/// for reference purposes and when dealing with unknown record types. +pub const SymbolKind = packed enum(u16) { + S_COMPILE = 1, + S_REGISTER_16t = 2, + S_CONSTANT_16t = 3, + S_UDT_16t = 4, + S_SSEARCH = 5, + S_SKIP = 7, + S_CVRESERVE = 8, + S_OBJNAME_ST = 9, + S_ENDARG = 10, + S_COBOLUDT_16t = 11, + S_MANYREG_16t = 12, + S_RETURN = 13, + S_ENTRYTHIS = 14, + S_BPREL16 = 256, + S_LDATA16 = 257, + S_GDATA16 = 258, + S_PUB16 = 259, + S_LPROC16 = 260, + S_GPROC16 = 261, + S_THUNK16 = 262, + S_BLOCK16 = 263, + S_WITH16 = 264, + S_LABEL16 = 265, + S_CEXMODEL16 = 266, + S_VFTABLE16 = 267, + S_REGREL16 = 268, + S_BPREL32_16t = 512, + S_LDATA32_16t = 513, + S_GDATA32_16t = 514, + S_PUB32_16t = 515, + S_LPROC32_16t = 516, + S_GPROC32_16t = 517, + S_THUNK32_ST = 518, + S_BLOCK32_ST = 519, + S_WITH32_ST = 520, + S_LABEL32_ST = 521, + S_CEXMODEL32 = 522, + S_VFTABLE32_16t = 523, + S_REGREL32_16t = 524, + S_LTHREAD32_16t = 525, + S_GTHREAD32_16t = 526, + S_SLINK32 = 527, + S_LPROCMIPS_16t = 768, + S_GPROCMIPS_16t = 769, + S_PROCREF_ST = 1024, + S_DATAREF_ST = 1025, + S_ALIGN = 1026, + S_LPROCREF_ST = 1027, + S_OEM = 1028, + S_TI16_MAX = 4096, + S_REGISTER_ST = 4097, + S_CONSTANT_ST = 4098, + S_UDT_ST = 4099, + S_COBOLUDT_ST = 4100, + S_MANYREG_ST = 4101, + S_BPREL32_ST = 4102, + S_LDATA32_ST = 4103, + S_GDATA32_ST = 4104, + S_PUB32_ST = 4105, + S_LPROC32_ST = 4106, + S_GPROC32_ST = 4107, + S_VFTABLE32 = 4108, + S_REGREL32_ST = 4109, + S_LTHREAD32_ST = 4110, + S_GTHREAD32_ST = 4111, + S_LPROCMIPS_ST = 4112, + S_GPROCMIPS_ST = 4113, + S_COMPILE2_ST = 4115, + S_MANYREG2_ST = 4116, + S_LPROCIA64_ST = 4117, + S_GPROCIA64_ST = 4118, + S_LOCALSLOT_ST = 4119, + S_PARAMSLOT_ST = 4120, + S_ANNOTATION = 4121, + S_GMANPROC_ST = 4122, + S_LMANPROC_ST = 4123, + S_RESERVED1 = 4124, + S_RESERVED2 = 4125, + S_RESERVED3 = 4126, + S_RESERVED4 = 4127, + S_LMANDATA_ST = 4128, + S_GMANDATA_ST = 4129, + S_MANFRAMEREL_ST = 4130, + S_MANREGISTER_ST = 4131, + S_MANSLOT_ST = 4132, + S_MANMANYREG_ST = 4133, + S_MANREGREL_ST = 4134, + S_MANMANYREG2_ST = 4135, + S_MANTYPREF = 4136, + S_UNAMESPACE_ST = 4137, + S_ST_MAX = 4352, + S_WITH32 = 4356, + S_MANYREG = 4362, + S_LPROCMIPS = 4372, + S_GPROCMIPS = 4373, + S_MANYREG2 = 4375, + S_LPROCIA64 = 4376, + S_GPROCIA64 = 4377, + S_LOCALSLOT = 4378, + S_PARAMSLOT = 4379, + S_MANFRAMEREL = 4382, + S_MANREGISTER = 4383, + S_MANSLOT = 4384, + S_MANMANYREG = 4385, + S_MANREGREL = 4386, + S_MANMANYREG2 = 4387, + S_UNAMESPACE = 4388, + S_DATAREF = 4390, + S_ANNOTATIONREF = 4392, + S_TOKENREF = 4393, + S_GMANPROC = 4394, + S_LMANPROC = 4395, + S_ATTR_FRAMEREL = 4398, + S_ATTR_REGISTER = 4399, + S_ATTR_REGREL = 4400, + S_ATTR_MANYREG = 4401, + S_SEPCODE = 4402, + S_LOCAL_2005 = 4403, + S_DEFRANGE_2005 = 4404, + S_DEFRANGE2_2005 = 4405, + S_DISCARDED = 4411, + S_LPROCMIPS_ID = 4424, + S_GPROCMIPS_ID = 4425, + S_LPROCIA64_ID = 4426, + S_GPROCIA64_ID = 4427, + S_DEFRANGE_HLSL = 4432, + S_GDATA_HLSL = 4433, + S_LDATA_HLSL = 4434, + S_LOCAL_DPC_GROUPSHARED = 4436, + S_DEFRANGE_DPC_PTR_TAG = 4439, + S_DPC_SYM_TAG_MAP = 4440, + S_ARMSWITCHTABLE = 4441, + S_POGODATA = 4444, + S_INLINESITE2 = 4445, + S_MOD_TYPEREF = 4447, + S_REF_MINIPDB = 4448, + S_PDBMAP = 4449, + S_GDATA_HLSL32 = 4450, + S_LDATA_HLSL32 = 4451, + S_GDATA_HLSL32_EX = 4452, + S_LDATA_HLSL32_EX = 4453, + S_FASTLINK = 4455, + S_INLINEES = 4456, + S_END = 6, + S_INLINESITE_END = 4430, + S_PROC_ID_END = 4431, + S_THUNK32 = 4354, + S_TRAMPOLINE = 4396, + S_SECTION = 4406, + S_COFFGROUP = 4407, + S_EXPORT = 4408, + S_LPROC32 = 4367, + S_GPROC32 = 4368, + S_LPROC32_ID = 4422, + S_GPROC32_ID = 4423, + S_LPROC32_DPC = 4437, + S_LPROC32_DPC_ID = 4438, + S_REGISTER = 4358, + S_PUB32 = 4366, + S_PROCREF = 4389, + S_LPROCREF = 4391, + S_ENVBLOCK = 4413, + S_INLINESITE = 4429, + S_LOCAL = 4414, + S_DEFRANGE = 4415, + S_DEFRANGE_SUBFIELD = 4416, + S_DEFRANGE_REGISTER = 4417, + S_DEFRANGE_FRAMEPOINTER_REL = 4418, + S_DEFRANGE_SUBFIELD_REGISTER = 4419, + S_DEFRANGE_FRAMEPOINTER_REL_FULL_SCOPE = 4420, + S_DEFRANGE_REGISTER_REL = 4421, + S_BLOCK32 = 4355, + S_LABEL32 = 4357, + S_OBJNAME = 4353, + S_COMPILE2 = 4374, + S_COMPILE3 = 4412, + S_FRAMEPROC = 4114, + S_CALLSITEINFO = 4409, + S_FILESTATIC = 4435, + S_HEAPALLOCSITE = 4446, + S_FRAMECOOKIE = 4410, + S_CALLEES = 4442, + S_CALLERS = 4443, + S_UDT = 4360, + S_COBOLUDT = 4361, + S_BUILDINFO = 4428, + S_BPREL32 = 4363, + S_REGREL32 = 4369, + S_CONSTANT = 4359, + S_MANCONSTANT = 4397, + S_LDATA32 = 4364, + S_GDATA32 = 4365, + S_LMANDATA = 4380, + S_GMANDATA = 4381, + S_LTHREAD32 = 4370, + S_GTHREAD32 = 4371, +}; + +pub const TypeIndex = u32; + +pub const ProcSym = packed struct { + Parent: u32, + End: u32, + Next: u32, + CodeSize: u32, + DbgStart: u32, + DbgEnd: u32, + FunctionType: TypeIndex, + CodeOffset: u32, + Segment: u16, + Flags: ProcSymFlags, + // following is a null terminated string + // Name: [*]u8, +}; + +pub const ProcSymFlags = packed struct { + HasFP: bool, + HasIRET: bool, + HasFRET: bool, + IsNoReturn: bool, + IsUnreachable: bool, + HasCustomCallingConv: bool, + IsNoInline: bool, + HasOptimizedDebugInfo: bool, +}; + +pub const SectionContrSubstreamVersion = enum(u32) { + Ver60 = 0xeffe0000 + 19970605, + V2 = 0xeffe0000 + 20140516, +}; + +pub const RecordPrefix = packed struct { + /// Record length, starting from &RecordKind. + RecordLen: u16, + + /// Record kind enum (SymRecordKind or TypeRecordKind) + RecordKind: SymbolKind, +}; + +/// The following variable length array appears immediately after the header. +/// The structure definition follows. +/// LineBlockFragmentHeader Blocks[] +/// Each `LineBlockFragmentHeader` as specified below. +pub const LineFragmentHeader = packed struct { + /// Code offset of line contribution. + RelocOffset: u32, + + /// Code segment of line contribution. + RelocSegment: u16, + Flags: LineFlags, + + /// Code size of this line contribution. + CodeSize: u32, +}; + +pub const LineFlags = packed struct { + /// CV_LINES_HAVE_COLUMNS + LF_HaveColumns: bool, + unused: u15, +}; + +/// The following two variable length arrays appear immediately after the +/// header. The structure definitions follow. +/// LineNumberEntry Lines[NumLines]; +/// ColumnNumberEntry Columns[NumLines]; +pub const LineBlockFragmentHeader = packed struct { + /// Offset of FileChecksum entry in File + /// checksums buffer. The checksum entry then + /// contains another offset into the string + /// table of the actual name. + NameIndex: u32, + NumLines: u32, + + /// code size of block, in bytes + BlockSize: u32, +}; + +pub const LineNumberEntry = packed struct { + /// Offset to start of code bytes for line number + Offset: u32, + Flags: u32, + + /// TODO runtime crash when I make the actual type of Flags this + pub const Flags = packed struct { + /// Start line number + Start: u24, + /// Delta of lines to the end of the expression. Still unclear. + // TODO figure out the point of this field. + End: u7, + IsStatement: bool, + }; +}; + +pub const ColumnNumberEntry = packed struct { + StartColumn: u16, + EndColumn: u16, +}; + +/// Checksum bytes follow. +pub const FileChecksumEntryHeader = packed struct { + /// Byte offset of filename in global string table. + FileNameOffset: u32, + + /// Number of bytes of checksum. + ChecksumSize: u8, + + /// FileChecksumKind + ChecksumKind: u8, +}; + +pub const DebugSubsectionKind = packed enum(u32) { + None = 0, + Symbols = 0xf1, + Lines = 0xf2, + StringTable = 0xf3, + FileChecksums = 0xf4, + FrameData = 0xf5, + InlineeLines = 0xf6, + CrossScopeImports = 0xf7, + CrossScopeExports = 0xf8, + + // These appear to relate to .Net assembly info. + ILLines = 0xf9, + FuncMDTokenMap = 0xfa, + TypeMDTokenMap = 0xfb, + MergedAssemblyInput = 0xfc, + + CoffSymbolRVA = 0xfd, +}; + +pub const DebugSubsectionHeader = packed struct { + /// codeview::DebugSubsectionKind enum + Kind: DebugSubsectionKind, + + /// number of bytes occupied by this record. + Length: u32, +}; + +pub const PDBStringTableHeader = packed struct { + /// PDBStringTableSignature + Signature: u32, + + /// 1 or 2 + HashVersion: u32, + + /// Number of bytes of names buffer. + ByteSize: u32, +}; + +pub const Pdb = struct { + in_file: File, + allocator: *mem.Allocator, + coff: *coff.Coff, + string_table: *MsfStream, + dbi: *MsfStream, + + msf: Msf, + + pub fn openFile(self: *Pdb, coff_ptr: *coff.Coff, file_name: []u8) !void { + self.in_file = try File.openRead(file_name); + self.allocator = coff_ptr.allocator; + self.coff = coff_ptr; + + try self.msf.openFile(self.allocator, self.in_file); + } + + pub fn getStreamById(self: *Pdb, id: u32) ?*MsfStream { + if (id >= self.msf.streams.len) + return null; + return &self.msf.streams[id]; + } + + pub fn getStream(self: *Pdb, stream: StreamType) ?*MsfStream { + const id = @enumToInt(stream); + return self.getStreamById(id); + } +}; + +// see https://llvm.org/docs/PDB/MsfFile.html +const Msf = struct { + directory: MsfStream, + streams: []MsfStream, + + fn openFile(self: *Msf, allocator: *mem.Allocator, file: File) !void { + var file_stream = file.inStream(); + const in = &file_stream.stream; + + const superblock = try in.readStruct(SuperBlock); + + // Sanity checks + if (!mem.eql(u8, superblock.FileMagic, SuperBlock.file_magic)) + return error.InvalidDebugInfo; + if (superblock.FreeBlockMapBlock != 1 and superblock.FreeBlockMapBlock != 2) + return error.InvalidDebugInfo; + if (superblock.NumBlocks * superblock.BlockSize != try file.getEndPos()) + return error.InvalidDebugInfo; + switch (superblock.BlockSize) { + // llvm only supports 4096 but we can handle any of these values + 512, 1024, 2048, 4096 => {}, + else => return error.InvalidDebugInfo, + } + + const dir_block_count = blockCountFromSize(superblock.NumDirectoryBytes, superblock.BlockSize); + if (dir_block_count > superblock.BlockSize / @sizeOf(u32)) + return error.UnhandledBigDirectoryStream; // cf. BlockMapAddr comment. + + try file.seekTo(superblock.BlockSize * superblock.BlockMapAddr); + var dir_blocks = try allocator.alloc(u32, dir_block_count); + for (dir_blocks) |*b| { + b.* = try in.readIntLittle(u32); + } + self.directory = MsfStream.init( + superblock.BlockSize, + file, + dir_blocks, + ); + + const begin = self.directory.pos; + const stream_count = try self.directory.stream.readIntLittle(u32); + const stream_sizes = try allocator.alloc(u32, stream_count); + defer allocator.free(stream_sizes); + + // Microsoft's implementation uses u32(-1) for inexistant streams. + // These streams are not used, but still participate in the file + // and must be taken into account when resolving stream indices. + const Nil = 0xFFFFFFFF; + for (stream_sizes) |*s, i| { + const size = try self.directory.stream.readIntLittle(u32); + s.* = if (size == Nil) 0 else blockCountFromSize(size, superblock.BlockSize); + } + + self.streams = try allocator.alloc(MsfStream, stream_count); + for (self.streams) |*stream, i| { + const size = stream_sizes[i]; + if (size == 0) { + stream.* = MsfStream{ + .blocks = [_]u32{}, + }; + } else { + var blocks = try allocator.alloc(u32, size); + var j: u32 = 0; + while (j < size) : (j += 1) { + const block_id = try self.directory.stream.readIntLittle(u32); + const n = (block_id % superblock.BlockSize); + // 0 is for SuperBlock, 1 and 2 for FPMs. + if (block_id == 0 or n == 1 or n == 2 or block_id * superblock.BlockSize > try file.getEndPos()) + return error.InvalidBlockIndex; + blocks[j] = block_id; + } + + stream.* = MsfStream.init( + superblock.BlockSize, + file, + blocks, + ); + } + } + + const end = self.directory.pos; + if (end - begin != superblock.NumDirectoryBytes) + return error.InvalidStreamDirectory; + } +}; + +fn blockCountFromSize(size: u32, block_size: u32) u32 { + return (size + block_size - 1) / block_size; +} + +// https://llvm.org/docs/PDB/MsfFile.html#the-superblock +const SuperBlock = packed struct { + /// The LLVM docs list a space between C / C++ but empirically this is not the case. + const file_magic = "Microsoft C/C++ MSF 7.00\r\n\x1a\x44\x53\x00\x00\x00"; + + FileMagic: [file_magic.len]u8, + + /// The block size of the internal file system. Valid values are 512, 1024, + /// 2048, and 4096 bytes. Certain aspects of the MSF file layout vary depending + /// on the block sizes. For the purposes of LLVM, we handle only block sizes of + /// 4KiB, and all further discussion assumes a block size of 4KiB. + BlockSize: u32, + + /// The index of a block within the file, at which begins a bitfield representing + /// the set of all blocks within the file which are “free” (i.e. the data within + /// that block is not used). See The Free Block Map for more information. Important: + /// FreeBlockMapBlock can only be 1 or 2! + FreeBlockMapBlock: u32, + + /// The total number of blocks in the file. NumBlocks * BlockSize should equal the + /// size of the file on disk. + NumBlocks: u32, + + /// The size of the stream directory, in bytes. The stream directory contains + /// information about each stream’s size and the set of blocks that it occupies. + /// It will be described in more detail later. + NumDirectoryBytes: u32, + + Unknown: u32, + /// The index of a block within the MSF file. At this block is an array of + /// ulittle32_t’s listing the blocks that the stream directory resides on. + /// For large MSF files, the stream directory (which describes the block + /// layout of each stream) may not fit entirely on a single block. As a + /// result, this extra layer of indirection is introduced, whereby this + /// block contains the list of blocks that the stream directory occupies, + /// and the stream directory itself can be stitched together accordingly. + /// The number of ulittle32_t’s in this array is given by + /// ceil(NumDirectoryBytes / BlockSize). + // Note: microsoft-pdb code actually suggests this is a variable-length + // array. If the indices of blocks occupied by the Stream Directory didn't + // fit in one page, there would be other u32 following it. + // This would mean the Stream Directory is bigger than BlockSize / sizeof(u32) + // blocks. We're not even close to this with a 1GB pdb file, and LLVM didn't + // implement it so we're kind of safe making this assumption for now. + BlockMapAddr: u32, +}; + +const MsfStream = struct { + in_file: File = undefined, + pos: u64 = undefined, + blocks: []u32 = undefined, + block_size: u32 = undefined, + + /// Implementation of InStream trait for Pdb.MsfStream + stream: Stream = undefined, + + pub const Error = @typeOf(read).ReturnType.ErrorSet; + pub const Stream = io.InStream(Error); + + fn init(block_size: u32, file: File, blocks: []u32) MsfStream { + const stream = MsfStream{ + .in_file = file, + .pos = 0, + .blocks = blocks, + .block_size = block_size, + .stream = Stream{ .readFn = readFn }, + }; + + return stream; + } + + fn readNullTermString(self: *MsfStream, allocator: *mem.Allocator) ![]u8 { + var list = ArrayList(u8).init(allocator); + while (true) { + const byte = try self.stream.readByte(); + if (byte == 0) { + return list.toSlice(); + } + try list.append(byte); + } + } + + fn read(self: *MsfStream, buffer: []u8) !usize { + var block_id = @intCast(usize, self.pos / self.block_size); + var block = self.blocks[block_id]; + var offset = self.pos % self.block_size; + + try self.in_file.seekTo(block * self.block_size + offset); + var file_stream = self.in_file.inStream(); + const in = &file_stream.stream; + + var size: usize = 0; + var rem_buffer = buffer; + while (size < buffer.len) { + const size_to_read = math.min(self.block_size - offset, rem_buffer.len); + size += try in.read(rem_buffer[0..size_to_read]); + rem_buffer = buffer[size..]; + offset += size_to_read; + + // If we're at the end of a block, go to the next one. + if (offset == self.block_size) { + offset = 0; + block_id += 1; + block = self.blocks[block_id]; + try self.in_file.seekTo(block * self.block_size); + } + } + + self.pos += buffer.len; + return buffer.len; + } + + fn seekBy(self: *MsfStream, len: i64) !void { + self.pos = @intCast(u64, @intCast(i64, self.pos) + len); + if (self.pos >= self.blocks.len * self.block_size) + return error.EOF; + } + + fn seekTo(self: *MsfStream, len: u64) !void { + self.pos = len; + if (self.pos >= self.blocks.len * self.block_size) + return error.EOF; + } + + fn getSize(self: *const MsfStream) u64 { + return self.blocks.len * self.block_size; + } + + fn getFilePos(self: MsfStream) u64 { + const block_id = self.pos / self.block_size; + const block = self.blocks[block_id]; + const offset = self.pos % self.block_size; + + return block * self.block_size + offset; + } + + fn readFn(in_stream: *Stream, buffer: []u8) Error!usize { + const self = @fieldParentPtr(MsfStream, "stream", in_stream); + return self.read(buffer); + } +}; diff --git a/lib/std/priority_queue.zig b/lib/std/priority_queue.zig new file mode 100644 index 0000000000..e6f398a551 --- /dev/null +++ b/lib/std/priority_queue.zig @@ -0,0 +1,370 @@ +const std = @import("std.zig"); +const Allocator = std.mem.Allocator; +const debug = std.debug; +const expect = std.testing.expect; +const expectEqual = std.testing.expectEqual; + +pub fn PriorityQueue(comptime T: type) type { + return struct { + const Self = @This(); + + items: []T, + len: usize, + allocator: *Allocator, + compareFn: fn (a: T, b: T) bool, + + pub fn init(allocator: *Allocator, compareFn: fn (a: T, b: T) bool) Self { + return Self{ + .items = [_]T{}, + .len = 0, + .allocator = allocator, + .compareFn = compareFn, + }; + } + + pub fn deinit(self: Self) void { + self.allocator.free(self.items); + } + + pub fn add(self: *Self, elem: T) !void { + try ensureCapacity(self, self.len + 1); + addUnchecked(self, elem); + } + + fn addUnchecked(self: *Self, elem: T) void { + self.items[self.len] = elem; + var child_index = self.len; + while (child_index > 0) { + var parent_index = ((child_index - 1) >> 1); + const child = self.items[child_index]; + const parent = self.items[parent_index]; + + if (!self.compareFn(child, parent)) break; + + self.items[parent_index] = child; + self.items[child_index] = parent; + child_index = parent_index; + } + self.len += 1; + } + + pub fn addSlice(self: *Self, items: []const T) !void { + try self.ensureCapacity(self.len + items.len); + for (items) |e| { + self.addUnchecked(e); + } + } + + pub fn peek(self: *Self) ?T { + return if (self.len > 0) self.items[0] else null; + } + + pub fn removeOrNull(self: *Self) ?T { + return if (self.len > 0) self.remove() else null; + } + + pub fn remove(self: *Self) T { + const first = self.items[0]; + const last = self.items[self.len - 1]; + self.items[0] = last; + self.len -= 1; + siftDown(self, 0); + return first; + } + + pub fn count(self: Self) usize { + return self.len; + } + + pub fn capacity(self: Self) usize { + return self.items.len; + } + + fn siftDown(self: *Self, start_index: usize) void { + var index = start_index; + const half = self.len >> 1; + while (true) { + var left_index = (index << 1) + 1; + var right_index = left_index + 1; + var left = if (left_index < self.len) self.items[left_index] else null; + var right = if (right_index < self.len) self.items[right_index] else null; + + var smallest_index = index; + var smallest = self.items[index]; + + if (left) |e| { + if (self.compareFn(e, smallest)) { + smallest_index = left_index; + smallest = e; + } + } + + if (right) |e| { + if (self.compareFn(e, smallest)) { + smallest_index = right_index; + smallest = e; + } + } + + if (smallest_index == index) return; + + self.items[smallest_index] = self.items[index]; + self.items[index] = smallest; + index = smallest_index; + + if (index >= half) return; + } + } + + /// PriorityQueue takes ownership of the passed in slice. The slice must have been + /// allocated with `allocator`. + /// Deinitialize with `deinit`. + pub fn fromOwnedSlice(allocator: *Allocator, compareFn: fn (a: T, b: T) bool, items: []T) Self { + var queue = Self{ + .items = items, + .len = items.len, + .allocator = allocator, + .compareFn = compareFn, + }; + const half = (queue.len >> 1) - 1; + var i: usize = 0; + while (i <= half) : (i += 1) { + queue.siftDown(half - i); + } + return queue; + } + + pub fn ensureCapacity(self: *Self, new_capacity: usize) !void { + var better_capacity = self.capacity(); + if (better_capacity >= new_capacity) return; + while (true) { + better_capacity += better_capacity / 2 + 8; + if (better_capacity >= new_capacity) break; + } + self.items = try self.allocator.realloc(self.items, better_capacity); + } + + pub fn resize(self: *Self, new_len: usize) !void { + try self.ensureCapacity(new_len); + self.len = new_len; + } + + pub fn shrink(self: *Self, new_len: usize) void { + // TODO take advantage of the new realloc semantics + assert(new_len <= self.len); + self.len = new_len; + } + + const Iterator = struct { + queue: *PriorityQueue(T), + count: usize, + + fn next(it: *Iterator) ?T { + if (it.count > it.queue.len - 1) return null; + const out = it.count; + it.count += 1; + return it.queue.items[out]; + } + + fn reset(it: *Iterator) void { + it.count = 0; + } + }; + + pub fn iterator(self: *Self) Iterator { + return Iterator{ + .queue = self, + .count = 0, + }; + } + + fn dump(self: *Self) void { + warn("{{ "); + warn("items: "); + for (self.items) |e, i| { + if (i >= self.len) break; + warn("{}, ", e); + } + warn("array: "); + for (self.items) |e, i| { + warn("{}, ", e); + } + warn("len: {} ", self.len); + warn("capacity: {}", self.capacity()); + warn(" }}\n"); + } + }; +} + +fn lessThan(a: u32, b: u32) bool { + return a < b; +} + +fn greaterThan(a: u32, b: u32) bool { + return a > b; +} + +const PQ = PriorityQueue(u32); + +test "std.PriorityQueue: add and remove min heap" { + var queue = PQ.init(debug.global_allocator, lessThan); + defer queue.deinit(); + + try queue.add(54); + try queue.add(12); + try queue.add(7); + try queue.add(23); + try queue.add(25); + try queue.add(13); + expectEqual(u32(7), queue.remove()); + expectEqual(u32(12), queue.remove()); + expectEqual(u32(13), queue.remove()); + expectEqual(u32(23), queue.remove()); + expectEqual(u32(25), queue.remove()); + expectEqual(u32(54), queue.remove()); +} + +test "std.PriorityQueue: add and remove same min heap" { + var queue = PQ.init(debug.global_allocator, lessThan); + defer queue.deinit(); + + try queue.add(1); + try queue.add(1); + try queue.add(2); + try queue.add(2); + try queue.add(1); + try queue.add(1); + expectEqual(u32(1), queue.remove()); + expectEqual(u32(1), queue.remove()); + expectEqual(u32(1), queue.remove()); + expectEqual(u32(1), queue.remove()); + expectEqual(u32(2), queue.remove()); + expectEqual(u32(2), queue.remove()); +} + +test "std.PriorityQueue: removeOrNull on empty" { + var queue = PQ.init(debug.global_allocator, lessThan); + defer queue.deinit(); + + expect(queue.removeOrNull() == null); +} + +test "std.PriorityQueue: edge case 3 elements" { + var queue = PQ.init(debug.global_allocator, lessThan); + defer queue.deinit(); + + try queue.add(9); + try queue.add(3); + try queue.add(2); + expectEqual(u32(2), queue.remove()); + expectEqual(u32(3), queue.remove()); + expectEqual(u32(9), queue.remove()); +} + +test "std.PriorityQueue: peek" { + var queue = PQ.init(debug.global_allocator, lessThan); + defer queue.deinit(); + + expect(queue.peek() == null); + try queue.add(9); + try queue.add(3); + try queue.add(2); + expectEqual(u32(2), queue.peek().?); + expectEqual(u32(2), queue.peek().?); +} + +test "std.PriorityQueue: sift up with odd indices" { + var queue = PQ.init(debug.global_allocator, lessThan); + defer queue.deinit(); + const items = [_]u32{ 15, 7, 21, 14, 13, 22, 12, 6, 7, 25, 5, 24, 11, 16, 15, 24, 2, 1 }; + for (items) |e| { + try queue.add(e); + } + + const sorted_items = [_]u32{ 1, 2, 5, 6, 7, 7, 11, 12, 13, 14, 15, 15, 16, 21, 22, 24, 24, 25 }; + for (sorted_items) |e| { + expectEqual(e, queue.remove()); + } +} + +test "std.PriorityQueue: addSlice" { + var queue = PQ.init(debug.global_allocator, lessThan); + defer queue.deinit(); + const items = [_]u32{ 15, 7, 21, 14, 13, 22, 12, 6, 7, 25, 5, 24, 11, 16, 15, 24, 2, 1 }; + try queue.addSlice(items[0..]); + + const sorted_items = [_]u32{ 1, 2, 5, 6, 7, 7, 11, 12, 13, 14, 15, 15, 16, 21, 22, 24, 24, 25 }; + for (sorted_items) |e| { + expectEqual(e, queue.remove()); + } +} + +test "std.PriorityQueue: fromOwnedSlice" { + const items = [_]u32{ 15, 7, 21, 14, 13, 22, 12, 6, 7, 25, 5, 24, 11, 16, 15, 24, 2, 1 }; + const heap_items = try std.mem.dupe(debug.global_allocator, u32, items[0..]); + var queue = PQ.fromOwnedSlice(debug.global_allocator, lessThan, heap_items[0..]); + defer queue.deinit(); + + const sorted_items = [_]u32{ 1, 2, 5, 6, 7, 7, 11, 12, 13, 14, 15, 15, 16, 21, 22, 24, 24, 25 }; + for (sorted_items) |e| { + expectEqual(e, queue.remove()); + } +} + +test "std.PriorityQueue: add and remove max heap" { + var queue = PQ.init(debug.global_allocator, greaterThan); + defer queue.deinit(); + + try queue.add(54); + try queue.add(12); + try queue.add(7); + try queue.add(23); + try queue.add(25); + try queue.add(13); + expectEqual(u32(54), queue.remove()); + expectEqual(u32(25), queue.remove()); + expectEqual(u32(23), queue.remove()); + expectEqual(u32(13), queue.remove()); + expectEqual(u32(12), queue.remove()); + expectEqual(u32(7), queue.remove()); +} + +test "std.PriorityQueue: add and remove same max heap" { + var queue = PQ.init(debug.global_allocator, greaterThan); + defer queue.deinit(); + + try queue.add(1); + try queue.add(1); + try queue.add(2); + try queue.add(2); + try queue.add(1); + try queue.add(1); + expectEqual(u32(2), queue.remove()); + expectEqual(u32(2), queue.remove()); + expectEqual(u32(1), queue.remove()); + expectEqual(u32(1), queue.remove()); + expectEqual(u32(1), queue.remove()); + expectEqual(u32(1), queue.remove()); +} + +test "std.PriorityQueue: iterator" { + var queue = PQ.init(debug.global_allocator, lessThan); + var map = std.AutoHashMap(u32, void).init(debug.global_allocator); + defer { + queue.deinit(); + map.deinit(); + } + + const items = [_]u32{ 54, 12, 7, 23, 25, 13 }; + for (items) |e| { + _ = try queue.add(e); + _ = try map.put(e, {}); + } + + var it = queue.iterator(); + while (it.next()) |e| { + _ = map.remove(e); + } + + expectEqual(usize(0), map.count()); +} diff --git a/lib/std/process.zig b/lib/std/process.zig new file mode 100644 index 0000000000..c74e8c43be --- /dev/null +++ b/lib/std/process.zig @@ -0,0 +1,616 @@ +const builtin = @import("builtin"); +const std = @import("std.zig"); +const os = std.os; +const fs = std.fs; +const BufMap = std.BufMap; +const Buffer = std.Buffer; +const mem = std.mem; +const math = std.math; +const Allocator = mem.Allocator; +const assert = std.debug.assert; +const testing = std.testing; + +pub const abort = os.abort; +pub const exit = os.exit; +pub const changeCurDir = os.chdir; +pub const changeCurDirC = os.chdirC; + +/// The result is a slice of `out_buffer`, from index `0`. +pub fn getCwd(out_buffer: *[fs.MAX_PATH_BYTES]u8) ![]u8 { + return os.getcwd(out_buffer); +} + +/// Caller must free the returned memory. +pub fn getCwdAlloc(allocator: *Allocator) ![]u8 { + var buf: [fs.MAX_PATH_BYTES]u8 = undefined; + return mem.dupe(allocator, u8, try os.getcwd(&buf)); +} + +test "getCwdAlloc" { + // at least call it so it gets compiled + var buf: [1000]u8 = undefined; + const allocator = &std.heap.FixedBufferAllocator.init(&buf).allocator; + _ = getCwdAlloc(allocator) catch undefined; +} + +/// Caller must free result when done. +/// TODO make this go through libc when we have it +pub fn getEnvMap(allocator: *Allocator) !BufMap { + var result = BufMap.init(allocator); + errdefer result.deinit(); + + if (os.windows.is_the_target) { + const ptr = try os.windows.GetEnvironmentStringsW(); + defer os.windows.FreeEnvironmentStringsW(ptr); + + var i: usize = 0; + while (true) { + if (ptr[i] == 0) return result; + + const key_start = i; + + while (ptr[i] != 0 and ptr[i] != '=') : (i += 1) {} + const key_w = ptr[key_start..i]; + const key = try std.unicode.utf16leToUtf8Alloc(allocator, key_w); + errdefer allocator.free(key); + + if (ptr[i] == '=') i += 1; + + const value_start = i; + while (ptr[i] != 0) : (i += 1) {} + const value_w = ptr[value_start..i]; + const value = try std.unicode.utf16leToUtf8Alloc(allocator, value_w); + errdefer allocator.free(value); + + i += 1; // skip over null byte + + try result.setMove(key, value); + } + } else if (builtin.os == .wasi) { + var environ_count: usize = undefined; + var environ_buf_size: usize = undefined; + + const environ_sizes_get_ret = os.wasi.environ_sizes_get(&environ_count, &environ_buf_size); + if (environ_sizes_get_ret != os.wasi.ESUCCESS) { + return os.unexpectedErrno(environ_sizes_get_ret); + } + + // TODO: Verify that the documentation is incorrect + // https://github.com/WebAssembly/WASI/issues/27 + var environ = try allocator.alloc(?[*]u8, environ_count + 1); + defer allocator.free(environ); + var environ_buf = try std.heap.wasm_allocator.alloc(u8, environ_buf_size); + defer allocator.free(environ_buf); + + const environ_get_ret = os.wasi.environ_get(environ.ptr, environ_buf.ptr); + if (environ_get_ret != os.wasi.ESUCCESS) { + return os.unexpectedErrno(environ_get_ret); + } + + for (environ) |env| { + if (env) |ptr| { + const pair = mem.toSlice(u8, ptr); + var parts = mem.separate(pair, "="); + const key = parts.next().?; + const value = parts.next().?; + try result.set(key, value); + } + } + return result; + } else { + for (os.environ) |ptr| { + var line_i: usize = 0; + while (ptr[line_i] != 0 and ptr[line_i] != '=') : (line_i += 1) {} + const key = ptr[0..line_i]; + + var end_i: usize = line_i; + while (ptr[end_i] != 0) : (end_i += 1) {} + const value = ptr[line_i + 1 .. end_i]; + + try result.set(key, value); + } + return result; + } +} + +test "os.getEnvMap" { + var env = try getEnvMap(std.debug.global_allocator); + defer env.deinit(); +} + +pub const GetEnvVarOwnedError = error{ + OutOfMemory, + EnvironmentVariableNotFound, + + /// See https://github.com/ziglang/zig/issues/1774 + InvalidUtf8, +}; + +/// Caller must free returned memory. +/// TODO make this go through libc when we have it +pub fn getEnvVarOwned(allocator: *mem.Allocator, key: []const u8) GetEnvVarOwnedError![]u8 { + if (os.windows.is_the_target) { + const key_with_null = try std.unicode.utf8ToUtf16LeWithNull(allocator, key); + defer allocator.free(key_with_null); + + var buf = try allocator.alloc(u16, 256); + defer allocator.free(buf); + + while (true) { + const windows_buf_len = math.cast(os.windows.DWORD, buf.len) catch return error.OutOfMemory; + const result = os.windows.GetEnvironmentVariableW( + key_with_null.ptr, + buf.ptr, + windows_buf_len, + ) catch |err| switch (err) { + error.Unexpected => return error.EnvironmentVariableNotFound, + else => |e| return e, + }; + if (result > buf.len) { + buf = try allocator.realloc(buf, result); + continue; + } + + return std.unicode.utf16leToUtf8Alloc(allocator, buf[0..result]) catch |err| switch (err) { + error.DanglingSurrogateHalf => return error.InvalidUtf8, + error.ExpectedSecondSurrogateHalf => return error.InvalidUtf8, + error.UnexpectedSecondSurrogateHalf => return error.InvalidUtf8, + else => |e| return e, + }; + } + } else { + const result = os.getenv(key) orelse return error.EnvironmentVariableNotFound; + return mem.dupe(allocator, u8, result); + } +} + +test "os.getEnvVarOwned" { + var ga = std.debug.global_allocator; + testing.expectError(error.EnvironmentVariableNotFound, getEnvVarOwned(ga, "BADENV")); +} + +pub const ArgIteratorPosix = struct { + index: usize, + count: usize, + + pub fn init() ArgIteratorPosix { + return ArgIteratorPosix{ + .index = 0, + .count = os.argv.len, + }; + } + + pub fn next(self: *ArgIteratorPosix) ?[]const u8 { + if (self.index == self.count) return null; + + const s = os.argv[self.index]; + self.index += 1; + return mem.toSlice(u8, s); + } + + pub fn skip(self: *ArgIteratorPosix) bool { + if (self.index == self.count) return false; + + self.index += 1; + return true; + } +}; + +pub const ArgIteratorWindows = struct { + index: usize, + cmd_line: [*]const u8, + in_quote: bool, + quote_count: usize, + seen_quote_count: usize, + + pub const NextError = error{OutOfMemory}; + + pub fn init() ArgIteratorWindows { + return initWithCmdLine(os.windows.kernel32.GetCommandLineA()); + } + + pub fn initWithCmdLine(cmd_line: [*]const u8) ArgIteratorWindows { + return ArgIteratorWindows{ + .index = 0, + .cmd_line = cmd_line, + .in_quote = false, + .quote_count = countQuotes(cmd_line), + .seen_quote_count = 0, + }; + } + + /// You must free the returned memory when done. + pub fn next(self: *ArgIteratorWindows, allocator: *Allocator) ?(NextError![]u8) { + // march forward over whitespace + while (true) : (self.index += 1) { + const byte = self.cmd_line[self.index]; + switch (byte) { + 0 => return null, + ' ', '\t' => continue, + else => break, + } + } + + return self.internalNext(allocator); + } + + pub fn skip(self: *ArgIteratorWindows) bool { + // march forward over whitespace + while (true) : (self.index += 1) { + const byte = self.cmd_line[self.index]; + switch (byte) { + 0 => return false, + ' ', '\t' => continue, + else => break, + } + } + + var backslash_count: usize = 0; + while (true) : (self.index += 1) { + const byte = self.cmd_line[self.index]; + switch (byte) { + 0 => return true, + '"' => { + const quote_is_real = backslash_count % 2 == 0; + if (quote_is_real) { + self.seen_quote_count += 1; + } + }, + '\\' => { + backslash_count += 1; + }, + ' ', '\t' => { + if (self.seen_quote_count % 2 == 0 or self.seen_quote_count == self.quote_count) { + return true; + } + backslash_count = 0; + }, + else => { + backslash_count = 0; + continue; + }, + } + } + } + + fn internalNext(self: *ArgIteratorWindows, allocator: *Allocator) NextError![]u8 { + var buf = try Buffer.initSize(allocator, 0); + defer buf.deinit(); + + var backslash_count: usize = 0; + while (true) : (self.index += 1) { + const byte = self.cmd_line[self.index]; + switch (byte) { + 0 => return buf.toOwnedSlice(), + '"' => { + const quote_is_real = backslash_count % 2 == 0; + try self.emitBackslashes(&buf, backslash_count / 2); + backslash_count = 0; + + if (quote_is_real) { + self.seen_quote_count += 1; + if (self.seen_quote_count == self.quote_count and self.seen_quote_count % 2 == 1) { + try buf.appendByte('"'); + } + } else { + try buf.appendByte('"'); + } + }, + '\\' => { + backslash_count += 1; + }, + ' ', '\t' => { + try self.emitBackslashes(&buf, backslash_count); + backslash_count = 0; + if (self.seen_quote_count % 2 == 1 and self.seen_quote_count != self.quote_count) { + try buf.appendByte(byte); + } else { + return buf.toOwnedSlice(); + } + }, + else => { + try self.emitBackslashes(&buf, backslash_count); + backslash_count = 0; + try buf.appendByte(byte); + }, + } + } + } + + fn emitBackslashes(self: *ArgIteratorWindows, buf: *Buffer, emit_count: usize) !void { + var i: usize = 0; + while (i < emit_count) : (i += 1) { + try buf.appendByte('\\'); + } + } + + fn countQuotes(cmd_line: [*]const u8) usize { + var result: usize = 0; + var backslash_count: usize = 0; + var index: usize = 0; + while (true) : (index += 1) { + const byte = cmd_line[index]; + switch (byte) { + 0 => return result, + '\\' => backslash_count += 1, + '"' => { + result += 1 - (backslash_count % 2); + backslash_count = 0; + }, + else => { + backslash_count = 0; + }, + } + } + } +}; + +pub const ArgIterator = struct { + const InnerType = if (builtin.os == .windows) ArgIteratorWindows else ArgIteratorPosix; + + inner: InnerType, + + pub fn init() ArgIterator { + if (builtin.os == .wasi) { + // TODO: Figure out a compatible interface accomodating WASI + @compileError("ArgIterator is not yet supported in WASI. Use argsAlloc and argsFree instead."); + } + + return ArgIterator{ .inner = InnerType.init() }; + } + + pub const NextError = ArgIteratorWindows.NextError; + + /// You must free the returned memory when done. + pub fn next(self: *ArgIterator, allocator: *Allocator) ?(NextError![]u8) { + if (builtin.os == .windows) { + return self.inner.next(allocator); + } else { + return mem.dupe(allocator, u8, self.inner.next() orelse return null); + } + } + + /// If you only are targeting posix you can call this and not need an allocator. + pub fn nextPosix(self: *ArgIterator) ?[]const u8 { + return self.inner.next(); + } + + /// Parse past 1 argument without capturing it. + /// Returns `true` if skipped an arg, `false` if we are at the end. + pub fn skip(self: *ArgIterator) bool { + return self.inner.skip(); + } +}; + +pub fn args() ArgIterator { + return ArgIterator.init(); +} + +/// Caller must call argsFree on result. +pub fn argsAlloc(allocator: *mem.Allocator) ![][]u8 { + if (builtin.os == .wasi) { + var count: usize = undefined; + var buf_size: usize = undefined; + + const args_sizes_get_ret = os.wasi.args_sizes_get(&count, &buf_size); + if (args_sizes_get_ret != os.wasi.ESUCCESS) { + return os.unexpectedErrno(args_sizes_get_ret); + } + + var argv = try allocator.alloc([*]u8, count); + defer allocator.free(argv); + + var argv_buf = try allocator.alloc(u8, buf_size); + const args_get_ret = os.wasi.args_get(argv.ptr, argv_buf.ptr); + if (args_get_ret != os.wasi.ESUCCESS) { + return os.unexpectedErrno(args_get_ret); + } + + var result_slice = try allocator.alloc([]u8, count); + + var i: usize = 0; + while (i < count) : (i += 1) { + result_slice[i] = mem.toSlice(u8, argv[i]); + } + + return result_slice; + } + + // TODO refactor to only make 1 allocation. + var it = args(); + var contents = try Buffer.initSize(allocator, 0); + defer contents.deinit(); + + var slice_list = std.ArrayList(usize).init(allocator); + defer slice_list.deinit(); + + while (it.next(allocator)) |arg_or_err| { + const arg = try arg_or_err; + defer allocator.free(arg); + try contents.append(arg); + try slice_list.append(arg.len); + } + + const contents_slice = contents.toSliceConst(); + const slice_sizes = slice_list.toSliceConst(); + const slice_list_bytes = try math.mul(usize, @sizeOf([]u8), slice_sizes.len); + const total_bytes = try math.add(usize, slice_list_bytes, contents_slice.len); + const buf = try allocator.alignedAlloc(u8, @alignOf([]u8), total_bytes); + errdefer allocator.free(buf); + + const result_slice_list = @bytesToSlice([]u8, buf[0..slice_list_bytes]); + const result_contents = buf[slice_list_bytes..]; + mem.copy(u8, result_contents, contents_slice); + + var contents_index: usize = 0; + for (slice_sizes) |len, i| { + const new_index = contents_index + len; + result_slice_list[i] = result_contents[contents_index..new_index]; + contents_index = new_index; + } + + return result_slice_list; +} + +pub fn argsFree(allocator: *mem.Allocator, args_alloc: []const []u8) void { + if (builtin.os == .wasi) { + const last_item = args_alloc[args_alloc.len - 1]; + const last_byte_addr = @ptrToInt(last_item.ptr) + last_item.len + 1; // null terminated + const first_item_ptr = args_alloc[0].ptr; + const len = last_byte_addr - @ptrToInt(first_item_ptr); + allocator.free(first_item_ptr[0..len]); + + return allocator.free(args_alloc); + } + + var total_bytes: usize = 0; + for (args_alloc) |arg| { + total_bytes += @sizeOf([]u8) + arg.len; + } + const unaligned_allocated_buf = @ptrCast([*]const u8, args_alloc.ptr)[0..total_bytes]; + const aligned_allocated_buf = @alignCast(@alignOf([]u8), unaligned_allocated_buf); + return allocator.free(aligned_allocated_buf); +} + +test "windows arg parsing" { + testWindowsCmdLine(c"a b\tc d", [_][]const u8{ "a", "b", "c", "d" }); + testWindowsCmdLine(c"\"abc\" d e", [_][]const u8{ "abc", "d", "e" }); + testWindowsCmdLine(c"a\\\\\\b d\"e f\"g h", [_][]const u8{ "a\\\\\\b", "de fg", "h" }); + testWindowsCmdLine(c"a\\\\\\\"b c d", [_][]const u8{ "a\\\"b", "c", "d" }); + testWindowsCmdLine(c"a\\\\\\\\\"b c\" d e", [_][]const u8{ "a\\\\b c", "d", "e" }); + testWindowsCmdLine(c"a b\tc \"d f", [_][]const u8{ "a", "b", "c", "\"d", "f" }); + + testWindowsCmdLine(c"\".\\..\\zig-cache\\build\" \"bin\\zig.exe\" \".\\..\" \".\\..\\zig-cache\" \"--help\"", [_][]const u8{ + ".\\..\\zig-cache\\build", + "bin\\zig.exe", + ".\\..", + ".\\..\\zig-cache", + "--help", + }); +} + +fn testWindowsCmdLine(input_cmd_line: [*]const u8, expected_args: []const []const u8) void { + var it = ArgIteratorWindows.initWithCmdLine(input_cmd_line); + for (expected_args) |expected_arg| { + const arg = it.next(std.debug.global_allocator).? catch unreachable; + testing.expectEqualSlices(u8, expected_arg, arg); + } + testing.expect(it.next(std.debug.global_allocator) == null); +} + +pub const UserInfo = struct { + uid: u32, + gid: u32, +}; + +/// POSIX function which gets a uid from username. +pub fn getUserInfo(name: []const u8) !UserInfo { + return switch (builtin.os) { + .linux, .macosx, .watchos, .tvos, .ios, .freebsd, .netbsd => posixGetUserInfo(name), + else => @compileError("Unsupported OS"), + }; +} + +/// TODO this reads /etc/passwd. But sometimes the user/id mapping is in something else +/// like NIS, AD, etc. See `man nss` or look at an strace for `id myuser`. +pub fn posixGetUserInfo(name: []const u8) !UserInfo { + var in_stream = try io.InStream.open("/etc/passwd", null); + defer in_stream.close(); + + const State = enum { + Start, + WaitForNextLine, + SkipPassword, + ReadUserId, + ReadGroupId, + }; + + var buf: [std.mem.page_size]u8 = undefined; + var name_index: usize = 0; + var state = State.Start; + var uid: u32 = 0; + var gid: u32 = 0; + + while (true) { + const amt_read = try in_stream.read(buf[0..]); + for (buf[0..amt_read]) |byte| { + switch (state) { + .Start => switch (byte) { + ':' => { + state = if (name_index == name.len) State.SkipPassword else State.WaitForNextLine; + }, + '\n' => return error.CorruptPasswordFile, + else => { + if (name_index == name.len or name[name_index] != byte) { + state = .WaitForNextLine; + } + name_index += 1; + }, + }, + .WaitForNextLine => switch (byte) { + '\n' => { + name_index = 0; + state = .Start; + }, + else => continue, + }, + .SkipPassword => switch (byte) { + '\n' => return error.CorruptPasswordFile, + ':' => { + state = .ReadUserId; + }, + else => continue, + }, + .ReadUserId => switch (byte) { + ':' => { + state = .ReadGroupId; + }, + '\n' => return error.CorruptPasswordFile, + else => { + const digit = switch (byte) { + '0'...'9' => byte - '0', + else => return error.CorruptPasswordFile, + }; + if (@mulWithOverflow(u32, uid, 10, *uid)) return error.CorruptPasswordFile; + if (@addWithOverflow(u32, uid, digit, *uid)) return error.CorruptPasswordFile; + }, + }, + .ReadGroupId => switch (byte) { + '\n', ':' => { + return UserInfo{ + .uid = uid, + .gid = gid, + }; + }, + else => { + const digit = switch (byte) { + '0'...'9' => byte - '0', + else => return error.CorruptPasswordFile, + }; + if (@mulWithOverflow(u32, gid, 10, *gid)) return error.CorruptPasswordFile; + if (@addWithOverflow(u32, gid, digit, *gid)) return error.CorruptPasswordFile; + }, + }, + } + } + if (amt_read < buf.len) return error.UserNotFound; + } +} + +pub fn getBaseAddress() usize { + switch (builtin.os) { + .linux => { + const base = os.system.getauxval(std.elf.AT_BASE); + if (base != 0) { + return base; + } + const phdr = os.system.getauxval(std.elf.AT_PHDR); + return phdr - @sizeOf(std.elf.Ehdr); + }, + .macosx, .freebsd, .netbsd => { + return @ptrToInt(&std.c._mh_execute_header); + }, + .windows => return @ptrToInt(os.windows.kernel32.GetModuleHandleW(null)), + else => @compileError("Unsupported OS"), + } +} diff --git a/lib/std/rand.zig b/lib/std/rand.zig new file mode 100644 index 0000000000..e14a60e2ae --- /dev/null +++ b/lib/std/rand.zig @@ -0,0 +1,1105 @@ +// The engines provided here should be initialized from an external source. For now, randomBytes +// from the crypto package is the most suitable. Be sure to use a CSPRNG when required, otherwise using +// a normal PRNG will be faster and use substantially less stack space. +// +// ``` +// var buf: [8]u8 = undefined; +// try std.crypto.randomBytes(buf[0..]); +// const seed = mem.readIntSliceLittle(u64, buf[0..8]); +// +// var r = DefaultPrng.init(seed); +// +// const s = r.random.int(u64); +// ``` +// +// TODO(tiehuis): Benchmark these against other reference implementations. + +const std = @import("std.zig"); +const builtin = @import("builtin"); +const assert = std.debug.assert; +const expect = std.testing.expect; +const expectEqual = std.testing.expectEqual; +const mem = std.mem; +const math = std.math; +const ziggurat = @import("rand/ziggurat.zig"); +const maxInt = std.math.maxInt; + +// When you need fast unbiased random numbers +pub const DefaultPrng = Xoroshiro128; + +// When you need cryptographically secure random numbers +pub const DefaultCsprng = Isaac64; + +pub const Random = struct { + fillFn: fn (r: *Random, buf: []u8) void, + + /// Read random bytes into the specified buffer until full. + pub fn bytes(r: *Random, buf: []u8) void { + r.fillFn(r, buf); + } + + pub fn boolean(r: *Random) bool { + return r.int(u1) != 0; + } + + /// Returns a random int `i` such that `0 <= i <= maxInt(T)`. + /// `i` is evenly distributed. + pub fn int(r: *Random, comptime T: type) T { + const UnsignedT = @IntType(false, T.bit_count); + const ByteAlignedT = @IntType(false, @divTrunc(T.bit_count + 7, 8) * 8); + + var rand_bytes: [@sizeOf(ByteAlignedT)]u8 = undefined; + r.bytes(rand_bytes[0..]); + + // use LE instead of native endian for better portability maybe? + // TODO: endian portability is pointless if the underlying prng isn't endian portable. + // TODO: document the endian portability of this library. + const byte_aligned_result = mem.readIntSliceLittle(ByteAlignedT, rand_bytes); + const unsigned_result = @truncate(UnsignedT, byte_aligned_result); + return @bitCast(T, unsigned_result); + } + + /// Constant-time implementation off ::uintLessThan. + /// The results of this function may be biased. + pub fn uintLessThanBiased(r: *Random, comptime T: type, less_than: T) T { + comptime assert(T.is_signed == false); + comptime assert(T.bit_count <= 64); // TODO: workaround: LLVM ERROR: Unsupported library call operation! + assert(0 < less_than); + if (T.bit_count <= 32) { + return @intCast(T, limitRangeBiased(u32, r.int(u32), less_than)); + } else { + return @intCast(T, limitRangeBiased(u64, r.int(u64), less_than)); + } + } + + /// Returns an evenly distributed random unsigned integer `0 <= i < less_than`. + /// This function assumes that the underlying ::fillFn produces evenly distributed values. + /// Within this assumption, the runtime of this function is exponentially distributed. + /// If ::fillFn were backed by a true random generator, + /// the runtime of this function would technically be unbounded. + /// However, if ::fillFn is backed by any evenly distributed pseudo random number generator, + /// this function is guaranteed to return. + /// If you need deterministic runtime bounds, use `::uintLessThanBiased`. + pub fn uintLessThan(r: *Random, comptime T: type, less_than: T) T { + comptime assert(T.is_signed == false); + comptime assert(T.bit_count <= 64); // TODO: workaround: LLVM ERROR: Unsupported library call operation! + assert(0 < less_than); + // Small is typically u32 + const Small = @IntType(false, @divTrunc(T.bit_count + 31, 32) * 32); + // Large is typically u64 + const Large = @IntType(false, Small.bit_count * 2); + + // adapted from: + // http://www.pcg-random.org/posts/bounded-rands.html + // "Lemire's (with an extra tweak from me)" + var x: Small = r.int(Small); + var m: Large = Large(x) * Large(less_than); + var l: Small = @truncate(Small, m); + if (l < less_than) { + // TODO: workaround for https://github.com/ziglang/zig/issues/1770 + // should be: + // var t: Small = -%less_than; + var t: Small = @bitCast(Small, -%@bitCast(@IntType(true, Small.bit_count), Small(less_than))); + + if (t >= less_than) { + t -= less_than; + if (t >= less_than) { + t %= less_than; + } + } + while (l < t) { + x = r.int(Small); + m = Large(x) * Large(less_than); + l = @truncate(Small, m); + } + } + return @intCast(T, m >> Small.bit_count); + } + + /// Constant-time implementation off ::uintAtMost. + /// The results of this function may be biased. + pub fn uintAtMostBiased(r: *Random, comptime T: type, at_most: T) T { + assert(T.is_signed == false); + if (at_most == maxInt(T)) { + // have the full range + return r.int(T); + } + return r.uintLessThanBiased(T, at_most + 1); + } + + /// Returns an evenly distributed random unsigned integer `0 <= i <= at_most`. + /// See ::uintLessThan, which this function uses in most cases, + /// for commentary on the runtime of this function. + pub fn uintAtMost(r: *Random, comptime T: type, at_most: T) T { + assert(T.is_signed == false); + if (at_most == maxInt(T)) { + // have the full range + return r.int(T); + } + return r.uintLessThan(T, at_most + 1); + } + + /// Constant-time implementation off ::intRangeLessThan. + /// The results of this function may be biased. + pub fn intRangeLessThanBiased(r: *Random, comptime T: type, at_least: T, less_than: T) T { + assert(at_least < less_than); + if (T.is_signed) { + // Two's complement makes this math pretty easy. + const UnsignedT = @IntType(false, T.bit_count); + const lo = @bitCast(UnsignedT, at_least); + const hi = @bitCast(UnsignedT, less_than); + const result = lo +% r.uintLessThanBiased(UnsignedT, hi -% lo); + return @bitCast(T, result); + } else { + // The signed implementation would work fine, but we can use stricter arithmetic operators here. + return at_least + r.uintLessThanBiased(T, less_than - at_least); + } + } + + /// Returns an evenly distributed random integer `at_least <= i < less_than`. + /// See ::uintLessThan, which this function uses in most cases, + /// for commentary on the runtime of this function. + pub fn intRangeLessThan(r: *Random, comptime T: type, at_least: T, less_than: T) T { + assert(at_least < less_than); + if (T.is_signed) { + // Two's complement makes this math pretty easy. + const UnsignedT = @IntType(false, T.bit_count); + const lo = @bitCast(UnsignedT, at_least); + const hi = @bitCast(UnsignedT, less_than); + const result = lo +% r.uintLessThan(UnsignedT, hi -% lo); + return @bitCast(T, result); + } else { + // The signed implementation would work fine, but we can use stricter arithmetic operators here. + return at_least + r.uintLessThan(T, less_than - at_least); + } + } + + /// Constant-time implementation off ::intRangeAtMostBiased. + /// The results of this function may be biased. + pub fn intRangeAtMostBiased(r: *Random, comptime T: type, at_least: T, at_most: T) T { + assert(at_least <= at_most); + if (T.is_signed) { + // Two's complement makes this math pretty easy. + const UnsignedT = @IntType(false, T.bit_count); + const lo = @bitCast(UnsignedT, at_least); + const hi = @bitCast(UnsignedT, at_most); + const result = lo +% r.uintAtMostBiased(UnsignedT, hi -% lo); + return @bitCast(T, result); + } else { + // The signed implementation would work fine, but we can use stricter arithmetic operators here. + return at_least + r.uintAtMostBiased(T, at_most - at_least); + } + } + + /// Returns an evenly distributed random integer `at_least <= i <= at_most`. + /// See ::uintLessThan, which this function uses in most cases, + /// for commentary on the runtime of this function. + pub fn intRangeAtMost(r: *Random, comptime T: type, at_least: T, at_most: T) T { + assert(at_least <= at_most); + if (T.is_signed) { + // Two's complement makes this math pretty easy. + const UnsignedT = @IntType(false, T.bit_count); + const lo = @bitCast(UnsignedT, at_least); + const hi = @bitCast(UnsignedT, at_most); + const result = lo +% r.uintAtMost(UnsignedT, hi -% lo); + return @bitCast(T, result); + } else { + // The signed implementation would work fine, but we can use stricter arithmetic operators here. + return at_least + r.uintAtMost(T, at_most - at_least); + } + } + + /// TODO: deprecated. use ::boolean or ::int instead. + pub fn scalar(r: *Random, comptime T: type) T { + return if (T == bool) r.boolean() else r.int(T); + } + + /// TODO: deprecated. renamed to ::intRangeLessThan + pub fn range(r: *Random, comptime T: type, start: T, end: T) T { + return r.intRangeLessThan(T, start, end); + } + + /// Return a floating point value evenly distributed in the range [0, 1). + pub fn float(r: *Random, comptime T: type) T { + // Generate a uniform value between [1, 2) and scale down to [0, 1). + // Note: The lowest mantissa bit is always set to 0 so we only use half the available range. + switch (T) { + f32 => { + const s = r.int(u32); + const repr = (0x7f << 23) | (s >> 9); + return @bitCast(f32, repr) - 1.0; + }, + f64 => { + const s = r.int(u64); + const repr = (0x3ff << 52) | (s >> 12); + return @bitCast(f64, repr) - 1.0; + }, + else => @compileError("unknown floating point type"), + } + } + + /// Return a floating point value normally distributed with mean = 0, stddev = 1. + /// + /// To use different parameters, use: floatNorm(...) * desiredStddev + desiredMean. + pub fn floatNorm(r: *Random, comptime T: type) T { + const value = ziggurat.next_f64(r, ziggurat.NormDist); + switch (T) { + f32 => return @floatCast(f32, value), + f64 => return value, + else => @compileError("unknown floating point type"), + } + } + + /// Return an exponentially distributed float with a rate parameter of 1. + /// + /// To use a different rate parameter, use: floatExp(...) / desiredRate. + pub fn floatExp(r: *Random, comptime T: type) T { + const value = ziggurat.next_f64(r, ziggurat.ExpDist); + switch (T) { + f32 => return @floatCast(f32, value), + f64 => return value, + else => @compileError("unknown floating point type"), + } + } + + /// Shuffle a slice into a random order. + pub fn shuffle(r: *Random, comptime T: type, buf: []T) void { + if (buf.len < 2) { + return; + } + + var i: usize = 0; + while (i < buf.len - 1) : (i += 1) { + const j = r.intRangeLessThan(usize, i, buf.len); + mem.swap(T, &buf[i], &buf[j]); + } + } +}; + +/// Convert a random integer 0 <= random_int <= maxValue(T), +/// into an integer 0 <= result < less_than. +/// This function introduces a minor bias. +pub fn limitRangeBiased(comptime T: type, random_int: T, less_than: T) T { + comptime assert(T.is_signed == false); + const T2 = @IntType(false, T.bit_count * 2); + + // adapted from: + // http://www.pcg-random.org/posts/bounded-rands.html + // "Integer Multiplication (Biased)" + var m: T2 = T2(random_int) * T2(less_than); + return @intCast(T, m >> T.bit_count); +} + +const SequentialPrng = struct { + const Self = @This(); + random: Random, + next_value: u8, + + pub fn init() Self { + return Self{ + .random = Random{ .fillFn = fill }, + .next_value = 0, + }; + } + + fn fill(r: *Random, buf: []u8) void { + const self = @fieldParentPtr(Self, "random", r); + for (buf) |*b| { + b.* = self.next_value; + } + self.next_value +%= 1; + } +}; + +test "Random int" { + testRandomInt(); + comptime testRandomInt(); +} +fn testRandomInt() void { + var r = SequentialPrng.init(); + + expect(r.random.int(u0) == 0); + + r.next_value = 0; + expect(r.random.int(u1) == 0); + expect(r.random.int(u1) == 1); + expect(r.random.int(u2) == 2); + expect(r.random.int(u2) == 3); + expect(r.random.int(u2) == 0); + + r.next_value = 0xff; + expect(r.random.int(u8) == 0xff); + r.next_value = 0x11; + expect(r.random.int(u8) == 0x11); + + r.next_value = 0xff; + expect(r.random.int(u32) == 0xffffffff); + r.next_value = 0x11; + expect(r.random.int(u32) == 0x11111111); + + r.next_value = 0xff; + expect(r.random.int(i32) == -1); + r.next_value = 0x11; + expect(r.random.int(i32) == 0x11111111); + + r.next_value = 0xff; + expect(r.random.int(i8) == -1); + r.next_value = 0x11; + expect(r.random.int(i8) == 0x11); + + r.next_value = 0xff; + expect(r.random.int(u33) == 0x1ffffffff); + r.next_value = 0xff; + expect(r.random.int(i1) == -1); + r.next_value = 0xff; + expect(r.random.int(i2) == -1); + r.next_value = 0xff; + expect(r.random.int(i33) == -1); +} + +test "Random boolean" { + testRandomBoolean(); + comptime testRandomBoolean(); +} +fn testRandomBoolean() void { + var r = SequentialPrng.init(); + expect(r.random.boolean() == false); + expect(r.random.boolean() == true); + expect(r.random.boolean() == false); + expect(r.random.boolean() == true); +} + +test "Random intLessThan" { + @setEvalBranchQuota(10000); + testRandomIntLessThan(); + comptime testRandomIntLessThan(); +} +fn testRandomIntLessThan() void { + var r = SequentialPrng.init(); + r.next_value = 0xff; + expect(r.random.uintLessThan(u8, 4) == 3); + expect(r.next_value == 0); + expect(r.random.uintLessThan(u8, 4) == 0); + expect(r.next_value == 1); + + r.next_value = 0; + expect(r.random.uintLessThan(u64, 32) == 0); + + // trigger the bias rejection code path + r.next_value = 0; + expect(r.random.uintLessThan(u8, 3) == 0); + // verify we incremented twice + expect(r.next_value == 2); + + r.next_value = 0xff; + expect(r.random.intRangeLessThan(u8, 0, 0x80) == 0x7f); + r.next_value = 0xff; + expect(r.random.intRangeLessThan(u8, 0x7f, 0xff) == 0xfe); + + r.next_value = 0xff; + expect(r.random.intRangeLessThan(i8, 0, 0x40) == 0x3f); + r.next_value = 0xff; + expect(r.random.intRangeLessThan(i8, -0x40, 0x40) == 0x3f); + r.next_value = 0xff; + expect(r.random.intRangeLessThan(i8, -0x80, 0) == -1); + + r.next_value = 0xff; + expect(r.random.intRangeLessThan(i3, -4, 0) == -1); + r.next_value = 0xff; + expect(r.random.intRangeLessThan(i3, -2, 2) == 1); +} + +test "Random intAtMost" { + @setEvalBranchQuota(10000); + testRandomIntAtMost(); + comptime testRandomIntAtMost(); +} +fn testRandomIntAtMost() void { + var r = SequentialPrng.init(); + r.next_value = 0xff; + expect(r.random.uintAtMost(u8, 3) == 3); + expect(r.next_value == 0); + expect(r.random.uintAtMost(u8, 3) == 0); + + // trigger the bias rejection code path + r.next_value = 0; + expect(r.random.uintAtMost(u8, 2) == 0); + // verify we incremented twice + expect(r.next_value == 2); + + r.next_value = 0xff; + expect(r.random.intRangeAtMost(u8, 0, 0x7f) == 0x7f); + r.next_value = 0xff; + expect(r.random.intRangeAtMost(u8, 0x7f, 0xfe) == 0xfe); + + r.next_value = 0xff; + expect(r.random.intRangeAtMost(i8, 0, 0x3f) == 0x3f); + r.next_value = 0xff; + expect(r.random.intRangeAtMost(i8, -0x40, 0x3f) == 0x3f); + r.next_value = 0xff; + expect(r.random.intRangeAtMost(i8, -0x80, -1) == -1); + + r.next_value = 0xff; + expect(r.random.intRangeAtMost(i3, -4, -1) == -1); + r.next_value = 0xff; + expect(r.random.intRangeAtMost(i3, -2, 1) == 1); + + expect(r.random.uintAtMost(u0, 0) == 0); +} + +test "Random Biased" { + var r = DefaultPrng.init(0); + // Not thoroughly checking the logic here. + // Just want to execute all the paths with different types. + + expect(r.random.uintLessThanBiased(u1, 1) == 0); + expect(r.random.uintLessThanBiased(u32, 10) < 10); + expect(r.random.uintLessThanBiased(u64, 20) < 20); + + expect(r.random.uintAtMostBiased(u0, 0) == 0); + expect(r.random.uintAtMostBiased(u1, 0) <= 0); + expect(r.random.uintAtMostBiased(u32, 10) <= 10); + expect(r.random.uintAtMostBiased(u64, 20) <= 20); + + expect(r.random.intRangeLessThanBiased(u1, 0, 1) == 0); + expect(r.random.intRangeLessThanBiased(i1, -1, 0) == -1); + expect(r.random.intRangeLessThanBiased(u32, 10, 20) >= 10); + expect(r.random.intRangeLessThanBiased(i32, 10, 20) >= 10); + expect(r.random.intRangeLessThanBiased(u64, 20, 40) >= 20); + expect(r.random.intRangeLessThanBiased(i64, 20, 40) >= 20); + + // uncomment for broken module error: + //expect(r.random.intRangeAtMostBiased(u0, 0, 0) == 0); + expect(r.random.intRangeAtMostBiased(u1, 0, 1) >= 0); + expect(r.random.intRangeAtMostBiased(i1, -1, 0) >= -1); + expect(r.random.intRangeAtMostBiased(u32, 10, 20) >= 10); + expect(r.random.intRangeAtMostBiased(i32, 10, 20) >= 10); + expect(r.random.intRangeAtMostBiased(u64, 20, 40) >= 20); + expect(r.random.intRangeAtMostBiased(i64, 20, 40) >= 20); +} + +// Generator to extend 64-bit seed values into longer sequences. +// +// The number of cycles is thus limited to 64-bits regardless of the engine, but this +// is still plenty for practical purposes. +const SplitMix64 = struct { + s: u64, + + pub fn init(seed: u64) SplitMix64 { + return SplitMix64{ .s = seed }; + } + + pub fn next(self: *SplitMix64) u64 { + self.s +%= 0x9e3779b97f4a7c15; + + var z = self.s; + z = (z ^ (z >> 30)) *% 0xbf58476d1ce4e5b9; + z = (z ^ (z >> 27)) *% 0x94d049bb133111eb; + return z ^ (z >> 31); + } +}; + +test "splitmix64 sequence" { + var r = SplitMix64.init(0xaeecf86f7878dd75); + + const seq = [_]u64{ + 0x5dbd39db0178eb44, + 0xa9900fb66b397da3, + 0x5c1a28b1aeebcf5c, + 0x64a963238f776912, + 0xc6d4177b21d1c0ab, + 0xb2cbdbdb5ea35394, + }; + + for (seq) |s| { + expect(s == r.next()); + } +} + +// PCG32 - http://www.pcg-random.org/ +// +// PRNG +pub const Pcg = struct { + const default_multiplier = 6364136223846793005; + + random: Random, + + s: u64, + i: u64, + + pub fn init(init_s: u64) Pcg { + var pcg = Pcg{ + .random = Random{ .fillFn = fill }, + .s = undefined, + .i = undefined, + }; + + pcg.seed(init_s); + return pcg; + } + + fn next(self: *Pcg) u32 { + const l = self.s; + self.s = l *% default_multiplier +% (self.i | 1); + + const xor_s = @truncate(u32, ((l >> 18) ^ l) >> 27); + const rot = @intCast(u32, l >> 59); + + return (xor_s >> @intCast(u5, rot)) | (xor_s << @intCast(u5, (0 -% rot) & 31)); + } + + fn seed(self: *Pcg, init_s: u64) void { + // Pcg requires 128-bits of seed. + var gen = SplitMix64.init(init_s); + self.seedTwo(gen.next(), gen.next()); + } + + fn seedTwo(self: *Pcg, init_s: u64, init_i: u64) void { + self.s = 0; + self.i = (init_s << 1) | 1; + self.s = self.s *% default_multiplier +% self.i; + self.s +%= init_i; + self.s = self.s *% default_multiplier +% self.i; + } + + fn fill(r: *Random, buf: []u8) void { + const self = @fieldParentPtr(Pcg, "random", r); + + var i: usize = 0; + const aligned_len = buf.len - (buf.len & 7); + + // Complete 4 byte segments. + while (i < aligned_len) : (i += 4) { + var n = self.next(); + comptime var j: usize = 0; + inline while (j < 4) : (j += 1) { + buf[i + j] = @truncate(u8, n); + n >>= 8; + } + } + + // Remaining. (cuts the stream) + if (i != buf.len) { + var n = self.next(); + while (i < buf.len) : (i += 1) { + buf[i] = @truncate(u8, n); + n >>= 4; + } + } + } +}; + +test "pcg sequence" { + var r = Pcg.init(0); + const s0: u64 = 0x9394bf54ce5d79de; + const s1: u64 = 0x84e9c579ef59bbf7; + r.seedTwo(s0, s1); + + const seq = [_]u32{ + 2881561918, + 3063928540, + 1199791034, + 2487695858, + 1479648952, + 3247963454, + }; + + for (seq) |s| { + expect(s == r.next()); + } +} + +// Xoroshiro128+ - http://xoroshiro.di.unimi.it/ +// +// PRNG +pub const Xoroshiro128 = struct { + random: Random, + + s: [2]u64, + + pub fn init(init_s: u64) Xoroshiro128 { + var x = Xoroshiro128{ + .random = Random{ .fillFn = fill }, + .s = undefined, + }; + + x.seed(init_s); + return x; + } + + fn next(self: *Xoroshiro128) u64 { + const s0 = self.s[0]; + var s1 = self.s[1]; + const r = s0 +% s1; + + s1 ^= s0; + self.s[0] = math.rotl(u64, s0, u8(55)) ^ s1 ^ (s1 << 14); + self.s[1] = math.rotl(u64, s1, u8(36)); + + return r; + } + + // Skip 2^64 places ahead in the sequence + fn jump(self: *Xoroshiro128) void { + var s0: u64 = 0; + var s1: u64 = 0; + + const table = [_]u64{ + 0xbeac0467eba5facb, + 0xd86b048b86aa9922, + }; + + inline for (table) |entry| { + var b: usize = 0; + while (b < 64) : (b += 1) { + if ((entry & (u64(1) << @intCast(u6, b))) != 0) { + s0 ^= self.s[0]; + s1 ^= self.s[1]; + } + _ = self.next(); + } + } + + self.s[0] = s0; + self.s[1] = s1; + } + + fn seed(self: *Xoroshiro128, init_s: u64) void { + // Xoroshiro requires 128-bits of seed. + var gen = SplitMix64.init(init_s); + + self.s[0] = gen.next(); + self.s[1] = gen.next(); + } + + fn fill(r: *Random, buf: []u8) void { + const self = @fieldParentPtr(Xoroshiro128, "random", r); + + var i: usize = 0; + const aligned_len = buf.len - (buf.len & 7); + + // Complete 8 byte segments. + while (i < aligned_len) : (i += 8) { + var n = self.next(); + comptime var j: usize = 0; + inline while (j < 8) : (j += 1) { + buf[i + j] = @truncate(u8, n); + n >>= 8; + } + } + + // Remaining. (cuts the stream) + if (i != buf.len) { + var n = self.next(); + while (i < buf.len) : (i += 1) { + buf[i] = @truncate(u8, n); + n >>= 8; + } + } + } +}; + +test "xoroshiro sequence" { + var r = Xoroshiro128.init(0); + r.s[0] = 0xaeecf86f7878dd75; + r.s[1] = 0x01cd153642e72622; + + const seq1 = [_]u64{ + 0xb0ba0da5bb600397, + 0x18a08afde614dccc, + 0xa2635b956a31b929, + 0xabe633c971efa045, + 0x9ac19f9706ca3cac, + 0xf62b426578c1e3fb, + }; + + for (seq1) |s| { + expect(s == r.next()); + } + + r.jump(); + + const seq2 = [_]u64{ + 0x95344a13556d3e22, + 0xb4fb32dafa4d00df, + 0xb2011d9ccdcfe2dd, + 0x05679a9b2119b908, + 0xa860a1da7c9cd8a0, + 0x658a96efe3f86550, + }; + + for (seq2) |s| { + expect(s == r.next()); + } +} + +// ISAAC64 - http://www.burtleburtle.net/bob/rand/isaacafa.html +// +// CSPRNG +// +// Follows the general idea of the implementation from here with a few shortcuts. +// https://doc.rust-lang.org/rand/src/rand/prng/isaac64.rs.html +pub const Isaac64 = struct { + random: Random, + + r: [256]u64, + m: [256]u64, + a: u64, + b: u64, + c: u64, + i: usize, + + pub fn init(init_s: u64) Isaac64 { + var isaac = Isaac64{ + .random = Random{ .fillFn = fill }, + .r = undefined, + .m = undefined, + .a = undefined, + .b = undefined, + .c = undefined, + .i = undefined, + }; + + // seed == 0 => same result as the unseeded reference implementation + isaac.seed(init_s, 1); + return isaac; + } + + fn step(self: *Isaac64, mix: u64, base: usize, comptime m1: usize, comptime m2: usize) void { + const x = self.m[base + m1]; + self.a = mix +% self.m[base + m2]; + + const y = self.a +% self.b +% self.m[@intCast(usize, (x >> 3) % self.m.len)]; + self.m[base + m1] = y; + + self.b = x +% self.m[@intCast(usize, (y >> 11) % self.m.len)]; + self.r[self.r.len - 1 - base - m1] = self.b; + } + + fn refill(self: *Isaac64) void { + const midpoint = self.r.len / 2; + + self.c +%= 1; + self.b +%= self.c; + + { + var i: usize = 0; + while (i < midpoint) : (i += 4) { + self.step(~(self.a ^ (self.a << 21)), i + 0, 0, midpoint); + self.step(self.a ^ (self.a >> 5), i + 1, 0, midpoint); + self.step(self.a ^ (self.a << 12), i + 2, 0, midpoint); + self.step(self.a ^ (self.a >> 33), i + 3, 0, midpoint); + } + } + + { + var i: usize = 0; + while (i < midpoint) : (i += 4) { + self.step(~(self.a ^ (self.a << 21)), i + 0, midpoint, 0); + self.step(self.a ^ (self.a >> 5), i + 1, midpoint, 0); + self.step(self.a ^ (self.a << 12), i + 2, midpoint, 0); + self.step(self.a ^ (self.a >> 33), i + 3, midpoint, 0); + } + } + + self.i = 0; + } + + fn next(self: *Isaac64) u64 { + if (self.i >= self.r.len) { + self.refill(); + } + + const value = self.r[self.i]; + self.i += 1; + return value; + } + + fn seed(self: *Isaac64, init_s: u64, comptime rounds: usize) void { + // We ignore the multi-pass requirement since we don't currently expose full access to + // seeding the self.m array completely. + mem.set(u64, self.m[0..], 0); + self.m[0] = init_s; + + // prescrambled golden ratio constants + var a = [_]u64{ + 0x647c4677a2884b7c, + 0xb9f8b322c73ac862, + 0x8c0ea5053d4712a0, + 0xb29b2e824a595524, + 0x82f053db8355e0ce, + 0x48fe4a0fa5a09315, + 0xae985bf2cbfc89ed, + 0x98f5704f6c44c0ab, + }; + + comptime var i: usize = 0; + inline while (i < rounds) : (i += 1) { + var j: usize = 0; + while (j < self.m.len) : (j += 8) { + comptime var x1: usize = 0; + inline while (x1 < 8) : (x1 += 1) { + a[x1] +%= self.m[j + x1]; + } + + a[0] -%= a[4]; + a[5] ^= a[7] >> 9; + a[7] +%= a[0]; + a[1] -%= a[5]; + a[6] ^= a[0] << 9; + a[0] +%= a[1]; + a[2] -%= a[6]; + a[7] ^= a[1] >> 23; + a[1] +%= a[2]; + a[3] -%= a[7]; + a[0] ^= a[2] << 15; + a[2] +%= a[3]; + a[4] -%= a[0]; + a[1] ^= a[3] >> 14; + a[3] +%= a[4]; + a[5] -%= a[1]; + a[2] ^= a[4] << 20; + a[4] +%= a[5]; + a[6] -%= a[2]; + a[3] ^= a[5] >> 17; + a[5] +%= a[6]; + a[7] -%= a[3]; + a[4] ^= a[6] << 14; + a[6] +%= a[7]; + + comptime var x2: usize = 0; + inline while (x2 < 8) : (x2 += 1) { + self.m[j + x2] = a[x2]; + } + } + } + + mem.set(u64, self.r[0..], 0); + self.a = 0; + self.b = 0; + self.c = 0; + self.i = self.r.len; // trigger refill on first value + } + + fn fill(r: *Random, buf: []u8) void { + const self = @fieldParentPtr(Isaac64, "random", r); + + var i: usize = 0; + const aligned_len = buf.len - (buf.len & 7); + + // Fill complete 64-byte segments + while (i < aligned_len) : (i += 8) { + var n = self.next(); + comptime var j: usize = 0; + inline while (j < 8) : (j += 1) { + buf[i + j] = @truncate(u8, n); + n >>= 8; + } + } + + // Fill trailing, ignoring excess (cut the stream). + if (i != buf.len) { + var n = self.next(); + while (i < buf.len) : (i += 1) { + buf[i] = @truncate(u8, n); + n >>= 8; + } + } + } +}; + +test "isaac64 sequence" { + var r = Isaac64.init(0); + + // from reference implementation + const seq = [_]u64{ + 0xf67dfba498e4937c, + 0x84a5066a9204f380, + 0xfee34bd5f5514dbb, + 0x4d1664739b8f80d6, + 0x8607459ab52a14aa, + 0x0e78bc5a98529e49, + 0xfe5332822ad13777, + 0x556c27525e33d01a, + 0x08643ca615f3149f, + 0xd0771faf3cb04714, + 0x30e86f68a37b008d, + 0x3074ebc0488a3adf, + 0x270645ea7a2790bc, + 0x5601a0a8d3763c6a, + 0x2f83071f53f325dd, + 0xb9090f3d42d2d2ea, + }; + + for (seq) |s| { + expect(s == r.next()); + } +} + +/// Sfc64 pseudo-random number generator from Practically Random. +/// Fastest engine of pracrand and smallest footprint. +/// See http://pracrand.sourceforge.net/ +pub const Sfc64 = struct { + random: Random, + + a: u64 = undefined, + b: u64 = undefined, + c: u64 = undefined, + counter: u64 = undefined, + + const Rotation = 24; + const RightShift = 11; + const LeftShift = 3; + + pub fn init(init_s: u64) Sfc64 { + var x = Sfc64{ + .random = Random{ .fillFn = fill }, + }; + + x.seed(init_s); + return x; + } + + fn next(self: *Sfc64) u64 { + const tmp = self.a +% self.b +% self.counter; + self.counter += 1; + self.a = self.b ^ (self.b >> RightShift); + self.b = self.c +% (self.c << LeftShift); + self.c = math.rotl(u64, self.c, Rotation) +% tmp; + return tmp; + } + + fn seed(self: *Sfc64, init_s: u64) void { + self.a = init_s; + self.b = init_s; + self.c = init_s; + self.counter = 1; + var i: u32 = 0; + while (i < 12) : (i += 1) { + _ = self.next(); + } + } + + fn fill(r: *Random, buf: []u8) void { + const self = @fieldParentPtr(Sfc64, "random", r); + + var i: usize = 0; + const aligned_len = buf.len - (buf.len & 7); + + // Complete 8 byte segments. + while (i < aligned_len) : (i += 8) { + var n = self.next(); + comptime var j: usize = 0; + inline while (j < 8) : (j += 1) { + buf[i + j] = @truncate(u8, n); + n >>= 8; + } + } + + // Remaining. (cuts the stream) + if (i != buf.len) { + var n = self.next(); + while (i < buf.len) : (i += 1) { + buf[i] = @truncate(u8, n); + n >>= 8; + } + } + } +}; + +test "Sfc64 sequence" { + // Unfortunately there does not seem to be an official test sequence. + var r = Sfc64.init(0); + + const seq = [_]u64{ + 0x3acfa029e3cc6041, + 0xf5b6515bf2ee419c, + 0x1259635894a29b61, + 0xb6ae75395f8ebd6, + 0x225622285ce302e2, + 0x520d28611395cb21, + 0xdb909c818901599d, + 0x8ffd195365216f57, + 0xe8c4ad5e258ac04a, + 0x8f8ef2c89fdb63ca, + 0xf9865b01d98d8e2f, + 0x46555871a65d08ba, + 0x66868677c6298fcd, + 0x2ce15a7e6329f57d, + 0xb2f1833ca91ca79, + 0x4b0890ac9bf453ca, + }; + + for (seq) |s| { + expectEqual(s, r.next()); + } +} + +// Actual Random helper function tests, pcg engine is assumed correct. +test "Random float" { + var prng = DefaultPrng.init(0); + + var i: usize = 0; + while (i < 1000) : (i += 1) { + const val1 = prng.random.float(f32); + expect(val1 >= 0.0); + expect(val1 < 1.0); + + const val2 = prng.random.float(f64); + expect(val2 >= 0.0); + expect(val2 < 1.0); + } +} + +test "Random shuffle" { + var prng = DefaultPrng.init(0); + + var seq = [_]u8{ 0, 1, 2, 3, 4 }; + var seen = [_]bool{false} ** 5; + + var i: usize = 0; + while (i < 1000) : (i += 1) { + prng.random.shuffle(u8, seq[0..]); + seen[seq[0]] = true; + expect(sumArray(seq[0..]) == 10); + } + + // we should see every entry at the head at least once + for (seen) |e| { + expect(e == true); + } +} + +fn sumArray(s: []const u8) u32 { + var r: u32 = 0; + for (s) |e| + r += e; + return r; +} + +test "Random range" { + var prng = DefaultPrng.init(0); + testRange(&prng.random, -4, 3); + testRange(&prng.random, -4, -1); + testRange(&prng.random, 10, 14); + testRange(&prng.random, -0x80, 0x7f); +} + +fn testRange(r: *Random, start: i8, end: i8) void { + testRangeBias(r, start, end, true); + testRangeBias(r, start, end, false); +} +fn testRangeBias(r: *Random, start: i8, end: i8, biased: bool) void { + const count = @intCast(usize, i32(end) - i32(start)); + var values_buffer = [_]bool{false} ** 0x100; + const values = values_buffer[0..count]; + var i: usize = 0; + while (i < count) { + const value: i32 = if (biased) r.intRangeLessThanBiased(i8, start, end) else r.intRangeLessThan(i8, start, end); + const index = @intCast(usize, value - start); + if (!values[index]) { + i += 1; + values[index] = true; + } + } +} diff --git a/lib/std/rand/ziggurat.zig b/lib/std/rand/ziggurat.zig new file mode 100644 index 0000000000..995248415b --- /dev/null +++ b/lib/std/rand/ziggurat.zig @@ -0,0 +1,166 @@ +// Implements ZIGNOR [1]. +// +// [1]: Jurgen A. Doornik (2005). [*An Improved Ziggurat Method to Generate Normal Random Samples*] +// (https://www.doornik.com/research/ziggurat.pdf). Nuffield College, Oxford. +// +// rust/rand used as a reference; +// +// NOTE: This seems interesting but reference code is a bit hard to grok: +// https://sbarral.github.io/etf. + +const std = @import("../std.zig"); +const math = std.math; +const Random = std.rand.Random; + +pub fn next_f64(random: *Random, comptime tables: ZigTable) f64 { + while (true) { + // We manually construct a float from parts as we can avoid an extra random lookup here by + // using the unused exponent for the lookup table entry. + const bits = random.scalar(u64); + const i = usize(bits & 0xff); + + const u = blk: { + if (tables.is_symmetric) { + // Generate a value in the range [2, 4) and scale into [-1, 1) + const repr = ((0x3ff + 1) << 52) | (bits >> 12); + break :blk @bitCast(f64, repr) - 3.0; + } else { + // Generate a value in the range [1, 2) and scale into (0, 1) + const repr = (0x3ff << 52) | (bits >> 12); + break :blk @bitCast(f64, repr) - (1.0 - math.f64_epsilon / 2.0); + } + }; + + const x = u * tables.x[i]; + const test_x = if (tables.is_symmetric) math.fabs(x) else x; + + // equivalent to |u| < tables.x[i+1] / tables.x[i] (or u < tables.x[i+1] / tables.x[i]) + if (test_x < tables.x[i + 1]) { + return x; + } + + if (i == 0) { + return tables.zero_case(random, u); + } + + // equivalent to f1 + DRanU() * (f0 - f1) < 1 + if (tables.f[i + 1] + (tables.f[i] - tables.f[i + 1]) * random.float(f64) < tables.pdf(x)) { + return x; + } + } +} + +pub const ZigTable = struct { + r: f64, + x: [257]f64, + f: [257]f64, + + // probability density function used as a fallback + pdf: fn (f64) f64, + // whether the distribution is symmetric + is_symmetric: bool, + // fallback calculation in the case we are in the 0 block + zero_case: fn (*Random, f64) f64, +}; + +// zigNorInit +fn ZigTableGen( + comptime is_symmetric: bool, + comptime r: f64, + comptime v: f64, + comptime f: fn (f64) f64, + comptime f_inv: fn (f64) f64, + comptime zero_case: fn (*Random, f64) f64, +) ZigTable { + var tables: ZigTable = undefined; + + tables.is_symmetric = is_symmetric; + tables.r = r; + tables.pdf = f; + tables.zero_case = zero_case; + + tables.x[0] = v / f(r); + tables.x[1] = r; + + for (tables.x[2..256]) |*entry, i| { + const last = tables.x[2 + i - 1]; + entry.* = f_inv(v / last + f(last)); + } + tables.x[256] = 0; + + for (tables.f[0..]) |*entry, i| { + entry.* = f(tables.x[i]); + } + + return tables; +} + +// N(0, 1) +pub const NormDist = blk: { + @setEvalBranchQuota(30000); + break :blk ZigTableGen(true, norm_r, norm_v, norm_f, norm_f_inv, norm_zero_case); +}; + +const norm_r = 3.6541528853610088; +const norm_v = 0.00492867323399; + +fn norm_f(x: f64) f64 { + return math.exp(-x * x / 2.0); +} +fn norm_f_inv(y: f64) f64 { + return math.sqrt(-2.0 * math.ln(y)); +} +fn norm_zero_case(random: *Random, u: f64) f64 { + var x: f64 = 1; + var y: f64 = 0; + + while (-2.0 * y < x * x) { + x = math.ln(random.float(f64)) / norm_r; + y = math.ln(random.float(f64)); + } + + if (u < 0) { + return x - norm_r; + } else { + return norm_r - x; + } +} + +test "ziggurant normal dist sanity" { + var prng = std.rand.DefaultPrng.init(0); + var i: usize = 0; + while (i < 1000) : (i += 1) { + _ = prng.random.floatNorm(f64); + } +} + +// Exp(1) +pub const ExpDist = blk: { + @setEvalBranchQuota(30000); + break :blk ZigTableGen(false, exp_r, exp_v, exp_f, exp_f_inv, exp_zero_case); +}; + +const exp_r = 7.69711747013104972; +const exp_v = 0.0039496598225815571993; + +fn exp_f(x: f64) f64 { + return math.exp(-x); +} +fn exp_f_inv(y: f64) f64 { + return -math.ln(y); +} +fn exp_zero_case(random: *Random, _: f64) f64 { + return exp_r - math.ln(random.float(f64)); +} + +test "ziggurant exp dist sanity" { + var prng = std.rand.DefaultPrng.init(0); + var i: usize = 0; + while (i < 1000) : (i += 1) { + _ = prng.random.floatExp(f64); + } +} + +test "ziggurat table gen" { + const table = NormDist; +} diff --git a/lib/std/rb.zig b/lib/std/rb.zig new file mode 100644 index 0000000000..4180c7459c --- /dev/null +++ b/lib/std/rb.zig @@ -0,0 +1,602 @@ +const std = @import("std.zig"); +const assert = std.debug.assert; +const testing = std.testing; +const mem = std.mem; // For mem.Compare + +const Color = enum(u1) { + Black, + Red, +}; +const Red = Color.Red; +const Black = Color.Black; + +const ReplaceError = error{NotEqual}; + +/// Insert this into your struct that you want to add to a red-black tree. +/// Do not use a pointer. Turn the *rb.Node results of the functions in rb +/// (after resolving optionals) to your structure using @fieldParentPtr(). Example: +/// +/// const Number = struct { +/// node: rb.Node, +/// value: i32, +/// }; +/// fn number(node: *rb.Node) Number { +/// return @fieldParentPtr(Number, "node", node); +/// } +pub const Node = struct { + left: ?*Node, + right: ?*Node, + + /// parent | color + parent_and_color: usize, + + pub fn next(constnode: *Node) ?*Node { + var node = constnode; + + if (node.right) |right| { + var n = right; + while (n.left) |left| + n = left; + return n; + } + + while (true) { + var parent = node.getParent(); + if (parent) |p| { + if (node != p.right) + return p; + node = p; + } else + return null; + } + } + + pub fn prev(constnode: *Node) ?*Node { + var node = constnode; + + if (node.left) |left| { + var n = left; + while (n.right) |right| + n = right; + return n; + } + + while (true) { + var parent = node.getParent(); + if (parent) |p| { + if (node != p.left) + return p; + node = p; + } else + return null; + } + } + + pub fn isRoot(node: *Node) bool { + return node.getParent() == null; + } + + fn isRed(node: *Node) bool { + return node.getColor() == Red; + } + + fn isBlack(node: *Node) bool { + return node.getColor() == Black; + } + + fn setParent(node: *Node, parent: ?*Node) void { + node.parent_and_color = @ptrToInt(parent) | (node.parent_and_color & 1); + } + + fn getParent(node: *Node) ?*Node { + const mask: usize = 1; + comptime { + assert(@alignOf(*Node) >= 2); + } + const maybe_ptr = node.parent_and_color & ~mask; + return if (maybe_ptr == 0) null else @intToPtr(*Node, maybe_ptr); + } + + fn setColor(node: *Node, color: Color) void { + const mask: usize = 1; + node.parent_and_color = (node.parent_and_color & ~mask) | @enumToInt(color); + } + + fn getColor(node: *Node) Color { + return @intToEnum(Color, @intCast(u1, node.parent_and_color & 1)); + } + + fn setChild(node: *Node, child: ?*Node, is_left: bool) void { + if (is_left) { + node.left = child; + } else { + node.right = child; + } + } + + fn getFirst(nodeconst: *Node) *Node { + var node = nodeconst; + while (node.left) |left| { + node = left; + } + return node; + } + + fn getLast(node: *Node) *Node { + while (node.right) |right| { + node = right; + } + return node; + } +}; + +pub const Tree = struct { + root: ?*Node, + compareFn: fn (*Node, *Node) mem.Compare, + + /// If you have a need for a version that caches this, please file a bug. + pub fn first(tree: *Tree) ?*Node { + var node: *Node = tree.root orelse return null; + + while (node.left) |left| { + node = left; + } + + return node; + } + + pub fn last(tree: *Tree) ?*Node { + var node: *Node = tree.root orelse return null; + + while (node.right) |right| { + node = right; + } + + return node; + } + + /// Duplicate keys are not allowed. The item with the same key already in the + /// tree will be returned, and the item will not be inserted. + pub fn insert(tree: *Tree, node_const: *Node) ?*Node { + var node = node_const; + var maybe_key: ?*Node = undefined; + var maybe_parent: ?*Node = undefined; + var is_left: bool = undefined; + + maybe_key = doLookup(node, tree, &maybe_parent, &is_left); + if (maybe_key) |key| { + return key; + } + + node.left = null; + node.right = null; + node.setColor(Red); + node.setParent(maybe_parent); + + if (maybe_parent) |parent| { + parent.setChild(node, is_left); + } else { + tree.root = node; + } + + while (node.getParent()) |*parent| { + if (parent.*.isBlack()) + break; + // the root is always black + var grandpa = parent.*.getParent() orelse unreachable; + + if (parent.* == grandpa.left) { + var maybe_uncle = grandpa.right; + + if (maybe_uncle) |uncle| { + if (uncle.isBlack()) + break; + + parent.*.setColor(Black); + uncle.setColor(Black); + grandpa.setColor(Red); + node = grandpa; + } else { + if (node == parent.*.right) { + rotateLeft(parent.*, tree); + node = parent.*; + parent.* = node.getParent().?; // Just rotated + } + parent.*.setColor(Black); + grandpa.setColor(Red); + rotateRight(grandpa, tree); + } + } else { + var maybe_uncle = grandpa.left; + + if (maybe_uncle) |uncle| { + if (uncle.isBlack()) + break; + + parent.*.setColor(Black); + uncle.setColor(Black); + grandpa.setColor(Red); + node = grandpa; + } else { + if (node == parent.*.left) { + rotateRight(parent.*, tree); + node = parent.*; + parent.* = node.getParent().?; // Just rotated + } + parent.*.setColor(Black); + grandpa.setColor(Red); + rotateLeft(grandpa, tree); + } + } + } + // This was an insert, there is at least one node. + tree.root.?.setColor(Black); + return null; + } + + /// lookup searches for the value of key, using binary search. It will + /// return a pointer to the node if it is there, otherwise it will return null. + /// Complexity guaranteed O(log n), where n is the number of nodes book-kept + /// by tree. + pub fn lookup(tree: *Tree, key: *Node) ?*Node { + var parent: ?*Node = undefined; + var is_left: bool = undefined; + return doLookup(key, tree, &parent, &is_left); + } + + pub fn remove(tree: *Tree, nodeconst: *Node) void { + var node = nodeconst; + // as this has the same value as node, it is unsafe to access node after newnode + var newnode: ?*Node = nodeconst; + var maybe_parent: ?*Node = node.getParent(); + var color: Color = undefined; + var next: *Node = undefined; + + // This clause is to avoid optionals + if (node.left == null and node.right == null) { + if (maybe_parent) |parent| { + parent.setChild(null, parent.left == node); + } else + tree.root = null; + color = node.getColor(); + newnode = null; + } else { + if (node.left == null) { + next = node.right.?; // Not both null as per above + } else if (node.right == null) { + next = node.left.?; // Not both null as per above + } else + next = node.right.?.getFirst(); // Just checked for null above + + if (maybe_parent) |parent| { + parent.setChild(next, parent.left == node); + } else + tree.root = next; + + if (node.left != null and node.right != null) { + const left = node.left.?; + const right = node.right.?; + + color = next.getColor(); + next.setColor(node.getColor()); + + next.left = left; + left.setParent(next); + + if (next != right) { + var parent = next.getParent().?; // Was traversed via child node (right/left) + next.setParent(node.getParent()); + + newnode = next.right; + parent.left = node; + + next.right = right; + right.setParent(next); + } else { + next.setParent(maybe_parent); + maybe_parent = next; + newnode = next.right; + } + } else { + color = node.getColor(); + newnode = next; + } + } + + if (newnode) |n| + n.setParent(maybe_parent); + + if (color == Red) + return; + if (newnode) |n| { + n.setColor(Black); + return; + } + + while (node == tree.root) { + // If not root, there must be parent + var parent = maybe_parent.?; + if (node == parent.left) { + var sibling = parent.right.?; // Same number of black nodes. + + if (sibling.isRed()) { + sibling.setColor(Black); + parent.setColor(Red); + rotateLeft(parent, tree); + sibling = parent.right.?; // Just rotated + } + if ((if (sibling.left) |n| n.isBlack() else true) and + (if (sibling.right) |n| n.isBlack() else true)) + { + sibling.setColor(Red); + node = parent; + maybe_parent = parent.getParent(); + continue; + } + if (if (sibling.right) |n| n.isBlack() else true) { + sibling.left.?.setColor(Black); // Same number of black nodes. + sibling.setColor(Red); + rotateRight(sibling, tree); + sibling = parent.right.?; // Just rotated + } + sibling.setColor(parent.getColor()); + parent.setColor(Black); + sibling.right.?.setColor(Black); // Same number of black nodes. + rotateLeft(parent, tree); + newnode = tree.root; + break; + } else { + var sibling = parent.left.?; // Same number of black nodes. + + if (sibling.isRed()) { + sibling.setColor(Black); + parent.setColor(Red); + rotateRight(parent, tree); + sibling = parent.left.?; // Just rotated + } + if ((if (sibling.left) |n| n.isBlack() else true) and + (if (sibling.right) |n| n.isBlack() else true)) + { + sibling.setColor(Red); + node = parent; + maybe_parent = parent.getParent(); + continue; + } + if (if (sibling.left) |n| n.isBlack() else true) { + sibling.right.?.setColor(Black); // Same number of black nodes + sibling.setColor(Red); + rotateLeft(sibling, tree); + sibling = parent.left.?; // Just rotated + } + sibling.setColor(parent.getColor()); + parent.setColor(Black); + sibling.left.?.setColor(Black); // Same number of black nodes + rotateRight(parent, tree); + newnode = tree.root; + break; + } + + if (node.isRed()) + break; + } + + if (newnode) |n| + n.setColor(Black); + } + + /// This is a shortcut to avoid removing and re-inserting an item with the same key. + pub fn replace(tree: *Tree, old: *Node, newconst: *Node) !void { + var new = newconst; + + // I assume this can get optimized out if the caller already knows. + if (tree.compareFn(old, new) != mem.Compare.Equal) return ReplaceError.NotEqual; + + if (old.getParent()) |parent| { + parent.setChild(new, parent.left == old); + } else + tree.root = new; + + if (old.left) |left| + left.setParent(new); + if (old.right) |right| + right.setParent(new); + + new.* = old.*; + } + + pub fn init(tree: *Tree, f: fn (*Node, *Node) mem.Compare) void { + tree.root = null; + tree.compareFn = f; + } +}; + +fn rotateLeft(node: *Node, tree: *Tree) void { + var p: *Node = node; + var q: *Node = node.right orelse unreachable; + var parent: *Node = undefined; + + if (!p.isRoot()) { + parent = p.getParent().?; + if (parent.left == p) { + parent.left = q; + } else { + parent.right = q; + } + q.setParent(parent); + } else { + tree.root = q; + q.setParent(null); + } + p.setParent(q); + + p.right = q.left; + if (p.right) |right| { + right.setParent(p); + } + q.left = p; +} + +fn rotateRight(node: *Node, tree: *Tree) void { + var p: *Node = node; + var q: *Node = node.left orelse unreachable; + var parent: *Node = undefined; + + if (!p.isRoot()) { + parent = p.getParent().?; + if (parent.left == p) { + parent.left = q; + } else { + parent.right = q; + } + q.setParent(parent); + } else { + tree.root = q; + q.setParent(null); + } + p.setParent(q); + + p.left = q.right; + if (p.left) |left| { + left.setParent(p); + } + q.right = p; +} + +fn doLookup(key: *Node, tree: *Tree, pparent: *?*Node, is_left: *bool) ?*Node { + var maybe_node: ?*Node = tree.root; + + pparent.* = null; + is_left.* = false; + + while (maybe_node) |node| { + var res: mem.Compare = tree.compareFn(node, key); + if (res == mem.Compare.Equal) { + return node; + } + pparent.* = node; + if (res == mem.Compare.GreaterThan) { + is_left.* = true; + maybe_node = node.left; + } else if (res == mem.Compare.LessThan) { + is_left.* = false; + maybe_node = node.right; + } else { + unreachable; + } + } + return null; +} + +const testNumber = struct { + node: Node, + value: usize, +}; + +fn testGetNumber(node: *Node) *testNumber { + return @fieldParentPtr(testNumber, "node", node); +} + +fn testCompare(l: *Node, r: *Node) mem.Compare { + var left = testGetNumber(l); + var right = testGetNumber(r); + + if (left.value < right.value) { + return mem.Compare.LessThan; + } else if (left.value == right.value) { + return mem.Compare.Equal; + } else if (left.value > right.value) { + return mem.Compare.GreaterThan; + } + unreachable; +} + +test "rb" { + if (@import("builtin").arch == .aarch64) { + // TODO https://github.com/ziglang/zig/issues/3288 + return error.SkipZigTest; + } + + var tree: Tree = undefined; + var ns: [10]testNumber = undefined; + ns[0].value = 42; + ns[1].value = 41; + ns[2].value = 40; + ns[3].value = 39; + ns[4].value = 38; + ns[5].value = 39; + ns[6].value = 3453; + ns[7].value = 32345; + ns[8].value = 392345; + ns[9].value = 4; + + var dup: testNumber = undefined; + dup.value = 32345; + + tree.init(testCompare); + _ = tree.insert(&ns[1].node); + _ = tree.insert(&ns[2].node); + _ = tree.insert(&ns[3].node); + _ = tree.insert(&ns[4].node); + _ = tree.insert(&ns[5].node); + _ = tree.insert(&ns[6].node); + _ = tree.insert(&ns[7].node); + _ = tree.insert(&ns[8].node); + _ = tree.insert(&ns[9].node); + tree.remove(&ns[3].node); + testing.expect(tree.insert(&dup.node) == &ns[7].node); + try tree.replace(&ns[7].node, &dup.node); + + var num: *testNumber = undefined; + num = testGetNumber(tree.first().?); + while (num.node.next() != null) { + testing.expect(testGetNumber(num.node.next().?).value > num.value); + num = testGetNumber(num.node.next().?); + } +} + +test "inserting and looking up" { + var tree: Tree = undefined; + tree.init(testCompare); + var number: testNumber = undefined; + number.value = 1000; + _ = tree.insert(&number.node); + var dup: testNumber = undefined; + //Assert that tuples with identical value fields finds the same pointer + dup.value = 1000; + assert(tree.lookup(&dup.node) == &number.node); + //Assert that tuples with identical values do not clobber when inserted. + _ = tree.insert(&dup.node); + assert(tree.lookup(&dup.node) == &number.node); + assert(tree.lookup(&number.node) != &dup.node); + assert(testGetNumber(tree.lookup(&dup.node).?).value == testGetNumber(&dup.node).value); + //Assert that if looking for a non-existing value, return null. + var non_existing_value: testNumber = undefined; + non_existing_value.value = 1234; + assert(tree.lookup(&non_existing_value.node) == null); +} + +test "multiple inserts, followed by calling first and last" { + if (@import("builtin").arch == .aarch64) { + // TODO https://github.com/ziglang/zig/issues/3288 + return error.SkipZigTest; + } + var tree: Tree = undefined; + tree.init(testCompare); + var zeroth: testNumber = undefined; + zeroth.value = 0; + var first: testNumber = undefined; + first.value = 1; + var second: testNumber = undefined; + second.value = 2; + var third: testNumber = undefined; + third.value = 3; + _ = tree.insert(&zeroth.node); + _ = tree.insert(&first.node); + _ = tree.insert(&second.node); + _ = tree.insert(&third.node); + assert(testGetNumber(tree.first().?).value == 0); + assert(testGetNumber(tree.last().?).value == 3); + var lookupNode: testNumber = undefined; + lookupNode.value = 3; + assert(tree.lookup(&lookupNode.node) == &third.node); +} diff --git a/lib/std/segmented_list.zig b/lib/std/segmented_list.zig new file mode 100644 index 0000000000..3bbbde782e --- /dev/null +++ b/lib/std/segmented_list.zig @@ -0,0 +1,409 @@ +const std = @import("std.zig"); +const assert = std.debug.assert; +const testing = std.testing; +const Allocator = std.mem.Allocator; + +// Imagine that `fn at(self: *Self, index: usize) &T` is a customer asking for a box +// from a warehouse, based on a flat array, boxes ordered from 0 to N - 1. +// But the warehouse actually stores boxes in shelves of increasing powers of 2 sizes. +// So when the customer requests a box index, we have to translate it to shelf index +// and box index within that shelf. Illustration: +// +// customer indexes: +// shelf 0: 0 +// shelf 1: 1 2 +// shelf 2: 3 4 5 6 +// shelf 3: 7 8 9 10 11 12 13 14 +// shelf 4: 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 +// shelf 5: 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 +// ... +// +// warehouse indexes: +// shelf 0: 0 +// shelf 1: 0 1 +// shelf 2: 0 1 2 3 +// shelf 3: 0 1 2 3 4 5 6 7 +// shelf 4: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +// shelf 5: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 +// ... +// +// With this arrangement, here are the equations to get the shelf index and +// box index based on customer box index: +// +// shelf_index = floor(log2(customer_index + 1)) +// shelf_count = ceil(log2(box_count + 1)) +// box_index = customer_index + 1 - 2 ** shelf +// shelf_size = 2 ** shelf_index +// +// Now we complicate it a little bit further by adding a preallocated shelf, which must be +// a power of 2: +// prealloc=4 +// +// customer indexes: +// prealloc: 0 1 2 3 +// shelf 0: 4 5 6 7 8 9 10 11 +// shelf 1: 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 +// shelf 2: 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 +// ... +// +// warehouse indexes: +// prealloc: 0 1 2 3 +// shelf 0: 0 1 2 3 4 5 6 7 +// shelf 1: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +// shelf 2: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 +// ... +// +// Now the equations are: +// +// shelf_index = floor(log2(customer_index + prealloc)) - log2(prealloc) - 1 +// shelf_count = ceil(log2(box_count + prealloc)) - log2(prealloc) - 1 +// box_index = customer_index + prealloc - 2 ** (log2(prealloc) + 1 + shelf) +// shelf_size = prealloc * 2 ** (shelf_index + 1) + +/// This is a stack data structure where pointers to indexes have the same lifetime as the data structure +/// itself, unlike ArrayList where push() invalidates all existing element pointers. +/// The tradeoff is that elements are not guaranteed to be contiguous. For that, use ArrayList. +/// Note however that most elements are contiguous, making this data structure cache-friendly. +/// +/// Because it never has to copy elements from an old location to a new location, it does not require +/// its elements to be copyable, and it avoids wasting memory when backed by an ArenaAllocator. +/// Note that the push() and pop() convenience methods perform a copy, but you can instead use +/// addOne(), at(), setCapacity(), and shrinkCapacity() to avoid copying items. +/// +/// This data structure has O(1) push and O(1) pop. +/// +/// It supports preallocated elements, making it especially well suited when the expected maximum +/// size is small. `prealloc_item_count` must be 0, or a power of 2. +pub fn SegmentedList(comptime T: type, comptime prealloc_item_count: usize) type { + return struct { + const Self = @This(); + const ShelfIndex = std.math.Log2Int(usize); + + const prealloc_exp: ShelfIndex = blk: { + // we don't use the prealloc_exp constant when prealloc_item_count is 0 + // but lazy-init may still be triggered by other code so supply a value + if (prealloc_item_count == 0) { + break :blk 0; + } else { + assert(std.math.isPowerOfTwo(prealloc_item_count)); + const value = std.math.log2_int(usize, prealloc_item_count); + break :blk value; + } + }; + + prealloc_segment: [prealloc_item_count]T, + dynamic_segments: [][*]T, + allocator: *Allocator, + len: usize, + + pub const prealloc_count = prealloc_item_count; + + fn AtType(comptime SelfType: type) type { + if (@typeInfo(SelfType).Pointer.is_const) { + return *const T; + } else { + return *T; + } + } + + /// Deinitialize with `deinit` + pub fn init(allocator: *Allocator) Self { + return Self{ + .allocator = allocator, + .len = 0, + .prealloc_segment = undefined, + .dynamic_segments = [_][*]T{}, + }; + } + + pub fn deinit(self: *Self) void { + self.freeShelves(@intCast(ShelfIndex, self.dynamic_segments.len), 0); + self.allocator.free(self.dynamic_segments); + self.* = undefined; + } + + pub fn at(self: var, i: usize) AtType(@typeOf(self)) { + assert(i < self.len); + return self.uncheckedAt(i); + } + + pub fn count(self: Self) usize { + return self.len; + } + + pub fn push(self: *Self, item: T) !void { + const new_item_ptr = try self.addOne(); + new_item_ptr.* = item; + } + + pub fn pushMany(self: *Self, items: []const T) !void { + for (items) |item| { + try self.push(item); + } + } + + pub fn pop(self: *Self) ?T { + if (self.len == 0) return null; + + const index = self.len - 1; + const result = uncheckedAt(self, index).*; + self.len = index; + return result; + } + + pub fn addOne(self: *Self) !*T { + const new_length = self.len + 1; + try self.growCapacity(new_length); + const result = uncheckedAt(self, self.len); + self.len = new_length; + return result; + } + + /// Grows or shrinks capacity to match usage. + pub fn setCapacity(self: *Self, new_capacity: usize) !void { + if (prealloc_item_count != 0) { + if (new_capacity <= usize(1) << (prealloc_exp + @intCast(ShelfIndex, self.dynamic_segments.len))) { + return self.shrinkCapacity(new_capacity); + } + } + return self.growCapacity(new_capacity); + } + + /// Only grows capacity, or retains current capacity + pub fn growCapacity(self: *Self, new_capacity: usize) !void { + const new_cap_shelf_count = shelfCount(new_capacity); + const old_shelf_count = @intCast(ShelfIndex, self.dynamic_segments.len); + if (new_cap_shelf_count > old_shelf_count) { + self.dynamic_segments = try self.allocator.realloc(self.dynamic_segments, new_cap_shelf_count); + var i = old_shelf_count; + errdefer { + self.freeShelves(i, old_shelf_count); + self.dynamic_segments = self.allocator.shrink(self.dynamic_segments, old_shelf_count); + } + while (i < new_cap_shelf_count) : (i += 1) { + self.dynamic_segments[i] = (try self.allocator.alloc(T, shelfSize(i))).ptr; + } + } + } + + /// Only shrinks capacity or retains current capacity + pub fn shrinkCapacity(self: *Self, new_capacity: usize) void { + if (new_capacity <= prealloc_item_count) { + const len = @intCast(ShelfIndex, self.dynamic_segments.len); + self.freeShelves(len, 0); + self.allocator.free(self.dynamic_segments); + self.dynamic_segments = [_][*]T{}; + return; + } + + const new_cap_shelf_count = shelfCount(new_capacity); + const old_shelf_count = @intCast(ShelfIndex, self.dynamic_segments.len); + assert(new_cap_shelf_count <= old_shelf_count); + if (new_cap_shelf_count == old_shelf_count) { + return; + } + + self.freeShelves(old_shelf_count, new_cap_shelf_count); + self.dynamic_segments = self.allocator.shrink(self.dynamic_segments, new_cap_shelf_count); + } + + pub fn shrink(self: *Self, new_len: usize) void { + assert(new_len <= self.len); + // TODO take advantage of the new realloc semantics + self.len = new_len; + } + + pub fn uncheckedAt(self: var, index: usize) AtType(@typeOf(self)) { + if (index < prealloc_item_count) { + return &self.prealloc_segment[index]; + } + const shelf_index = shelfIndex(index); + const box_index = boxIndex(index, shelf_index); + return &self.dynamic_segments[shelf_index][box_index]; + } + + fn shelfCount(box_count: usize) ShelfIndex { + if (prealloc_item_count == 0) { + return std.math.log2_int_ceil(usize, box_count + 1); + } + return std.math.log2_int_ceil(usize, box_count + prealloc_item_count) - prealloc_exp - 1; + } + + fn shelfSize(shelf_index: ShelfIndex) usize { + if (prealloc_item_count == 0) { + return usize(1) << shelf_index; + } + return usize(1) << (shelf_index + (prealloc_exp + 1)); + } + + fn shelfIndex(list_index: usize) ShelfIndex { + if (prealloc_item_count == 0) { + return std.math.log2_int(usize, list_index + 1); + } + return std.math.log2_int(usize, list_index + prealloc_item_count) - prealloc_exp - 1; + } + + fn boxIndex(list_index: usize, shelf_index: ShelfIndex) usize { + if (prealloc_item_count == 0) { + return (list_index + 1) - (usize(1) << shelf_index); + } + return list_index + prealloc_item_count - (usize(1) << ((prealloc_exp + 1) + shelf_index)); + } + + fn freeShelves(self: *Self, from_count: ShelfIndex, to_count: ShelfIndex) void { + var i = from_count; + while (i != to_count) { + i -= 1; + self.allocator.free(self.dynamic_segments[i][0..shelfSize(i)]); + } + } + + pub const Iterator = struct { + list: *Self, + index: usize, + box_index: usize, + shelf_index: ShelfIndex, + shelf_size: usize, + + pub fn next(it: *Iterator) ?*T { + if (it.index >= it.list.len) return null; + if (it.index < prealloc_item_count) { + const ptr = &it.list.prealloc_segment[it.index]; + it.index += 1; + if (it.index == prealloc_item_count) { + it.box_index = 0; + it.shelf_index = 0; + it.shelf_size = prealloc_item_count * 2; + } + return ptr; + } + + const ptr = &it.list.dynamic_segments[it.shelf_index][it.box_index]; + it.index += 1; + it.box_index += 1; + if (it.box_index == it.shelf_size) { + it.shelf_index += 1; + it.box_index = 0; + it.shelf_size *= 2; + } + return ptr; + } + + pub fn prev(it: *Iterator) ?*T { + if (it.index == 0) return null; + + it.index -= 1; + if (it.index < prealloc_item_count) return &it.list.prealloc_segment[it.index]; + + if (it.box_index == 0) { + it.shelf_index -= 1; + it.shelf_size /= 2; + it.box_index = it.shelf_size - 1; + } else { + it.box_index -= 1; + } + + return &it.list.dynamic_segments[it.shelf_index][it.box_index]; + } + + pub fn peek(it: *Iterator) ?*T { + if (it.index >= it.list.len) + return null; + if (it.index < prealloc_item_count) + return &it.list.prealloc_segment[it.index]; + + return &it.list.dynamic_segments[it.shelf_index][it.box_index]; + } + + pub fn set(it: *Iterator, index: usize) void { + it.index = index; + if (index < prealloc_item_count) return; + it.shelf_index = shelfIndex(index); + it.box_index = boxIndex(index, it.shelf_index); + it.shelf_size = shelfSize(it.shelf_index); + } + }; + + pub fn iterator(self: *Self, start_index: usize) Iterator { + var it = Iterator{ + .list = self, + .index = undefined, + .shelf_index = undefined, + .box_index = undefined, + .shelf_size = undefined, + }; + it.set(start_index); + return it; + } + }; +} + +test "std.SegmentedList" { + var a = std.heap.direct_allocator; + + try testSegmentedList(0, a); + try testSegmentedList(1, a); + try testSegmentedList(2, a); + try testSegmentedList(4, a); + try testSegmentedList(8, a); + try testSegmentedList(16, a); +} + +fn testSegmentedList(comptime prealloc: usize, allocator: *Allocator) !void { + var list = SegmentedList(i32, prealloc).init(allocator); + defer list.deinit(); + + { + var i: usize = 0; + while (i < 100) : (i += 1) { + try list.push(@intCast(i32, i + 1)); + testing.expect(list.len == i + 1); + } + } + + { + var i: usize = 0; + while (i < 100) : (i += 1) { + testing.expect(list.at(i).* == @intCast(i32, i + 1)); + } + } + + { + var it = list.iterator(0); + var x: i32 = 0; + while (it.next()) |item| { + x += 1; + testing.expect(item.* == x); + } + testing.expect(x == 100); + while (it.prev()) |item| : (x -= 1) { + testing.expect(item.* == x); + } + testing.expect(x == 0); + } + + testing.expect(list.pop().? == 100); + testing.expect(list.len == 99); + + try list.pushMany([_]i32{ + 1, + 2, + 3, + }); + testing.expect(list.len == 102); + testing.expect(list.pop().? == 3); + testing.expect(list.pop().? == 2); + testing.expect(list.pop().? == 1); + testing.expect(list.len == 99); + + try list.pushMany([_]i32{}); + testing.expect(list.len == 99); + + var i: i32 = 99; + while (list.pop()) |item| : (i -= 1) { + testing.expect(item == i); + list.shrinkCapacity(list.len); + } + + try list.setCapacity(0); +} diff --git a/lib/std/sort.zig b/lib/std/sort.zig new file mode 100644 index 0000000000..378a92992f --- /dev/null +++ b/lib/std/sort.zig @@ -0,0 +1,1216 @@ +const std = @import("std.zig"); +const assert = std.debug.assert; +const testing = std.testing; +const mem = std.mem; +const math = std.math; +const builtin = @import("builtin"); + +/// Stable in-place sort. O(n) best case, O(pow(n, 2)) worst case. O(1) memory (no allocator required). +pub fn insertionSort(comptime T: type, items: []T, lessThan: fn (lhs: T, rhs: T) bool) void { + { + var i: usize = 1; + while (i < items.len) : (i += 1) { + const x = items[i]; + var j: usize = i; + while (j > 0 and lessThan(x, items[j - 1])) : (j -= 1) { + items[j] = items[j - 1]; + } + items[j] = x; + } + } +} + +const Range = struct { + start: usize, + end: usize, + + fn init(start: usize, end: usize) Range { + return Range{ + .start = start, + .end = end, + }; + } + + fn length(self: Range) usize { + return self.end - self.start; + } +}; + +const Iterator = struct { + size: usize, + power_of_two: usize, + numerator: usize, + decimal: usize, + denominator: usize, + decimal_step: usize, + numerator_step: usize, + + fn init(size2: usize, min_level: usize) Iterator { + const power_of_two = math.floorPowerOfTwo(usize, size2); + const denominator = power_of_two / min_level; + return Iterator{ + .numerator = 0, + .decimal = 0, + .size = size2, + .power_of_two = power_of_two, + .denominator = denominator, + .decimal_step = size2 / denominator, + .numerator_step = size2 % denominator, + }; + } + + fn begin(self: *Iterator) void { + self.numerator = 0; + self.decimal = 0; + } + + fn nextRange(self: *Iterator) Range { + const start = self.decimal; + + self.decimal += self.decimal_step; + self.numerator += self.numerator_step; + if (self.numerator >= self.denominator) { + self.numerator -= self.denominator; + self.decimal += 1; + } + + return Range{ + .start = start, + .end = self.decimal, + }; + } + + fn finished(self: *Iterator) bool { + return self.decimal >= self.size; + } + + fn nextLevel(self: *Iterator) bool { + self.decimal_step += self.decimal_step; + self.numerator_step += self.numerator_step; + if (self.numerator_step >= self.denominator) { + self.numerator_step -= self.denominator; + self.decimal_step += 1; + } + + return (self.decimal_step < self.size); + } + + fn length(self: *Iterator) usize { + return self.decimal_step; + } +}; + +const Pull = struct { + from: usize, + to: usize, + count: usize, + range: Range, +}; + +/// Stable in-place sort. O(n) best case, O(n*log(n)) worst case and average case. O(1) memory (no allocator required). +/// Currently implemented as block sort. +pub fn sort(comptime T: type, items: []T, lessThan: fn (lhs: T, rhs: T) bool) void { + // Implementation ported from https://github.com/BonzaiThePenguin/WikiSort/blob/master/WikiSort.c + var cache: [512]T = undefined; + + if (items.len < 4) { + if (items.len == 3) { + // hard coded insertion sort + if (lessThan(items[1], items[0])) mem.swap(T, &items[0], &items[1]); + if (lessThan(items[2], items[1])) { + mem.swap(T, &items[1], &items[2]); + if (lessThan(items[1], items[0])) mem.swap(T, &items[0], &items[1]); + } + } else if (items.len == 2) { + if (lessThan(items[1], items[0])) mem.swap(T, &items[0], &items[1]); + } + return; + } + + // sort groups of 4-8 items at a time using an unstable sorting network, + // but keep track of the original item orders to force it to be stable + // http://pages.ripco.net/~jgamble/nw.html + var iterator = Iterator.init(items.len, 4); + while (!iterator.finished()) { + var order = [_]u8{ 0, 1, 2, 3, 4, 5, 6, 7 }; + const range = iterator.nextRange(); + + const sliced_items = items[range.start..]; + switch (range.length()) { + 8 => { + swap(T, sliced_items, lessThan, &order, 0, 1); + swap(T, sliced_items, lessThan, &order, 2, 3); + swap(T, sliced_items, lessThan, &order, 4, 5); + swap(T, sliced_items, lessThan, &order, 6, 7); + swap(T, sliced_items, lessThan, &order, 0, 2); + swap(T, sliced_items, lessThan, &order, 1, 3); + swap(T, sliced_items, lessThan, &order, 4, 6); + swap(T, sliced_items, lessThan, &order, 5, 7); + swap(T, sliced_items, lessThan, &order, 1, 2); + swap(T, sliced_items, lessThan, &order, 5, 6); + swap(T, sliced_items, lessThan, &order, 0, 4); + swap(T, sliced_items, lessThan, &order, 3, 7); + swap(T, sliced_items, lessThan, &order, 1, 5); + swap(T, sliced_items, lessThan, &order, 2, 6); + swap(T, sliced_items, lessThan, &order, 1, 4); + swap(T, sliced_items, lessThan, &order, 3, 6); + swap(T, sliced_items, lessThan, &order, 2, 4); + swap(T, sliced_items, lessThan, &order, 3, 5); + swap(T, sliced_items, lessThan, &order, 3, 4); + }, + 7 => { + swap(T, sliced_items, lessThan, &order, 1, 2); + swap(T, sliced_items, lessThan, &order, 3, 4); + swap(T, sliced_items, lessThan, &order, 5, 6); + swap(T, sliced_items, lessThan, &order, 0, 2); + swap(T, sliced_items, lessThan, &order, 3, 5); + swap(T, sliced_items, lessThan, &order, 4, 6); + swap(T, sliced_items, lessThan, &order, 0, 1); + swap(T, sliced_items, lessThan, &order, 4, 5); + swap(T, sliced_items, lessThan, &order, 2, 6); + swap(T, sliced_items, lessThan, &order, 0, 4); + swap(T, sliced_items, lessThan, &order, 1, 5); + swap(T, sliced_items, lessThan, &order, 0, 3); + swap(T, sliced_items, lessThan, &order, 2, 5); + swap(T, sliced_items, lessThan, &order, 1, 3); + swap(T, sliced_items, lessThan, &order, 2, 4); + swap(T, sliced_items, lessThan, &order, 2, 3); + }, + 6 => { + swap(T, sliced_items, lessThan, &order, 1, 2); + swap(T, sliced_items, lessThan, &order, 4, 5); + swap(T, sliced_items, lessThan, &order, 0, 2); + swap(T, sliced_items, lessThan, &order, 3, 5); + swap(T, sliced_items, lessThan, &order, 0, 1); + swap(T, sliced_items, lessThan, &order, 3, 4); + swap(T, sliced_items, lessThan, &order, 2, 5); + swap(T, sliced_items, lessThan, &order, 0, 3); + swap(T, sliced_items, lessThan, &order, 1, 4); + swap(T, sliced_items, lessThan, &order, 2, 4); + swap(T, sliced_items, lessThan, &order, 1, 3); + swap(T, sliced_items, lessThan, &order, 2, 3); + }, + 5 => { + swap(T, sliced_items, lessThan, &order, 0, 1); + swap(T, sliced_items, lessThan, &order, 3, 4); + swap(T, sliced_items, lessThan, &order, 2, 4); + swap(T, sliced_items, lessThan, &order, 2, 3); + swap(T, sliced_items, lessThan, &order, 1, 4); + swap(T, sliced_items, lessThan, &order, 0, 3); + swap(T, sliced_items, lessThan, &order, 0, 2); + swap(T, sliced_items, lessThan, &order, 1, 3); + swap(T, sliced_items, lessThan, &order, 1, 2); + }, + 4 => { + swap(T, sliced_items, lessThan, &order, 0, 1); + swap(T, sliced_items, lessThan, &order, 2, 3); + swap(T, sliced_items, lessThan, &order, 0, 2); + swap(T, sliced_items, lessThan, &order, 1, 3); + swap(T, sliced_items, lessThan, &order, 1, 2); + }, + else => {}, + } + } + if (items.len < 8) return; + + // then merge sort the higher levels, which can be 8-15, 16-31, 32-63, 64-127, etc. + while (true) { + // if every A and B block will fit into the cache, use a special branch specifically for merging with the cache + // (we use < rather than <= since the block size might be one more than iterator.length()) + if (iterator.length() < cache.len) { + // if four subarrays fit into the cache, it's faster to merge both pairs of subarrays into the cache, + // then merge the two merged subarrays from the cache back into the original array + if ((iterator.length() + 1) * 4 <= cache.len and iterator.length() * 4 <= items.len) { + iterator.begin(); + while (!iterator.finished()) { + // merge A1 and B1 into the cache + var A1 = iterator.nextRange(); + var B1 = iterator.nextRange(); + var A2 = iterator.nextRange(); + var B2 = iterator.nextRange(); + + if (lessThan(items[B1.end - 1], items[A1.start])) { + // the two ranges are in reverse order, so copy them in reverse order into the cache + mem.copy(T, cache[B1.length()..], items[A1.start..A1.end]); + mem.copy(T, cache[0..], items[B1.start..B1.end]); + } else if (lessThan(items[B1.start], items[A1.end - 1])) { + // these two ranges weren't already in order, so merge them into the cache + mergeInto(T, items, A1, B1, lessThan, cache[0..]); + } else { + // if A1, B1, A2, and B2 are all in order, skip doing anything else + if (!lessThan(items[B2.start], items[A2.end - 1]) and !lessThan(items[A2.start], items[B1.end - 1])) continue; + + // copy A1 and B1 into the cache in the same order + mem.copy(T, cache[0..], items[A1.start..A1.end]); + mem.copy(T, cache[A1.length()..], items[B1.start..B1.end]); + } + A1 = Range.init(A1.start, B1.end); + + // merge A2 and B2 into the cache + if (lessThan(items[B2.end - 1], items[A2.start])) { + // the two ranges are in reverse order, so copy them in reverse order into the cache + mem.copy(T, cache[A1.length() + B2.length() ..], items[A2.start..A2.end]); + mem.copy(T, cache[A1.length()..], items[B2.start..B2.end]); + } else if (lessThan(items[B2.start], items[A2.end - 1])) { + // these two ranges weren't already in order, so merge them into the cache + mergeInto(T, items, A2, B2, lessThan, cache[A1.length()..]); + } else { + // copy A2 and B2 into the cache in the same order + mem.copy(T, cache[A1.length()..], items[A2.start..A2.end]); + mem.copy(T, cache[A1.length() + A2.length() ..], items[B2.start..B2.end]); + } + A2 = Range.init(A2.start, B2.end); + + // merge A1 and A2 from the cache into the items + const A3 = Range.init(0, A1.length()); + const B3 = Range.init(A1.length(), A1.length() + A2.length()); + + if (lessThan(cache[B3.end - 1], cache[A3.start])) { + // the two ranges are in reverse order, so copy them in reverse order into the items + mem.copy(T, items[A1.start + A2.length() ..], cache[A3.start..A3.end]); + mem.copy(T, items[A1.start..], cache[B3.start..B3.end]); + } else if (lessThan(cache[B3.start], cache[A3.end - 1])) { + // these two ranges weren't already in order, so merge them back into the items + mergeInto(T, cache[0..], A3, B3, lessThan, items[A1.start..]); + } else { + // copy A3 and B3 into the items in the same order + mem.copy(T, items[A1.start..], cache[A3.start..A3.end]); + mem.copy(T, items[A1.start + A1.length() ..], cache[B3.start..B3.end]); + } + } + + // we merged two levels at the same time, so we're done with this level already + // (iterator.nextLevel() is called again at the bottom of this outer merge loop) + _ = iterator.nextLevel(); + } else { + iterator.begin(); + while (!iterator.finished()) { + var A = iterator.nextRange(); + var B = iterator.nextRange(); + + if (lessThan(items[B.end - 1], items[A.start])) { + // the two ranges are in reverse order, so a simple rotation should fix it + mem.rotate(T, items[A.start..B.end], A.length()); + } else if (lessThan(items[B.start], items[A.end - 1])) { + // these two ranges weren't already in order, so we'll need to merge them! + mem.copy(T, cache[0..], items[A.start..A.end]); + mergeExternal(T, items, A, B, lessThan, cache[0..]); + } + } + } + } else { + // this is where the in-place merge logic starts! + // 1. pull out two internal buffers each containing √A unique values + // 1a. adjust block_size and buffer_size if we couldn't find enough unique values + // 2. loop over the A and B subarrays within this level of the merge sort + // 3. break A and B into blocks of size 'block_size' + // 4. "tag" each of the A blocks with values from the first internal buffer + // 5. roll the A blocks through the B blocks and drop/rotate them where they belong + // 6. merge each A block with any B values that follow, using the cache or the second internal buffer + // 7. sort the second internal buffer if it exists + // 8. redistribute the two internal buffers back into the items + var block_size: usize = math.sqrt(iterator.length()); + var buffer_size = iterator.length() / block_size + 1; + + // as an optimization, we really only need to pull out the internal buffers once for each level of merges + // after that we can reuse the same buffers over and over, then redistribute it when we're finished with this level + var A: Range = undefined; + var B: Range = undefined; + var index: usize = 0; + var last: usize = 0; + var count: usize = 0; + var find: usize = 0; + var start: usize = 0; + var pull_index: usize = 0; + var pull = [_]Pull{ + Pull{ + .from = 0, + .to = 0, + .count = 0, + .range = Range.init(0, 0), + }, + Pull{ + .from = 0, + .to = 0, + .count = 0, + .range = Range.init(0, 0), + }, + }; + + var buffer1 = Range.init(0, 0); + var buffer2 = Range.init(0, 0); + + // find two internal buffers of size 'buffer_size' each + find = buffer_size + buffer_size; + var find_separately = false; + + if (block_size <= cache.len) { + // if every A block fits into the cache then we won't need the second internal buffer, + // so we really only need to find 'buffer_size' unique values + find = buffer_size; + } else if (find > iterator.length()) { + // we can't fit both buffers into the same A or B subarray, so find two buffers separately + find = buffer_size; + find_separately = true; + } + + // we need to find either a single contiguous space containing 2√A unique values (which will be split up into two buffers of size √A each), + // or we need to find one buffer of < 2√A unique values, and a second buffer of √A unique values, + // OR if we couldn't find that many unique values, we need the largest possible buffer we can get + + // in the case where it couldn't find a single buffer of at least √A unique values, + // all of the Merge steps must be replaced by a different merge algorithm (MergeInPlace) + iterator.begin(); + while (!iterator.finished()) { + A = iterator.nextRange(); + B = iterator.nextRange(); + + // just store information about where the values will be pulled from and to, + // as well as how many values there are, to create the two internal buffers + + // check A for the number of unique values we need to fill an internal buffer + // these values will be pulled out to the start of A + last = A.start; + count = 1; + while (count < find) : ({ + last = index; + count += 1; + }) { + index = findLastForward(T, items, items[last], Range.init(last + 1, A.end), lessThan, find - count); + if (index == A.end) break; + } + index = last; + + if (count >= buffer_size) { + // keep track of the range within the items where we'll need to "pull out" these values to create the internal buffer + pull[pull_index] = Pull{ + .range = Range.init(A.start, B.end), + .count = count, + .from = index, + .to = A.start, + }; + pull_index = 1; + + if (count == buffer_size + buffer_size) { + // we were able to find a single contiguous section containing 2√A unique values, + // so this section can be used to contain both of the internal buffers we'll need + buffer1 = Range.init(A.start, A.start + buffer_size); + buffer2 = Range.init(A.start + buffer_size, A.start + count); + break; + } else if (find == buffer_size + buffer_size) { + // we found a buffer that contains at least √A unique values, but did not contain the full 2√A unique values, + // so we still need to find a second separate buffer of at least √A unique values + buffer1 = Range.init(A.start, A.start + count); + find = buffer_size; + } else if (block_size <= cache.len) { + // we found the first and only internal buffer that we need, so we're done! + buffer1 = Range.init(A.start, A.start + count); + break; + } else if (find_separately) { + // found one buffer, but now find the other one + buffer1 = Range.init(A.start, A.start + count); + find_separately = false; + } else { + // we found a second buffer in an 'A' subarray containing √A unique values, so we're done! + buffer2 = Range.init(A.start, A.start + count); + break; + } + } else if (pull_index == 0 and count > buffer1.length()) { + // keep track of the largest buffer we were able to find + buffer1 = Range.init(A.start, A.start + count); + pull[pull_index] = Pull{ + .range = Range.init(A.start, B.end), + .count = count, + .from = index, + .to = A.start, + }; + } + + // check B for the number of unique values we need to fill an internal buffer + // these values will be pulled out to the end of B + last = B.end - 1; + count = 1; + while (count < find) : ({ + last = index - 1; + count += 1; + }) { + index = findFirstBackward(T, items, items[last], Range.init(B.start, last), lessThan, find - count); + if (index == B.start) break; + } + index = last; + + if (count >= buffer_size) { + // keep track of the range within the items where we'll need to "pull out" these values to create the internal buffe + pull[pull_index] = Pull{ + .range = Range.init(A.start, B.end), + .count = count, + .from = index, + .to = B.end, + }; + pull_index = 1; + + if (count == buffer_size + buffer_size) { + // we were able to find a single contiguous section containing 2√A unique values, + // so this section can be used to contain both of the internal buffers we'll need + buffer1 = Range.init(B.end - count, B.end - buffer_size); + buffer2 = Range.init(B.end - buffer_size, B.end); + break; + } else if (find == buffer_size + buffer_size) { + // we found a buffer that contains at least √A unique values, but did not contain the full 2√A unique values, + // so we still need to find a second separate buffer of at least √A unique values + buffer1 = Range.init(B.end - count, B.end); + find = buffer_size; + } else if (block_size <= cache.len) { + // we found the first and only internal buffer that we need, so we're done! + buffer1 = Range.init(B.end - count, B.end); + break; + } else if (find_separately) { + // found one buffer, but now find the other one + buffer1 = Range.init(B.end - count, B.end); + find_separately = false; + } else { + // buffer2 will be pulled out from a 'B' subarray, so if the first buffer was pulled out from the corresponding 'A' subarray, + // we need to adjust the end point for that A subarray so it knows to stop redistributing its values before reaching buffer2 + if (pull[0].range.start == A.start) pull[0].range.end -= pull[1].count; + + // we found a second buffer in an 'B' subarray containing √A unique values, so we're done! + buffer2 = Range.init(B.end - count, B.end); + break; + } + } else if (pull_index == 0 and count > buffer1.length()) { + // keep track of the largest buffer we were able to find + buffer1 = Range.init(B.end - count, B.end); + pull[pull_index] = Pull{ + .range = Range.init(A.start, B.end), + .count = count, + .from = index, + .to = B.end, + }; + } + } + + // pull out the two ranges so we can use them as internal buffers + pull_index = 0; + while (pull_index < 2) : (pull_index += 1) { + const length = pull[pull_index].count; + + if (pull[pull_index].to < pull[pull_index].from) { + // we're pulling the values out to the left, which means the start of an A subarray + index = pull[pull_index].from; + count = 1; + while (count < length) : (count += 1) { + index = findFirstBackward(T, items, items[index - 1], Range.init(pull[pull_index].to, pull[pull_index].from - (count - 1)), lessThan, length - count); + const range = Range.init(index + 1, pull[pull_index].from + 1); + mem.rotate(T, items[range.start..range.end], range.length() - count); + pull[pull_index].from = index + count; + } + } else if (pull[pull_index].to > pull[pull_index].from) { + // we're pulling values out to the right, which means the end of a B subarray + index = pull[pull_index].from + 1; + count = 1; + while (count < length) : (count += 1) { + index = findLastForward(T, items, items[index], Range.init(index, pull[pull_index].to), lessThan, length - count); + const range = Range.init(pull[pull_index].from, index - 1); + mem.rotate(T, items[range.start..range.end], count); + pull[pull_index].from = index - 1 - count; + } + } + } + + // adjust block_size and buffer_size based on the values we were able to pull out + buffer_size = buffer1.length(); + block_size = iterator.length() / buffer_size + 1; + + // the first buffer NEEDS to be large enough to tag each of the evenly sized A blocks, + // so this was originally here to test the math for adjusting block_size above + // assert((iterator.length() + 1)/block_size <= buffer_size); + + // now that the two internal buffers have been created, it's time to merge each A+B combination at this level of the merge sort! + iterator.begin(); + while (!iterator.finished()) { + A = iterator.nextRange(); + B = iterator.nextRange(); + + // remove any parts of A or B that are being used by the internal buffers + start = A.start; + if (start == pull[0].range.start) { + if (pull[0].from > pull[0].to) { + A.start += pull[0].count; + + // if the internal buffer takes up the entire A or B subarray, then there's nothing to merge + // this only happens for very small subarrays, like √4 = 2, 2 * (2 internal buffers) = 4, + // which also only happens when cache.len is small or 0 since it'd otherwise use MergeExternal + if (A.length() == 0) continue; + } else if (pull[0].from < pull[0].to) { + B.end -= pull[0].count; + if (B.length() == 0) continue; + } + } + if (start == pull[1].range.start) { + if (pull[1].from > pull[1].to) { + A.start += pull[1].count; + if (A.length() == 0) continue; + } else if (pull[1].from < pull[1].to) { + B.end -= pull[1].count; + if (B.length() == 0) continue; + } + } + + if (lessThan(items[B.end - 1], items[A.start])) { + // the two ranges are in reverse order, so a simple rotation should fix it + mem.rotate(T, items[A.start..B.end], A.length()); + } else if (lessThan(items[A.end], items[A.end - 1])) { + // these two ranges weren't already in order, so we'll need to merge them! + var findA: usize = undefined; + + // break the remainder of A into blocks. firstA is the uneven-sized first A block + var blockA = Range.init(A.start, A.end); + var firstA = Range.init(A.start, A.start + blockA.length() % block_size); + + // swap the first value of each A block with the value in buffer1 + var indexA = buffer1.start; + index = firstA.end; + while (index < blockA.end) : ({ + indexA += 1; + index += block_size; + }) { + mem.swap(T, &items[indexA], &items[index]); + } + + // start rolling the A blocks through the B blocks! + // whenever we leave an A block behind, we'll need to merge the previous A block with any B blocks that follow it, so track that information as well + var lastA = firstA; + var lastB = Range.init(0, 0); + var blockB = Range.init(B.start, B.start + math.min(block_size, B.length())); + blockA.start += firstA.length(); + indexA = buffer1.start; + + // if the first unevenly sized A block fits into the cache, copy it there for when we go to Merge it + // otherwise, if the second buffer is available, block swap the contents into that + if (lastA.length() <= cache.len) { + mem.copy(T, cache[0..], items[lastA.start..lastA.end]); + } else if (buffer2.length() > 0) { + blockSwap(T, items, lastA.start, buffer2.start, lastA.length()); + } + + if (blockA.length() > 0) { + while (true) { + // if there's a previous B block and the first value of the minimum A block is <= the last value of the previous B block, + // then drop that minimum A block behind. or if there are no B blocks left then keep dropping the remaining A blocks. + if ((lastB.length() > 0 and !lessThan(items[lastB.end - 1], items[indexA])) or blockB.length() == 0) { + // figure out where to split the previous B block, and rotate it at the split + const B_split = binaryFirst(T, items, items[indexA], lastB, lessThan); + const B_remaining = lastB.end - B_split; + + // swap the minimum A block to the beginning of the rolling A blocks + var minA = blockA.start; + findA = minA + block_size; + while (findA < blockA.end) : (findA += block_size) { + if (lessThan(items[findA], items[minA])) { + minA = findA; + } + } + blockSwap(T, items, blockA.start, minA, block_size); + + // swap the first item of the previous A block back with its original value, which is stored in buffer1 + mem.swap(T, &items[blockA.start], &items[indexA]); + indexA += 1; + + // locally merge the previous A block with the B values that follow it + // if lastA fits into the external cache we'll use that (with MergeExternal), + // or if the second internal buffer exists we'll use that (with MergeInternal), + // or failing that we'll use a strictly in-place merge algorithm (MergeInPlace) + + if (lastA.length() <= cache.len) { + mergeExternal(T, items, lastA, Range.init(lastA.end, B_split), lessThan, cache[0..]); + } else if (buffer2.length() > 0) { + mergeInternal(T, items, lastA, Range.init(lastA.end, B_split), lessThan, buffer2); + } else { + mergeInPlace(T, items, lastA, Range.init(lastA.end, B_split), lessThan); + } + + if (buffer2.length() > 0 or block_size <= cache.len) { + // copy the previous A block into the cache or buffer2, since that's where we need it to be when we go to merge it anyway + if (block_size <= cache.len) { + mem.copy(T, cache[0..], items[blockA.start .. blockA.start + block_size]); + } else { + blockSwap(T, items, blockA.start, buffer2.start, block_size); + } + + // this is equivalent to rotating, but faster + // the area normally taken up by the A block is either the contents of buffer2, or data we don't need anymore since we memcopied it + // either way, we don't need to retain the order of those items, so instead of rotating we can just block swap B to where it belongs + blockSwap(T, items, B_split, blockA.start + block_size - B_remaining, B_remaining); + } else { + // we are unable to use the 'buffer2' trick to speed up the rotation operation since buffer2 doesn't exist, so perform a normal rotation + mem.rotate(T, items[B_split .. blockA.start + block_size], blockA.start - B_split); + } + + // update the range for the remaining A blocks, and the range remaining from the B block after it was split + lastA = Range.init(blockA.start - B_remaining, blockA.start - B_remaining + block_size); + lastB = Range.init(lastA.end, lastA.end + B_remaining); + + // if there are no more A blocks remaining, this step is finished! + blockA.start += block_size; + if (blockA.length() == 0) break; + } else if (blockB.length() < block_size) { + // move the last B block, which is unevenly sized, to before the remaining A blocks, by using a rotation + // the cache is disabled here since it might contain the contents of the previous A block + mem.rotate(T, items[blockA.start..blockB.end], blockB.start - blockA.start); + + lastB = Range.init(blockA.start, blockA.start + blockB.length()); + blockA.start += blockB.length(); + blockA.end += blockB.length(); + blockB.end = blockB.start; + } else { + // roll the leftmost A block to the end by swapping it with the next B block + blockSwap(T, items, blockA.start, blockB.start, block_size); + lastB = Range.init(blockA.start, blockA.start + block_size); + + blockA.start += block_size; + blockA.end += block_size; + blockB.start += block_size; + + if (blockB.end > B.end - block_size) { + blockB.end = B.end; + } else { + blockB.end += block_size; + } + } + } + } + + // merge the last A block with the remaining B values + if (lastA.length() <= cache.len) { + mergeExternal(T, items, lastA, Range.init(lastA.end, B.end), lessThan, cache[0..]); + } else if (buffer2.length() > 0) { + mergeInternal(T, items, lastA, Range.init(lastA.end, B.end), lessThan, buffer2); + } else { + mergeInPlace(T, items, lastA, Range.init(lastA.end, B.end), lessThan); + } + } + } + + // when we're finished with this merge step we should have the one or two internal buffers left over, where the second buffer is all jumbled up + // insertion sort the second buffer, then redistribute the buffers back into the items using the opposite process used for creating the buffer + + // while an unstable sort like quicksort could be applied here, in benchmarks it was consistently slightly slower than a simple insertion sort, + // even for tens of millions of items. this may be because insertion sort is quite fast when the data is already somewhat sorted, like it is here + insertionSort(T, items[buffer2.start..buffer2.end], lessThan); + + pull_index = 0; + while (pull_index < 2) : (pull_index += 1) { + var unique = pull[pull_index].count * 2; + if (pull[pull_index].from > pull[pull_index].to) { + // the values were pulled out to the left, so redistribute them back to the right + var buffer = Range.init(pull[pull_index].range.start, pull[pull_index].range.start + pull[pull_index].count); + while (buffer.length() > 0) { + index = findFirstForward(T, items, items[buffer.start], Range.init(buffer.end, pull[pull_index].range.end), lessThan, unique); + const amount = index - buffer.end; + mem.rotate(T, items[buffer.start..index], buffer.length()); + buffer.start += (amount + 1); + buffer.end += amount; + unique -= 2; + } + } else if (pull[pull_index].from < pull[pull_index].to) { + // the values were pulled out to the right, so redistribute them back to the left + var buffer = Range.init(pull[pull_index].range.end - pull[pull_index].count, pull[pull_index].range.end); + while (buffer.length() > 0) { + index = findLastBackward(T, items, items[buffer.end - 1], Range.init(pull[pull_index].range.start, buffer.start), lessThan, unique); + const amount = buffer.start - index; + mem.rotate(T, items[index..buffer.end], amount); + buffer.start -= amount; + buffer.end -= (amount + 1); + unique -= 2; + } + } + } + } + + // double the size of each A and B subarray that will be merged in the next level + if (!iterator.nextLevel()) break; + } +} + +// merge operation without a buffer +fn mergeInPlace(comptime T: type, items: []T, A_arg: Range, B_arg: Range, lessThan: fn (T, T) bool) void { + if (A_arg.length() == 0 or B_arg.length() == 0) return; + + // this just repeatedly binary searches into B and rotates A into position. + // the paper suggests using the 'rotation-based Hwang and Lin algorithm' here, + // but I decided to stick with this because it had better situational performance + // + // (Hwang and Lin is designed for merging subarrays of very different sizes, + // but WikiSort almost always uses subarrays that are roughly the same size) + // + // normally this is incredibly suboptimal, but this function is only called + // when none of the A or B blocks in any subarray contained 2√A unique values, + // which places a hard limit on the number of times this will ACTUALLY need + // to binary search and rotate. + // + // according to my analysis the worst case is √A rotations performed on √A items + // once the constant factors are removed, which ends up being O(n) + // + // again, this is NOT a general-purpose solution – it only works well in this case! + // kind of like how the O(n^2) insertion sort is used in some places + + var A = A_arg; + var B = B_arg; + + while (true) { + // find the first place in B where the first item in A needs to be inserted + const mid = binaryFirst(T, items, items[A.start], B, lessThan); + + // rotate A into place + const amount = mid - A.end; + mem.rotate(T, items[A.start..mid], A.length()); + if (B.end == mid) break; + + // calculate the new A and B ranges + B.start = mid; + A = Range.init(A.start + amount, B.start); + A.start = binaryLast(T, items, items[A.start], A, lessThan); + if (A.length() == 0) break; + } +} + +// merge operation using an internal buffer +fn mergeInternal(comptime T: type, items: []T, A: Range, B: Range, lessThan: fn (T, T) bool, buffer: Range) void { + // whenever we find a value to add to the final array, swap it with the value that's already in that spot + // when this algorithm is finished, 'buffer' will contain its original contents, but in a different order + var A_count: usize = 0; + var B_count: usize = 0; + var insert: usize = 0; + + if (B.length() > 0 and A.length() > 0) { + while (true) { + if (!lessThan(items[B.start + B_count], items[buffer.start + A_count])) { + mem.swap(T, &items[A.start + insert], &items[buffer.start + A_count]); + A_count += 1; + insert += 1; + if (A_count >= A.length()) break; + } else { + mem.swap(T, &items[A.start + insert], &items[B.start + B_count]); + B_count += 1; + insert += 1; + if (B_count >= B.length()) break; + } + } + } + + // swap the remainder of A into the final array + blockSwap(T, items, buffer.start + A_count, A.start + insert, A.length() - A_count); +} + +fn blockSwap(comptime T: type, items: []T, start1: usize, start2: usize, block_size: usize) void { + var index: usize = 0; + while (index < block_size) : (index += 1) { + mem.swap(T, &items[start1 + index], &items[start2 + index]); + } +} + +// combine a linear search with a binary search to reduce the number of comparisons in situations +// where have some idea as to how many unique values there are and where the next value might be +fn findFirstForward(comptime T: type, items: []T, value: T, range: Range, lessThan: fn (T, T) bool, unique: usize) usize { + if (range.length() == 0) return range.start; + const skip = math.max(range.length() / unique, usize(1)); + + var index = range.start + skip; + while (lessThan(items[index - 1], value)) : (index += skip) { + if (index >= range.end - skip) { + return binaryFirst(T, items, value, Range.init(index, range.end), lessThan); + } + } + + return binaryFirst(T, items, value, Range.init(index - skip, index), lessThan); +} + +fn findFirstBackward(comptime T: type, items: []T, value: T, range: Range, lessThan: fn (T, T) bool, unique: usize) usize { + if (range.length() == 0) return range.start; + const skip = math.max(range.length() / unique, usize(1)); + + var index = range.end - skip; + while (index > range.start and !lessThan(items[index - 1], value)) : (index -= skip) { + if (index < range.start + skip) { + return binaryFirst(T, items, value, Range.init(range.start, index), lessThan); + } + } + + return binaryFirst(T, items, value, Range.init(index, index + skip), lessThan); +} + +fn findLastForward(comptime T: type, items: []T, value: T, range: Range, lessThan: fn (T, T) bool, unique: usize) usize { + if (range.length() == 0) return range.start; + const skip = math.max(range.length() / unique, usize(1)); + + var index = range.start + skip; + while (!lessThan(value, items[index - 1])) : (index += skip) { + if (index >= range.end - skip) { + return binaryLast(T, items, value, Range.init(index, range.end), lessThan); + } + } + + return binaryLast(T, items, value, Range.init(index - skip, index), lessThan); +} + +fn findLastBackward(comptime T: type, items: []T, value: T, range: Range, lessThan: fn (T, T) bool, unique: usize) usize { + if (range.length() == 0) return range.start; + const skip = math.max(range.length() / unique, usize(1)); + + var index = range.end - skip; + while (index > range.start and lessThan(value, items[index - 1])) : (index -= skip) { + if (index < range.start + skip) { + return binaryLast(T, items, value, Range.init(range.start, index), lessThan); + } + } + + return binaryLast(T, items, value, Range.init(index, index + skip), lessThan); +} + +fn binaryFirst(comptime T: type, items: []T, value: T, range: Range, lessThan: fn (T, T) bool) usize { + var start = range.start; + var end = range.end - 1; + if (range.start >= range.end) return range.end; + while (start < end) { + const mid = start + (end - start) / 2; + if (lessThan(items[mid], value)) { + start = mid + 1; + } else { + end = mid; + } + } + if (start == range.end - 1 and lessThan(items[start], value)) { + start += 1; + } + return start; +} + +fn binaryLast(comptime T: type, items: []T, value: T, range: Range, lessThan: fn (T, T) bool) usize { + var start = range.start; + var end = range.end - 1; + if (range.start >= range.end) return range.end; + while (start < end) { + const mid = start + (end - start) / 2; + if (!lessThan(value, items[mid])) { + start = mid + 1; + } else { + end = mid; + } + } + if (start == range.end - 1 and !lessThan(value, items[start])) { + start += 1; + } + return start; +} + +fn mergeInto(comptime T: type, from: []T, A: Range, B: Range, lessThan: fn (T, T) bool, into: []T) void { + var A_index: usize = A.start; + var B_index: usize = B.start; + const A_last = A.end; + const B_last = B.end; + var insert_index: usize = 0; + + while (true) { + if (!lessThan(from[B_index], from[A_index])) { + into[insert_index] = from[A_index]; + A_index += 1; + insert_index += 1; + if (A_index == A_last) { + // copy the remainder of B into the final array + mem.copy(T, into[insert_index..], from[B_index..B_last]); + break; + } + } else { + into[insert_index] = from[B_index]; + B_index += 1; + insert_index += 1; + if (B_index == B_last) { + // copy the remainder of A into the final array + mem.copy(T, into[insert_index..], from[A_index..A_last]); + break; + } + } + } +} + +fn mergeExternal(comptime T: type, items: []T, A: Range, B: Range, lessThan: fn (T, T) bool, cache: []T) void { + // A fits into the cache, so use that instead of the internal buffer + var A_index: usize = 0; + var B_index: usize = B.start; + var insert_index: usize = A.start; + const A_last = A.length(); + const B_last = B.end; + + if (B.length() > 0 and A.length() > 0) { + while (true) { + if (!lessThan(items[B_index], cache[A_index])) { + items[insert_index] = cache[A_index]; + A_index += 1; + insert_index += 1; + if (A_index == A_last) break; + } else { + items[insert_index] = items[B_index]; + B_index += 1; + insert_index += 1; + if (B_index == B_last) break; + } + } + } + + // copy the remainder of A into the final array + mem.copy(T, items[insert_index..], cache[A_index..A_last]); +} + +fn swap(comptime T: type, items: []T, lessThan: fn (lhs: T, rhs: T) bool, order: *[8]u8, x: usize, y: usize) void { + if (lessThan(items[y], items[x]) or ((order.*)[x] > (order.*)[y] and !lessThan(items[x], items[y]))) { + mem.swap(T, &items[x], &items[y]); + mem.swap(u8, &(order.*)[x], &(order.*)[y]); + } +} + +// Use these to generate a comparator function for a given type. e.g. `sort(u8, slice, asc(u8))`. +pub fn asc(comptime T: type) fn (T, T) bool { + const impl = struct { + fn inner(a: T, b: T) bool { + return a < b; + } + }; + + return impl.inner; +} + +pub fn desc(comptime T: type) fn (T, T) bool { + const impl = struct { + fn inner(a: T, b: T) bool { + return a > b; + } + }; + + return impl.inner; +} + +test "stable sort" { + testStableSort(); + comptime testStableSort(); +} +fn testStableSort() void { + var expected = [_]IdAndValue{ + IdAndValue{ .id = 0, .value = 0 }, + IdAndValue{ .id = 1, .value = 0 }, + IdAndValue{ .id = 2, .value = 0 }, + IdAndValue{ .id = 0, .value = 1 }, + IdAndValue{ .id = 1, .value = 1 }, + IdAndValue{ .id = 2, .value = 1 }, + IdAndValue{ .id = 0, .value = 2 }, + IdAndValue{ .id = 1, .value = 2 }, + IdAndValue{ .id = 2, .value = 2 }, + }; + var cases = [_][9]IdAndValue{ + [_]IdAndValue{ + IdAndValue{ .id = 0, .value = 0 }, + IdAndValue{ .id = 0, .value = 1 }, + IdAndValue{ .id = 0, .value = 2 }, + IdAndValue{ .id = 1, .value = 0 }, + IdAndValue{ .id = 1, .value = 1 }, + IdAndValue{ .id = 1, .value = 2 }, + IdAndValue{ .id = 2, .value = 0 }, + IdAndValue{ .id = 2, .value = 1 }, + IdAndValue{ .id = 2, .value = 2 }, + }, + [_]IdAndValue{ + IdAndValue{ .id = 0, .value = 2 }, + IdAndValue{ .id = 0, .value = 1 }, + IdAndValue{ .id = 0, .value = 0 }, + IdAndValue{ .id = 1, .value = 2 }, + IdAndValue{ .id = 1, .value = 1 }, + IdAndValue{ .id = 1, .value = 0 }, + IdAndValue{ .id = 2, .value = 2 }, + IdAndValue{ .id = 2, .value = 1 }, + IdAndValue{ .id = 2, .value = 0 }, + }, + }; + for (cases) |*case| { + insertionSort(IdAndValue, (case.*)[0..], cmpByValue); + for (case.*) |item, i| { + testing.expect(item.id == expected[i].id); + testing.expect(item.value == expected[i].value); + } + } +} +const IdAndValue = struct { + id: usize, + value: i32, +}; +fn cmpByValue(a: IdAndValue, b: IdAndValue) bool { + return asc(i32)(a.value, b.value); +} + +test "std.sort" { + const u8cases = [_][]const []const u8{ + [_][]const u8{ + "", + "", + }, + [_][]const u8{ + "a", + "a", + }, + [_][]const u8{ + "az", + "az", + }, + [_][]const u8{ + "za", + "az", + }, + [_][]const u8{ + "asdf", + "adfs", + }, + [_][]const u8{ + "one", + "eno", + }, + }; + + for (u8cases) |case| { + var buf: [8]u8 = undefined; + const slice = buf[0..case[0].len]; + mem.copy(u8, slice, case[0]); + sort(u8, slice, asc(u8)); + testing.expect(mem.eql(u8, slice, case[1])); + } + + const i32cases = [_][]const []const i32{ + [_][]const i32{ + [_]i32{}, + [_]i32{}, + }, + [_][]const i32{ + [_]i32{1}, + [_]i32{1}, + }, + [_][]const i32{ + [_]i32{ 0, 1 }, + [_]i32{ 0, 1 }, + }, + [_][]const i32{ + [_]i32{ 1, 0 }, + [_]i32{ 0, 1 }, + }, + [_][]const i32{ + [_]i32{ 1, -1, 0 }, + [_]i32{ -1, 0, 1 }, + }, + [_][]const i32{ + [_]i32{ 2, 1, 3 }, + [_]i32{ 1, 2, 3 }, + }, + }; + + for (i32cases) |case| { + var buf: [8]i32 = undefined; + const slice = buf[0..case[0].len]; + mem.copy(i32, slice, case[0]); + sort(i32, slice, asc(i32)); + testing.expect(mem.eql(i32, slice, case[1])); + } +} + +test "std.sort descending" { + const rev_cases = [_][]const []const i32{ + [_][]const i32{ + [_]i32{}, + [_]i32{}, + }, + [_][]const i32{ + [_]i32{1}, + [_]i32{1}, + }, + [_][]const i32{ + [_]i32{ 0, 1 }, + [_]i32{ 1, 0 }, + }, + [_][]const i32{ + [_]i32{ 1, 0 }, + [_]i32{ 1, 0 }, + }, + [_][]const i32{ + [_]i32{ 1, -1, 0 }, + [_]i32{ 1, 0, -1 }, + }, + [_][]const i32{ + [_]i32{ 2, 1, 3 }, + [_]i32{ 3, 2, 1 }, + }, + }; + + for (rev_cases) |case| { + var buf: [8]i32 = undefined; + const slice = buf[0..case[0].len]; + mem.copy(i32, slice, case[0]); + sort(i32, slice, desc(i32)); + testing.expect(mem.eql(i32, slice, case[1])); + } +} + +test "another sort case" { + var arr = [_]i32{ 5, 3, 1, 2, 4 }; + sort(i32, arr[0..], asc(i32)); + + testing.expect(mem.eql(i32, arr, [_]i32{ 1, 2, 3, 4, 5 })); +} + +test "sort fuzz testing" { + var prng = std.rand.DefaultPrng.init(0x12345678); + const test_case_count = 10; + var i: usize = 0; + while (i < test_case_count) : (i += 1) { + fuzzTest(&prng.random); + } +} + +var fixed_buffer_mem: [100 * 1024]u8 = undefined; + +fn fuzzTest(rng: *std.rand.Random) void { + const array_size = rng.range(usize, 0, 1000); + var fixed_allocator = std.heap.FixedBufferAllocator.init(fixed_buffer_mem[0..]); + var array = fixed_allocator.allocator.alloc(IdAndValue, array_size) catch unreachable; + // populate with random data + for (array) |*item, index| { + item.id = index; + item.value = rng.range(i32, 0, 100); + } + sort(IdAndValue, array, cmpByValue); + + var index: usize = 1; + while (index < array.len) : (index += 1) { + if (array[index].value == array[index - 1].value) { + testing.expect(array[index].id > array[index - 1].id); + } else { + testing.expect(array[index].value > array[index - 1].value); + } + } +} + +pub fn min(comptime T: type, items: []T, lessThan: fn (lhs: T, rhs: T) bool) T { + var i: usize = 0; + var smallest = items[0]; + for (items[1..]) |item| { + if (lessThan(item, smallest)) { + smallest = item; + } + } + return smallest; +} + +pub fn max(comptime T: type, items: []T, lessThan: fn (lhs: T, rhs: T) bool) T { + var i: usize = 0; + var biggest = items[0]; + for (items[1..]) |item| { + if (lessThan(biggest, item)) { + biggest = item; + } + } + return biggest; +} diff --git a/lib/std/special/build_runner.zig b/lib/std/special/build_runner.zig new file mode 100644 index 0000000000..01e307d46e --- /dev/null +++ b/lib/std/special/build_runner.zig @@ -0,0 +1,227 @@ +const root = @import("@build"); +const std = @import("std"); +const builtin = @import("builtin"); +const io = std.io; +const fmt = std.fmt; +const Builder = std.build.Builder; +const mem = std.mem; +const process = std.process; +const ArrayList = std.ArrayList; +const warn = std.debug.warn; +const File = std.fs.File; + +pub fn main() !void { + var arg_it = process.args(); + + // Here we use an ArenaAllocator backed by a DirectAllocator because a build is a short-lived, + // one shot program. We don't need to waste time freeing memory and finding places to squish + // bytes into. So we free everything all at once at the very end. + + var arena = std.heap.ArenaAllocator.init(std.heap.direct_allocator); + defer arena.deinit(); + + const allocator = &arena.allocator; + + // skip my own exe name + _ = arg_it.skip(); + + const zig_exe = try unwrapArg(arg_it.next(allocator) orelse { + warn("Expected first argument to be path to zig compiler\n"); + return error.InvalidArgs; + }); + const build_root = try unwrapArg(arg_it.next(allocator) orelse { + warn("Expected second argument to be build root directory path\n"); + return error.InvalidArgs; + }); + const cache_root = try unwrapArg(arg_it.next(allocator) orelse { + warn("Expected third argument to be cache root directory path\n"); + return error.InvalidArgs; + }); + + const builder = try Builder.create(allocator, zig_exe, build_root, cache_root); + defer builder.destroy(); + + var targets = ArrayList([]const u8).init(allocator); + + var stderr_file = io.getStdErr(); + var stderr_file_stream: File.OutStream = undefined; + var stderr_stream = if (stderr_file) |f| x: { + stderr_file_stream = f.outStream(); + break :x &stderr_file_stream.stream; + } else |err| err; + + var stdout_file = io.getStdOut(); + var stdout_file_stream: File.OutStream = undefined; + var stdout_stream = if (stdout_file) |f| x: { + stdout_file_stream = f.outStream(); + break :x &stdout_file_stream.stream; + } else |err| err; + + while (arg_it.next(allocator)) |err_or_arg| { + const arg = try unwrapArg(err_or_arg); + if (mem.startsWith(u8, arg, "-D")) { + const option_contents = arg[2..]; + if (option_contents.len == 0) { + warn("Expected option name after '-D'\n\n"); + return usageAndErr(builder, false, try stderr_stream); + } + if (mem.indexOfScalar(u8, option_contents, '=')) |name_end| { + const option_name = option_contents[0..name_end]; + const option_value = option_contents[name_end + 1 ..]; + if (try builder.addUserInputOption(option_name, option_value)) + return usageAndErr(builder, false, try stderr_stream); + } else { + if (try builder.addUserInputFlag(option_contents)) + return usageAndErr(builder, false, try stderr_stream); + } + } else if (mem.startsWith(u8, arg, "-")) { + if (mem.eql(u8, arg, "--verbose")) { + builder.verbose = true; + } else if (mem.eql(u8, arg, "--help")) { + return usage(builder, false, try stdout_stream); + } else if (mem.eql(u8, arg, "--prefix")) { + builder.install_prefix = try unwrapArg(arg_it.next(allocator) orelse { + warn("Expected argument after --prefix\n\n"); + return usageAndErr(builder, false, try stderr_stream); + }); + } else if (mem.eql(u8, arg, "--search-prefix")) { + const search_prefix = try unwrapArg(arg_it.next(allocator) orelse { + warn("Expected argument after --search-prefix\n\n"); + return usageAndErr(builder, false, try stderr_stream); + }); + builder.addSearchPrefix(search_prefix); + } else if (mem.eql(u8, arg, "--override-std-dir")) { + builder.override_std_dir = try unwrapArg(arg_it.next(allocator) orelse { + warn("Expected argument after --override-std-dir\n\n"); + return usageAndErr(builder, false, try stderr_stream); + }); + } else if (mem.eql(u8, arg, "--override-lib-dir")) { + builder.override_lib_dir = try unwrapArg(arg_it.next(allocator) orelse { + warn("Expected argument after --override-lib-dir\n\n"); + return usageAndErr(builder, false, try stderr_stream); + }); + } else if (mem.eql(u8, arg, "--verbose-tokenize")) { + builder.verbose_tokenize = true; + } else if (mem.eql(u8, arg, "--verbose-ast")) { + builder.verbose_ast = true; + } else if (mem.eql(u8, arg, "--verbose-link")) { + builder.verbose_link = true; + } else if (mem.eql(u8, arg, "--verbose-ir")) { + builder.verbose_ir = true; + } else if (mem.eql(u8, arg, "--verbose-llvm-ir")) { + builder.verbose_llvm_ir = true; + } else if (mem.eql(u8, arg, "--verbose-cimport")) { + builder.verbose_cimport = true; + } else if (mem.eql(u8, arg, "--verbose-cc")) { + builder.verbose_cc = true; + } else { + warn("Unrecognized argument: {}\n\n", arg); + return usageAndErr(builder, false, try stderr_stream); + } + } else { + try targets.append(arg); + } + } + + builder.resolveInstallPrefix(); + try runBuild(builder); + + if (builder.validateUserInputDidItFail()) + return usageAndErr(builder, true, try stderr_stream); + + builder.make(targets.toSliceConst()) catch |err| { + switch (err) { + error.InvalidStepName => { + return usageAndErr(builder, true, try stderr_stream); + }, + error.UncleanExit => process.exit(1), + else => return err, + } + }; +} + +fn runBuild(builder: *Builder) anyerror!void { + switch (@typeId(@typeOf(root.build).ReturnType)) { + .Void => root.build(builder), + .ErrorUnion => try root.build(builder), + else => @compileError("expected return type of build to be 'void' or '!void'"), + } +} + +fn usage(builder: *Builder, already_ran_build: bool, out_stream: var) !void { + // run the build script to collect the options + if (!already_ran_build) { + builder.setInstallPrefix(null); + builder.resolveInstallPrefix(); + try runBuild(builder); + } + + try out_stream.print( + \\Usage: {} build [steps] [options] + \\ + \\Steps: + \\ + , builder.zig_exe); + + const allocator = builder.allocator; + for (builder.top_level_steps.toSliceConst()) |top_level_step| { + const name = if (&top_level_step.step == builder.default_step) + try fmt.allocPrint(allocator, "{} (default)", top_level_step.step.name) + else + top_level_step.step.name; + try out_stream.print(" {s:22} {}\n", name, top_level_step.description); + } + + try out_stream.write( + \\ + \\General Options: + \\ --help Print this help and exit + \\ --verbose Print commands before executing them + \\ --prefix [path] Override default install prefix + \\ --search-prefix [path] Add a path to look for binaries, libraries, headers + \\ + \\Project-Specific Options: + \\ + ); + + if (builder.available_options_list.len == 0) { + try out_stream.print(" (none)\n"); + } else { + for (builder.available_options_list.toSliceConst()) |option| { + const name = try fmt.allocPrint(allocator, " -D{}=[{}]", option.name, Builder.typeIdName(option.type_id)); + defer allocator.free(name); + try out_stream.print("{s:24} {}\n", name, option.description); + } + } + + try out_stream.write( + \\ + \\Advanced Options: + \\ --build-file [file] Override path to build.zig + \\ --cache-dir [path] Override path to zig cache directory + \\ --override-std-dir [arg] Override path to Zig standard library + \\ --override-lib-dir [arg] Override path to Zig lib directory + \\ --verbose-tokenize Enable compiler debug output for tokenization + \\ --verbose-ast Enable compiler debug output for parsing into an AST + \\ --verbose-link Enable compiler debug output for linking + \\ --verbose-ir Enable compiler debug output for Zig IR + \\ --verbose-llvm-ir Enable compiler debug output for LLVM IR + \\ --verbose-cimport Enable compiler debug output for C imports + \\ --verbose-cc Enable compiler debug output for C compilation + \\ + ); +} + +fn usageAndErr(builder: *Builder, already_ran_build: bool, out_stream: var) void { + usage(builder, already_ran_build, out_stream) catch {}; + process.exit(1); +} + +const UnwrapArgError = error{OutOfMemory}; + +fn unwrapArg(arg: UnwrapArgError![]u8) UnwrapArgError![]u8 { + return arg catch |err| { + warn("Unable to parse command line: {}\n", err); + return err; + }; +} diff --git a/lib/std/special/c.zig b/lib/std/special/c.zig new file mode 100644 index 0000000000..f030dbe90b --- /dev/null +++ b/lib/std/special/c.zig @@ -0,0 +1,736 @@ +// This is Zig's multi-target implementation of libc. +// When builtin.link_libc is true, we need to export all the functions and +// provide an entire C API. +// Otherwise, only the functions which LLVM generates calls to need to be generated, +// such as memcpy, memset, and some math functions. + +const std = @import("std"); +const builtin = @import("builtin"); +const maxInt = std.math.maxInt; + +const is_wasm = switch (builtin.arch) { + .wasm32, .wasm64 => true, + else => false, +}; +const is_msvc = switch (builtin.abi) { + .msvc => true, + else => false, +}; +const is_freestanding = switch (builtin.os) { + .freestanding => true, + else => false, +}; +comptime { + if (is_freestanding and is_wasm and builtin.link_libc) { + @export("_start", wasm_start, .Strong); + } + if (builtin.link_libc) { + @export("strcmp", strcmp, .Strong); + @export("strncmp", strncmp, .Strong); + @export("strerror", strerror, .Strong); + @export("strlen", strlen, .Strong); + } else if (is_msvc) { + @export("_fltused", _fltused, .Strong); + } else if (builtin.arch == builtin.Arch.arm and builtin.os == .linux) { + @export("__aeabi_read_tp", std.os.linux.getThreadPointer, .Strong); + } +} + +extern var _fltused: c_int = 1; + +extern fn main(argc: c_int, argv: [*][*]u8) c_int; +extern fn wasm_start() void { + _ = main(0, undefined); +} + +extern fn strcmp(s1: [*]const u8, s2: [*]const u8) c_int { + return std.cstr.cmp(s1, s2); +} + +extern fn strlen(s: [*]const u8) usize { + return std.mem.len(u8, s); +} + +extern fn strncmp(_l: [*]const u8, _r: [*]const u8, _n: usize) c_int { + if (_n == 0) return 0; + var l = _l; + var r = _r; + var n = _n - 1; + while (l[0] != 0 and r[0] != 0 and n != 0 and l[0] == r[0]) { + l += 1; + r += 1; + n -= 1; + } + return c_int(l[0]) - c_int(r[0]); +} + +extern fn strerror(errnum: c_int) [*]const u8 { + return c"TODO strerror implementation"; +} + +test "strncmp" { + std.testing.expect(strncmp(c"a", c"b", 1) == -1); + std.testing.expect(strncmp(c"a", c"c", 1) == -2); + std.testing.expect(strncmp(c"b", c"a", 1) == 1); + std.testing.expect(strncmp(c"\xff", c"\x02", 1) == 253); +} + +// Avoid dragging in the runtime safety mechanisms into this .o file, +// unless we're trying to test this file. +pub fn panic(msg: []const u8, error_return_trace: ?*builtin.StackTrace) noreturn { + if (builtin.is_test) { + @setCold(true); + std.debug.panic("{}", msg); + } else { + unreachable; + } +} + +export fn memset(dest: ?[*]u8, c: u8, n: usize) ?[*]u8 { + @setRuntimeSafety(false); + + var index: usize = 0; + while (index != n) : (index += 1) + dest.?[index] = c; + + return dest; +} + +export fn memcpy(noalias dest: ?[*]u8, noalias src: ?[*]const u8, n: usize) ?[*]u8 { + @setRuntimeSafety(false); + + var index: usize = 0; + while (index != n) : (index += 1) + dest.?[index] = src.?[index]; + + return dest; +} + +export fn memmove(dest: ?[*]u8, src: ?[*]const u8, n: usize) ?[*]u8 { + @setRuntimeSafety(false); + + if (@ptrToInt(dest) < @ptrToInt(src)) { + var index: usize = 0; + while (index != n) : (index += 1) { + dest.?[index] = src.?[index]; + } + } else { + var index = n; + while (index != 0) { + index -= 1; + dest.?[index] = src.?[index]; + } + } + + return dest; +} + +export fn memcmp(vl: ?[*]const u8, vr: ?[*]const u8, n: usize) isize { + @setRuntimeSafety(false); + + var index: usize = 0; + while (index != n) : (index += 1) { + const compare_val = @bitCast(i8, vl.?[index] -% vr.?[index]); + if (compare_val != 0) { + return compare_val; + } + } + + return 0; +} + +test "test_memcmp" { + const base_arr = []u8{ 1, 1, 1 }; + const arr1 = []u8{ 1, 1, 1 }; + const arr2 = []u8{ 1, 0, 1 }; + const arr3 = []u8{ 1, 2, 1 }; + + std.testing.expect(memcmp(base_arr[0..].ptr, arr1[0..].ptr, base_arr.len) == 0); + std.testing.expect(memcmp(base_arr[0..].ptr, arr2[0..].ptr, base_arr.len) > 0); + std.testing.expect(memcmp(base_arr[0..].ptr, arr3[0..].ptr, base_arr.len) < 0); +} + +export fn bcmp(vl: [*]allowzero const u8, vr: [*]allowzero const u8, n: usize) isize { + @setRuntimeSafety(false); + + var index: usize = 0; + while (index != n) : (index += 1) { + if (vl[index] != vr[index]) { + return 1; + } + } + + return 0; +} + +test "test_bcmp" { + const base_arr = []u8{ 1, 1, 1 }; + const arr1 = []u8{ 1, 1, 1 }; + const arr2 = []u8{ 1, 0, 1 }; + const arr3 = []u8{ 1, 2, 1 }; + + std.testing.expect(bcmp(base_arr[0..].ptr, arr1[0..].ptr, base_arr.len) == 0); + std.testing.expect(bcmp(base_arr[0..].ptr, arr2[0..].ptr, base_arr.len) != 0); + std.testing.expect(bcmp(base_arr[0..].ptr, arr3[0..].ptr, base_arr.len) != 0); +} + +comptime { + if (builtin.mode != builtin.Mode.ReleaseFast and + builtin.mode != builtin.Mode.ReleaseSmall and + builtin.os != builtin.Os.windows) + { + @export("__stack_chk_fail", __stack_chk_fail, builtin.GlobalLinkage.Strong); + } + if (builtin.os == builtin.Os.linux) { + @export("clone", clone, builtin.GlobalLinkage.Strong); + } +} +extern fn __stack_chk_fail() noreturn { + @panic("stack smashing detected"); +} + +// TODO we should be able to put this directly in std/linux/x86_64.zig but +// it causes a segfault in release mode. this is a workaround of calling it +// across .o file boundaries. fix comptime @ptrCast of nakedcc functions. +nakedcc fn clone() void { + switch (builtin.arch) { + .x86_64 => { + asm volatile ( + \\ xor %%eax,%%eax + \\ mov $56,%%al // SYS_clone + \\ mov %%rdi,%%r11 + \\ mov %%rdx,%%rdi + \\ mov %%r8,%%rdx + \\ mov %%r9,%%r8 + \\ mov 8(%%rsp),%%r10 + \\ mov %%r11,%%r9 + \\ and $-16,%%rsi + \\ sub $8,%%rsi + \\ mov %%rcx,(%%rsi) + \\ syscall + \\ test %%eax,%%eax + \\ jnz 1f + \\ xor %%ebp,%%ebp + \\ pop %%rdi + \\ call *%%r9 + \\ mov %%eax,%%edi + \\ xor %%eax,%%eax + \\ mov $60,%%al // SYS_exit + \\ syscall + \\ hlt + \\1: ret + \\ + ); + }, + .aarch64 => { + // __clone(func, stack, flags, arg, ptid, tls, ctid) + // x0, x1, w2, x3, x4, x5, x6 + + // syscall(SYS_clone, flags, stack, ptid, tls, ctid) + // x8, x0, x1, x2, x3, x4 + asm volatile ( + \\ // align stack and save func,arg + \\ and x1,x1,#-16 + \\ stp x0,x3,[x1,#-16]! + \\ + \\ // syscall + \\ uxtw x0,w2 + \\ mov x2,x4 + \\ mov x3,x5 + \\ mov x4,x6 + \\ mov x8,#220 // SYS_clone + \\ svc #0 + \\ + \\ cbz x0,1f + \\ // parent + \\ ret + \\ // child + \\1: ldp x1,x0,[sp],#16 + \\ blr x1 + \\ mov x8,#93 // SYS_exit + \\ svc #0 + ); + }, + .arm => { + asm volatile ( + \\ stmfd sp!,{r4,r5,r6,r7} + \\ mov r7,#120 + \\ mov r6,r3 + \\ mov r5,r0 + \\ mov r0,r2 + \\ and r1,r1,#-16 + \\ ldr r2,[sp,#16] + \\ ldr r3,[sp,#20] + \\ ldr r4,[sp,#24] + \\ svc 0 + \\ tst r0,r0 + \\ beq 1f + \\ ldmfd sp!,{r4,r5,r6,r7} + \\ bx lr + \\ + \\1: mov r0,r6 + \\ bl 3f + \\2: mov r7,#1 + \\ svc 0 + \\ b 2b + \\3: bx r5 + ); + }, + .riscv64 => { + // __clone(func, stack, flags, arg, ptid, tls, ctid) + // a0, a1, a2, a3, a4, a5, a6 + + // syscall(SYS_clone, flags, stack, ptid, tls, ctid) + // a7 a0, a1, a2, a3, a4 + asm volatile ( + \\ # Save func and arg to stack + \\ addi a1, a1, -16 + \\ sd a0, 0(a1) + \\ sd a3, 8(a1) + \\ + \\ # Call SYS_clone + \\ mv a0, a2 + \\ mv a2, a4 + \\ mv a3, a5 + \\ mv a4, a6 + \\ li a7, 220 # SYS_clone + \\ ecall + \\ + \\ beqz a0, 1f + \\ # Parent + \\ ret + \\ + \\ # Child + \\1: ld a1, 0(sp) + \\ ld a0, 8(sp) + \\ jalr a1 + \\ + \\ # Exit + \\ li a7, 93 # SYS_exit + \\ ecall + ); + }, + else => @compileError("Implement clone() for this arch."), + } +} + +const math = std.math; + +export fn fmodf(x: f32, y: f32) f32 { + return generic_fmod(f32, x, y); +} +export fn fmod(x: f64, y: f64) f64 { + return generic_fmod(f64, x, y); +} + +// TODO add intrinsics for these (and probably the double version too) +// and have the math stuff use the intrinsic. same as @mod and @rem +export fn floorf(x: f32) f32 { + return math.floor(x); +} + +export fn ceilf(x: f32) f32 { + return math.ceil(x); +} + +export fn floor(x: f64) f64 { + return math.floor(x); +} + +export fn ceil(x: f64) f64 { + return math.ceil(x); +} + +export fn fma(a: f64, b: f64, c: f64) f64 { + return math.fma(f64, a, b, c); +} + +export fn fmaf(a: f32, b: f32, c: f32) f32 { + return math.fma(f32, a, b, c); +} + +export fn sin(a: f64) f64 { + return math.sin(a); +} + +export fn sinf(a: f32) f32 { + return math.sin(a); +} + +export fn cos(a: f64) f64 { + return math.cos(a); +} + +export fn cosf(a: f32) f32 { + return math.cos(a); +} + +export fn exp(a: f64) f64 { + return math.exp(a); +} + +export fn expf(a: f32) f32 { + return math.exp(a); +} + +export fn exp2(a: f64) f64 { + return math.exp2(a); +} + +export fn exp2f(a: f32) f32 { + return math.exp2(a); +} + +export fn log(a: f64) f64 { + return math.ln(a); +} + +export fn logf(a: f32) f32 { + return math.ln(a); +} + +export fn log2(a: f64) f64 { + return math.log2(a); +} + +export fn log2f(a: f32) f32 { + return math.log2(a); +} + +export fn log10(a: f64) f64 { + return math.log10(a); +} + +export fn log10f(a: f32) f32 { + return math.log10(a); +} + +export fn fabs(a: f64) f64 { + return math.fabs(a); +} + +export fn fabsf(a: f32) f32 { + return math.fabs(a); +} + +export fn trunc(a: f64) f64 { + return math.trunc(a); +} + +export fn truncf(a: f32) f32 { + return math.trunc(a); +} + +export fn round(a: f64) f64 { + return math.round(a); +} + +export fn roundf(a: f32) f32 { + return math.round(a); +} + +fn generic_fmod(comptime T: type, x: T, y: T) T { + @setRuntimeSafety(false); + + const uint = @IntType(false, T.bit_count); + const log2uint = math.Log2Int(uint); + const digits = if (T == f32) 23 else 52; + const exp_bits = if (T == f32) 9 else 12; + const bits_minus_1 = T.bit_count - 1; + const mask = if (T == f32) 0xff else 0x7ff; + var ux = @bitCast(uint, x); + var uy = @bitCast(uint, y); + var ex = @intCast(i32, (ux >> digits) & mask); + var ey = @intCast(i32, (uy >> digits) & mask); + const sx = if (T == f32) @intCast(u32, ux & 0x80000000) else @intCast(i32, ux >> bits_minus_1); + var i: uint = undefined; + + if (uy << 1 == 0 or isNan(uint, uy) or ex == mask) + return (x * y) / (x * y); + + if (ux << 1 <= uy << 1) { + if (ux << 1 == uy << 1) + return 0 * x; + return x; + } + + // normalize x and y + if (ex == 0) { + i = ux << exp_bits; + while (i >> bits_minus_1 == 0) : (b: { + ex -= 1; + i <<= 1; + }) {} + ux <<= @intCast(log2uint, @bitCast(u32, -ex + 1)); + } else { + ux &= maxInt(uint) >> exp_bits; + ux |= 1 << digits; + } + if (ey == 0) { + i = uy << exp_bits; + while (i >> bits_minus_1 == 0) : (b: { + ey -= 1; + i <<= 1; + }) {} + uy <<= @intCast(log2uint, @bitCast(u32, -ey + 1)); + } else { + uy &= maxInt(uint) >> exp_bits; + uy |= 1 << digits; + } + + // x mod y + while (ex > ey) : (ex -= 1) { + i = ux -% uy; + if (i >> bits_minus_1 == 0) { + if (i == 0) + return 0 * x; + ux = i; + } + ux <<= 1; + } + i = ux -% uy; + if (i >> bits_minus_1 == 0) { + if (i == 0) + return 0 * x; + ux = i; + } + while (ux >> digits == 0) : (b: { + ux <<= 1; + ex -= 1; + }) {} + + // scale result up + if (ex > 0) { + ux -%= 1 << digits; + ux |= uint(@bitCast(u32, ex)) << digits; + } else { + ux >>= @intCast(log2uint, @bitCast(u32, -ex + 1)); + } + if (T == f32) { + ux |= sx; + } else { + ux |= @intCast(uint, sx) << bits_minus_1; + } + return @bitCast(T, ux); +} + +fn isNan(comptime T: type, bits: T) bool { + if (T == u16) { + return (bits & 0x7fff) > 0x7c00; + } else if (T == u32) { + return (bits & 0x7fffffff) > 0x7f800000; + } else if (T == u64) { + return (bits & (maxInt(u64) >> 1)) > (u64(0x7ff) << 52); + } else { + unreachable; + } +} + +// NOTE: The original code is full of implicit signed -> unsigned assumptions and u32 wraparound +// behaviour. Most intermediate i32 values are changed to u32 where appropriate but there are +// potentially some edge cases remaining that are not handled in the same way. +export fn sqrt(x: f64) f64 { + const tiny: f64 = 1.0e-300; + const sign: u32 = 0x80000000; + const u = @bitCast(u64, x); + + var ix0 = @intCast(u32, u >> 32); + var ix1 = @intCast(u32, u & 0xFFFFFFFF); + + // sqrt(nan) = nan, sqrt(+inf) = +inf, sqrt(-inf) = nan + if (ix0 & 0x7FF00000 == 0x7FF00000) { + return x * x + x; + } + + // sqrt(+-0) = +-0 + if (x == 0.0) { + return x; + } + // sqrt(-ve) = snan + if (ix0 & sign != 0) { + return math.snan(f64); + } + + // normalize x + var m = @intCast(i32, ix0 >> 20); + if (m == 0) { + // subnormal + while (ix0 == 0) { + m -= 21; + ix0 |= ix1 >> 11; + ix1 <<= 21; + } + + // subnormal + var i: u32 = 0; + while (ix0 & 0x00100000 == 0) : (i += 1) { + ix0 <<= 1; + } + m -= @intCast(i32, i) - 1; + ix0 |= ix1 >> @intCast(u5, 32 - i); + ix1 <<= @intCast(u5, i); + } + + // unbias exponent + m -= 1023; + ix0 = (ix0 & 0x000FFFFF) | 0x00100000; + if (m & 1 != 0) { + ix0 += ix0 + (ix1 >> 31); + ix1 = ix1 +% ix1; + } + m >>= 1; + + // sqrt(x) bit by bit + ix0 += ix0 + (ix1 >> 31); + ix1 = ix1 +% ix1; + + var q: u32 = 0; + var q1: u32 = 0; + var s0: u32 = 0; + var s1: u32 = 0; + var r: u32 = 0x00200000; + var t: u32 = undefined; + var t1: u32 = undefined; + + while (r != 0) { + t = s0 +% r; + if (t <= ix0) { + s0 = t + r; + ix0 -= t; + q += r; + } + ix0 = ix0 +% ix0 +% (ix1 >> 31); + ix1 = ix1 +% ix1; + r >>= 1; + } + + r = sign; + while (r != 0) { + t = s1 +% r; + t = s0; + if (t < ix0 or (t == ix0 and t1 <= ix1)) { + s1 = t1 +% r; + if (t1 & sign == sign and s1 & sign == 0) { + s0 += 1; + } + ix0 -= t; + if (ix1 < t1) { + ix0 -= 1; + } + ix1 = ix1 -% t1; + q1 += r; + } + ix0 = ix0 +% ix0 +% (ix1 >> 31); + ix1 = ix1 +% ix1; + r >>= 1; + } + + // rounding direction + if (ix0 | ix1 != 0) { + var z = 1.0 - tiny; // raise inexact + if (z >= 1.0) { + z = 1.0 + tiny; + if (q1 == 0xFFFFFFFF) { + q1 = 0; + q += 1; + } else if (z > 1.0) { + if (q1 == 0xFFFFFFFE) { + q += 1; + } + q1 += 2; + } else { + q1 += q1 & 1; + } + } + } + + ix0 = (q >> 1) + 0x3FE00000; + ix1 = q1 >> 1; + if (q & 1 != 0) { + ix1 |= 0x80000000; + } + + // NOTE: musl here appears to rely on signed twos-complement wraparound. +% has the same + // behaviour at least. + var iix0 = @intCast(i32, ix0); + iix0 = iix0 +% (m << 20); + + const uz = (@intCast(u64, iix0) << 32) | ix1; + return @bitCast(f64, uz); +} + +export fn sqrtf(x: f32) f32 { + const tiny: f32 = 1.0e-30; + const sign: i32 = @bitCast(i32, u32(0x80000000)); + var ix: i32 = @bitCast(i32, x); + + if ((ix & 0x7F800000) == 0x7F800000) { + return x * x + x; // sqrt(nan) = nan, sqrt(+inf) = +inf, sqrt(-inf) = snan + } + + // zero + if (ix <= 0) { + if (ix & ~sign == 0) { + return x; // sqrt (+-0) = +-0 + } + if (ix < 0) { + return math.snan(f32); + } + } + + // normalize + var m = ix >> 23; + if (m == 0) { + // subnormal + var i: i32 = 0; + while (ix & 0x00800000 == 0) : (i += 1) { + ix <<= 1; + } + m -= i - 1; + } + + m -= 127; // unbias exponent + ix = (ix & 0x007FFFFF) | 0x00800000; + + if (m & 1 != 0) { // odd m, double x to even + ix += ix; + } + + m >>= 1; // m = [m / 2] + + // sqrt(x) bit by bit + ix += ix; + var q: i32 = 0; // q = sqrt(x) + var s: i32 = 0; + var r: i32 = 0x01000000; // r = moving bit right -> left + + while (r != 0) { + const t = s + r; + if (t <= ix) { + s = t + r; + ix -= t; + q += r; + } + ix += ix; + r >>= 1; + } + + // floating add to find rounding direction + if (ix != 0) { + var z = 1.0 - tiny; // inexact + if (z >= 1.0) { + z = 1.0 + tiny; + if (z > 1.0) { + q += 2; + } else { + if (q & 1 != 0) { + q += 1; + } + } + } + } + + ix = (q >> 1) + 0x3f000000; + ix += m << 23; + return @bitCast(f32, ix); +} diff --git a/lib/std/special/compiler_rt.zig b/lib/std/special/compiler_rt.zig new file mode 100644 index 0000000000..638a9bb60c --- /dev/null +++ b/lib/std/special/compiler_rt.zig @@ -0,0 +1,1668 @@ +const builtin = @import("builtin"); +const is_test = builtin.is_test; + +const is_gnu = switch (builtin.abi) { + .gnu, .gnuabin32, .gnuabi64, .gnueabi, .gnueabihf, .gnux32 => true, + else => false, +}; +const is_mingw = builtin.os == .windows and is_gnu; + +comptime { + const linkage = if (is_test) builtin.GlobalLinkage.Internal else builtin.GlobalLinkage.Weak; + const strong_linkage = if (is_test) builtin.GlobalLinkage.Internal else builtin.GlobalLinkage.Strong; + + switch (builtin.arch) { + .i386, .x86_64 => @export("__zig_probe_stack", @import("compiler_rt/stack_probe.zig").zig_probe_stack, linkage), + else => {}, + } + + @export("__lesf2", @import("compiler_rt/comparesf2.zig").__lesf2, linkage); + @export("__ledf2", @import("compiler_rt/comparedf2.zig").__ledf2, linkage); + @export("__letf2", @import("compiler_rt/comparetf2.zig").__letf2, linkage); + + @export("__gesf2", @import("compiler_rt/comparesf2.zig").__gesf2, linkage); + @export("__gedf2", @import("compiler_rt/comparedf2.zig").__gedf2, linkage); + @export("__getf2", @import("compiler_rt/comparetf2.zig").__getf2, linkage); + + if (!is_test) { + @export("__cmpsf2", @import("compiler_rt/comparesf2.zig").__lesf2, linkage); + @export("__cmpdf2", @import("compiler_rt/comparedf2.zig").__ledf2, linkage); + @export("__cmptf2", @import("compiler_rt/comparetf2.zig").__letf2, linkage); + + @export("__eqsf2", @import("compiler_rt/comparesf2.zig").__eqsf2, linkage); + @export("__eqdf2", @import("compiler_rt/comparedf2.zig").__eqdf2, linkage); + @export("__eqtf2", @import("compiler_rt/comparetf2.zig").__letf2, linkage); + + @export("__ltsf2", @import("compiler_rt/comparesf2.zig").__ltsf2, linkage); + @export("__ltdf2", @import("compiler_rt/comparedf2.zig").__ltdf2, linkage); + @export("__lttf2", @import("compiler_rt/comparetf2.zig").__letf2, linkage); + + @export("__nesf2", @import("compiler_rt/comparesf2.zig").__nesf2, linkage); + @export("__nedf2", @import("compiler_rt/comparedf2.zig").__nedf2, linkage); + @export("__netf2", @import("compiler_rt/comparetf2.zig").__letf2, linkage); + + @export("__gtsf2", @import("compiler_rt/comparesf2.zig").__gtsf2, linkage); + @export("__gtdf2", @import("compiler_rt/comparedf2.zig").__gtdf2, linkage); + @export("__gttf2", @import("compiler_rt/comparetf2.zig").__getf2, linkage); + + @export("__gnu_h2f_ieee", @import("compiler_rt/extendXfYf2.zig").__extendhfsf2, linkage); + @export("__gnu_f2h_ieee", @import("compiler_rt/truncXfYf2.zig").__truncsfhf2, linkage); + } + + @export("__unordsf2", @import("compiler_rt/comparesf2.zig").__unordsf2, linkage); + @export("__unorddf2", @import("compiler_rt/comparedf2.zig").__unorddf2, linkage); + @export("__unordtf2", @import("compiler_rt/comparetf2.zig").__unordtf2, linkage); + + @export("__addsf3", @import("compiler_rt/addXf3.zig").__addsf3, linkage); + @export("__adddf3", @import("compiler_rt/addXf3.zig").__adddf3, linkage); + @export("__addtf3", @import("compiler_rt/addXf3.zig").__addtf3, linkage); + @export("__subsf3", @import("compiler_rt/addXf3.zig").__subsf3, linkage); + @export("__subdf3", @import("compiler_rt/addXf3.zig").__subdf3, linkage); + @export("__subtf3", @import("compiler_rt/addXf3.zig").__subtf3, linkage); + + @export("__mulsf3", @import("compiler_rt/mulXf3.zig").__mulsf3, linkage); + @export("__muldf3", @import("compiler_rt/mulXf3.zig").__muldf3, linkage); + @export("__multf3", @import("compiler_rt/mulXf3.zig").__multf3, linkage); + + @export("__divsf3", @import("compiler_rt/divsf3.zig").__divsf3, linkage); + @export("__divdf3", @import("compiler_rt/divdf3.zig").__divdf3, linkage); + + @export("__ashlti3", @import("compiler_rt/ashlti3.zig").__ashlti3, linkage); + @export("__lshrti3", @import("compiler_rt/lshrti3.zig").__lshrti3, linkage); + @export("__ashrti3", @import("compiler_rt/ashrti3.zig").__ashrti3, linkage); + + @export("__floatsidf", @import("compiler_rt/floatsiXf.zig").__floatsidf, linkage); + @export("__floatsisf", @import("compiler_rt/floatsiXf.zig").__floatsisf, linkage); + @export("__floatdidf", @import("compiler_rt/floatdidf.zig").__floatdidf, linkage); + @export("__floatsitf", @import("compiler_rt/floatsiXf.zig").__floatsitf, linkage); + @export("__floatunsidf", @import("compiler_rt/floatunsidf.zig").__floatunsidf, linkage); + @export("__floatundidf", @import("compiler_rt/floatundidf.zig").__floatundidf, linkage); + + @export("__floattitf", @import("compiler_rt/floattitf.zig").__floattitf, linkage); + @export("__floattidf", @import("compiler_rt/floattidf.zig").__floattidf, linkage); + @export("__floattisf", @import("compiler_rt/floattisf.zig").__floattisf, linkage); + + @export("__floatunditf", @import("compiler_rt/floatunditf.zig").__floatunditf, linkage); + @export("__floatunsitf", @import("compiler_rt/floatunsitf.zig").__floatunsitf, linkage); + + @export("__floatuntitf", @import("compiler_rt/floatuntitf.zig").__floatuntitf, linkage); + @export("__floatuntidf", @import("compiler_rt/floatuntidf.zig").__floatuntidf, linkage); + @export("__floatuntisf", @import("compiler_rt/floatuntisf.zig").__floatuntisf, linkage); + + @export("__extenddftf2", @import("compiler_rt/extendXfYf2.zig").__extenddftf2, linkage); + @export("__extendsftf2", @import("compiler_rt/extendXfYf2.zig").__extendsftf2, linkage); + @export("__extendhfsf2", @import("compiler_rt/extendXfYf2.zig").__extendhfsf2, linkage); + + @export("__truncsfhf2", @import("compiler_rt/truncXfYf2.zig").__truncsfhf2, linkage); + @export("__truncdfhf2", @import("compiler_rt/truncXfYf2.zig").__truncdfhf2, linkage); + @export("__trunctfdf2", @import("compiler_rt/truncXfYf2.zig").__trunctfdf2, linkage); + @export("__trunctfsf2", @import("compiler_rt/truncXfYf2.zig").__trunctfsf2, linkage); + + @export("__truncdfsf2", @import("compiler_rt/truncXfYf2.zig").__truncdfsf2, linkage); + + @export("__extendsfdf2", @import("compiler_rt/extendXfYf2.zig").__extendsfdf2, linkage); + + @export("__fixunssfsi", @import("compiler_rt/fixunssfsi.zig").__fixunssfsi, linkage); + @export("__fixunssfdi", @import("compiler_rt/fixunssfdi.zig").__fixunssfdi, linkage); + @export("__fixunssfti", @import("compiler_rt/fixunssfti.zig").__fixunssfti, linkage); + + @export("__fixunsdfsi", @import("compiler_rt/fixunsdfsi.zig").__fixunsdfsi, linkage); + @export("__fixunsdfdi", @import("compiler_rt/fixunsdfdi.zig").__fixunsdfdi, linkage); + @export("__fixunsdfti", @import("compiler_rt/fixunsdfti.zig").__fixunsdfti, linkage); + + @export("__fixunstfsi", @import("compiler_rt/fixunstfsi.zig").__fixunstfsi, linkage); + @export("__fixunstfdi", @import("compiler_rt/fixunstfdi.zig").__fixunstfdi, linkage); + @export("__fixunstfti", @import("compiler_rt/fixunstfti.zig").__fixunstfti, linkage); + + @export("__fixdfdi", @import("compiler_rt/fixdfdi.zig").__fixdfdi, linkage); + @export("__fixdfsi", @import("compiler_rt/fixdfsi.zig").__fixdfsi, linkage); + @export("__fixdfti", @import("compiler_rt/fixdfti.zig").__fixdfti, linkage); + @export("__fixsfdi", @import("compiler_rt/fixsfdi.zig").__fixsfdi, linkage); + @export("__fixsfsi", @import("compiler_rt/fixsfsi.zig").__fixsfsi, linkage); + @export("__fixsfti", @import("compiler_rt/fixsfti.zig").__fixsfti, linkage); + @export("__fixtfdi", @import("compiler_rt/fixtfdi.zig").__fixtfdi, linkage); + @export("__fixtfsi", @import("compiler_rt/fixtfsi.zig").__fixtfsi, linkage); + @export("__fixtfti", @import("compiler_rt/fixtfti.zig").__fixtfti, linkage); + + @export("__udivmoddi4", @import("compiler_rt/udivmoddi4.zig").__udivmoddi4, linkage); + @export("__popcountdi2", @import("compiler_rt/popcountdi2.zig").__popcountdi2, linkage); + + @export("__muldi3", @import("compiler_rt/muldi3.zig").__muldi3, linkage); + @export("__divmoddi4", __divmoddi4, linkage); + @export("__divsi3", __divsi3, linkage); + @export("__divdi3", __divdi3, linkage); + @export("__udivsi3", __udivsi3, linkage); + @export("__udivdi3", __udivdi3, linkage); + @export("__modsi3", __modsi3, linkage); + @export("__moddi3", __moddi3, linkage); + @export("__umodsi3", __umodsi3, linkage); + @export("__umoddi3", __umoddi3, linkage); + @export("__divmodsi4", __divmodsi4, linkage); + @export("__udivmodsi4", __udivmodsi4, linkage); + + @export("__negsf2", @import("compiler_rt/negXf2.zig").__negsf2, linkage); + @export("__negdf2", @import("compiler_rt/negXf2.zig").__negdf2, linkage); + + if (is_arm_arch and !is_arm_64 and !is_test) { + @export("__aeabi_unwind_cpp_pr0", __aeabi_unwind_cpp_pr0, strong_linkage); + @export("__aeabi_unwind_cpp_pr1", __aeabi_unwind_cpp_pr1, linkage); + @export("__aeabi_unwind_cpp_pr2", __aeabi_unwind_cpp_pr2, linkage); + + @export("__aeabi_lmul", @import("compiler_rt/muldi3.zig").__muldi3, linkage); + + @export("__aeabi_ldivmod", __aeabi_ldivmod, linkage); + @export("__aeabi_uldivmod", __aeabi_uldivmod, linkage); + + @export("__aeabi_idiv", __divsi3, linkage); + @export("__aeabi_idivmod", __aeabi_idivmod, linkage); + @export("__aeabi_uidiv", __udivsi3, linkage); + @export("__aeabi_uidivmod", __aeabi_uidivmod, linkage); + + @export("__aeabi_memcpy", __aeabi_memcpy, linkage); + @export("__aeabi_memcpy4", __aeabi_memcpy, linkage); + @export("__aeabi_memcpy8", __aeabi_memcpy, linkage); + + @export("__aeabi_memmove", __aeabi_memmove, linkage); + @export("__aeabi_memmove4", __aeabi_memmove, linkage); + @export("__aeabi_memmove8", __aeabi_memmove, linkage); + + @export("__aeabi_memset", __aeabi_memset, linkage); + @export("__aeabi_memset4", __aeabi_memset, linkage); + @export("__aeabi_memset8", __aeabi_memset, linkage); + + @export("__aeabi_memclr", __aeabi_memclr, linkage); + @export("__aeabi_memclr4", __aeabi_memclr, linkage); + @export("__aeabi_memclr8", __aeabi_memclr, linkage); + + @export("__aeabi_memcmp", __aeabi_memcmp, linkage); + @export("__aeabi_memcmp4", __aeabi_memcmp, linkage); + @export("__aeabi_memcmp8", __aeabi_memcmp, linkage); + + @export("__aeabi_f2d", @import("compiler_rt/extendXfYf2.zig").__extendsfdf2, linkage); + @export("__aeabi_i2d", @import("compiler_rt/floatsiXf.zig").__floatsidf, linkage); + @export("__aeabi_l2d", @import("compiler_rt/floatdidf.zig").__floatdidf, linkage); + @export("__aeabi_ui2d", @import("compiler_rt/floatunsidf.zig").__floatunsidf, linkage); + @export("__aeabi_ul2d", @import("compiler_rt/floatundidf.zig").__floatundidf, linkage); + + @export("__aeabi_fneg", @import("compiler_rt/negXf2.zig").__negsf2, linkage); + @export("__aeabi_dneg", @import("compiler_rt/negXf2.zig").__negdf2, linkage); + + @export("__aeabi_fmul", @import("compiler_rt/mulXf3.zig").__mulsf3, linkage); + @export("__aeabi_dmul", @import("compiler_rt/mulXf3.zig").__muldf3, linkage); + + @export("__aeabi_d2h", @import("compiler_rt/truncXfYf2.zig").__truncdfhf2, linkage); + + @export("__aeabi_f2ulz", @import("compiler_rt/fixunssfdi.zig").__fixunssfdi, linkage); + @export("__aeabi_d2ulz", @import("compiler_rt/fixunsdfdi.zig").__fixunsdfdi, linkage); + + @export("__aeabi_f2lz", @import("compiler_rt/fixsfdi.zig").__fixsfdi, linkage); + @export("__aeabi_d2lz", @import("compiler_rt/fixdfdi.zig").__fixdfdi, linkage); + + @export("__aeabi_d2uiz", @import("compiler_rt/fixunsdfsi.zig").__fixunsdfsi, linkage); + + @export("__aeabi_h2f", @import("compiler_rt/extendXfYf2.zig").__extendhfsf2, linkage); + @export("__aeabi_f2h", @import("compiler_rt/truncXfYf2.zig").__truncsfhf2, linkage); + + @export("__aeabi_i2f", @import("compiler_rt/floatsiXf.zig").__floatsisf, linkage); + @export("__aeabi_d2f", @import("compiler_rt/truncXfYf2.zig").__truncdfsf2, linkage); + + @export("__aeabi_fadd", @import("compiler_rt/addXf3.zig").__addsf3, linkage); + @export("__aeabi_dadd", @import("compiler_rt/addXf3.zig").__adddf3, linkage); + @export("__aeabi_fsub", @import("compiler_rt/addXf3.zig").__subsf3, linkage); + @export("__aeabi_dsub", @import("compiler_rt/addXf3.zig").__subdf3, linkage); + + @export("__aeabi_f2uiz", @import("compiler_rt/fixunssfsi.zig").__fixunssfsi, linkage); + + @export("__aeabi_f2iz", @import("compiler_rt/fixsfsi.zig").__fixsfsi, linkage); + @export("__aeabi_d2iz", @import("compiler_rt/fixdfsi.zig").__fixdfsi, linkage); + + @export("__aeabi_fdiv", @import("compiler_rt/divsf3.zig").__divsf3, linkage); + @export("__aeabi_ddiv", @import("compiler_rt/divdf3.zig").__divdf3, linkage); + + @export("__aeabi_fcmpeq", @import("compiler_rt/arm/aeabi_fcmp.zig").__aeabi_fcmpeq, linkage); + @export("__aeabi_fcmplt", @import("compiler_rt/arm/aeabi_fcmp.zig").__aeabi_fcmplt, linkage); + @export("__aeabi_fcmple", @import("compiler_rt/arm/aeabi_fcmp.zig").__aeabi_fcmple, linkage); + @export("__aeabi_fcmpge", @import("compiler_rt/arm/aeabi_fcmp.zig").__aeabi_fcmpge, linkage); + @export("__aeabi_fcmpgt", @import("compiler_rt/arm/aeabi_fcmp.zig").__aeabi_fcmpgt, linkage); + @export("__aeabi_fcmpun", @import("compiler_rt/comparesf2.zig").__unordsf2, linkage); + + @export("__aeabi_dcmpeq", @import("compiler_rt/arm/aeabi_dcmp.zig").__aeabi_dcmpeq, linkage); + @export("__aeabi_dcmplt", @import("compiler_rt/arm/aeabi_dcmp.zig").__aeabi_dcmplt, linkage); + @export("__aeabi_dcmple", @import("compiler_rt/arm/aeabi_dcmp.zig").__aeabi_dcmple, linkage); + @export("__aeabi_dcmpge", @import("compiler_rt/arm/aeabi_dcmp.zig").__aeabi_dcmpge, linkage); + @export("__aeabi_dcmpgt", @import("compiler_rt/arm/aeabi_dcmp.zig").__aeabi_dcmpgt, linkage); + @export("__aeabi_dcmpun", @import("compiler_rt/comparedf2.zig").__unorddf2, linkage); + } + if (builtin.os == .windows) { + if (!builtin.link_libc) { + @export("_chkstk", @import("compiler_rt/stack_probe.zig")._chkstk, strong_linkage); + @export("__chkstk", @import("compiler_rt/stack_probe.zig").__chkstk, strong_linkage); + @export("___chkstk", @import("compiler_rt/stack_probe.zig").___chkstk, strong_linkage); + @export("__chkstk_ms", @import("compiler_rt/stack_probe.zig").__chkstk_ms, strong_linkage); + @export("___chkstk_ms", @import("compiler_rt/stack_probe.zig").___chkstk_ms, strong_linkage); + } else if (is_mingw) { + @export("___chkstk_ms", @import("compiler_rt/stack_probe.zig").___chkstk_ms, strong_linkage); + @export("__stack_chk_fail", __stack_chk_fail, strong_linkage); + @export("__stack_chk_guard", __stack_chk_guard, strong_linkage); + } + + switch (builtin.arch) { + .i386 => { + @export("_aulldiv", @import("compiler_rt/aulldiv.zig")._aulldiv, strong_linkage); + @export("_aullrem", @import("compiler_rt/aullrem.zig")._aullrem, strong_linkage); + }, + .x86_64 => { + // The "ti" functions must use @Vector(2, u64) parameter types to adhere to the ABI + // that LLVM expects compiler-rt to have. + @export("__divti3", @import("compiler_rt/divti3.zig").__divti3_windows_x86_64, linkage); + @export("__modti3", @import("compiler_rt/modti3.zig").__modti3_windows_x86_64, linkage); + @export("__multi3", @import("compiler_rt/multi3.zig").__multi3_windows_x86_64, linkage); + @export("__udivti3", @import("compiler_rt/udivti3.zig").__udivti3_windows_x86_64, linkage); + @export("__udivmodti4", @import("compiler_rt/udivmodti4.zig").__udivmodti4_windows_x86_64, linkage); + @export("__umodti3", @import("compiler_rt/umodti3.zig").__umodti3_windows_x86_64, linkage); + }, + else => {}, + } + } else { + if (builtin.glibc_version != null) { + @export("__stack_chk_guard", __stack_chk_guard, linkage); + } + @export("__divti3", @import("compiler_rt/divti3.zig").__divti3, linkage); + @export("__modti3", @import("compiler_rt/modti3.zig").__modti3, linkage); + @export("__multi3", @import("compiler_rt/multi3.zig").__multi3, linkage); + @export("__udivti3", @import("compiler_rt/udivti3.zig").__udivti3, linkage); + @export("__udivmodti4", @import("compiler_rt/udivmodti4.zig").__udivmodti4, linkage); + @export("__umodti3", @import("compiler_rt/umodti3.zig").__umodti3, linkage); + } + @export("__muloti4", @import("compiler_rt/muloti4.zig").__muloti4, linkage); + @export("__mulodi4", @import("compiler_rt/mulodi4.zig").__mulodi4, linkage); +} + +const std = @import("std"); +const assert = std.debug.assert; +const testing = std.testing; + +const __udivmoddi4 = @import("compiler_rt/udivmoddi4.zig").__udivmoddi4; + +// Avoid dragging in the runtime safety mechanisms into this .o file, +// unless we're trying to test this file. +pub fn panic(msg: []const u8, error_return_trace: ?*builtin.StackTrace) noreturn { + @setCold(true); + if (is_test) { + std.debug.panic("{}", msg); + } else { + unreachable; + } +} + +extern fn __stack_chk_fail() noreturn { + @panic("stack smashing detected"); +} + +extern var __stack_chk_guard: usize = blk: { + var buf = [1]u8{0} ** @sizeOf(usize); + buf[@sizeOf(usize) - 1] = 255; + buf[@sizeOf(usize) - 2] = '\n'; + break :blk @bitCast(usize, buf); +}; + +extern fn __aeabi_unwind_cpp_pr0() void { + unreachable; +} +extern fn __aeabi_unwind_cpp_pr1() void { + unreachable; +} +extern fn __aeabi_unwind_cpp_pr2() void { + unreachable; +} + +extern fn __divmoddi4(a: i64, b: i64, rem: *i64) i64 { + @setRuntimeSafety(is_test); + + const d = __divdi3(a, b); + rem.* = a -% (d *% b); + return d; +} + +extern fn __divdi3(a: i64, b: i64) i64 { + @setRuntimeSafety(is_test); + + // Set aside the sign of the quotient. + const sign = @bitCast(u64, (a ^ b) >> 63); + // Take absolute value of a and b via abs(x) = (x^(x >> 63)) - (x >> 63). + const abs_a = (a ^ (a >> 63)) -% (a >> 63); + const abs_b = (b ^ (b >> 63)) -% (b >> 63); + // Unsigned division + const res = __udivmoddi4(@bitCast(u64, abs_a), @bitCast(u64, abs_b), null); + // Apply sign of quotient to result and return. + return @bitCast(i64, (res ^ sign) -% sign); +} + +extern fn __moddi3(a: i64, b: i64) i64 { + @setRuntimeSafety(is_test); + + // Take absolute value of a and b via abs(x) = (x^(x >> 63)) - (x >> 63). + const abs_a = (a ^ (a >> 63)) -% (a >> 63); + const abs_b = (b ^ (b >> 63)) -% (b >> 63); + // Unsigned division + var r: u64 = undefined; + _ = __udivmoddi4(@bitCast(u64, abs_a), @bitCast(u64, abs_b), &r); + // Apply the sign of the dividend and return. + return (@bitCast(i64, r) ^ (a >> 63)) -% (a >> 63); +} + +extern fn __udivdi3(a: u64, b: u64) u64 { + @setRuntimeSafety(is_test); + return __udivmoddi4(a, b, null); +} + +extern fn __umoddi3(a: u64, b: u64) u64 { + @setRuntimeSafety(is_test); + + var r: u64 = undefined; + _ = __udivmoddi4(a, b, &r); + return r; +} + +extern fn __aeabi_uidivmod(n: u32, d: u32) extern struct { + q: u32, + r: u32, +} { + @setRuntimeSafety(is_test); + + var result: @typeOf(__aeabi_uidivmod).ReturnType = undefined; + result.q = __udivmodsi4(n, d, &result.r); + return result; +} + +extern fn __aeabi_uldivmod(n: u64, d: u64) extern struct { + q: u64, + r: u64, +} { + @setRuntimeSafety(is_test); + + var result: @typeOf(__aeabi_uldivmod).ReturnType = undefined; + result.q = __udivmoddi4(n, d, &result.r); + return result; +} + +extern fn __aeabi_idivmod(n: i32, d: i32) extern struct { + q: i32, + r: i32, +} { + @setRuntimeSafety(is_test); + + var result: @typeOf(__aeabi_idivmod).ReturnType = undefined; + result.q = __divmodsi4(n, d, &result.r); + return result; +} + +extern fn __aeabi_ldivmod(n: i64, d: i64) extern struct { + q: i64, + r: i64, +} { + @setRuntimeSafety(is_test); + + var result: @typeOf(__aeabi_ldivmod).ReturnType = undefined; + result.q = __divmoddi4(n, d, &result.r); + return result; +} + +const is_arm_64 = switch (builtin.arch) { + builtin.Arch.aarch64, + builtin.Arch.aarch64_be, + => true, + else => false, +}; + +const is_arm_arch = switch (builtin.arch) { + builtin.Arch.arm, + builtin.Arch.armeb, + builtin.Arch.aarch64, + builtin.Arch.aarch64_be, + builtin.Arch.thumb, + builtin.Arch.thumbeb, + => true, + else => false, +}; + +const is_arm_32 = is_arm_arch and !is_arm_64; + +const use_thumb_1 = usesThumb1(builtin.arch); + +fn usesThumb1(arch: builtin.Arch) bool { + return switch (arch) { + .arm => |sub_arch| switch (sub_arch) { + .v6m => true, + else => false, + }, + .armeb => |sub_arch| switch (sub_arch) { + .v6m => true, + else => false, + }, + .thumb => |sub_arch| switch (sub_arch) { + .v5, + .v5te, + .v4t, + .v6, + .v6m, + .v6k, + => true, + else => false, + }, + .thumbeb => |sub_arch| switch (sub_arch) { + .v5, + .v5te, + .v4t, + .v6, + .v6m, + .v6k, + => true, + else => false, + }, + else => false, + }; +} + +test "usesThumb1" { + testing.expect(usesThumb1(builtin.Arch{ .arm = .v6m })); + testing.expect(!usesThumb1(builtin.Arch{ .arm = .v5 })); + //etc. + + testing.expect(usesThumb1(builtin.Arch{ .armeb = .v6m })); + testing.expect(!usesThumb1(builtin.Arch{ .armeb = .v5 })); + //etc. + + testing.expect(usesThumb1(builtin.Arch{ .thumb = .v5 })); + testing.expect(usesThumb1(builtin.Arch{ .thumb = .v5te })); + testing.expect(usesThumb1(builtin.Arch{ .thumb = .v4t })); + testing.expect(usesThumb1(builtin.Arch{ .thumb = .v6 })); + testing.expect(usesThumb1(builtin.Arch{ .thumb = .v6k })); + testing.expect(usesThumb1(builtin.Arch{ .thumb = .v6m })); + testing.expect(!usesThumb1(builtin.Arch{ .thumb = .v6t2 })); + //etc. + + testing.expect(usesThumb1(builtin.Arch{ .thumbeb = .v5 })); + testing.expect(usesThumb1(builtin.Arch{ .thumbeb = .v5te })); + testing.expect(usesThumb1(builtin.Arch{ .thumbeb = .v4t })); + testing.expect(usesThumb1(builtin.Arch{ .thumbeb = .v6 })); + testing.expect(usesThumb1(builtin.Arch{ .thumbeb = .v6k })); + testing.expect(usesThumb1(builtin.Arch{ .thumbeb = .v6m })); + testing.expect(!usesThumb1(builtin.Arch{ .thumbeb = .v6t2 })); + //etc. + + testing.expect(!usesThumb1(builtin.Arch{ .aarch64 = .v8 })); + testing.expect(!usesThumb1(builtin.Arch{ .aarch64_be = .v8 })); + testing.expect(!usesThumb1(builtin.Arch.x86_64)); + testing.expect(!usesThumb1(builtin.Arch.riscv32)); + //etc. +} + +const use_thumb_1_pre_armv6 = usesThumb1PreArmv6(builtin.arch); + +fn usesThumb1PreArmv6(arch: builtin.Arch) bool { + return switch (arch) { + .thumb => |sub_arch| switch (sub_arch) { + .v5, .v5te, .v4t => true, + else => false, + }, + .thumbeb => |sub_arch| switch (sub_arch) { + .v5, .v5te, .v4t => true, + else => false, + }, + else => false, + }; +} + +nakedcc fn __aeabi_memcpy() noreturn { + @setRuntimeSafety(false); + if (use_thumb_1) { + asm volatile ( + \\ push {r7, lr} + \\ bl memcpy + \\ pop {r7, pc} + ); + } else { + asm volatile ( + \\ b memcpy + ); + } + unreachable; +} + +nakedcc fn __aeabi_memmove() noreturn { + @setRuntimeSafety(false); + if (use_thumb_1) { + asm volatile ( + \\ push {r7, lr} + \\ bl memmove + \\ pop {r7, pc} + ); + } else { + asm volatile ( + \\ b memmove + ); + } + unreachable; +} + +nakedcc fn __aeabi_memset() noreturn { + @setRuntimeSafety(false); + if (use_thumb_1_pre_armv6) { + asm volatile ( + \\ eors r1, r2 + \\ eors r2, r1 + \\ eors r1, r2 + \\ push {r7, lr} + \\ b memset + \\ pop {r7, pc} + ); + } else if (use_thumb_1) { + asm volatile ( + \\ mov r3, r1 + \\ mov r1, r2 + \\ mov r2, r3 + \\ push {r7, lr} + \\ b memset + \\ pop {r7, pc} + ); + } else { + asm volatile ( + \\ mov r3, r1 + \\ mov r1, r2 + \\ mov r2, r3 + \\ b memset + ); + } + unreachable; +} + +nakedcc fn __aeabi_memclr() noreturn { + @setRuntimeSafety(false); + if (use_thumb_1_pre_armv6) { + asm volatile ( + \\ adds r2, r1, #0 + \\ movs r1, #0 + \\ push {r7, lr} + \\ bl memset + \\ pop {r7, pc} + ); + } else if (use_thumb_1) { + asm volatile ( + \\ mov r2, r1 + \\ movs r1, #0 + \\ push {r7, lr} + \\ bl memset + \\ pop {r7, pc} + ); + } else { + asm volatile ( + \\ mov r2, r1 + \\ movs r1, #0 + \\ b memset + ); + } + unreachable; +} + +nakedcc fn __aeabi_memcmp() noreturn { + @setRuntimeSafety(false); + if (use_thumb_1) { + asm volatile ( + \\ push {r7, lr} + \\ bl memcmp + \\ pop {r7, pc} + ); + } else { + asm volatile ( + \\ b memcmp + ); + } + unreachable; +} + +extern fn __divmodsi4(a: i32, b: i32, rem: *i32) i32 { + @setRuntimeSafety(is_test); + + const d = __divsi3(a, b); + rem.* = a -% (d * b); + return d; +} + +extern fn __udivmodsi4(a: u32, b: u32, rem: *u32) u32 { + @setRuntimeSafety(is_test); + + const d = __udivsi3(a, b); + rem.* = @bitCast(u32, @bitCast(i32, a) -% (@bitCast(i32, d) * @bitCast(i32, b))); + return d; +} + +extern fn __divsi3(n: i32, d: i32) i32 { + @setRuntimeSafety(is_test); + + // Set aside the sign of the quotient. + const sign = @bitCast(u32, (n ^ d) >> 31); + // Take absolute value of a and b via abs(x) = (x^(x >> 31)) - (x >> 31). + const abs_n = (n ^ (n >> 31)) -% (n >> 31); + const abs_d = (d ^ (d >> 31)) -% (d >> 31); + // abs(a) / abs(b) + const res = @bitCast(u32, abs_n) / @bitCast(u32, abs_d); + // Apply sign of quotient to result and return. + return @bitCast(i32, (res ^ sign) -% sign); +} + +extern fn __udivsi3(n: u32, d: u32) u32 { + @setRuntimeSafety(is_test); + + const n_uword_bits: c_uint = u32.bit_count; + // special cases + if (d == 0) return 0; // ?! + if (n == 0) return 0; + var sr = @bitCast(c_uint, c_int(@clz(u32, d)) - c_int(@clz(u32, n))); + // 0 <= sr <= n_uword_bits - 1 or sr large + if (sr > n_uword_bits - 1) { + // d > r + return 0; + } + if (sr == n_uword_bits - 1) { + // d == 1 + return n; + } + sr += 1; + // 1 <= sr <= n_uword_bits - 1 + // Not a special case + var q: u32 = n << @intCast(u5, n_uword_bits - sr); + var r: u32 = n >> @intCast(u5, sr); + var carry: u32 = 0; + while (sr > 0) : (sr -= 1) { + // r:q = ((r:q) << 1) | carry + r = (r << 1) | (q >> @intCast(u5, n_uword_bits - 1)); + q = (q << 1) | carry; + // carry = 0; + // if (r.all >= d.all) + // { + // r.all -= d.all; + // carry = 1; + // } + const s = @intCast(i32, d -% r -% 1) >> @intCast(u5, n_uword_bits - 1); + carry = @intCast(u32, s & 1); + r -= d & @bitCast(u32, s); + } + q = (q << 1) | carry; + return q; +} + +extern fn __modsi3(n: i32, d: i32) i32 { + @setRuntimeSafety(is_test); + + return n -% __divsi3(n, d) *% d; +} + +extern fn __umodsi3(n: u32, d: u32) u32 { + @setRuntimeSafety(is_test); + + return n -% __udivsi3(n, d) *% d; +} + +test "test_umoddi3" { + test_one_umoddi3(0, 1, 0); + test_one_umoddi3(2, 1, 0); + test_one_umoddi3(0x8000000000000000, 1, 0x0); + test_one_umoddi3(0x8000000000000000, 2, 0x0); + test_one_umoddi3(0xFFFFFFFFFFFFFFFF, 2, 0x1); +} + +fn test_one_umoddi3(a: u64, b: u64, expected_r: u64) void { + const r = __umoddi3(a, b); + testing.expect(r == expected_r); +} + +test "test_udivsi3" { + const cases = [_][3]u32{ + [_]u32{ + 0x00000000, + 0x00000001, + 0x00000000, + }, + [_]u32{ + 0x00000000, + 0x00000002, + 0x00000000, + }, + [_]u32{ + 0x00000000, + 0x00000003, + 0x00000000, + }, + [_]u32{ + 0x00000000, + 0x00000010, + 0x00000000, + }, + [_]u32{ + 0x00000000, + 0x078644FA, + 0x00000000, + }, + [_]u32{ + 0x00000000, + 0x0747AE14, + 0x00000000, + }, + [_]u32{ + 0x00000000, + 0x7FFFFFFF, + 0x00000000, + }, + [_]u32{ + 0x00000000, + 0x80000000, + 0x00000000, + }, + [_]u32{ + 0x00000000, + 0xFFFFFFFD, + 0x00000000, + }, + [_]u32{ + 0x00000000, + 0xFFFFFFFE, + 0x00000000, + }, + [_]u32{ + 0x00000000, + 0xFFFFFFFF, + 0x00000000, + }, + [_]u32{ + 0x00000001, + 0x00000001, + 0x00000001, + }, + [_]u32{ + 0x00000001, + 0x00000002, + 0x00000000, + }, + [_]u32{ + 0x00000001, + 0x00000003, + 0x00000000, + }, + [_]u32{ + 0x00000001, + 0x00000010, + 0x00000000, + }, + [_]u32{ + 0x00000001, + 0x078644FA, + 0x00000000, + }, + [_]u32{ + 0x00000001, + 0x0747AE14, + 0x00000000, + }, + [_]u32{ + 0x00000001, + 0x7FFFFFFF, + 0x00000000, + }, + [_]u32{ + 0x00000001, + 0x80000000, + 0x00000000, + }, + [_]u32{ + 0x00000001, + 0xFFFFFFFD, + 0x00000000, + }, + [_]u32{ + 0x00000001, + 0xFFFFFFFE, + 0x00000000, + }, + [_]u32{ + 0x00000001, + 0xFFFFFFFF, + 0x00000000, + }, + [_]u32{ + 0x00000002, + 0x00000001, + 0x00000002, + }, + [_]u32{ + 0x00000002, + 0x00000002, + 0x00000001, + }, + [_]u32{ + 0x00000002, + 0x00000003, + 0x00000000, + }, + [_]u32{ + 0x00000002, + 0x00000010, + 0x00000000, + }, + [_]u32{ + 0x00000002, + 0x078644FA, + 0x00000000, + }, + [_]u32{ + 0x00000002, + 0x0747AE14, + 0x00000000, + }, + [_]u32{ + 0x00000002, + 0x7FFFFFFF, + 0x00000000, + }, + [_]u32{ + 0x00000002, + 0x80000000, + 0x00000000, + }, + [_]u32{ + 0x00000002, + 0xFFFFFFFD, + 0x00000000, + }, + [_]u32{ + 0x00000002, + 0xFFFFFFFE, + 0x00000000, + }, + [_]u32{ + 0x00000002, + 0xFFFFFFFF, + 0x00000000, + }, + [_]u32{ + 0x00000003, + 0x00000001, + 0x00000003, + }, + [_]u32{ + 0x00000003, + 0x00000002, + 0x00000001, + }, + [_]u32{ + 0x00000003, + 0x00000003, + 0x00000001, + }, + [_]u32{ + 0x00000003, + 0x00000010, + 0x00000000, + }, + [_]u32{ + 0x00000003, + 0x078644FA, + 0x00000000, + }, + [_]u32{ + 0x00000003, + 0x0747AE14, + 0x00000000, + }, + [_]u32{ + 0x00000003, + 0x7FFFFFFF, + 0x00000000, + }, + [_]u32{ + 0x00000003, + 0x80000000, + 0x00000000, + }, + [_]u32{ + 0x00000003, + 0xFFFFFFFD, + 0x00000000, + }, + [_]u32{ + 0x00000003, + 0xFFFFFFFE, + 0x00000000, + }, + [_]u32{ + 0x00000003, + 0xFFFFFFFF, + 0x00000000, + }, + [_]u32{ + 0x00000010, + 0x00000001, + 0x00000010, + }, + [_]u32{ + 0x00000010, + 0x00000002, + 0x00000008, + }, + [_]u32{ + 0x00000010, + 0x00000003, + 0x00000005, + }, + [_]u32{ + 0x00000010, + 0x00000010, + 0x00000001, + }, + [_]u32{ + 0x00000010, + 0x078644FA, + 0x00000000, + }, + [_]u32{ + 0x00000010, + 0x0747AE14, + 0x00000000, + }, + [_]u32{ + 0x00000010, + 0x7FFFFFFF, + 0x00000000, + }, + [_]u32{ + 0x00000010, + 0x80000000, + 0x00000000, + }, + [_]u32{ + 0x00000010, + 0xFFFFFFFD, + 0x00000000, + }, + [_]u32{ + 0x00000010, + 0xFFFFFFFE, + 0x00000000, + }, + [_]u32{ + 0x00000010, + 0xFFFFFFFF, + 0x00000000, + }, + [_]u32{ + 0x078644FA, + 0x00000001, + 0x078644FA, + }, + [_]u32{ + 0x078644FA, + 0x00000002, + 0x03C3227D, + }, + [_]u32{ + 0x078644FA, + 0x00000003, + 0x028216FE, + }, + [_]u32{ + 0x078644FA, + 0x00000010, + 0x0078644F, + }, + [_]u32{ + 0x078644FA, + 0x078644FA, + 0x00000001, + }, + [_]u32{ + 0x078644FA, + 0x0747AE14, + 0x00000001, + }, + [_]u32{ + 0x078644FA, + 0x7FFFFFFF, + 0x00000000, + }, + [_]u32{ + 0x078644FA, + 0x80000000, + 0x00000000, + }, + [_]u32{ + 0x078644FA, + 0xFFFFFFFD, + 0x00000000, + }, + [_]u32{ + 0x078644FA, + 0xFFFFFFFE, + 0x00000000, + }, + [_]u32{ + 0x078644FA, + 0xFFFFFFFF, + 0x00000000, + }, + [_]u32{ + 0x0747AE14, + 0x00000001, + 0x0747AE14, + }, + [_]u32{ + 0x0747AE14, + 0x00000002, + 0x03A3D70A, + }, + [_]u32{ + 0x0747AE14, + 0x00000003, + 0x026D3A06, + }, + [_]u32{ + 0x0747AE14, + 0x00000010, + 0x00747AE1, + }, + [_]u32{ + 0x0747AE14, + 0x078644FA, + 0x00000000, + }, + [_]u32{ + 0x0747AE14, + 0x0747AE14, + 0x00000001, + }, + [_]u32{ + 0x0747AE14, + 0x7FFFFFFF, + 0x00000000, + }, + [_]u32{ + 0x0747AE14, + 0x80000000, + 0x00000000, + }, + [_]u32{ + 0x0747AE14, + 0xFFFFFFFD, + 0x00000000, + }, + [_]u32{ + 0x0747AE14, + 0xFFFFFFFE, + 0x00000000, + }, + [_]u32{ + 0x0747AE14, + 0xFFFFFFFF, + 0x00000000, + }, + [_]u32{ + 0x7FFFFFFF, + 0x00000001, + 0x7FFFFFFF, + }, + [_]u32{ + 0x7FFFFFFF, + 0x00000002, + 0x3FFFFFFF, + }, + [_]u32{ + 0x7FFFFFFF, + 0x00000003, + 0x2AAAAAAA, + }, + [_]u32{ + 0x7FFFFFFF, + 0x00000010, + 0x07FFFFFF, + }, + [_]u32{ + 0x7FFFFFFF, + 0x078644FA, + 0x00000011, + }, + [_]u32{ + 0x7FFFFFFF, + 0x0747AE14, + 0x00000011, + }, + [_]u32{ + 0x7FFFFFFF, + 0x7FFFFFFF, + 0x00000001, + }, + [_]u32{ + 0x7FFFFFFF, + 0x80000000, + 0x00000000, + }, + [_]u32{ + 0x7FFFFFFF, + 0xFFFFFFFD, + 0x00000000, + }, + [_]u32{ + 0x7FFFFFFF, + 0xFFFFFFFE, + 0x00000000, + }, + [_]u32{ + 0x7FFFFFFF, + 0xFFFFFFFF, + 0x00000000, + }, + [_]u32{ + 0x80000000, + 0x00000001, + 0x80000000, + }, + [_]u32{ + 0x80000000, + 0x00000002, + 0x40000000, + }, + [_]u32{ + 0x80000000, + 0x00000003, + 0x2AAAAAAA, + }, + [_]u32{ + 0x80000000, + 0x00000010, + 0x08000000, + }, + [_]u32{ + 0x80000000, + 0x078644FA, + 0x00000011, + }, + [_]u32{ + 0x80000000, + 0x0747AE14, + 0x00000011, + }, + [_]u32{ + 0x80000000, + 0x7FFFFFFF, + 0x00000001, + }, + [_]u32{ + 0x80000000, + 0x80000000, + 0x00000001, + }, + [_]u32{ + 0x80000000, + 0xFFFFFFFD, + 0x00000000, + }, + [_]u32{ + 0x80000000, + 0xFFFFFFFE, + 0x00000000, + }, + [_]u32{ + 0x80000000, + 0xFFFFFFFF, + 0x00000000, + }, + [_]u32{ + 0xFFFFFFFD, + 0x00000001, + 0xFFFFFFFD, + }, + [_]u32{ + 0xFFFFFFFD, + 0x00000002, + 0x7FFFFFFE, + }, + [_]u32{ + 0xFFFFFFFD, + 0x00000003, + 0x55555554, + }, + [_]u32{ + 0xFFFFFFFD, + 0x00000010, + 0x0FFFFFFF, + }, + [_]u32{ + 0xFFFFFFFD, + 0x078644FA, + 0x00000022, + }, + [_]u32{ + 0xFFFFFFFD, + 0x0747AE14, + 0x00000023, + }, + [_]u32{ + 0xFFFFFFFD, + 0x7FFFFFFF, + 0x00000001, + }, + [_]u32{ + 0xFFFFFFFD, + 0x80000000, + 0x00000001, + }, + [_]u32{ + 0xFFFFFFFD, + 0xFFFFFFFD, + 0x00000001, + }, + [_]u32{ + 0xFFFFFFFD, + 0xFFFFFFFE, + 0x00000000, + }, + [_]u32{ + 0xFFFFFFFD, + 0xFFFFFFFF, + 0x00000000, + }, + [_]u32{ + 0xFFFFFFFE, + 0x00000001, + 0xFFFFFFFE, + }, + [_]u32{ + 0xFFFFFFFE, + 0x00000002, + 0x7FFFFFFF, + }, + [_]u32{ + 0xFFFFFFFE, + 0x00000003, + 0x55555554, + }, + [_]u32{ + 0xFFFFFFFE, + 0x00000010, + 0x0FFFFFFF, + }, + [_]u32{ + 0xFFFFFFFE, + 0x078644FA, + 0x00000022, + }, + [_]u32{ + 0xFFFFFFFE, + 0x0747AE14, + 0x00000023, + }, + [_]u32{ + 0xFFFFFFFE, + 0x7FFFFFFF, + 0x00000002, + }, + [_]u32{ + 0xFFFFFFFE, + 0x80000000, + 0x00000001, + }, + [_]u32{ + 0xFFFFFFFE, + 0xFFFFFFFD, + 0x00000001, + }, + [_]u32{ + 0xFFFFFFFE, + 0xFFFFFFFE, + 0x00000001, + }, + [_]u32{ + 0xFFFFFFFE, + 0xFFFFFFFF, + 0x00000000, + }, + [_]u32{ + 0xFFFFFFFF, + 0x00000001, + 0xFFFFFFFF, + }, + [_]u32{ + 0xFFFFFFFF, + 0x00000002, + 0x7FFFFFFF, + }, + [_]u32{ + 0xFFFFFFFF, + 0x00000003, + 0x55555555, + }, + [_]u32{ + 0xFFFFFFFF, + 0x00000010, + 0x0FFFFFFF, + }, + [_]u32{ + 0xFFFFFFFF, + 0x078644FA, + 0x00000022, + }, + [_]u32{ + 0xFFFFFFFF, + 0x0747AE14, + 0x00000023, + }, + [_]u32{ + 0xFFFFFFFF, + 0x7FFFFFFF, + 0x00000002, + }, + [_]u32{ + 0xFFFFFFFF, + 0x80000000, + 0x00000001, + }, + [_]u32{ + 0xFFFFFFFF, + 0xFFFFFFFD, + 0x00000001, + }, + [_]u32{ + 0xFFFFFFFF, + 0xFFFFFFFE, + 0x00000001, + }, + [_]u32{ + 0xFFFFFFFF, + 0xFFFFFFFF, + 0x00000001, + }, + }; + + for (cases) |case| { + test_one_udivsi3(case[0], case[1], case[2]); + } +} + +fn test_one_udivsi3(a: u32, b: u32, expected_q: u32) void { + const q: u32 = __udivsi3(a, b); + testing.expect(q == expected_q); +} + +test "test_divsi3" { + const cases = [_][3]i32{ + [_]i32{ 0, 1, 0 }, + [_]i32{ 0, -1, 0 }, + [_]i32{ 2, 1, 2 }, + [_]i32{ 2, -1, -2 }, + [_]i32{ -2, 1, -2 }, + [_]i32{ -2, -1, 2 }, + + [_]i32{ @bitCast(i32, u32(0x80000000)), 1, @bitCast(i32, u32(0x80000000)) }, + [_]i32{ @bitCast(i32, u32(0x80000000)), -1, @bitCast(i32, u32(0x80000000)) }, + [_]i32{ @bitCast(i32, u32(0x80000000)), -2, 0x40000000 }, + [_]i32{ @bitCast(i32, u32(0x80000000)), 2, @bitCast(i32, u32(0xC0000000)) }, + }; + + for (cases) |case| { + test_one_divsi3(case[0], case[1], case[2]); + } +} + +fn test_one_divsi3(a: i32, b: i32, expected_q: i32) void { + const q: i32 = __divsi3(a, b); + testing.expect(q == expected_q); +} + +test "test_divmodsi4" { + const cases = [_][4]i32{ + [_]i32{ 0, 1, 0, 0 }, + [_]i32{ 0, -1, 0, 0 }, + [_]i32{ 2, 1, 2, 0 }, + [_]i32{ 2, -1, -2, 0 }, + [_]i32{ -2, 1, -2, 0 }, + [_]i32{ -2, -1, 2, 0 }, + [_]i32{ 7, 5, 1, 2 }, + [_]i32{ -7, 5, -1, -2 }, + [_]i32{ 19, 5, 3, 4 }, + [_]i32{ 19, -5, -3, 4 }, + + [_]i32{ @bitCast(i32, u32(0x80000000)), 8, @bitCast(i32, u32(0xf0000000)), 0 }, + [_]i32{ @bitCast(i32, u32(0x80000007)), 8, @bitCast(i32, u32(0xf0000001)), -1 }, + }; + + for (cases) |case| { + test_one_divmodsi4(case[0], case[1], case[2], case[3]); + } +} + +fn test_one_divmodsi4(a: i32, b: i32, expected_q: i32, expected_r: i32) void { + var r: i32 = undefined; + const q: i32 = __divmodsi4(a, b, &r); + testing.expect(q == expected_q and r == expected_r); +} + +test "test_divdi3" { + const cases = [_][3]i64{ + [_]i64{ 0, 1, 0 }, + [_]i64{ 0, -1, 0 }, + [_]i64{ 2, 1, 2 }, + [_]i64{ 2, -1, -2 }, + [_]i64{ -2, 1, -2 }, + [_]i64{ -2, -1, 2 }, + + [_]i64{ @bitCast(i64, u64(0x8000000000000000)), 1, @bitCast(i64, u64(0x8000000000000000)) }, + [_]i64{ @bitCast(i64, u64(0x8000000000000000)), -1, @bitCast(i64, u64(0x8000000000000000)) }, + [_]i64{ @bitCast(i64, u64(0x8000000000000000)), -2, 0x4000000000000000 }, + [_]i64{ @bitCast(i64, u64(0x8000000000000000)), 2, @bitCast(i64, u64(0xC000000000000000)) }, + }; + + for (cases) |case| { + test_one_divdi3(case[0], case[1], case[2]); + } +} + +fn test_one_divdi3(a: i64, b: i64, expected_q: i64) void { + const q: i64 = __divdi3(a, b); + testing.expect(q == expected_q); +} + +test "test_moddi3" { + const cases = [_][3]i64{ + [_]i64{ 0, 1, 0 }, + [_]i64{ 0, -1, 0 }, + [_]i64{ 5, 3, 2 }, + [_]i64{ 5, -3, 2 }, + [_]i64{ -5, 3, -2 }, + [_]i64{ -5, -3, -2 }, + + [_]i64{ @bitCast(i64, @intCast(u64, 0x8000000000000000)), 1, 0 }, + [_]i64{ @bitCast(i64, @intCast(u64, 0x8000000000000000)), -1, 0 }, + [_]i64{ @bitCast(i64, @intCast(u64, 0x8000000000000000)), 2, 0 }, + [_]i64{ @bitCast(i64, @intCast(u64, 0x8000000000000000)), -2, 0 }, + [_]i64{ @bitCast(i64, @intCast(u64, 0x8000000000000000)), 3, -2 }, + [_]i64{ @bitCast(i64, @intCast(u64, 0x8000000000000000)), -3, -2 }, + }; + + for (cases) |case| { + test_one_moddi3(case[0], case[1], case[2]); + } +} + +fn test_one_moddi3(a: i64, b: i64, expected_r: i64) void { + const r: i64 = __moddi3(a, b); + testing.expect(r == expected_r); +} + +test "test_modsi3" { + const cases = [_][3]i32{ + [_]i32{ 0, 1, 0 }, + [_]i32{ 0, -1, 0 }, + [_]i32{ 5, 3, 2 }, + [_]i32{ 5, -3, 2 }, + [_]i32{ -5, 3, -2 }, + [_]i32{ -5, -3, -2 }, + [_]i32{ @bitCast(i32, @intCast(u32, 0x80000000)), 1, 0x0 }, + [_]i32{ @bitCast(i32, @intCast(u32, 0x80000000)), 2, 0x0 }, + [_]i32{ @bitCast(i32, @intCast(u32, 0x80000000)), -2, 0x0 }, + [_]i32{ @bitCast(i32, @intCast(u32, 0x80000000)), 3, -2 }, + [_]i32{ @bitCast(i32, @intCast(u32, 0x80000000)), -3, -2 }, + }; + + for (cases) |case| { + test_one_modsi3(case[0], case[1], case[2]); + } +} + +fn test_one_modsi3(a: i32, b: i32, expected_r: i32) void { + const r: i32 = __modsi3(a, b); + testing.expect(r == expected_r); +} + +test "test_umodsi3" { + const cases = [_][3]u32{ + [_]u32{ 0x00000000, 0x00000001, 0x00000000 }, + [_]u32{ 0x00000000, 0x00000002, 0x00000000 }, + [_]u32{ 0x00000000, 0x00000003, 0x00000000 }, + [_]u32{ 0x00000000, 0x00000010, 0x00000000 }, + [_]u32{ 0x00000000, 0x078644FA, 0x00000000 }, + [_]u32{ 0x00000000, 0x0747AE14, 0x00000000 }, + [_]u32{ 0x00000000, 0x7FFFFFFF, 0x00000000 }, + [_]u32{ 0x00000000, 0x80000000, 0x00000000 }, + [_]u32{ 0x00000000, 0xFFFFFFFD, 0x00000000 }, + [_]u32{ 0x00000000, 0xFFFFFFFE, 0x00000000 }, + [_]u32{ 0x00000000, 0xFFFFFFFF, 0x00000000 }, + [_]u32{ 0x00000001, 0x00000001, 0x00000000 }, + [_]u32{ 0x00000001, 0x00000002, 0x00000001 }, + [_]u32{ 0x00000001, 0x00000003, 0x00000001 }, + [_]u32{ 0x00000001, 0x00000010, 0x00000001 }, + [_]u32{ 0x00000001, 0x078644FA, 0x00000001 }, + [_]u32{ 0x00000001, 0x0747AE14, 0x00000001 }, + [_]u32{ 0x00000001, 0x7FFFFFFF, 0x00000001 }, + [_]u32{ 0x00000001, 0x80000000, 0x00000001 }, + [_]u32{ 0x00000001, 0xFFFFFFFD, 0x00000001 }, + [_]u32{ 0x00000001, 0xFFFFFFFE, 0x00000001 }, + [_]u32{ 0x00000001, 0xFFFFFFFF, 0x00000001 }, + [_]u32{ 0x00000002, 0x00000001, 0x00000000 }, + [_]u32{ 0x00000002, 0x00000002, 0x00000000 }, + [_]u32{ 0x00000002, 0x00000003, 0x00000002 }, + [_]u32{ 0x00000002, 0x00000010, 0x00000002 }, + [_]u32{ 0x00000002, 0x078644FA, 0x00000002 }, + [_]u32{ 0x00000002, 0x0747AE14, 0x00000002 }, + [_]u32{ 0x00000002, 0x7FFFFFFF, 0x00000002 }, + [_]u32{ 0x00000002, 0x80000000, 0x00000002 }, + [_]u32{ 0x00000002, 0xFFFFFFFD, 0x00000002 }, + [_]u32{ 0x00000002, 0xFFFFFFFE, 0x00000002 }, + [_]u32{ 0x00000002, 0xFFFFFFFF, 0x00000002 }, + [_]u32{ 0x00000003, 0x00000001, 0x00000000 }, + [_]u32{ 0x00000003, 0x00000002, 0x00000001 }, + [_]u32{ 0x00000003, 0x00000003, 0x00000000 }, + [_]u32{ 0x00000003, 0x00000010, 0x00000003 }, + [_]u32{ 0x00000003, 0x078644FA, 0x00000003 }, + [_]u32{ 0x00000003, 0x0747AE14, 0x00000003 }, + [_]u32{ 0x00000003, 0x7FFFFFFF, 0x00000003 }, + [_]u32{ 0x00000003, 0x80000000, 0x00000003 }, + [_]u32{ 0x00000003, 0xFFFFFFFD, 0x00000003 }, + [_]u32{ 0x00000003, 0xFFFFFFFE, 0x00000003 }, + [_]u32{ 0x00000003, 0xFFFFFFFF, 0x00000003 }, + [_]u32{ 0x00000010, 0x00000001, 0x00000000 }, + [_]u32{ 0x00000010, 0x00000002, 0x00000000 }, + [_]u32{ 0x00000010, 0x00000003, 0x00000001 }, + [_]u32{ 0x00000010, 0x00000010, 0x00000000 }, + [_]u32{ 0x00000010, 0x078644FA, 0x00000010 }, + [_]u32{ 0x00000010, 0x0747AE14, 0x00000010 }, + [_]u32{ 0x00000010, 0x7FFFFFFF, 0x00000010 }, + [_]u32{ 0x00000010, 0x80000000, 0x00000010 }, + [_]u32{ 0x00000010, 0xFFFFFFFD, 0x00000010 }, + [_]u32{ 0x00000010, 0xFFFFFFFE, 0x00000010 }, + [_]u32{ 0x00000010, 0xFFFFFFFF, 0x00000010 }, + [_]u32{ 0x078644FA, 0x00000001, 0x00000000 }, + [_]u32{ 0x078644FA, 0x00000002, 0x00000000 }, + [_]u32{ 0x078644FA, 0x00000003, 0x00000000 }, + [_]u32{ 0x078644FA, 0x00000010, 0x0000000A }, + [_]u32{ 0x078644FA, 0x078644FA, 0x00000000 }, + [_]u32{ 0x078644FA, 0x0747AE14, 0x003E96E6 }, + [_]u32{ 0x078644FA, 0x7FFFFFFF, 0x078644FA }, + [_]u32{ 0x078644FA, 0x80000000, 0x078644FA }, + [_]u32{ 0x078644FA, 0xFFFFFFFD, 0x078644FA }, + [_]u32{ 0x078644FA, 0xFFFFFFFE, 0x078644FA }, + [_]u32{ 0x078644FA, 0xFFFFFFFF, 0x078644FA }, + [_]u32{ 0x0747AE14, 0x00000001, 0x00000000 }, + [_]u32{ 0x0747AE14, 0x00000002, 0x00000000 }, + [_]u32{ 0x0747AE14, 0x00000003, 0x00000002 }, + [_]u32{ 0x0747AE14, 0x00000010, 0x00000004 }, + [_]u32{ 0x0747AE14, 0x078644FA, 0x0747AE14 }, + [_]u32{ 0x0747AE14, 0x0747AE14, 0x00000000 }, + [_]u32{ 0x0747AE14, 0x7FFFFFFF, 0x0747AE14 }, + [_]u32{ 0x0747AE14, 0x80000000, 0x0747AE14 }, + [_]u32{ 0x0747AE14, 0xFFFFFFFD, 0x0747AE14 }, + [_]u32{ 0x0747AE14, 0xFFFFFFFE, 0x0747AE14 }, + [_]u32{ 0x0747AE14, 0xFFFFFFFF, 0x0747AE14 }, + [_]u32{ 0x7FFFFFFF, 0x00000001, 0x00000000 }, + [_]u32{ 0x7FFFFFFF, 0x00000002, 0x00000001 }, + [_]u32{ 0x7FFFFFFF, 0x00000003, 0x00000001 }, + [_]u32{ 0x7FFFFFFF, 0x00000010, 0x0000000F }, + [_]u32{ 0x7FFFFFFF, 0x078644FA, 0x00156B65 }, + [_]u32{ 0x7FFFFFFF, 0x0747AE14, 0x043D70AB }, + [_]u32{ 0x7FFFFFFF, 0x7FFFFFFF, 0x00000000 }, + [_]u32{ 0x7FFFFFFF, 0x80000000, 0x7FFFFFFF }, + [_]u32{ 0x7FFFFFFF, 0xFFFFFFFD, 0x7FFFFFFF }, + [_]u32{ 0x7FFFFFFF, 0xFFFFFFFE, 0x7FFFFFFF }, + [_]u32{ 0x7FFFFFFF, 0xFFFFFFFF, 0x7FFFFFFF }, + [_]u32{ 0x80000000, 0x00000001, 0x00000000 }, + [_]u32{ 0x80000000, 0x00000002, 0x00000000 }, + [_]u32{ 0x80000000, 0x00000003, 0x00000002 }, + [_]u32{ 0x80000000, 0x00000010, 0x00000000 }, + [_]u32{ 0x80000000, 0x078644FA, 0x00156B66 }, + [_]u32{ 0x80000000, 0x0747AE14, 0x043D70AC }, + [_]u32{ 0x80000000, 0x7FFFFFFF, 0x00000001 }, + [_]u32{ 0x80000000, 0x80000000, 0x00000000 }, + [_]u32{ 0x80000000, 0xFFFFFFFD, 0x80000000 }, + [_]u32{ 0x80000000, 0xFFFFFFFE, 0x80000000 }, + [_]u32{ 0x80000000, 0xFFFFFFFF, 0x80000000 }, + [_]u32{ 0xFFFFFFFD, 0x00000001, 0x00000000 }, + [_]u32{ 0xFFFFFFFD, 0x00000002, 0x00000001 }, + [_]u32{ 0xFFFFFFFD, 0x00000003, 0x00000001 }, + [_]u32{ 0xFFFFFFFD, 0x00000010, 0x0000000D }, + [_]u32{ 0xFFFFFFFD, 0x078644FA, 0x002AD6C9 }, + [_]u32{ 0xFFFFFFFD, 0x0747AE14, 0x01333341 }, + [_]u32{ 0xFFFFFFFD, 0x7FFFFFFF, 0x7FFFFFFE }, + [_]u32{ 0xFFFFFFFD, 0x80000000, 0x7FFFFFFD }, + [_]u32{ 0xFFFFFFFD, 0xFFFFFFFD, 0x00000000 }, + [_]u32{ 0xFFFFFFFD, 0xFFFFFFFE, 0xFFFFFFFD }, + [_]u32{ 0xFFFFFFFD, 0xFFFFFFFF, 0xFFFFFFFD }, + [_]u32{ 0xFFFFFFFE, 0x00000001, 0x00000000 }, + [_]u32{ 0xFFFFFFFE, 0x00000002, 0x00000000 }, + [_]u32{ 0xFFFFFFFE, 0x00000003, 0x00000002 }, + [_]u32{ 0xFFFFFFFE, 0x00000010, 0x0000000E }, + [_]u32{ 0xFFFFFFFE, 0x078644FA, 0x002AD6CA }, + [_]u32{ 0xFFFFFFFE, 0x0747AE14, 0x01333342 }, + [_]u32{ 0xFFFFFFFE, 0x7FFFFFFF, 0x00000000 }, + [_]u32{ 0xFFFFFFFE, 0x80000000, 0x7FFFFFFE }, + [_]u32{ 0xFFFFFFFE, 0xFFFFFFFD, 0x00000001 }, + [_]u32{ 0xFFFFFFFE, 0xFFFFFFFE, 0x00000000 }, + [_]u32{ 0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFE }, + [_]u32{ 0xFFFFFFFF, 0x00000001, 0x00000000 }, + [_]u32{ 0xFFFFFFFF, 0x00000002, 0x00000001 }, + [_]u32{ 0xFFFFFFFF, 0x00000003, 0x00000000 }, + [_]u32{ 0xFFFFFFFF, 0x00000010, 0x0000000F }, + [_]u32{ 0xFFFFFFFF, 0x078644FA, 0x002AD6CB }, + [_]u32{ 0xFFFFFFFF, 0x0747AE14, 0x01333343 }, + [_]u32{ 0xFFFFFFFF, 0x7FFFFFFF, 0x00000001 }, + [_]u32{ 0xFFFFFFFF, 0x80000000, 0x7FFFFFFF }, + [_]u32{ 0xFFFFFFFF, 0xFFFFFFFD, 0x00000002 }, + [_]u32{ 0xFFFFFFFF, 0xFFFFFFFE, 0x00000001 }, + [_]u32{ 0xFFFFFFFF, 0xFFFFFFFF, 0x00000000 }, + }; + + for (cases) |case| { + test_one_umodsi3(case[0], case[1], case[2]); + } +} + +fn test_one_umodsi3(a: u32, b: u32, expected_r: u32) void { + const r: u32 = __umodsi3(a, b); + testing.expect(r == expected_r); +} diff --git a/lib/std/special/compiler_rt/README.md b/lib/std/special/compiler_rt/README.md new file mode 100644 index 0000000000..bc853f2958 --- /dev/null +++ b/lib/std/special/compiler_rt/README.md @@ -0,0 +1,15 @@ +This compiler-rt library is ported from [LLVM](http://compiler-rt.llvm.org/). + +It's needed because LLVM emits library calls to compiler-rt when hardware lacks +functionality, for example, 64-bit integer multiplication on 32-bit x86. + +This library is automatically built as-needed for the compilation target and +then statically linked and therefore is a transparent dependency for the +programmer. + +Any bugs should be solved by trying to duplicate the bug upstream. + * If the bug exists upstream, get it fixed with the LLVM team and then port + the fix downstream to Zig. + * If the bug only exists in Zig, something went wrong porting the code, + and you can run the C code and Zig code side by side in a debugger + to figure out what's happening differently. diff --git a/lib/std/special/compiler_rt/addXf3.zig b/lib/std/special/compiler_rt/addXf3.zig new file mode 100644 index 0000000000..1654c1f08b --- /dev/null +++ b/lib/std/special/compiler_rt/addXf3.zig @@ -0,0 +1,213 @@ +// Ported from: +// +// https://github.com/llvm/llvm-project/blob/02d85149a05cb1f6dc49f0ba7a2ceca53718ae17/compiler-rt/lib/builtins/fp_add_impl.inc + +const std = @import("std"); +const builtin = @import("builtin"); +const compiler_rt = @import("../compiler_rt.zig"); + +pub extern fn __addsf3(a: f32, b: f32) f32 { + return addXf3(f32, a, b); +} + +pub extern fn __adddf3(a: f64, b: f64) f64 { + return addXf3(f64, a, b); +} + +pub extern fn __addtf3(a: f128, b: f128) f128 { + return addXf3(f128, a, b); +} + +pub extern fn __subsf3(a: f32, b: f32) f32 { + const neg_b = @bitCast(f32, @bitCast(u32, b) ^ (u32(1) << 31)); + return addXf3(f32, a, neg_b); +} + +pub extern fn __subdf3(a: f64, b: f64) f64 { + const neg_b = @bitCast(f64, @bitCast(u64, b) ^ (u64(1) << 63)); + return addXf3(f64, a, neg_b); +} + +pub extern fn __subtf3(a: f128, b: f128) f128 { + const neg_b = @bitCast(f128, @bitCast(u128, b) ^ (u128(1) << 127)); + return addXf3(f128, a, neg_b); +} + +// TODO: restore inline keyword, see: https://github.com/ziglang/zig/issues/2154 +fn normalize(comptime T: type, significand: *@IntType(false, T.bit_count)) i32 { + const Z = @IntType(false, T.bit_count); + const S = @IntType(false, T.bit_count - @clz(Z, Z(T.bit_count) - 1)); + const significandBits = std.math.floatMantissaBits(T); + const implicitBit = Z(1) << significandBits; + + const shift = @clz(@IntType(false, T.bit_count), significand.*) - @clz(Z, implicitBit); + significand.* <<= @intCast(S, shift); + return 1 - shift; +} + +// TODO: restore inline keyword, see: https://github.com/ziglang/zig/issues/2154 +fn addXf3(comptime T: type, a: T, b: T) T { + const Z = @IntType(false, T.bit_count); + const S = @IntType(false, T.bit_count - @clz(Z, Z(T.bit_count) - 1)); + + const typeWidth = T.bit_count; + const significandBits = std.math.floatMantissaBits(T); + const exponentBits = std.math.floatExponentBits(T); + + const signBit = (Z(1) << (significandBits + exponentBits)); + const maxExponent = ((1 << exponentBits) - 1); + const exponentBias = (maxExponent >> 1); + + const implicitBit = (Z(1) << significandBits); + const quietBit = implicitBit >> 1; + const significandMask = implicitBit - 1; + + const absMask = signBit - 1; + const exponentMask = absMask ^ significandMask; + const qnanRep = exponentMask | quietBit; + + var aRep = @bitCast(Z, a); + var bRep = @bitCast(Z, b); + const aAbs = aRep & absMask; + const bAbs = bRep & absMask; + + const negative = (aRep & signBit) != 0; + const exponent = @intCast(i32, aAbs >> significandBits) - exponentBias; + const significand = (aAbs & significandMask) | implicitBit; + + const infRep = @bitCast(Z, std.math.inf(T)); + + // Detect if a or b is zero, infinity, or NaN. + if (aAbs -% Z(1) >= infRep - Z(1) or + bAbs -% Z(1) >= infRep - Z(1)) + { + // NaN + anything = qNaN + if (aAbs > infRep) return @bitCast(T, @bitCast(Z, a) | quietBit); + // anything + NaN = qNaN + if (bAbs > infRep) return @bitCast(T, @bitCast(Z, b) | quietBit); + + if (aAbs == infRep) { + // +/-infinity + -/+infinity = qNaN + if ((@bitCast(Z, a) ^ @bitCast(Z, b)) == signBit) { + return @bitCast(T, qnanRep); + } + // +/-infinity + anything remaining = +/- infinity + else { + return a; + } + } + + // anything remaining + +/-infinity = +/-infinity + if (bAbs == infRep) return b; + + // zero + anything = anything + if (aAbs == 0) { + // but we need to get the sign right for zero + zero + if (bAbs == 0) { + return @bitCast(T, @bitCast(Z, a) & @bitCast(Z, b)); + } else { + return b; + } + } + + // anything + zero = anything + if (bAbs == 0) return a; + } + + // Swap a and b if necessary so that a has the larger absolute value. + if (bAbs > aAbs) { + const temp = aRep; + aRep = bRep; + bRep = temp; + } + + // Extract the exponent and significand from the (possibly swapped) a and b. + var aExponent = @intCast(i32, (aRep >> significandBits) & maxExponent); + var bExponent = @intCast(i32, (bRep >> significandBits) & maxExponent); + var aSignificand = aRep & significandMask; + var bSignificand = bRep & significandMask; + + // Normalize any denormals, and adjust the exponent accordingly. + if (aExponent == 0) aExponent = normalize(T, &aSignificand); + if (bExponent == 0) bExponent = normalize(T, &bSignificand); + + // The sign of the result is the sign of the larger operand, a. If they + // have opposite signs, we are performing a subtraction; otherwise addition. + const resultSign = aRep & signBit; + const subtraction = (aRep ^ bRep) & signBit != 0; + + // Shift the significands to give us round, guard and sticky, and or in the + // implicit significand bit. (If we fell through from the denormal path it + // was already set by normalize( ), but setting it twice won't hurt + // anything.) + aSignificand = (aSignificand | implicitBit) << 3; + bSignificand = (bSignificand | implicitBit) << 3; + + // Shift the significand of b by the difference in exponents, with a sticky + // bottom bit to get rounding correct. + const @"align" = @intCast(Z, aExponent - bExponent); + if (@"align" != 0) { + if (@"align" < typeWidth) { + const sticky = if (bSignificand << @intCast(S, typeWidth - @"align") != 0) Z(1) else 0; + bSignificand = (bSignificand >> @truncate(S, @"align")) | sticky; + } else { + bSignificand = 1; // sticky; b is known to be non-zero. + } + } + if (subtraction) { + aSignificand -= bSignificand; + // If a == -b, return +zero. + if (aSignificand == 0) return @bitCast(T, Z(0)); + + // If partial cancellation occured, we need to left-shift the result + // and adjust the exponent: + if (aSignificand < implicitBit << 3) { + const shift = @intCast(i32, @clz(Z, aSignificand)) - @intCast(i32, @clz(@IntType(false, T.bit_count), implicitBit << 3)); + aSignificand <<= @intCast(S, shift); + aExponent -= shift; + } + } else { // addition + aSignificand += bSignificand; + + // If the addition carried up, we need to right-shift the result and + // adjust the exponent: + if (aSignificand & (implicitBit << 4) != 0) { + const sticky = aSignificand & 1; + aSignificand = aSignificand >> 1 | sticky; + aExponent += 1; + } + } + + // If we have overflowed the type, return +/- infinity: + if (aExponent >= maxExponent) return @bitCast(T, infRep | resultSign); + + if (aExponent <= 0) { + // Result is denormal before rounding; the exponent is zero and we + // need to shift the significand. + const shift = @intCast(Z, 1 - aExponent); + const sticky = if (aSignificand << @intCast(S, typeWidth - shift) != 0) Z(1) else 0; + aSignificand = aSignificand >> @intCast(S, shift | sticky); + aExponent = 0; + } + + // Low three bits are round, guard, and sticky. + const roundGuardSticky = aSignificand & 0x7; + + // Shift the significand into place, and mask off the implicit bit. + var result = (aSignificand >> 3) & significandMask; + + // Insert the exponent and sign. + result |= @intCast(Z, aExponent) << significandBits; + result |= resultSign; + + // Final rounding. The result may overflow to infinity, but that is the + // correct result in that case. + if (roundGuardSticky > 0x4) result += 1; + if (roundGuardSticky == 0x4) result += result & 1; + + return @bitCast(T, result); +} + +test "import addXf3" { + _ = @import("addXf3_test.zig"); +} diff --git a/lib/std/special/compiler_rt/addXf3_test.zig b/lib/std/special/compiler_rt/addXf3_test.zig new file mode 100644 index 0000000000..099b737976 --- /dev/null +++ b/lib/std/special/compiler_rt/addXf3_test.zig @@ -0,0 +1,85 @@ +// Ported from: +// +// https://github.com/llvm/llvm-project/blob/02d85149a05cb1f6dc49f0ba7a2ceca53718ae17/compiler-rt/test/builtins/Unit/addtf3_test.c +// https://github.com/llvm/llvm-project/blob/02d85149a05cb1f6dc49f0ba7a2ceca53718ae17/compiler-rt/test/builtins/Unit/subtf3_test.c + +const qnan128 = @bitCast(f128, u128(0x7fff800000000000) << 64); +const inf128 = @bitCast(f128, u128(0x7fff000000000000) << 64); + +const __addtf3 = @import("addXf3.zig").__addtf3; + +fn test__addtf3(a: f128, b: f128, expected_hi: u64, expected_lo: u64) void { + const x = __addtf3(a, b); + + const rep = @bitCast(u128, x); + const hi = @intCast(u64, rep >> 64); + const lo = @truncate(u64, rep); + + if (hi == expected_hi and lo == expected_lo) { + return; + } + // test other possible NaN representation (signal NaN) + else if (expected_hi == 0x7fff800000000000 and expected_lo == 0x0) { + if ((hi & 0x7fff000000000000) == 0x7fff000000000000 and + ((hi & 0xffffffffffff) > 0 or lo > 0)) + { + return; + } + } + + @panic("__addtf3 test failure"); +} + +test "addtf3" { + test__addtf3(qnan128, 0x1.23456789abcdefp+5, 0x7fff800000000000, 0x0); + + // NaN + any = NaN + test__addtf3(@bitCast(f128, (u128(0x7fff000000000000) << 64) | u128(0x800030000000)), 0x1.23456789abcdefp+5, 0x7fff800000000000, 0x0); + + // inf + inf = inf + test__addtf3(inf128, inf128, 0x7fff000000000000, 0x0); + + // inf + any = inf + test__addtf3(inf128, 0x1.2335653452436234723489432abcdefp+5, 0x7fff000000000000, 0x0); + + // any + any + test__addtf3(0x1.23456734245345543849abcdefp+5, 0x1.edcba52449872455634654321fp-1, 0x40042afc95c8b579, 0x61e58dd6c51eb77c); +} + +const __subtf3 = @import("addXf3.zig").__subtf3; + +fn test__subtf3(a: f128, b: f128, expected_hi: u64, expected_lo: u64) void { + const x = __subtf3(a, b); + + const rep = @bitCast(u128, x); + const hi = @intCast(u64, rep >> 64); + const lo = @truncate(u64, rep); + + if (hi == expected_hi and lo == expected_lo) { + return; + } + // test other possible NaN representation (signal NaN) + else if (expected_hi == 0x7fff800000000000 and expected_lo == 0x0) { + if ((hi & 0x7fff000000000000) == 0x7fff000000000000 and + ((hi & 0xffffffffffff) > 0 or lo > 0)) + { + return; + } + } + + @panic("__subtf3 test failure"); +} + +test "subtf3" { + // qNaN - any = qNaN + test__subtf3(qnan128, 0x1.23456789abcdefp+5, 0x7fff800000000000, 0x0); + + // NaN + any = NaN + test__subtf3(@bitCast(f128, (u128(0x7fff000000000000) << 64) | u128(0x800030000000)), 0x1.23456789abcdefp+5, 0x7fff800000000000, 0x0); + + // inf - any = inf + test__subtf3(inf128, 0x1.23456789abcdefp+5, 0x7fff000000000000, 0x0); + + // any + any + test__subtf3(0x1.234567829a3bcdef5678ade36734p+5, 0x1.ee9d7c52354a6936ab8d7654321fp-1, 0x40041b8af1915166, 0xa44a7bca780a166c); +} diff --git a/lib/std/special/compiler_rt/arm/aeabi_dcmp.zig b/lib/std/special/compiler_rt/arm/aeabi_dcmp.zig new file mode 100644 index 0000000000..33bfdabcfb --- /dev/null +++ b/lib/std/special/compiler_rt/arm/aeabi_dcmp.zig @@ -0,0 +1,108 @@ +// Ported from: +// +// https://github.com/llvm/llvm-project/commit/d674d96bc56c0f377879d01c9d8dfdaaa7859cdb/compiler-rt/lib/builtins/arm/aeabi_dcmp.S + +const compiler_rt_armhf_target = false; // TODO + +const ConditionalOperator = enum { + Eq, + Lt, + Le, + Ge, + Gt, +}; + +pub nakedcc fn __aeabi_dcmpeq() noreturn { + @setRuntimeSafety(false); + @inlineCall(aeabi_dcmp, .Eq); + unreachable; +} + +pub nakedcc fn __aeabi_dcmplt() noreturn { + @setRuntimeSafety(false); + @inlineCall(aeabi_dcmp, .Lt); + unreachable; +} + +pub nakedcc fn __aeabi_dcmple() noreturn { + @setRuntimeSafety(false); + @inlineCall(aeabi_dcmp, .Le); + unreachable; +} + +pub nakedcc fn __aeabi_dcmpge() noreturn { + @setRuntimeSafety(false); + @inlineCall(aeabi_dcmp, .Ge); + unreachable; +} + +pub nakedcc fn __aeabi_dcmpgt() noreturn { + @setRuntimeSafety(false); + @inlineCall(aeabi_dcmp, .Gt); + unreachable; +} + +inline fn convert_dcmp_args_to_df2_args() void { + asm volatile ( + \\ vmov d0, r0, r1 + \\ vmov d1, r2, r3 + ); +} + +fn aeabi_dcmp(comptime cond: ConditionalOperator) void { + @setRuntimeSafety(false); + asm volatile ( + \\ push { r4, lr } + ); + + if (compiler_rt_armhf_target) { + convert_dcmp_args_to_df2_args(); + } + + switch (cond) { + .Eq => asm volatile ( + \\ bl __eqdf2 + \\ cmp r0, #0 + \\ beq 1f + \\ movs r0, #0 + \\ pop { r4, pc } + \\ 1: + ), + .Lt => asm volatile ( + \\ bl __ltdf2 + \\ cmp r0, #0 + \\ blt 1f + \\ movs r0, #0 + \\ pop { r4, pc } + \\ 1: + ), + .Le => asm volatile ( + \\ bl __ledf2 + \\ cmp r0, #0 + \\ ble 1f + \\ movs r0, #0 + \\ pop { r4, pc } + \\ 1: + ), + .Ge => asm volatile ( + \\ bl __ltdf2 + \\ cmp r0, #0 + \\ bge 1f + \\ movs r0, #0 + \\ pop { r4, pc } + \\ 1: + ), + .Gt => asm volatile ( + \\ bl __gtdf2 + \\ cmp r0, #0 + \\ bgt 1f + \\ movs r0, #0 + \\ pop { r4, pc } + \\ 1: + ), + } + asm volatile ( + \\ movs r0, #1 + \\ pop { r4, pc } + ); +} diff --git a/lib/std/special/compiler_rt/arm/aeabi_fcmp.zig b/lib/std/special/compiler_rt/arm/aeabi_fcmp.zig new file mode 100644 index 0000000000..cc5efc64fc --- /dev/null +++ b/lib/std/special/compiler_rt/arm/aeabi_fcmp.zig @@ -0,0 +1,108 @@ +// Ported from: +// +// https://github.com/llvm/llvm-project/commit/d674d96bc56c0f377879d01c9d8dfdaaa7859cdb/compiler-rt/lib/builtins/arm/aeabi_fcmp.S + +const compiler_rt_armhf_target = false; // TODO + +const ConditionalOperator = enum { + Eq, + Lt, + Le, + Ge, + Gt, +}; + +pub nakedcc fn __aeabi_fcmpeq() noreturn { + @setRuntimeSafety(false); + @inlineCall(aeabi_fcmp, .Eq); + unreachable; +} + +pub nakedcc fn __aeabi_fcmplt() noreturn { + @setRuntimeSafety(false); + @inlineCall(aeabi_fcmp, .Lt); + unreachable; +} + +pub nakedcc fn __aeabi_fcmple() noreturn { + @setRuntimeSafety(false); + @inlineCall(aeabi_fcmp, .Le); + unreachable; +} + +pub nakedcc fn __aeabi_fcmpge() noreturn { + @setRuntimeSafety(false); + @inlineCall(aeabi_fcmp, .Ge); + unreachable; +} + +pub nakedcc fn __aeabi_fcmpgt() noreturn { + @setRuntimeSafety(false); + @inlineCall(aeabi_fcmp, .Gt); + unreachable; +} + +inline fn convert_fcmp_args_to_sf2_args() void { + asm volatile ( + \\ vmov s0, r0 + \\ vmov s1, r1 + ); +} + +fn aeabi_fcmp(comptime cond: ConditionalOperator) void { + @setRuntimeSafety(false); + asm volatile ( + \\ push { r4, lr } + ); + + if (compiler_rt_armhf_target) { + convert_fcmp_args_to_sf2_args(); + } + + switch (cond) { + .Eq => asm volatile ( + \\ bl __eqsf2 + \\ cmp r0, #0 + \\ beq 1f + \\ movs r0, #0 + \\ pop { r4, pc } + \\ 1: + ), + .Lt => asm volatile ( + \\ bl __ltsf2 + \\ cmp r0, #0 + \\ blt 1f + \\ movs r0, #0 + \\ pop { r4, pc } + \\ 1: + ), + .Le => asm volatile ( + \\ bl __lesf2 + \\ cmp r0, #0 + \\ ble 1f + \\ movs r0, #0 + \\ pop { r4, pc } + \\ 1: + ), + .Ge => asm volatile ( + \\ bl __ltsf2 + \\ cmp r0, #0 + \\ bge 1f + \\ movs r0, #0 + \\ pop { r4, pc } + \\ 1: + ), + .Gt => asm volatile ( + \\ bl __gtsf2 + \\ cmp r0, #0 + \\ bgt 1f + \\ movs r0, #0 + \\ pop { r4, pc } + \\ 1: + ), + } + asm volatile ( + \\ movs r0, #1 + \\ pop { r4, pc } + ); +} diff --git a/lib/std/special/compiler_rt/ashlti3.zig b/lib/std/special/compiler_rt/ashlti3.zig new file mode 100644 index 0000000000..65b23f22e5 --- /dev/null +++ b/lib/std/special/compiler_rt/ashlti3.zig @@ -0,0 +1,41 @@ +const builtin = @import("builtin"); +const compiler_rt = @import("../compiler_rt.zig"); + +pub extern fn __ashlti3(a: i128, b: i32) i128 { + var input = twords{ .all = a }; + var result: twords = undefined; + + if (b > 63) { + // 64 <= b < 128 + result.s.low = 0; + result.s.high = input.s.low << @intCast(u6, b - 64); + } else { + // 0 <= b < 64 + if (b == 0) return a; + result.s.low = input.s.low << @intCast(u6, b); + result.s.high = input.s.low >> @intCast(u6, 64 - b); + result.s.high |= input.s.high << @intCast(u6, b); + } + + return result.all; +} + +const twords = extern union { + all: i128, + s: S, + + const S = if (builtin.endian == builtin.Endian.Little) + struct { + low: u64, + high: u64, + } + else + struct { + high: u64, + low: u64, + }; +}; + +test "import ashlti3" { + _ = @import("ashlti3_test.zig"); +} diff --git a/lib/std/special/compiler_rt/ashlti3_test.zig b/lib/std/special/compiler_rt/ashlti3_test.zig new file mode 100644 index 0000000000..4ba21c138e --- /dev/null +++ b/lib/std/special/compiler_rt/ashlti3_test.zig @@ -0,0 +1,46 @@ +const __ashlti3 = @import("ashlti3.zig").__ashlti3; +const testing = @import("std").testing; + +fn test__ashlti3(a: i128, b: i32, expected: i128) void { + const x = __ashlti3(a, b); + testing.expect(x == expected); +} + +test "ashlti3" { + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 0, @bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 1, @bitCast(i128, @intCast(u128, 0xFDB97530ECA8642BFDB97530ECA8642A))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 2, @bitCast(i128, @intCast(u128, 0xFB72EA61D950C857FB72EA61D950C854))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 3, @bitCast(i128, @intCast(u128, 0xF6E5D4C3B2A190AFF6E5D4C3B2A190A8))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 4, @bitCast(i128, @intCast(u128, 0xEDCBA9876543215FEDCBA98765432150))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 28, @bitCast(i128, @intCast(u128, 0x876543215FEDCBA98765432150000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 29, @bitCast(i128, @intCast(u128, 0x0ECA8642BFDB97530ECA8642A0000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 30, @bitCast(i128, @intCast(u128, 0x1D950C857FB72EA61D950C8540000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 31, @bitCast(i128, @intCast(u128, 0x3B2A190AFF6E5D4C3B2A190A80000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 32, @bitCast(i128, @intCast(u128, 0x76543215FEDCBA987654321500000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 33, @bitCast(i128, @intCast(u128, 0xECA8642BFDB97530ECA8642A00000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 34, @bitCast(i128, @intCast(u128, 0xD950C857FB72EA61D950C85400000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 35, @bitCast(i128, @intCast(u128, 0xB2A190AFF6E5D4C3B2A190A800000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 36, @bitCast(i128, @intCast(u128, 0x6543215FEDCBA9876543215000000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 60, @bitCast(i128, @intCast(u128, 0x5FEDCBA9876543215000000000000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 61, @bitCast(i128, @intCast(u128, 0xBFDB97530ECA8642A000000000000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 62, @bitCast(i128, @intCast(u128, 0x7FB72EA61D950C854000000000000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 63, @bitCast(i128, @intCast(u128, 0xFF6E5D4C3B2A190A8000000000000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 64, @bitCast(i128, @intCast(u128, 0xFEDCBA98765432150000000000000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 65, @bitCast(i128, @intCast(u128, 0xFDB97530ECA8642A0000000000000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 66, @bitCast(i128, @intCast(u128, 0xFB72EA61D950C8540000000000000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 67, @bitCast(i128, @intCast(u128, 0xF6E5D4C3B2A190A80000000000000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 68, @bitCast(i128, @intCast(u128, 0xEDCBA987654321500000000000000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 92, @bitCast(i128, @intCast(u128, 0x87654321500000000000000000000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 93, @bitCast(i128, @intCast(u128, 0x0ECA8642A00000000000000000000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 94, @bitCast(i128, @intCast(u128, 0x1D950C85400000000000000000000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 95, @bitCast(i128, @intCast(u128, 0x3B2A190A800000000000000000000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 96, @bitCast(i128, @intCast(u128, 0x76543215000000000000000000000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 97, @bitCast(i128, @intCast(u128, 0xECA8642A000000000000000000000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 98, @bitCast(i128, @intCast(u128, 0xD950C854000000000000000000000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 99, @bitCast(i128, @intCast(u128, 0xB2A190A8000000000000000000000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 100, @bitCast(i128, @intCast(u128, 0x65432150000000000000000000000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 124, @bitCast(i128, @intCast(u128, 0x50000000000000000000000000000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 125, @bitCast(i128, @intCast(u128, 0xA0000000000000000000000000000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 126, @bitCast(i128, @intCast(u128, 0x40000000000000000000000000000000))); + test__ashlti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 127, @bitCast(i128, @intCast(u128, 0x80000000000000000000000000000000))); +} diff --git a/lib/std/special/compiler_rt/ashrti3.zig b/lib/std/special/compiler_rt/ashrti3.zig new file mode 100644 index 0000000000..40ee89c3c4 --- /dev/null +++ b/lib/std/special/compiler_rt/ashrti3.zig @@ -0,0 +1,42 @@ +const builtin = @import("builtin"); +const compiler_rt = @import("../compiler_rt.zig"); + +pub extern fn __ashrti3(a: i128, b: i32) i128 { + var input = twords{ .all = a }; + var result: twords = undefined; + + if (b > 63) { + // 64 <= b < 128 + result.s.low = input.s.high >> @intCast(u6, b - 64); + result.s.high = input.s.high >> 63; + } else { + // 0 <= b < 64 + if (b == 0) return a; + result.s.low = input.s.high << @intCast(u6, 64 - b); + // Avoid sign-extension here + result.s.low |= @bitCast(i64, @bitCast(u64, input.s.low) >> @intCast(u6, b)); + result.s.high = input.s.high >> @intCast(u6, b); + } + + return result.all; +} + +const twords = extern union { + all: i128, + s: S, + + const S = if (builtin.endian == builtin.Endian.Little) + struct { + low: i64, + high: i64, + } + else + struct { + high: i64, + low: i64, + }; +}; + +test "import ashrti3" { + _ = @import("ashrti3_test.zig"); +} diff --git a/lib/std/special/compiler_rt/ashrti3_test.zig b/lib/std/special/compiler_rt/ashrti3_test.zig new file mode 100644 index 0000000000..ad3164be8d --- /dev/null +++ b/lib/std/special/compiler_rt/ashrti3_test.zig @@ -0,0 +1,58 @@ +const __ashrti3 = @import("ashrti3.zig").__ashrti3; +const testing = @import("std").testing; + +fn test__ashrti3(a: i128, b: i32, expected: i128) void { + const x = __ashrti3(a, b); + // @import("std").debug.warn("got 0x{x}\nexp 0x{x}\n", @truncate(u64, + // @bitCast(u128, x) >> 64), @truncate(u64, @bitCast(u128, expected)) >> 64); + testing.expect(x == expected); +} + +test "ashrti3" { + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 0, @bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215))); + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 1, @bitCast(i128, @intCast(u128, 0xFF6E5D4C3B2A190AFF6E5D4C3B2A190A))); + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 2, @bitCast(i128, @intCast(u128, 0xFFB72EA61D950C857FB72EA61D950C85))); + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 3, @bitCast(i128, @intCast(u128, 0xFFDB97530ECA8642BFDB97530ECA8642))); + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 4, @bitCast(i128, @intCast(u128, 0xFFEDCBA9876543215FEDCBA987654321))); + + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 28, @bitCast(i128, @intCast(u128, 0xFFFFFFFFEDCBA9876543215FEDCBA987))); + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 29, @bitCast(i128, @intCast(u128, 0xFFFFFFFFF6E5D4C3B2A190AFF6E5D4C3))); + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 30, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFB72EA61D950C857FB72EA61))); + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 31, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFDB97530ECA8642BFDB97530))); + + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 32, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFEDCBA9876543215FEDCBA98))); + + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 33, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFF6E5D4C3B2A190AFF6E5D4C))); + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 34, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFFB72EA61D950C857FB72EA6))); + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 35, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFFDB97530ECA8642BFDB9753))); + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 36, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFFEDCBA9876543215FEDCBA9))); + + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 60, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFFFFFFFFEDCBA9876543215F))); + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 61, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFFFFFFFFF6E5D4C3B2A190AF))); + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 62, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFFFFFFFFFB72EA61D950C857))); + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 63, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFFFFFFFFFDB97530ECA8642B))); + + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 64, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFFFFFFFFFEDCBA9876543215))); + + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 65, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFFFFFFFFFF6E5D4C3B2A190A))); + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 66, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFFFFFFFFFFB72EA61D950C85))); + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 67, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFFFFFFFFFFDB97530ECA8642))); + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 68, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFFFFFFFFFFEDCBA987654321))); + + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 92, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFFFFFFFFFFFFFFFFEDCBA987))); + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 93, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFFFFFFFFFFFFFFFFF6E5D4C3))); + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 94, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFFFFFFFFFFFFFFFFFB72EA61))); + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 95, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFFFFFFFFFFFFFFFFFDB97530))); + + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 96, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFFFFFFFFFFFFFFFFFEDCBA98))); + + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 97, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFFFFFFFFFFFFFFFFFF6E5D4C))); + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 98, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFB72EA6))); + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 99, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFDB9753))); + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 100, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFEDCBA9))); + + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 124, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF))); + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 125, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF))); + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 126, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF))); + test__ashrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 127, @bitCast(i128, @intCast(u128, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF))); +} diff --git a/lib/std/special/compiler_rt/aulldiv.zig b/lib/std/special/compiler_rt/aulldiv.zig new file mode 100644 index 0000000000..d99bc94ff5 --- /dev/null +++ b/lib/std/special/compiler_rt/aulldiv.zig @@ -0,0 +1,55 @@ +pub nakedcc fn _aulldiv() void { + @setRuntimeSafety(false); + asm volatile ( + \\.intel_syntax noprefix + \\ + \\ push ebx + \\ push esi + \\ mov eax,dword ptr [esp+18h] + \\ or eax,eax + \\ jne L1 + \\ mov ecx,dword ptr [esp+14h] + \\ mov eax,dword ptr [esp+10h] + \\ xor edx,edx + \\ div ecx + \\ mov ebx,eax + \\ mov eax,dword ptr [esp+0Ch] + \\ div ecx + \\ mov edx,ebx + \\ jmp L2 + \\ L1: + \\ mov ecx,eax + \\ mov ebx,dword ptr [esp+14h] + \\ mov edx,dword ptr [esp+10h] + \\ mov eax,dword ptr [esp+0Ch] + \\ L3: + \\ shr ecx,1 + \\ rcr ebx,1 + \\ shr edx,1 + \\ rcr eax,1 + \\ or ecx,ecx + \\ jne L3 + \\ div ebx + \\ mov esi,eax + \\ mul dword ptr [esp+18h] + \\ mov ecx,eax + \\ mov eax,dword ptr [esp+14h] + \\ mul esi + \\ add edx,ecx + \\ jb L4 + \\ cmp edx,dword ptr [esp+10h] + \\ ja L4 + \\ jb L5 + \\ cmp eax,dword ptr [esp+0Ch] + \\ jbe L5 + \\ L4: + \\ dec esi + \\ L5: + \\ xor edx,edx + \\ mov eax,esi + \\ L2: + \\ pop esi + \\ pop ebx + \\ ret 10h + ); +} diff --git a/lib/std/special/compiler_rt/aullrem.zig b/lib/std/special/compiler_rt/aullrem.zig new file mode 100644 index 0000000000..51c4eebe3e --- /dev/null +++ b/lib/std/special/compiler_rt/aullrem.zig @@ -0,0 +1,56 @@ +pub nakedcc fn _aullrem() void { + @setRuntimeSafety(false); + asm volatile ( + \\.intel_syntax noprefix + \\ + \\ push ebx + \\ mov eax,dword ptr [esp+14h] + \\ or eax,eax + \\ jne L1a + \\ mov ecx,dword ptr [esp+10h] + \\ mov eax,dword ptr [esp+0Ch] + \\ xor edx,edx + \\ div ecx + \\ mov eax,dword ptr [esp+8] + \\ div ecx + \\ mov eax,edx + \\ xor edx,edx + \\ jmp L2a + \\ L1a: + \\ mov ecx,eax + \\ mov ebx,dword ptr [esp+10h] + \\ mov edx,dword ptr [esp+0Ch] + \\ mov eax,dword ptr [esp+8] + \\ L3a: + \\ shr ecx,1 + \\ rcr ebx,1 + \\ shr edx,1 + \\ rcr eax,1 + \\ or ecx,ecx + \\ jne L3a + \\ div ebx + \\ mov ecx,eax + \\ mul dword ptr [esp+14h] + \\ xchg eax,ecx + \\ mul dword ptr [esp+10h] + \\ add edx,ecx + \\ jb L4a + \\ cmp edx,dword ptr [esp+0Ch] + \\ ja L4a + \\ jb L5a + \\ cmp eax,dword ptr [esp+8] + \\ jbe L5a + \\ L4a: + \\ sub eax,dword ptr [esp+10h] + \\ sbb edx,dword ptr [esp+14h] + \\ L5a: + \\ sub eax,dword ptr [esp+8] + \\ sbb edx,dword ptr [esp+0Ch] + \\ neg edx + \\ neg eax + \\ sbb edx,0 + \\ L2a: + \\ pop ebx + \\ ret 10h + ); +} diff --git a/lib/std/special/compiler_rt/comparedf2.zig b/lib/std/special/compiler_rt/comparedf2.zig new file mode 100644 index 0000000000..f97e2474be --- /dev/null +++ b/lib/std/special/compiler_rt/comparedf2.zig @@ -0,0 +1,122 @@ +// Ported from: +// +// https://github.com/llvm/llvm-project/commit/d674d96bc56c0f377879d01c9d8dfdaaa7859cdb/compiler-rt/lib/builtins/comparedf2.c + +const std = @import("std"); +const builtin = @import("builtin"); +const is_test = builtin.is_test; + +const fp_t = f64; +const rep_t = u64; +const srep_t = i64; + +const typeWidth = rep_t.bit_count; +const significandBits = std.math.floatMantissaBits(fp_t); +const exponentBits = std.math.floatExponentBits(fp_t); +const signBit = (rep_t(1) << (significandBits + exponentBits)); +const absMask = signBit - 1; +const implicitBit = rep_t(1) << significandBits; +const significandMask = implicitBit - 1; +const exponentMask = absMask ^ significandMask; +const infRep = @bitCast(rep_t, std.math.inf(fp_t)); + +// TODO https://github.com/ziglang/zig/issues/641 +// and then make the return types of some of these functions the enum instead of c_int +const LE_LESS = c_int(-1); +const LE_EQUAL = c_int(0); +const LE_GREATER = c_int(1); +const LE_UNORDERED = c_int(1); + +pub extern fn __ledf2(a: fp_t, b: fp_t) c_int { + @setRuntimeSafety(is_test); + const aInt: srep_t = @bitCast(srep_t, a); + const bInt: srep_t = @bitCast(srep_t, b); + const aAbs: rep_t = @bitCast(rep_t, aInt) & absMask; + const bAbs: rep_t = @bitCast(rep_t, bInt) & absMask; + + // If either a or b is NaN, they are unordered. + if (aAbs > infRep or bAbs > infRep) return LE_UNORDERED; + + // If a and b are both zeros, they are equal. + if ((aAbs | bAbs) == 0) return LE_EQUAL; + + // If at least one of a and b is positive, we get the same result comparing + // a and b as signed integers as we would with a fp_ting-point compare. + if ((aInt & bInt) >= 0) { + if (aInt < bInt) { + return LE_LESS; + } else if (aInt == bInt) { + return LE_EQUAL; + } else return LE_GREATER; + } + + // Otherwise, both are negative, so we need to flip the sense of the + // comparison to get the correct result. (This assumes a twos- or ones- + // complement integer representation; if integers are represented in a + // sign-magnitude representation, then this flip is incorrect). + else { + if (aInt > bInt) { + return LE_LESS; + } else if (aInt == bInt) { + return LE_EQUAL; + } else return LE_GREATER; + } +} + +// TODO https://github.com/ziglang/zig/issues/641 +// and then make the return types of some of these functions the enum instead of c_int +const GE_LESS = c_int(-1); +const GE_EQUAL = c_int(0); +const GE_GREATER = c_int(1); +const GE_UNORDERED = c_int(-1); // Note: different from LE_UNORDERED + +pub extern fn __gedf2(a: fp_t, b: fp_t) c_int { + @setRuntimeSafety(is_test); + const aInt: srep_t = @bitCast(srep_t, a); + const bInt: srep_t = @bitCast(srep_t, b); + const aAbs: rep_t = @bitCast(rep_t, aInt) & absMask; + const bAbs: rep_t = @bitCast(rep_t, bInt) & absMask; + + if (aAbs > infRep or bAbs > infRep) return GE_UNORDERED; + if ((aAbs | bAbs) == 0) return GE_EQUAL; + if ((aInt & bInt) >= 0) { + if (aInt < bInt) { + return GE_LESS; + } else if (aInt == bInt) { + return GE_EQUAL; + } else return GE_GREATER; + } else { + if (aInt > bInt) { + return GE_LESS; + } else if (aInt == bInt) { + return GE_EQUAL; + } else return GE_GREATER; + } +} + +pub extern fn __unorddf2(a: fp_t, b: fp_t) c_int { + @setRuntimeSafety(is_test); + const aAbs: rep_t = @bitCast(rep_t, a) & absMask; + const bAbs: rep_t = @bitCast(rep_t, b) & absMask; + return @boolToInt(aAbs > infRep or bAbs > infRep); +} + +pub extern fn __eqdf2(a: fp_t, b: fp_t) c_int { + return __ledf2(a, b); +} + +pub extern fn __ltdf2(a: fp_t, b: fp_t) c_int { + return __ledf2(a, b); +} + +pub extern fn __nedf2(a: fp_t, b: fp_t) c_int { + return __ledf2(a, b); +} + +pub extern fn __gtdf2(a: fp_t, b: fp_t) c_int { + return __gedf2(a, b); +} + +test "import comparedf2" { + _ = @import("comparedf2_test.zig"); +} diff --git a/lib/std/special/compiler_rt/comparedf2_test.zig b/lib/std/special/compiler_rt/comparedf2_test.zig new file mode 100644 index 0000000000..b0e5757ec0 --- /dev/null +++ b/lib/std/special/compiler_rt/comparedf2_test.zig @@ -0,0 +1,101 @@ +// Ported from: +// +// https://github.com/llvm/llvm-project/commit/d674d96bc56c0f377879d01c9d8dfdaaa7859cdb/compiler-rt/test/builtins/Unit/comparedf2_test.c + +const std = @import("std"); +const builtin = @import("builtin"); +const is_test = builtin.is_test; + +const comparedf2 = @import("comparedf2.zig"); + +const TestVector = struct { + a: f64, + b: f64, + eqReference: c_int, + geReference: c_int, + gtReference: c_int, + leReference: c_int, + ltReference: c_int, + neReference: c_int, + unReference: c_int, +}; + +fn test__cmpdf2(vector: TestVector) bool { + if (comparedf2.__eqdf2(vector.a, vector.b) != vector.eqReference) { + return false; + } + if (comparedf2.__gedf2(vector.a, vector.b) != vector.geReference) { + return false; + } + if (comparedf2.__gtdf2(vector.a, vector.b) != vector.gtReference) { + return false; + } + if (comparedf2.__ledf2(vector.a, vector.b) != vector.leReference) { + return false; + } + if (comparedf2.__ltdf2(vector.a, vector.b) != vector.ltReference) { + return false; + } + if (comparedf2.__nedf2(vector.a, vector.b) != vector.neReference) { + return false; + } + if (comparedf2.__unorddf2(vector.a, vector.b) != vector.unReference) { + return false; + } + return true; +} + +const arguments = [_]f64{ + std.math.nan(f64), + -std.math.inf(f64), + -0x1.fffffffffffffp1023, + -0x1.0000000000001p0 - 0x1.0000000000000p0, + -0x1.fffffffffffffp-1, + -0x1.0000000000000p-1022, + -0x0.fffffffffffffp-1022, + -0x0.0000000000001p-1022, + -0.0, + 0.0, + 0x0.0000000000001p-1022, + 0x0.fffffffffffffp-1022, + 0x1.0000000000000p-1022, + 0x1.fffffffffffffp-1, + 0x1.0000000000000p0, + 0x1.0000000000001p0, + 0x1.fffffffffffffp1023, + std.math.inf(f64), +}; + +fn generateVector(comptime a: f64, comptime b: f64) TestVector { + const leResult = if (a < b) -1 else if (a == b) 0 else 1; + const geResult = if (a > b) 1 else if (a == b) 0 else -1; + const unResult = if (a != a or b != b) 1 else 0; + return TestVector{ + .a = a, + .b = b, + .eqReference = leResult, + .geReference = geResult, + .gtReference = geResult, + .leReference = leResult, + .ltReference = leResult, + .neReference = leResult, + .unReference = unResult, + }; +} + +const test_vectors = init: { + @setEvalBranchQuota(10000); + var vectors: [arguments.len * arguments.len]TestVector = undefined; + for (arguments[0..]) |arg_i, i| { + for (arguments[0..]) |arg_j, j| { + vectors[(i * arguments.len) + j] = generateVector(arg_i, arg_j); + } + } + break :init vectors; +}; + +test "compare f64" { + for (test_vectors) |vector, i| { + std.testing.expect(test__cmpdf2(vector)); + } +} diff --git a/lib/std/special/compiler_rt/comparesf2.zig b/lib/std/special/compiler_rt/comparesf2.zig new file mode 100644 index 0000000000..e99e0bb3dd --- /dev/null +++ b/lib/std/special/compiler_rt/comparesf2.zig @@ -0,0 +1,122 @@ +// Ported from: +// +// https://github.com/llvm/llvm-project/commit/d674d96bc56c0f377879d01c9d8dfdaaa7859cdb/compiler-rt/lib/builtins/comparesf2.c + +const std = @import("std"); +const builtin = @import("builtin"); +const is_test = builtin.is_test; + +const fp_t = f32; +const rep_t = u32; +const srep_t = i32; + +const typeWidth = rep_t.bit_count; +const significandBits = std.math.floatMantissaBits(fp_t); +const exponentBits = std.math.floatExponentBits(fp_t); +const signBit = (rep_t(1) << (significandBits + exponentBits)); +const absMask = signBit - 1; +const implicitBit = rep_t(1) << significandBits; +const significandMask = implicitBit - 1; +const exponentMask = absMask ^ significandMask; +const infRep = @bitCast(rep_t, std.math.inf(fp_t)); + +// TODO https://github.com/ziglang/zig/issues/641 +// and then make the return types of some of these functions the enum instead of c_int +const LE_LESS = c_int(-1); +const LE_EQUAL = c_int(0); +const LE_GREATER = c_int(1); +const LE_UNORDERED = c_int(1); + +pub extern fn __lesf2(a: fp_t, b: fp_t) c_int { + @setRuntimeSafety(is_test); + const aInt: srep_t = @bitCast(srep_t, a); + const bInt: srep_t = @bitCast(srep_t, b); + const aAbs: rep_t = @bitCast(rep_t, aInt) & absMask; + const bAbs: rep_t = @bitCast(rep_t, bInt) & absMask; + + // If either a or b is NaN, they are unordered. + if (aAbs > infRep or bAbs > infRep) return LE_UNORDERED; + + // If a and b are both zeros, they are equal. + if ((aAbs | bAbs) == 0) return LE_EQUAL; + + // If at least one of a and b is positive, we get the same result comparing + // a and b as signed integers as we would with a fp_ting-point compare. + if ((aInt & bInt) >= 0) { + if (aInt < bInt) { + return LE_LESS; + } else if (aInt == bInt) { + return LE_EQUAL; + } else return LE_GREATER; + } + + // Otherwise, both are negative, so we need to flip the sense of the + // comparison to get the correct result. (This assumes a twos- or ones- + // complement integer representation; if integers are represented in a + // sign-magnitude representation, then this flip is incorrect). + else { + if (aInt > bInt) { + return LE_LESS; + } else if (aInt == bInt) { + return LE_EQUAL; + } else return LE_GREATER; + } +} + +// TODO https://github.com/ziglang/zig/issues/641 +// and then make the return types of some of these functions the enum instead of c_int +const GE_LESS = c_int(-1); +const GE_EQUAL = c_int(0); +const GE_GREATER = c_int(1); +const GE_UNORDERED = c_int(-1); // Note: different from LE_UNORDERED + +pub extern fn __gesf2(a: fp_t, b: fp_t) c_int { + @setRuntimeSafety(is_test); + const aInt: srep_t = @bitCast(srep_t, a); + const bInt: srep_t = @bitCast(srep_t, b); + const aAbs: rep_t = @bitCast(rep_t, aInt) & absMask; + const bAbs: rep_t = @bitCast(rep_t, bInt) & absMask; + + if (aAbs > infRep or bAbs > infRep) return GE_UNORDERED; + if ((aAbs | bAbs) == 0) return GE_EQUAL; + if ((aInt & bInt) >= 0) { + if (aInt < bInt) { + return GE_LESS; + } else if (aInt == bInt) { + return GE_EQUAL; + } else return GE_GREATER; + } else { + if (aInt > bInt) { + return GE_LESS; + } else if (aInt == bInt) { + return GE_EQUAL; + } else return GE_GREATER; + } +} + +pub extern fn __unordsf2(a: fp_t, b: fp_t) c_int { + @setRuntimeSafety(is_test); + const aAbs: rep_t = @bitCast(rep_t, a) & absMask; + const bAbs: rep_t = @bitCast(rep_t, b) & absMask; + return @boolToInt(aAbs > infRep or bAbs > infRep); +} + +pub extern fn __eqsf2(a: fp_t, b: fp_t) c_int { + return __lesf2(a, b); +} + +pub extern fn __ltsf2(a: fp_t, b: fp_t) c_int { + return __lesf2(a, b); +} + +pub extern fn __nesf2(a: fp_t, b: fp_t) c_int { + return __lesf2(a, b); +} + +pub extern fn __gtsf2(a: fp_t, b: fp_t) c_int { + return __gesf2(a, b); +} + +test "import comparesf2" { + _ = @import("comparesf2_test.zig"); +} diff --git a/lib/std/special/compiler_rt/comparesf2_test.zig b/lib/std/special/compiler_rt/comparesf2_test.zig new file mode 100644 index 0000000000..d736988bfb --- /dev/null +++ b/lib/std/special/compiler_rt/comparesf2_test.zig @@ -0,0 +1,101 @@ +// Ported from: +// +// https://github.com/llvm/llvm-project/commit/d674d96bc56c0f377879d01c9d8dfdaaa7859cdb/compiler-rt/test/builtins/Unit/comparesf2_test.c + +const std = @import("std"); +const builtin = @import("builtin"); +const is_test = builtin.is_test; + +const comparesf2 = @import("comparesf2.zig"); + +const TestVector = struct { + a: f32, + b: f32, + eqReference: c_int, + geReference: c_int, + gtReference: c_int, + leReference: c_int, + ltReference: c_int, + neReference: c_int, + unReference: c_int, +}; + +fn test__cmpsf2(vector: TestVector) bool { + if (comparesf2.__eqsf2(vector.a, vector.b) != vector.eqReference) { + return false; + } + if (comparesf2.__gesf2(vector.a, vector.b) != vector.geReference) { + return false; + } + if (comparesf2.__gtsf2(vector.a, vector.b) != vector.gtReference) { + return false; + } + if (comparesf2.__lesf2(vector.a, vector.b) != vector.leReference) { + return false; + } + if (comparesf2.__ltsf2(vector.a, vector.b) != vector.ltReference) { + return false; + } + if (comparesf2.__nesf2(vector.a, vector.b) != vector.neReference) { + return false; + } + if (comparesf2.__unordsf2(vector.a, vector.b) != vector.unReference) { + return false; + } + return true; +} + +const arguments = [_]f32{ + std.math.nan(f32), + -std.math.inf(f32), + -0x1.fffffep127, + -0x1.000002p0 - 0x1.000000p0, + -0x1.fffffep-1, + -0x1.000000p-126, + -0x0.fffffep-126, + -0x0.000002p-126, + -0.0, + 0.0, + 0x0.000002p-126, + 0x0.fffffep-126, + 0x1.000000p-126, + 0x1.fffffep-1, + 0x1.000000p0, + 0x1.000002p0, + 0x1.fffffep127, + std.math.inf(f32), +}; + +fn generateVector(comptime a: f32, comptime b: f32) TestVector { + const leResult = if (a < b) -1 else if (a == b) 0 else 1; + const geResult = if (a > b) 1 else if (a == b) 0 else -1; + const unResult = if (a != a or b != b) 1 else 0; + return TestVector{ + .a = a, + .b = b, + .eqReference = leResult, + .geReference = geResult, + .gtReference = geResult, + .leReference = leResult, + .ltReference = leResult, + .neReference = leResult, + .unReference = unResult, + }; +} + +const test_vectors = init: { + @setEvalBranchQuota(10000); + var vectors: [arguments.len * arguments.len]TestVector = undefined; + for (arguments[0..]) |arg_i, i| { + for (arguments[0..]) |arg_j, j| { + vectors[(i * arguments.len) + j] = generateVector(arg_i, arg_j); + } + } + break :init vectors; +}; + +test "compare f32" { + for (test_vectors) |vector, i| { + std.testing.expect(test__cmpsf2(vector)); + } +} diff --git a/lib/std/special/compiler_rt/comparetf2.zig b/lib/std/special/compiler_rt/comparetf2.zig new file mode 100644 index 0000000000..05e5974558 --- /dev/null +++ b/lib/std/special/compiler_rt/comparetf2.zig @@ -0,0 +1,99 @@ +// TODO https://github.com/ziglang/zig/issues/641 +// and then make the return types of some of these functions the enum instead of c_int +const LE_LESS = c_int(-1); +const LE_EQUAL = c_int(0); +const LE_GREATER = c_int(1); +const LE_UNORDERED = c_int(1); + +const rep_t = u128; +const srep_t = i128; + +const typeWidth = rep_t.bit_count; +const significandBits = 112; +const exponentBits = (typeWidth - significandBits - 1); +const signBit = (rep_t(1) << (significandBits + exponentBits)); +const absMask = signBit - 1; +const implicitBit = rep_t(1) << significandBits; +const significandMask = implicitBit - 1; +const exponentMask = absMask ^ significandMask; +const infRep = exponentMask; + +const builtin = @import("builtin"); +const is_test = builtin.is_test; + +pub extern fn __letf2(a: f128, b: f128) c_int { + @setRuntimeSafety(is_test); + + const aInt = @bitCast(rep_t, a); + const bInt = @bitCast(rep_t, b); + + const aAbs: rep_t = aInt & absMask; + const bAbs: rep_t = bInt & absMask; + + // If either a or b is NaN, they are unordered. + if (aAbs > infRep or bAbs > infRep) return LE_UNORDERED; + + // If a and b are both zeros, they are equal. + if ((aAbs | bAbs) == 0) return LE_EQUAL; + + // If at least one of a and b is positive, we get the same result comparing + // a and b as signed integers as we would with a floating-point compare. + return if ((aInt & bInt) >= 0) + if (aInt < bInt) + LE_LESS + else if (aInt == bInt) + LE_EQUAL + else + LE_GREATER + else + // Otherwise, both are negative, so we need to flip the sense of the + // comparison to get the correct result. (This assumes a twos- or ones- + // complement integer representation; if integers are represented in a + // sign-magnitude representation, then this flip is incorrect). + if (aInt > bInt) + LE_LESS + else if (aInt == bInt) + LE_EQUAL + else + LE_GREATER; +} + +// TODO https://github.com/ziglang/zig/issues/641 +// and then make the return types of some of these functions the enum instead of c_int +const GE_LESS = c_int(-1); +const GE_EQUAL = c_int(0); +const GE_GREATER = c_int(1); +const GE_UNORDERED = c_int(-1); // Note: different from LE_UNORDERED + +pub extern fn __getf2(a: f128, b: f128) c_int { + @setRuntimeSafety(is_test); + + const aInt = @bitCast(srep_t, a); + const bInt = @bitCast(srep_t, b); + const aAbs = @bitCast(rep_t, aInt) & absMask; + const bAbs = @bitCast(rep_t, bInt) & absMask; + + if (aAbs > infRep or bAbs > infRep) return GE_UNORDERED; + if ((aAbs | bAbs) == 0) return GE_EQUAL; + return if ((aInt & bInt) >= 0) + if (aInt < bInt) + GE_LESS + else if (aInt == bInt) + GE_EQUAL + else + GE_GREATER + else if (aInt > bInt) + GE_LESS + else if (aInt == bInt) + GE_EQUAL + else + GE_GREATER; +} + +pub extern fn __unordtf2(a: f128, b: f128) c_int { + @setRuntimeSafety(is_test); + + const aAbs = @bitCast(rep_t, a) & absMask; + const bAbs = @bitCast(rep_t, b) & absMask; + return @boolToInt(aAbs > infRep or bAbs > infRep); +} diff --git a/lib/std/special/compiler_rt/divdf3.zig b/lib/std/special/compiler_rt/divdf3.zig new file mode 100644 index 0000000000..072feaec67 --- /dev/null +++ b/lib/std/special/compiler_rt/divdf3.zig @@ -0,0 +1,328 @@ +// Ported from: +// +// https://github.com/llvm/llvm-project/commit/d674d96bc56c0f377879d01c9d8dfdaaa7859cdb/compiler-rt/lib/builtins/divdf3.c + +const std = @import("std"); +const builtin = @import("builtin"); + +pub extern fn __divdf3(a: f64, b: f64) f64 { + @setRuntimeSafety(builtin.is_test); + const Z = @IntType(false, f64.bit_count); + const SignedZ = @IntType(true, f64.bit_count); + + const typeWidth = f64.bit_count; + const significandBits = std.math.floatMantissaBits(f64); + const exponentBits = std.math.floatExponentBits(f64); + + const signBit = (Z(1) << (significandBits + exponentBits)); + const maxExponent = ((1 << exponentBits) - 1); + const exponentBias = (maxExponent >> 1); + + const implicitBit = (Z(1) << significandBits); + const quietBit = implicitBit >> 1; + const significandMask = implicitBit - 1; + + const absMask = signBit - 1; + const exponentMask = absMask ^ significandMask; + const qnanRep = exponentMask | quietBit; + const infRep = @bitCast(Z, std.math.inf(f64)); + + const aExponent = @truncate(u32, (@bitCast(Z, a) >> significandBits) & maxExponent); + const bExponent = @truncate(u32, (@bitCast(Z, b) >> significandBits) & maxExponent); + const quotientSign: Z = (@bitCast(Z, a) ^ @bitCast(Z, b)) & signBit; + + var aSignificand: Z = @bitCast(Z, a) & significandMask; + var bSignificand: Z = @bitCast(Z, b) & significandMask; + var scale: i32 = 0; + + // Detect if a or b is zero, denormal, infinity, or NaN. + if (aExponent -% 1 >= maxExponent -% 1 or bExponent -% 1 >= maxExponent -% 1) { + const aAbs: Z = @bitCast(Z, a) & absMask; + const bAbs: Z = @bitCast(Z, b) & absMask; + + // NaN / anything = qNaN + if (aAbs > infRep) return @bitCast(f64, @bitCast(Z, a) | quietBit); + // anything / NaN = qNaN + if (bAbs > infRep) return @bitCast(f64, @bitCast(Z, b) | quietBit); + + if (aAbs == infRep) { + // infinity / infinity = NaN + if (bAbs == infRep) { + return @bitCast(f64, qnanRep); + } + // infinity / anything else = +/- infinity + else { + return @bitCast(f64, aAbs | quotientSign); + } + } + + // anything else / infinity = +/- 0 + if (bAbs == infRep) return @bitCast(f64, quotientSign); + + if (aAbs == 0) { + // zero / zero = NaN + if (bAbs == 0) { + return @bitCast(f64, qnanRep); + } + // zero / anything else = +/- zero + else { + return @bitCast(f64, quotientSign); + } + } + // anything else / zero = +/- infinity + if (bAbs == 0) return @bitCast(f64, infRep | quotientSign); + + // one or both of a or b is denormal, the other (if applicable) is a + // normal number. Renormalize one or both of a and b, and set scale to + // include the necessary exponent adjustment. + if (aAbs < implicitBit) scale +%= normalize(f64, &aSignificand); + if (bAbs < implicitBit) scale -%= normalize(f64, &bSignificand); + } + + // Or in the implicit significand bit. (If we fell through from the + // denormal path it was already set by normalize( ), but setting it twice + // won't hurt anything.) + aSignificand |= implicitBit; + bSignificand |= implicitBit; + var quotientExponent: i32 = @bitCast(i32, aExponent -% bExponent) +% scale; + + // Align the significand of b as a Q31 fixed-point number in the range + // [1, 2.0) and get a Q32 approximate reciprocal using a small minimax + // polynomial approximation: reciprocal = 3/4 + 1/sqrt(2) - b/2. This + // is accurate to about 3.5 binary digits. + const q31b: u32 = @truncate(u32, bSignificand >> 21); + var recip32 = u32(0x7504f333) -% q31b; + + // Now refine the reciprocal estimate using a Newton-Raphson iteration: + // + // x1 = x0 * (2 - x0 * b) + // + // This doubles the number of correct binary digits in the approximation + // with each iteration, so after three iterations, we have about 28 binary + // digits of accuracy. + var correction32: u32 = undefined; + correction32 = @truncate(u32, ~(u64(recip32) *% q31b >> 32) +% 1); + recip32 = @truncate(u32, u64(recip32) *% correction32 >> 31); + correction32 = @truncate(u32, ~(u64(recip32) *% q31b >> 32) +% 1); + recip32 = @truncate(u32, u64(recip32) *% correction32 >> 31); + correction32 = @truncate(u32, ~(u64(recip32) *% q31b >> 32) +% 1); + recip32 = @truncate(u32, u64(recip32) *% correction32 >> 31); + + // recip32 might have overflowed to exactly zero in the preceding + // computation if the high word of b is exactly 1.0. This would sabotage + // the full-width final stage of the computation that follows, so we adjust + // recip32 downward by one bit. + recip32 -%= 1; + + // We need to perform one more iteration to get us to 56 binary digits; + // The last iteration needs to happen with extra precision. + const q63blo: u32 = @truncate(u32, bSignificand << 11); + var correction: u64 = undefined; + var reciprocal: u64 = undefined; + correction = ~(u64(recip32) *% q31b +% (u64(recip32) *% q63blo >> 32)) +% 1; + const cHi = @truncate(u32, correction >> 32); + const cLo = @truncate(u32, correction); + reciprocal = u64(recip32) *% cHi +% (u64(recip32) *% cLo >> 32); + + // We already adjusted the 32-bit estimate, now we need to adjust the final + // 64-bit reciprocal estimate downward to ensure that it is strictly smaller + // than the infinitely precise exact reciprocal. Because the computation + // of the Newton-Raphson step is truncating at every step, this adjustment + // is small; most of the work is already done. + reciprocal -%= 2; + + // The numerical reciprocal is accurate to within 2^-56, lies in the + // interval [0.5, 1.0), and is strictly smaller than the true reciprocal + // of b. Multiplying a by this reciprocal thus gives a numerical q = a/b + // in Q53 with the following properties: + // + // 1. q < a/b + // 2. q is in the interval [0.5, 2.0) + // 3. the error in q is bounded away from 2^-53 (actually, we have a + // couple of bits to spare, but this is all we need). + + // We need a 64 x 64 multiply high to compute q, which isn't a basic + // operation in C, so we need to be a little bit fussy. + var quotient: Z = undefined; + var quotientLo: Z = undefined; + wideMultiply(Z, aSignificand << 2, reciprocal, "ient, "ientLo); + + // Two cases: quotient is in [0.5, 1.0) or quotient is in [1.0, 2.0). + // In either case, we are going to compute a residual of the form + // + // r = a - q*b + // + // We know from the construction of q that r satisfies: + // + // 0 <= r < ulp(q)*b + // + // if r is greater than 1/2 ulp(q)*b, then q rounds up. Otherwise, we + // already have the correct result. The exact halfway case cannot occur. + // We also take this time to right shift quotient if it falls in the [1,2) + // range and adjust the exponent accordingly. + var residual: Z = undefined; + if (quotient < (implicitBit << 1)) { + residual = (aSignificand << 53) -% quotient *% bSignificand; + quotientExponent -%= 1; + } else { + quotient >>= 1; + residual = (aSignificand << 52) -% quotient *% bSignificand; + } + + const writtenExponent = quotientExponent +% exponentBias; + + if (writtenExponent >= maxExponent) { + // If we have overflowed the exponent, return infinity. + return @bitCast(f64, infRep | quotientSign); + } else if (writtenExponent < 1) { + if (writtenExponent == 0) { + // Check whether the rounded result is normal. + const round = @boolToInt((residual << 1) > bSignificand); + // Clear the implicit bit. + var absResult = quotient & significandMask; + // Round. + absResult += round; + if ((absResult & ~significandMask) != 0) { + // The rounded result is normal; return it. + return @bitCast(f64, absResult | quotientSign); + } + } + // Flush denormals to zero. In the future, it would be nice to add + // code to round them correctly. + return @bitCast(f64, quotientSign); + } else { + const round = @boolToInt((residual << 1) > bSignificand); + // Clear the implicit bit + var absResult = quotient & significandMask; + // Insert the exponent + absResult |= @bitCast(Z, SignedZ(writtenExponent)) << significandBits; + // Round + absResult +%= round; + // Insert the sign and return + return @bitCast(f64, absResult | quotientSign); + } +} + +fn wideMultiply(comptime Z: type, a: Z, b: Z, hi: *Z, lo: *Z) void { + @setRuntimeSafety(builtin.is_test); + switch (Z) { + u32 => { + // 32x32 --> 64 bit multiply + const product = u64(a) * u64(b); + hi.* = @truncate(u32, product >> 32); + lo.* = @truncate(u32, product); + }, + u64 => { + const S = struct { + fn loWord(x: u64) u64 { + return @truncate(u32, x); + } + fn hiWord(x: u64) u64 { + return @truncate(u32, x >> 32); + } + }; + // 64x64 -> 128 wide multiply for platforms that don't have such an operation; + // many 64-bit platforms have this operation, but they tend to have hardware + // floating-point, so we don't bother with a special case for them here. + // Each of the component 32x32 -> 64 products + const plolo: u64 = S.loWord(a) * S.loWord(b); + const plohi: u64 = S.loWord(a) * S.hiWord(b); + const philo: u64 = S.hiWord(a) * S.loWord(b); + const phihi: u64 = S.hiWord(a) * S.hiWord(b); + // Sum terms that contribute to lo in a way that allows us to get the carry + const r0: u64 = S.loWord(plolo); + const r1: u64 = S.hiWord(plolo) +% S.loWord(plohi) +% S.loWord(philo); + lo.* = r0 +% (r1 << 32); + // Sum terms contributing to hi with the carry from lo + hi.* = S.hiWord(plohi) +% S.hiWord(philo) +% S.hiWord(r1) +% phihi; + }, + u128 => { + const Word_LoMask = u64(0x00000000ffffffff); + const Word_HiMask = u64(0xffffffff00000000); + const Word_FullMask = u64(0xffffffffffffffff); + const S = struct { + fn Word_1(x: u128) u64 { + return @truncate(u32, x >> 96); + } + fn Word_2(x: u128) u64 { + return @truncate(u32, x >> 64); + } + fn Word_3(x: u128) u64 { + return @truncate(u32, x >> 32); + } + fn Word_4(x: u128) u64 { + return @truncate(u32, x); + } + }; + // 128x128 -> 256 wide multiply for platforms that don't have such an operation; + // many 64-bit platforms have this operation, but they tend to have hardware + // floating-point, so we don't bother with a special case for them here. + + const product11: u64 = S.Word_1(a) * S.Word_1(b); + const product12: u64 = S.Word_1(a) * S.Word_2(b); + const product13: u64 = S.Word_1(a) * S.Word_3(b); + const product14: u64 = S.Word_1(a) * S.Word_4(b); + const product21: u64 = S.Word_2(a) * S.Word_1(b); + const product22: u64 = S.Word_2(a) * S.Word_2(b); + const product23: u64 = S.Word_2(a) * S.Word_3(b); + const product24: u64 = S.Word_2(a) * S.Word_4(b); + const product31: u64 = S.Word_3(a) * S.Word_1(b); + const product32: u64 = S.Word_3(a) * S.Word_2(b); + const product33: u64 = S.Word_3(a) * S.Word_3(b); + const product34: u64 = S.Word_3(a) * S.Word_4(b); + const product41: u64 = S.Word_4(a) * S.Word_1(b); + const product42: u64 = S.Word_4(a) * S.Word_2(b); + const product43: u64 = S.Word_4(a) * S.Word_3(b); + const product44: u64 = S.Word_4(a) * S.Word_4(b); + + const sum0: u128 = u128(product44); + const sum1: u128 = u128(product34) +% + u128(product43); + const sum2: u128 = u128(product24) +% + u128(product33) +% + u128(product42); + const sum3: u128 = u128(product14) +% + u128(product23) +% + u128(product32) +% + u128(product41); + const sum4: u128 = u128(product13) +% + u128(product22) +% + u128(product31); + const sum5: u128 = u128(product12) +% + u128(product21); + const sum6: u128 = u128(product11); + + const r0: u128 = (sum0 & Word_FullMask) +% + ((sum1 & Word_LoMask) << 32); + const r1: u128 = (sum0 >> 64) +% + ((sum1 >> 32) & Word_FullMask) +% + (sum2 & Word_FullMask) +% + ((sum3 << 32) & Word_HiMask); + + lo.* = r0 +% (r1 << 64); + hi.* = (r1 >> 64) +% + (sum1 >> 96) +% + (sum2 >> 64) +% + (sum3 >> 32) +% + sum4 +% + (sum5 << 32) +% + (sum6 << 64); + }, + else => @compileError("unsupported"), + } +} + +fn normalize(comptime T: type, significand: *@IntType(false, T.bit_count)) i32 { + @setRuntimeSafety(builtin.is_test); + const Z = @IntType(false, T.bit_count); + const significandBits = std.math.floatMantissaBits(T); + const implicitBit = Z(1) << significandBits; + + const shift = @clz(Z, significand.*) - @clz(Z, implicitBit); + significand.* <<= @intCast(std.math.Log2Int(Z), shift); + return 1 - shift; +} + +test "import divdf3" { + _ = @import("divdf3_test.zig"); +} diff --git a/lib/std/special/compiler_rt/divdf3_test.zig b/lib/std/special/compiler_rt/divdf3_test.zig new file mode 100644 index 0000000000..61d6731ea7 --- /dev/null +++ b/lib/std/special/compiler_rt/divdf3_test.zig @@ -0,0 +1,34 @@ +// Ported from: +// +// https://github.com/llvm/llvm-project/commit/d674d96bc56c0f377879d01c9d8dfdaaa7859cdb/compiler-rt/test/builtins/Unit/divdf3_test.c + +const __divdf3 = @import("divdf3.zig").__divdf3; +const testing = @import("std").testing; + +fn compareResultD(result: f64, expected: u64) bool { + const rep = @bitCast(u64, result); + + if (rep == expected) { + return true; + } + // test other possible NaN representation(signal NaN) + else if (expected == 0x7ff8000000000000) { + if ((rep & 0x7ff0000000000000) == 0x7ff0000000000000 and + (rep & 0xfffffffffffff) > 0) + { + return true; + } + } + return false; +} + +fn test__divdf3(a: f64, b: f64, expected: u64) void { + const x = __divdf3(a, b); + const ret = compareResultD(x, expected); + testing.expect(ret == true); +} + +test "divdf3" { + test__divdf3(1.0, 3.0, 0x3fd5555555555555); + test__divdf3(4.450147717014403e-308, 2.0, 0x10000000000000); +} diff --git a/lib/std/special/compiler_rt/divsf3.zig b/lib/std/special/compiler_rt/divsf3.zig new file mode 100644 index 0000000000..447653fbe1 --- /dev/null +++ b/lib/std/special/compiler_rt/divsf3.zig @@ -0,0 +1,201 @@ +// Ported from: +// +// https://github.com/llvm/llvm-project/commit/d674d96bc56c0f377879d01c9d8dfdaaa7859cdb/compiler-rt/lib/builtins/divsf3.c + +const std = @import("std"); +const builtin = @import("builtin"); + +pub extern fn __divsf3(a: f32, b: f32) f32 { + @setRuntimeSafety(builtin.is_test); + const Z = @IntType(false, f32.bit_count); + + const typeWidth = f32.bit_count; + const significandBits = std.math.floatMantissaBits(f32); + const exponentBits = std.math.floatExponentBits(f32); + + const signBit = (Z(1) << (significandBits + exponentBits)); + const maxExponent = ((1 << exponentBits) - 1); + const exponentBias = (maxExponent >> 1); + + const implicitBit = (Z(1) << significandBits); + const quietBit = implicitBit >> 1; + const significandMask = implicitBit - 1; + + const absMask = signBit - 1; + const exponentMask = absMask ^ significandMask; + const qnanRep = exponentMask | quietBit; + const infRep = @bitCast(Z, std.math.inf(f32)); + + const aExponent = @truncate(u32, (@bitCast(Z, a) >> significandBits) & maxExponent); + const bExponent = @truncate(u32, (@bitCast(Z, b) >> significandBits) & maxExponent); + const quotientSign: Z = (@bitCast(Z, a) ^ @bitCast(Z, b)) & signBit; + + var aSignificand: Z = @bitCast(Z, a) & significandMask; + var bSignificand: Z = @bitCast(Z, b) & significandMask; + var scale: i32 = 0; + + // Detect if a or b is zero, denormal, infinity, or NaN. + if (aExponent -% 1 >= maxExponent -% 1 or bExponent -% 1 >= maxExponent -% 1) { + const aAbs: Z = @bitCast(Z, a) & absMask; + const bAbs: Z = @bitCast(Z, b) & absMask; + + // NaN / anything = qNaN + if (aAbs > infRep) return @bitCast(f32, @bitCast(Z, a) | quietBit); + // anything / NaN = qNaN + if (bAbs > infRep) return @bitCast(f32, @bitCast(Z, b) | quietBit); + + if (aAbs == infRep) { + // infinity / infinity = NaN + if (bAbs == infRep) { + return @bitCast(f32, qnanRep); + } + // infinity / anything else = +/- infinity + else { + return @bitCast(f32, aAbs | quotientSign); + } + } + + // anything else / infinity = +/- 0 + if (bAbs == infRep) return @bitCast(f32, quotientSign); + + if (aAbs == 0) { + // zero / zero = NaN + if (bAbs == 0) { + return @bitCast(f32, qnanRep); + } + // zero / anything else = +/- zero + else { + return @bitCast(f32, quotientSign); + } + } + // anything else / zero = +/- infinity + if (bAbs == 0) return @bitCast(f32, infRep | quotientSign); + + // one or both of a or b is denormal, the other (if applicable) is a + // normal number. Renormalize one or both of a and b, and set scale to + // include the necessary exponent adjustment. + if (aAbs < implicitBit) scale +%= normalize(f32, &aSignificand); + if (bAbs < implicitBit) scale -%= normalize(f32, &bSignificand); + } + + // Or in the implicit significand bit. (If we fell through from the + // denormal path it was already set by normalize( ), but setting it twice + // won't hurt anything.) + aSignificand |= implicitBit; + bSignificand |= implicitBit; + var quotientExponent: i32 = @bitCast(i32, aExponent -% bExponent) +% scale; + + // Align the significand of b as a Q31 fixed-point number in the range + // [1, 2.0) and get a Q32 approximate reciprocal using a small minimax + // polynomial approximation: reciprocal = 3/4 + 1/sqrt(2) - b/2. This + // is accurate to about 3.5 binary digits. + const q31b = bSignificand << 8; + var reciprocal = u32(0x7504f333) -% q31b; + + // Now refine the reciprocal estimate using a Newton-Raphson iteration: + // + // x1 = x0 * (2 - x0 * b) + // + // This doubles the number of correct binary digits in the approximation + // with each iteration, so after three iterations, we have about 28 binary + // digits of accuracy. + var correction: u32 = undefined; + correction = @truncate(u32, ~(u64(reciprocal) *% q31b >> 32) +% 1); + reciprocal = @truncate(u32, u64(reciprocal) *% correction >> 31); + correction = @truncate(u32, ~(u64(reciprocal) *% q31b >> 32) +% 1); + reciprocal = @truncate(u32, u64(reciprocal) *% correction >> 31); + correction = @truncate(u32, ~(u64(reciprocal) *% q31b >> 32) +% 1); + reciprocal = @truncate(u32, u64(reciprocal) *% correction >> 31); + + // Exhaustive testing shows that the error in reciprocal after three steps + // is in the interval [-0x1.f58108p-31, 0x1.d0e48cp-29], in line with our + // expectations. We bump the reciprocal by a tiny value to force the error + // to be strictly positive (in the range [0x1.4fdfp-37,0x1.287246p-29], to + // be specific). This also causes 1/1 to give a sensible approximation + // instead of zero (due to overflow). + reciprocal -%= 2; + + // The numerical reciprocal is accurate to within 2^-28, lies in the + // interval [0x1.000000eep-1, 0x1.fffffffcp-1], and is strictly smaller + // than the true reciprocal of b. Multiplying a by this reciprocal thus + // gives a numerical q = a/b in Q24 with the following properties: + // + // 1. q < a/b + // 2. q is in the interval [0x1.000000eep-1, 0x1.fffffffcp0) + // 3. the error in q is at most 2^-24 + 2^-27 -- the 2^24 term comes + // from the fact that we truncate the product, and the 2^27 term + // is the error in the reciprocal of b scaled by the maximum + // possible value of a. As a consequence of this error bound, + // either q or nextafter(q) is the correctly rounded + var quotient: Z = @truncate(u32, u64(reciprocal) *% (aSignificand << 1) >> 32); + + // Two cases: quotient is in [0.5, 1.0) or quotient is in [1.0, 2.0). + // In either case, we are going to compute a residual of the form + // + // r = a - q*b + // + // We know from the construction of q that r satisfies: + // + // 0 <= r < ulp(q)*b + // + // if r is greater than 1/2 ulp(q)*b, then q rounds up. Otherwise, we + // already have the correct result. The exact halfway case cannot occur. + // We also take this time to right shift quotient if it falls in the [1,2) + // range and adjust the exponent accordingly. + var residual: Z = undefined; + if (quotient < (implicitBit << 1)) { + residual = (aSignificand << 24) -% quotient *% bSignificand; + quotientExponent -%= 1; + } else { + quotient >>= 1; + residual = (aSignificand << 23) -% quotient *% bSignificand; + } + + const writtenExponent = quotientExponent +% exponentBias; + + if (writtenExponent >= maxExponent) { + // If we have overflowed the exponent, return infinity. + return @bitCast(f32, infRep | quotientSign); + } else if (writtenExponent < 1) { + if (writtenExponent == 0) { + // Check whether the rounded result is normal. + const round = @boolToInt((residual << 1) > bSignificand); + // Clear the implicit bit. + var absResult = quotient & significandMask; + // Round. + absResult += round; + if ((absResult & ~significandMask) > 0) { + // The rounded result is normal; return it. + return @bitCast(f32, absResult | quotientSign); + } + } + // Flush denormals to zero. In the future, it would be nice to add + // code to round them correctly. + return @bitCast(f32, quotientSign); + } else { + const round = @boolToInt((residual << 1) > bSignificand); + // Clear the implicit bit + var absResult = quotient & significandMask; + // Insert the exponent + absResult |= @bitCast(Z, writtenExponent) << significandBits; + // Round + absResult +%= round; + // Insert the sign and return + return @bitCast(f32, absResult | quotientSign); + } +} + +fn normalize(comptime T: type, significand: *@IntType(false, T.bit_count)) i32 { + @setRuntimeSafety(builtin.is_test); + const Z = @IntType(false, T.bit_count); + const significandBits = std.math.floatMantissaBits(T); + const implicitBit = Z(1) << significandBits; + + const shift = @clz(Z, significand.*) - @clz(Z, implicitBit); + significand.* <<= @intCast(std.math.Log2Int(Z), shift); + return 1 - shift; +} + +test "import divsf3" { + _ = @import("divsf3_test.zig"); +} diff --git a/lib/std/special/compiler_rt/divsf3_test.zig b/lib/std/special/compiler_rt/divsf3_test.zig new file mode 100644 index 0000000000..188842af58 --- /dev/null +++ b/lib/std/special/compiler_rt/divsf3_test.zig @@ -0,0 +1,34 @@ +// Ported from: +// +// https://github.com/llvm/llvm-project/commit/d674d96bc56c0f377879d01c9d8dfdaaa7859cdb/compiler-rt/test/builtins/Unit/divsf3_test.c + +const __divsf3 = @import("divsf3.zig").__divsf3; +const testing = @import("std").testing; + +fn compareResultF(result: f32, expected: u32) bool { + const rep = @bitCast(u32, result); + + if (rep == expected) { + return true; + } + // test other possible NaN representation(signal NaN) + else if (expected == 0x7fc00000) { + if ((rep & 0x7f800000) == 0x7f800000 and + (rep & 0x7fffff) > 0) + { + return true; + } + } + return false; +} + +fn test__divsf3(a: f32, b: f32, expected: u32) void { + const x = __divsf3(a, b); + const ret = compareResultF(x, expected); + testing.expect(ret == true); +} + +test "divsf3" { + test__divsf3(1.0, 3.0, 0x3EAAAAAB); + test__divsf3(2.3509887e-38, 2.0, 0x00800000); +} diff --git a/lib/std/special/compiler_rt/divti3.zig b/lib/std/special/compiler_rt/divti3.zig new file mode 100644 index 0000000000..477ce2cb98 --- /dev/null +++ b/lib/std/special/compiler_rt/divti3.zig @@ -0,0 +1,25 @@ +const udivmod = @import("udivmod.zig").udivmod; +const builtin = @import("builtin"); + +pub extern fn __divti3(a: i128, b: i128) i128 { + @setRuntimeSafety(builtin.is_test); + + const s_a = a >> (i128.bit_count - 1); + const s_b = b >> (i128.bit_count - 1); + + const an = (a ^ s_a) -% s_a; + const bn = (b ^ s_b) -% s_b; + + const r = udivmod(u128, @bitCast(u128, an), @bitCast(u128, bn), null); + const s = s_a ^ s_b; + return (@bitCast(i128, r) ^ s) -% s; +} + +const v128 = @Vector(2, u64); +pub extern fn __divti3_windows_x86_64(a: v128, b: v128) v128 { + return @bitCast(v128, @inlineCall(__divti3, @bitCast(i128, a), @bitCast(i128, b))); +} + +test "import divti3" { + _ = @import("divti3_test.zig"); +} diff --git a/lib/std/special/compiler_rt/divti3_test.zig b/lib/std/special/compiler_rt/divti3_test.zig new file mode 100644 index 0000000000..e1c1babae7 --- /dev/null +++ b/lib/std/special/compiler_rt/divti3_test.zig @@ -0,0 +1,21 @@ +const __divti3 = @import("divti3.zig").__divti3; +const testing = @import("std").testing; + +fn test__divti3(a: i128, b: i128, expected: i128) void { + const x = __divti3(a, b); + testing.expect(x == expected); +} + +test "divti3" { + test__divti3(0, 1, 0); + test__divti3(0, -1, 0); + test__divti3(2, 1, 2); + test__divti3(2, -1, -2); + test__divti3(-2, 1, -2); + test__divti3(-2, -1, 2); + + test__divti3(@bitCast(i128, u128(0x8 << 124)), 1, @bitCast(i128, u128(0x8 << 124))); + test__divti3(@bitCast(i128, u128(0x8 << 124)), -1, @bitCast(i128, u128(0x8 << 124))); + test__divti3(@bitCast(i128, u128(0x8 << 124)), -2, @bitCast(i128, u128(0x4 << 124))); + test__divti3(@bitCast(i128, u128(0x8 << 124)), 2, @bitCast(i128, u128(0xc << 124))); +} diff --git a/lib/std/special/compiler_rt/extendXfYf2.zig b/lib/std/special/compiler_rt/extendXfYf2.zig new file mode 100644 index 0000000000..e10667843f --- /dev/null +++ b/lib/std/special/compiler_rt/extendXfYf2.zig @@ -0,0 +1,96 @@ +const std = @import("std"); +const builtin = @import("builtin"); +const is_test = builtin.is_test; + +pub extern fn __extendsfdf2(a: f32) f64 { + return @inlineCall(extendXfYf2, f64, f32, @bitCast(u32, a)); +} + +pub extern fn __extenddftf2(a: f64) f128 { + return @inlineCall(extendXfYf2, f128, f64, @bitCast(u64, a)); +} + +pub extern fn __extendsftf2(a: f32) f128 { + return @inlineCall(extendXfYf2, f128, f32, @bitCast(u32, a)); +} + +pub extern fn __extendhfsf2(a: u16) f32 { + return @inlineCall(extendXfYf2, f32, f16, a); +} + +const CHAR_BIT = 8; + +fn extendXfYf2(comptime dst_t: type, comptime src_t: type, a: @IntType(false, @typeInfo(src_t).Float.bits)) dst_t { + @setRuntimeSafety(builtin.is_test); + + const src_rep_t = @IntType(false, @typeInfo(src_t).Float.bits); + const dst_rep_t = @IntType(false, @typeInfo(dst_t).Float.bits); + const srcSigBits = std.math.floatMantissaBits(src_t); + const dstSigBits = std.math.floatMantissaBits(dst_t); + const SrcShift = std.math.Log2Int(src_rep_t); + const DstShift = std.math.Log2Int(dst_rep_t); + + // Various constants whose values follow from the type parameters. + // Any reasonable optimizer will fold and propagate all of these. + const srcBits = @sizeOf(src_t) * CHAR_BIT; + const srcExpBits = srcBits - srcSigBits - 1; + const srcInfExp = (1 << srcExpBits) - 1; + const srcExpBias = srcInfExp >> 1; + + const srcMinNormal = 1 << srcSigBits; + const srcInfinity = srcInfExp << srcSigBits; + const srcSignMask = 1 << (srcSigBits + srcExpBits); + const srcAbsMask = srcSignMask - 1; + const srcQNaN = 1 << (srcSigBits - 1); + const srcNaNCode = srcQNaN - 1; + + const dstBits = @sizeOf(dst_t) * CHAR_BIT; + const dstExpBits = dstBits - dstSigBits - 1; + const dstInfExp = (1 << dstExpBits) - 1; + const dstExpBias = dstInfExp >> 1; + + const dstMinNormal: dst_rep_t = dst_rep_t(1) << dstSigBits; + + // Break a into a sign and representation of the absolute value + const aRep: src_rep_t = @bitCast(src_rep_t, a); + const aAbs: src_rep_t = aRep & srcAbsMask; + const sign: src_rep_t = aRep & srcSignMask; + var absResult: dst_rep_t = undefined; + + if (aAbs -% srcMinNormal < srcInfinity - srcMinNormal) { + // a is a normal number. + // Extend to the destination type by shifting the significand and + // exponent into the proper position and rebiasing the exponent. + absResult = dst_rep_t(aAbs) << (dstSigBits - srcSigBits); + absResult += (dstExpBias - srcExpBias) << dstSigBits; + } else if (aAbs >= srcInfinity) { + // a is NaN or infinity. + // Conjure the result by beginning with infinity, then setting the qNaN + // bit (if needed) and right-aligning the rest of the trailing NaN + // payload field. + absResult = dstInfExp << dstSigBits; + absResult |= dst_rep_t(aAbs & srcQNaN) << (dstSigBits - srcSigBits); + absResult |= dst_rep_t(aAbs & srcNaNCode) << (dstSigBits - srcSigBits); + } else if (aAbs != 0) { + // a is denormal. + // renormalize the significand and clear the leading bit, then insert + // the correct adjusted exponent in the destination type. + const scale: u32 = @clz(src_rep_t, aAbs) - + @clz(src_rep_t, src_rep_t(srcMinNormal)); + absResult = dst_rep_t(aAbs) << @intCast(DstShift, dstSigBits - srcSigBits + scale); + absResult ^= dstMinNormal; + const resultExponent: u32 = dstExpBias - srcExpBias - scale + 1; + absResult |= @intCast(dst_rep_t, resultExponent) << dstSigBits; + } else { + // a is zero. + absResult = 0; + } + + // Apply the signbit to (dst_t)abs(a). + const result: dst_rep_t align(@alignOf(dst_t)) = absResult | dst_rep_t(sign) << (dstBits - srcBits); + return @bitCast(dst_t, result); +} + +test "import extendXfYf2" { + _ = @import("extendXfYf2_test.zig"); +} diff --git a/lib/std/special/compiler_rt/extendXfYf2_test.zig b/lib/std/special/compiler_rt/extendXfYf2_test.zig new file mode 100644 index 0000000000..050a799823 --- /dev/null +++ b/lib/std/special/compiler_rt/extendXfYf2_test.zig @@ -0,0 +1,154 @@ +const __extenddftf2 = @import("extendXfYf2.zig").__extenddftf2; +const __extendhfsf2 = @import("extendXfYf2.zig").__extendhfsf2; +const __extendsftf2 = @import("extendXfYf2.zig").__extendsftf2; + +fn test__extenddftf2(a: f64, expectedHi: u64, expectedLo: u64) void { + const x = __extenddftf2(a); + + const rep = @bitCast(u128, x); + const hi = @intCast(u64, rep >> 64); + const lo = @truncate(u64, rep); + + if (hi == expectedHi and lo == expectedLo) + return; + + // test other possible NaN representation(signal NaN) + if (expectedHi == 0x7fff800000000000 and expectedLo == 0x0) { + if ((hi & 0x7fff000000000000) == 0x7fff000000000000 and + ((hi & 0xffffffffffff) > 0 or lo > 0)) + { + return; + } + } + + @panic("__extenddftf2 test failure"); +} + +fn test__extendhfsf2(a: u16, expected: u32) void { + const x = __extendhfsf2(a); + const rep = @bitCast(u32, x); + + if (rep == expected) { + if (rep & 0x7fffffff > 0x7f800000) { + return; // NaN is always unequal. + } + if (x == @bitCast(f32, expected)) { + return; + } + } + + @panic("__extendhfsf2 test failure"); +} + +fn test__extendsftf2(a: f32, expectedHi: u64, expectedLo: u64) void { + const x = __extendsftf2(a); + + const rep = @bitCast(u128, x); + const hi = @intCast(u64, rep >> 64); + const lo = @truncate(u64, rep); + + if (hi == expectedHi and lo == expectedLo) + return; + + // test other possible NaN representation(signal NaN) + if (expectedHi == 0x7fff800000000000 and expectedLo == 0x0) { + if ((hi & 0x7fff000000000000) == 0x7fff000000000000 and + ((hi & 0xffffffffffff) > 0 or lo > 0)) + { + return; + } + } + + @panic("__extendsftf2 test failure"); +} + +test "extenddftf2" { + // qNaN + test__extenddftf2(makeQNaN64(), 0x7fff800000000000, 0x0); + + // NaN + test__extenddftf2(makeNaN64(0x7100000000000), 0x7fff710000000000, 0x0); + + // inf + test__extenddftf2(makeInf64(), 0x7fff000000000000, 0x0); + + // zero + test__extenddftf2(0.0, 0x0, 0x0); + + test__extenddftf2(0x1.23456789abcdefp+5, 0x400423456789abcd, 0xf000000000000000); + + test__extenddftf2(0x1.edcba987654321fp-9, 0x3ff6edcba9876543, 0x2000000000000000); + + test__extenddftf2(0x1.23456789abcdefp+45, 0x402c23456789abcd, 0xf000000000000000); + + test__extenddftf2(0x1.edcba987654321fp-45, 0x3fd2edcba9876543, 0x2000000000000000); +} + +test "extendhfsf2" { + test__extendhfsf2(0x7e00, 0x7fc00000); // qNaN + test__extendhfsf2(0x7f00, 0x7fe00000); // sNaN + test__extendhfsf2(0x7c01, 0x7f802000); // sNaN + + test__extendhfsf2(0, 0); // 0 + test__extendhfsf2(0x8000, 0x80000000); // -0 + + test__extendhfsf2(0x7c00, 0x7f800000); // inf + test__extendhfsf2(0xfc00, 0xff800000); // -inf + + test__extendhfsf2(0x0001, 0x33800000); // denormal (min), 2**-24 + test__extendhfsf2(0x8001, 0xb3800000); // denormal (min), -2**-24 + + test__extendhfsf2(0x03ff, 0x387fc000); // denormal (max), 2**-14 - 2**-24 + test__extendhfsf2(0x83ff, 0xb87fc000); // denormal (max), -2**-14 + 2**-24 + + test__extendhfsf2(0x0400, 0x38800000); // normal (min), 2**-14 + test__extendhfsf2(0x8400, 0xb8800000); // normal (min), -2**-14 + + test__extendhfsf2(0x7bff, 0x477fe000); // normal (max), 65504 + test__extendhfsf2(0xfbff, 0xc77fe000); // normal (max), -65504 + + test__extendhfsf2(0x3c01, 0x3f802000); // normal, 1 + 2**-10 + test__extendhfsf2(0xbc01, 0xbf802000); // normal, -1 - 2**-10 + + test__extendhfsf2(0x3555, 0x3eaaa000); // normal, approx. 1/3 + test__extendhfsf2(0xb555, 0xbeaaa000); // normal, approx. -1/3 +} + +test "extendsftf2" { + // qNaN + test__extendsftf2(makeQNaN32(), 0x7fff800000000000, 0x0); + // NaN + test__extendsftf2(makeNaN32(0x410000), 0x7fff820000000000, 0x0); + // inf + test__extendsftf2(makeInf32(), 0x7fff000000000000, 0x0); + // zero + test__extendsftf2(0.0, 0x0, 0x0); + test__extendsftf2(0x1.23456p+5, 0x4004234560000000, 0x0); + test__extendsftf2(0x1.edcbap-9, 0x3ff6edcba0000000, 0x0); + test__extendsftf2(0x1.23456p+45, 0x402c234560000000, 0x0); + test__extendsftf2(0x1.edcbap-45, 0x3fd2edcba0000000, 0x0); +} + +fn makeQNaN64() f64 { + return @bitCast(f64, u64(0x7ff8000000000000)); +} + +fn makeInf64() f64 { + return @bitCast(f64, u64(0x7ff0000000000000)); +} + +fn makeNaN64(rand: u64) f64 { + return @bitCast(f64, 0x7ff0000000000000 | (rand & 0xfffffffffffff)); +} + +fn makeQNaN32() f32 { + return @bitCast(f32, u32(0x7fc00000)); +} + +fn makeNaN32(rand: u32) f32 { + return @bitCast(f32, 0x7f800000 | (rand & 0x7fffff)); +} + +fn makeInf32() f32 { + return @bitCast(f32, u32(0x7f800000)); +} diff --git a/lib/std/special/compiler_rt/fixdfdi.zig b/lib/std/special/compiler_rt/fixdfdi.zig new file mode 100644 index 0000000000..c108fd15aa --- /dev/null +++ b/lib/std/special/compiler_rt/fixdfdi.zig @@ -0,0 +1,11 @@ +const fixint = @import("fixint.zig").fixint; +const builtin = @import("builtin"); + +pub extern fn __fixdfdi(a: f64) i64 { + @setRuntimeSafety(builtin.is_test); + return fixint(f64, i64, a); +} + +test "import fixdfdi" { + _ = @import("fixdfdi_test.zig"); +} diff --git a/lib/std/special/compiler_rt/fixdfdi_test.zig b/lib/std/special/compiler_rt/fixdfdi_test.zig new file mode 100644 index 0000000000..1ba8a4f87d --- /dev/null +++ b/lib/std/special/compiler_rt/fixdfdi_test.zig @@ -0,0 +1,65 @@ +const __fixdfdi = @import("fixdfdi.zig").__fixdfdi; +const std = @import("std"); +const math = std.math; +const testing = std.testing; +const warn = std.debug.warn; + +fn test__fixdfdi(a: f64, expected: i64) void { + const x = __fixdfdi(a); + //warn("a={}:{x} x={}:{x} expected={}:{x}:u64({x})\n", a, @bitCast(u64, a), x, x, expected, expected, @bitCast(u64, expected)); + testing.expect(x == expected); +} + +test "fixdfdi" { + //warn("\n"); + test__fixdfdi(-math.f64_max, math.minInt(i64)); + + test__fixdfdi(-0x1.FFFFFFFFFFFFFp+1023, math.minInt(i64)); + test__fixdfdi(-0x1.FFFFFFFFFFFFFp+1023, -0x8000000000000000); + + test__fixdfdi(-0x1.0000000000000p+127, -0x8000000000000000); + test__fixdfdi(-0x1.FFFFFFFFFFFFFp+126, -0x8000000000000000); + test__fixdfdi(-0x1.FFFFFFFFFFFFEp+126, -0x8000000000000000); + + test__fixdfdi(-0x1.0000000000001p+63, -0x8000000000000000); + test__fixdfdi(-0x1.0000000000000p+63, -0x8000000000000000); + test__fixdfdi(-0x1.FFFFFFFFFFFFFp+62, -0x7FFFFFFFFFFFFC00); + test__fixdfdi(-0x1.FFFFFFFFFFFFEp+62, -0x7FFFFFFFFFFFF800); + + test__fixdfdi(-0x1.FFFFFEp+62, -0x7fffff8000000000); + test__fixdfdi(-0x1.FFFFFCp+62, -0x7fffff0000000000); + + test__fixdfdi(-2.01, -2); + test__fixdfdi(-2.0, -2); + test__fixdfdi(-1.99, -1); + test__fixdfdi(-1.0, -1); + test__fixdfdi(-0.99, 0); + test__fixdfdi(-0.5, 0); + test__fixdfdi(-math.f64_min, 0); + test__fixdfdi(0.0, 0); + test__fixdfdi(math.f64_min, 0); + test__fixdfdi(0.5, 0); + test__fixdfdi(0.99, 0); + test__fixdfdi(1.0, 1); + test__fixdfdi(1.5, 1); + test__fixdfdi(1.99, 1); + test__fixdfdi(2.0, 2); + test__fixdfdi(2.01, 2); + + test__fixdfdi(0x1.FFFFFCp+62, 0x7FFFFF0000000000); + test__fixdfdi(0x1.FFFFFEp+62, 0x7FFFFF8000000000); + + test__fixdfdi(0x1.FFFFFFFFFFFFEp+62, 0x7FFFFFFFFFFFF800); + test__fixdfdi(0x1.FFFFFFFFFFFFFp+62, 0x7FFFFFFFFFFFFC00); + test__fixdfdi(0x1.0000000000000p+63, 0x7FFFFFFFFFFFFFFF); + test__fixdfdi(0x1.0000000000001p+63, 0x7FFFFFFFFFFFFFFF); + + test__fixdfdi(0x1.FFFFFFFFFFFFEp+126, 0x7FFFFFFFFFFFFFFF); + test__fixdfdi(0x1.FFFFFFFFFFFFFp+126, 0x7FFFFFFFFFFFFFFF); + test__fixdfdi(0x1.0000000000000p+127, 0x7FFFFFFFFFFFFFFF); + + test__fixdfdi(0x1.FFFFFFFFFFFFFp+1023, 0x7FFFFFFFFFFFFFFF); + test__fixdfdi(0x1.FFFFFFFFFFFFFp+1023, math.maxInt(i64)); + + test__fixdfdi(math.f64_max, math.maxInt(i64)); +} diff --git a/lib/std/special/compiler_rt/fixdfsi.zig b/lib/std/special/compiler_rt/fixdfsi.zig new file mode 100644 index 0000000000..83a17b2b0d --- /dev/null +++ b/lib/std/special/compiler_rt/fixdfsi.zig @@ -0,0 +1,11 @@ +const fixint = @import("fixint.zig").fixint; +const builtin = @import("builtin"); + +pub extern fn __fixdfsi(a: f64) i32 { + @setRuntimeSafety(builtin.is_test); + return fixint(f64, i32, a); +} + +test "import fixdfsi" { + _ = @import("fixdfsi_test.zig"); +} diff --git a/lib/std/special/compiler_rt/fixdfsi_test.zig b/lib/std/special/compiler_rt/fixdfsi_test.zig new file mode 100644 index 0000000000..fa5ff72e8f --- /dev/null +++ b/lib/std/special/compiler_rt/fixdfsi_test.zig @@ -0,0 +1,73 @@ +const __fixdfsi = @import("fixdfsi.zig").__fixdfsi; +const std = @import("std"); +const math = std.math; +const testing = std.testing; +const warn = std.debug.warn; + +fn test__fixdfsi(a: f64, expected: i32) void { + const x = __fixdfsi(a); + //warn("a={}:{x} x={}:{x} expected={}:{x}:u64({x})\n", a, @bitCast(u64, a), x, x, expected, expected, @bitCast(u32, expected)); + testing.expect(x == expected); +} + +test "fixdfsi" { + //warn("\n"); + test__fixdfsi(-math.f64_max, math.minInt(i32)); + + test__fixdfsi(-0x1.FFFFFFFFFFFFFp+1023, math.minInt(i32)); + test__fixdfsi(-0x1.FFFFFFFFFFFFFp+1023, -0x80000000); + + test__fixdfsi(-0x1.0000000000000p+127, -0x80000000); + test__fixdfsi(-0x1.FFFFFFFFFFFFFp+126, -0x80000000); + test__fixdfsi(-0x1.FFFFFFFFFFFFEp+126, -0x80000000); + + test__fixdfsi(-0x1.0000000000001p+63, -0x80000000); + test__fixdfsi(-0x1.0000000000000p+63, -0x80000000); + test__fixdfsi(-0x1.FFFFFFFFFFFFFp+62, -0x80000000); + test__fixdfsi(-0x1.FFFFFFFFFFFFEp+62, -0x80000000); + + test__fixdfsi(-0x1.FFFFFEp+62, -0x80000000); + test__fixdfsi(-0x1.FFFFFCp+62, -0x80000000); + + test__fixdfsi(-0x1.000000p+31, -0x80000000); + test__fixdfsi(-0x1.FFFFFFp+30, -0x7FFFFFC0); + test__fixdfsi(-0x1.FFFFFEp+30, -0x7FFFFF80); + + test__fixdfsi(-2.01, -2); + test__fixdfsi(-2.0, -2); + test__fixdfsi(-1.99, -1); + test__fixdfsi(-1.0, -1); + test__fixdfsi(-0.99, 0); + test__fixdfsi(-0.5, 0); + test__fixdfsi(-math.f64_min, 0); + test__fixdfsi(0.0, 0); + test__fixdfsi(math.f64_min, 0); + test__fixdfsi(0.5, 0); + test__fixdfsi(0.99, 0); + test__fixdfsi(1.0, 1); + test__fixdfsi(1.5, 1); + test__fixdfsi(1.99, 1); + test__fixdfsi(2.0, 2); + test__fixdfsi(2.01, 2); + + test__fixdfsi(0x1.FFFFFEp+30, 0x7FFFFF80); + test__fixdfsi(0x1.FFFFFFp+30, 0x7FFFFFC0); + test__fixdfsi(0x1.000000p+31, 0x7FFFFFFF); + + test__fixdfsi(0x1.FFFFFCp+62, 0x7FFFFFFF); + test__fixdfsi(0x1.FFFFFEp+62, 0x7FFFFFFF); + + test__fixdfsi(0x1.FFFFFFFFFFFFEp+62, 0x7FFFFFFF); + test__fixdfsi(0x1.FFFFFFFFFFFFFp+62, 0x7FFFFFFF); + test__fixdfsi(0x1.0000000000000p+63, 0x7FFFFFFF); + test__fixdfsi(0x1.0000000000001p+63, 0x7FFFFFFF); + + test__fixdfsi(0x1.FFFFFFFFFFFFEp+126, 0x7FFFFFFF); + test__fixdfsi(0x1.FFFFFFFFFFFFFp+126, 0x7FFFFFFF); + test__fixdfsi(0x1.0000000000000p+127, 0x7FFFFFFF); + + test__fixdfsi(0x1.FFFFFFFFFFFFFp+1023, 0x7FFFFFFF); + test__fixdfsi(0x1.FFFFFFFFFFFFFp+1023, math.maxInt(i32)); + + test__fixdfsi(math.f64_max, math.maxInt(i32)); +} diff --git a/lib/std/special/compiler_rt/fixdfti.zig b/lib/std/special/compiler_rt/fixdfti.zig new file mode 100644 index 0000000000..e30f885cf6 --- /dev/null +++ b/lib/std/special/compiler_rt/fixdfti.zig @@ -0,0 +1,11 @@ +const fixint = @import("fixint.zig").fixint; +const builtin = @import("builtin"); + +pub extern fn __fixdfti(a: f64) i128 { + @setRuntimeSafety(builtin.is_test); + return fixint(f64, i128, a); +} + +test "import fixdfti" { + _ = @import("fixdfti_test.zig"); +} diff --git a/lib/std/special/compiler_rt/fixdfti_test.zig b/lib/std/special/compiler_rt/fixdfti_test.zig new file mode 100644 index 0000000000..4ab2c04cd1 --- /dev/null +++ b/lib/std/special/compiler_rt/fixdfti_test.zig @@ -0,0 +1,65 @@ +const __fixdfti = @import("fixdfti.zig").__fixdfti; +const std = @import("std"); +const math = std.math; +const testing = std.testing; +const warn = std.debug.warn; + +fn test__fixdfti(a: f64, expected: i128) void { + const x = __fixdfti(a); + //warn("a={}:{x} x={}:{x} expected={}:{x}:u64({x})\n", a, @bitCast(u64, a), x, x, expected, expected, @bitCast(u128, expected)); + testing.expect(x == expected); +} + +test "fixdfti" { + //warn("\n"); + test__fixdfti(-math.f64_max, math.minInt(i128)); + + test__fixdfti(-0x1.FFFFFFFFFFFFFp+1023, math.minInt(i128)); + test__fixdfti(-0x1.FFFFFFFFFFFFFp+1023, -0x80000000000000000000000000000000); + + test__fixdfti(-0x1.0000000000000p+127, -0x80000000000000000000000000000000); + test__fixdfti(-0x1.FFFFFFFFFFFFFp+126, -0x7FFFFFFFFFFFFC000000000000000000); + test__fixdfti(-0x1.FFFFFFFFFFFFEp+126, -0x7FFFFFFFFFFFF8000000000000000000); + + test__fixdfti(-0x1.0000000000001p+63, -0x8000000000000800); + test__fixdfti(-0x1.0000000000000p+63, -0x8000000000000000); + test__fixdfti(-0x1.FFFFFFFFFFFFFp+62, -0x7FFFFFFFFFFFFC00); + test__fixdfti(-0x1.FFFFFFFFFFFFEp+62, -0x7FFFFFFFFFFFF800); + + test__fixdfti(-0x1.FFFFFEp+62, -0x7fffff8000000000); + test__fixdfti(-0x1.FFFFFCp+62, -0x7fffff0000000000); + + test__fixdfti(-2.01, -2); + test__fixdfti(-2.0, -2); + test__fixdfti(-1.99, -1); + test__fixdfti(-1.0, -1); + test__fixdfti(-0.99, 0); + test__fixdfti(-0.5, 0); + test__fixdfti(-math.f64_min, 0); + test__fixdfti(0.0, 0); + test__fixdfti(math.f64_min, 0); + test__fixdfti(0.5, 0); + test__fixdfti(0.99, 0); + test__fixdfti(1.0, 1); + test__fixdfti(1.5, 1); + test__fixdfti(1.99, 1); + test__fixdfti(2.0, 2); + test__fixdfti(2.01, 2); + + test__fixdfti(0x1.FFFFFCp+62, 0x7FFFFF0000000000); + test__fixdfti(0x1.FFFFFEp+62, 0x7FFFFF8000000000); + + test__fixdfti(0x1.FFFFFFFFFFFFEp+62, 0x7FFFFFFFFFFFF800); + test__fixdfti(0x1.FFFFFFFFFFFFFp+62, 0x7FFFFFFFFFFFFC00); + test__fixdfti(0x1.0000000000000p+63, 0x8000000000000000); + test__fixdfti(0x1.0000000000001p+63, 0x8000000000000800); + + test__fixdfti(0x1.FFFFFFFFFFFFEp+126, 0x7FFFFFFFFFFFF8000000000000000000); + test__fixdfti(0x1.FFFFFFFFFFFFFp+126, 0x7FFFFFFFFFFFFC000000000000000000); + test__fixdfti(0x1.0000000000000p+127, 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF); + + test__fixdfti(0x1.FFFFFFFFFFFFFp+1023, 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF); + test__fixdfti(0x1.FFFFFFFFFFFFFp+1023, math.maxInt(i128)); + + test__fixdfti(math.f64_max, math.maxInt(i128)); +} diff --git a/lib/std/special/compiler_rt/fixint.zig b/lib/std/special/compiler_rt/fixint.zig new file mode 100644 index 0000000000..fd31798cc2 --- /dev/null +++ b/lib/std/special/compiler_rt/fixint.zig @@ -0,0 +1,74 @@ +const is_test = @import("builtin").is_test; +const std = @import("std"); +const math = std.math; +const Log2Int = std.math.Log2Int; +const maxInt = std.math.maxInt; +const minInt = std.math.minInt; + +const DBG = false; + +pub fn fixint(comptime fp_t: type, comptime fixint_t: type, a: fp_t) fixint_t { + @setRuntimeSafety(is_test); + + const rep_t = switch (fp_t) { + f32 => u32, + f64 => u64, + f128 => u128, + else => unreachable, + }; + const significandBits = switch (fp_t) { + f32 => 23, + f64 => 52, + f128 => 112, + else => unreachable, + }; + + const typeWidth = rep_t.bit_count; + const exponentBits = (typeWidth - significandBits - 1); + const signBit = (rep_t(1) << (significandBits + exponentBits)); + const maxExponent = ((1 << exponentBits) - 1); + const exponentBias = (maxExponent >> 1); + + const implicitBit = (rep_t(1) << significandBits); + const significandMask = (implicitBit - 1); + + // Break a into sign, exponent, significand + const aRep: rep_t = @bitCast(rep_t, a); + const absMask = signBit - 1; + const aAbs: rep_t = aRep & absMask; + + const negative = (aRep & signBit) != 0; + const exponent = @intCast(i32, aAbs >> significandBits) - exponentBias; + const significand: rep_t = (aAbs & significandMask) | implicitBit; + + // If exponent is negative, the uint_result is zero. + if (exponent < 0) return 0; + + // The unsigned result needs to be large enough to handle an fixint_t or rep_t + const fixuint_t = @IntType(false, fixint_t.bit_count); + const UintResultType = if (fixint_t.bit_count > rep_t.bit_count) fixuint_t else rep_t; + var uint_result: UintResultType = undefined; + + // If the value is too large for the integer type, saturate. + if (@intCast(usize, exponent) >= fixint_t.bit_count) { + return if (negative) fixint_t(minInt(fixint_t)) else fixint_t(maxInt(fixint_t)); + } + + // If 0 <= exponent < significandBits, right shift else left shift + if (exponent < significandBits) { + uint_result = @intCast(UintResultType, significand) >> @intCast(Log2Int(UintResultType), significandBits - exponent); + } else { + uint_result = @intCast(UintResultType, significand) << @intCast(Log2Int(UintResultType), exponent - significandBits); + } + + // Cast to final signed result + if (negative) { + return if (uint_result >= -math.minInt(fixint_t)) math.minInt(fixint_t) else -@intCast(fixint_t, uint_result); + } else { + return if (uint_result >= math.maxInt(fixint_t)) math.maxInt(fixint_t) else @intCast(fixint_t, uint_result); + } +} + +test "import fixint" { + _ = @import("fixint_test.zig"); +} diff --git a/lib/std/special/compiler_rt/fixint_test.zig b/lib/std/special/compiler_rt/fixint_test.zig new file mode 100644 index 0000000000..a876e17263 --- /dev/null +++ b/lib/std/special/compiler_rt/fixint_test.zig @@ -0,0 +1,152 @@ +const is_test = @import("builtin").is_test; +const std = @import("std"); +const math = std.math; +const testing = std.testing; +const warn = std.debug.warn; + +const fixint = @import("fixint.zig").fixint; + +fn test__fixint(comptime fp_t: type, comptime fixint_t: type, a: fp_t, expected: fixint_t) void { + const x = fixint(fp_t, fixint_t, a); + //warn("a={} x={}:{x} expected={}:{x})\n", a, x, x, expected, expected); + testing.expect(x == expected); +} + +test "fixint.i1" { + test__fixint(f32, i1, -math.inf_f32, -1); + test__fixint(f32, i1, -math.f32_max, -1); + test__fixint(f32, i1, -2.0, -1); + test__fixint(f32, i1, -1.1, -1); + test__fixint(f32, i1, -1.0, -1); + test__fixint(f32, i1, -0.9, 0); + test__fixint(f32, i1, -0.1, 0); + test__fixint(f32, i1, -math.f32_min, 0); + test__fixint(f32, i1, -0.0, 0); + test__fixint(f32, i1, 0.0, 0); + test__fixint(f32, i1, math.f32_min, 0); + test__fixint(f32, i1, 0.1, 0); + test__fixint(f32, i1, 0.9, 0); + test__fixint(f32, i1, 1.0, 0); + test__fixint(f32, i1, 2.0, 0); + test__fixint(f32, i1, math.f32_max, 0); + test__fixint(f32, i1, math.inf_f32, 0); +} + +test "fixint.i2" { + test__fixint(f32, i2, -math.inf_f32, -2); + test__fixint(f32, i2, -math.f32_max, -2); + test__fixint(f32, i2, -2.0, -2); + test__fixint(f32, i2, -1.9, -1); + test__fixint(f32, i2, -1.1, -1); + test__fixint(f32, i2, -1.0, -1); + test__fixint(f32, i2, -0.9, 0); + test__fixint(f32, i2, -0.1, 0); + test__fixint(f32, i2, -math.f32_min, 0); + test__fixint(f32, i2, -0.0, 0); + test__fixint(f32, i2, 0.0, 0); + test__fixint(f32, i2, math.f32_min, 0); + test__fixint(f32, i2, 0.1, 0); + test__fixint(f32, i2, 0.9, 0); + test__fixint(f32, i2, 1.0, 1); + test__fixint(f32, i2, 2.0, 1); + test__fixint(f32, i2, math.f32_max, 1); + test__fixint(f32, i2, math.inf_f32, 1); +} + +test "fixint.i3" { + test__fixint(f32, i3, -math.inf_f32, -4); + test__fixint(f32, i3, -math.f32_max, -4); + test__fixint(f32, i3, -4.0, -4); + test__fixint(f32, i3, -3.0, -3); + test__fixint(f32, i3, -2.0, -2); + test__fixint(f32, i3, -1.9, -1); + test__fixint(f32, i3, -1.1, -1); + test__fixint(f32, i3, -1.0, -1); + test__fixint(f32, i3, -0.9, 0); + test__fixint(f32, i3, -0.1, 0); + test__fixint(f32, i3, -math.f32_min, 0); + test__fixint(f32, i3, -0.0, 0); + test__fixint(f32, i3, 0.0, 0); + test__fixint(f32, i3, math.f32_min, 0); + test__fixint(f32, i3, 0.1, 0); + test__fixint(f32, i3, 0.9, 0); + test__fixint(f32, i3, 1.0, 1); + test__fixint(f32, i3, 2.0, 2); + test__fixint(f32, i3, 3.0, 3); + test__fixint(f32, i3, 4.0, 3); + test__fixint(f32, i3, math.f32_max, 3); + test__fixint(f32, i3, math.inf_f32, 3); +} + +test "fixint.i32" { + test__fixint(f64, i32, -math.inf_f64, math.minInt(i32)); + test__fixint(f64, i32, -math.f64_max, math.minInt(i32)); + test__fixint(f64, i32, f64(math.minInt(i32)), math.minInt(i32)); + test__fixint(f64, i32, f64(math.minInt(i32)) + 1, math.minInt(i32) + 1); + test__fixint(f64, i32, -2.0, -2); + test__fixint(f64, i32, -1.9, -1); + test__fixint(f64, i32, -1.1, -1); + test__fixint(f64, i32, -1.0, -1); + test__fixint(f64, i32, -0.9, 0); + test__fixint(f64, i32, -0.1, 0); + test__fixint(f64, i32, -math.f32_min, 0); + test__fixint(f64, i32, -0.0, 0); + test__fixint(f64, i32, 0.0, 0); + test__fixint(f64, i32, math.f32_min, 0); + test__fixint(f64, i32, 0.1, 0); + test__fixint(f64, i32, 0.9, 0); + test__fixint(f64, i32, 1.0, 1); + test__fixint(f64, i32, f64(math.maxInt(i32)) - 1, math.maxInt(i32) - 1); + test__fixint(f64, i32, f64(math.maxInt(i32)), math.maxInt(i32)); + test__fixint(f64, i32, math.f64_max, math.maxInt(i32)); + test__fixint(f64, i32, math.inf_f64, math.maxInt(i32)); +} + +test "fixint.i64" { + test__fixint(f64, i64, -math.inf_f64, math.minInt(i64)); + test__fixint(f64, i64, -math.f64_max, math.minInt(i64)); + test__fixint(f64, i64, f64(math.minInt(i64)), math.minInt(i64)); + test__fixint(f64, i64, f64(math.minInt(i64)) + 1, math.minInt(i64)); + test__fixint(f64, i64, f64(math.minInt(i64) / 2), math.minInt(i64) / 2); + test__fixint(f64, i64, -2.0, -2); + test__fixint(f64, i64, -1.9, -1); + test__fixint(f64, i64, -1.1, -1); + test__fixint(f64, i64, -1.0, -1); + test__fixint(f64, i64, -0.9, 0); + test__fixint(f64, i64, -0.1, 0); + test__fixint(f64, i64, -math.f32_min, 0); + test__fixint(f64, i64, -0.0, 0); + test__fixint(f64, i64, 0.0, 0); + test__fixint(f64, i64, math.f32_min, 0); + test__fixint(f64, i64, 0.1, 0); + test__fixint(f64, i64, 0.9, 0); + test__fixint(f64, i64, 1.0, 1); + test__fixint(f64, i64, f64(math.maxInt(i64)) - 1, math.maxInt(i64)); + test__fixint(f64, i64, f64(math.maxInt(i64)), math.maxInt(i64)); + test__fixint(f64, i64, math.f64_max, math.maxInt(i64)); + test__fixint(f64, i64, math.inf_f64, math.maxInt(i64)); +} + +test "fixint.i128" { + test__fixint(f64, i128, -math.inf_f64, math.minInt(i128)); + test__fixint(f64, i128, -math.f64_max, math.minInt(i128)); + test__fixint(f64, i128, f64(math.minInt(i128)), math.minInt(i128)); + test__fixint(f64, i128, f64(math.minInt(i128)) + 1, math.minInt(i128)); + test__fixint(f64, i128, -2.0, -2); + test__fixint(f64, i128, -1.9, -1); + test__fixint(f64, i128, -1.1, -1); + test__fixint(f64, i128, -1.0, -1); + test__fixint(f64, i128, -0.9, 0); + test__fixint(f64, i128, -0.1, 0); + test__fixint(f64, i128, -math.f32_min, 0); + test__fixint(f64, i128, -0.0, 0); + test__fixint(f64, i128, 0.0, 0); + test__fixint(f64, i128, math.f32_min, 0); + test__fixint(f64, i128, 0.1, 0); + test__fixint(f64, i128, 0.9, 0); + test__fixint(f64, i128, 1.0, 1); + test__fixint(f64, i128, f64(math.maxInt(i128)) - 1, math.maxInt(i128)); + test__fixint(f64, i128, f64(math.maxInt(i128)), math.maxInt(i128)); + test__fixint(f64, i128, math.f64_max, math.maxInt(i128)); + test__fixint(f64, i128, math.inf_f64, math.maxInt(i128)); +} diff --git a/lib/std/special/compiler_rt/fixsfdi.zig b/lib/std/special/compiler_rt/fixsfdi.zig new file mode 100644 index 0000000000..ffa81d13ab --- /dev/null +++ b/lib/std/special/compiler_rt/fixsfdi.zig @@ -0,0 +1,11 @@ +const fixint = @import("fixint.zig").fixint; +const builtin = @import("builtin"); + +pub extern fn __fixsfdi(a: f32) i64 { + @setRuntimeSafety(builtin.is_test); + return fixint(f32, i64, a); +} + +test "import fixsfdi" { + _ = @import("fixsfdi_test.zig"); +} diff --git a/lib/std/special/compiler_rt/fixsfdi_test.zig b/lib/std/special/compiler_rt/fixsfdi_test.zig new file mode 100644 index 0000000000..bfd715425c --- /dev/null +++ b/lib/std/special/compiler_rt/fixsfdi_test.zig @@ -0,0 +1,67 @@ +const __fixsfdi = @import("fixsfdi.zig").__fixsfdi; +const std = @import("std"); +const math = std.math; +const testing = std.testing; +const warn = std.debug.warn; + +fn test__fixsfdi(a: f32, expected: i64) void { + const x = __fixsfdi(a); + //warn("a={}:{x} x={}:{x} expected={}:{x}:u32({x})\n", a, @bitCast(u32, a), x, x, expected, expected, @bitCast(u64, expected)); + testing.expect(x == expected); +} + +test "fixsfdi" { + //warn("\n"); + test__fixsfdi(-math.f32_max, math.minInt(i64)); + + test__fixsfdi(-0x1.FFFFFFFFFFFFFp+1023, math.minInt(i64)); + test__fixsfdi(-0x1.FFFFFFFFFFFFFp+1023, -0x8000000000000000); + + test__fixsfdi(-0x1.0000000000000p+127, -0x8000000000000000); + test__fixsfdi(-0x1.FFFFFFFFFFFFFp+126, -0x8000000000000000); + test__fixsfdi(-0x1.FFFFFFFFFFFFEp+126, -0x8000000000000000); + + test__fixsfdi(-0x1.0000000000001p+63, -0x8000000000000000); + test__fixsfdi(-0x1.0000000000000p+63, -0x8000000000000000); + test__fixsfdi(-0x1.FFFFFFFFFFFFFp+62, -0x8000000000000000); + test__fixsfdi(-0x1.FFFFFFFFFFFFEp+62, -0x8000000000000000); + + test__fixsfdi(-0x1.FFFFFFp+62, -0x8000000000000000); + test__fixsfdi(-0x1.FFFFFEp+62, -0x7fffff8000000000); + test__fixsfdi(-0x1.FFFFFCp+62, -0x7fffff0000000000); + + test__fixsfdi(-2.01, -2); + test__fixsfdi(-2.0, -2); + test__fixsfdi(-1.99, -1); + test__fixsfdi(-1.0, -1); + test__fixsfdi(-0.99, 0); + test__fixsfdi(-0.5, 0); + test__fixsfdi(-math.f32_min, 0); + test__fixsfdi(0.0, 0); + test__fixsfdi(math.f32_min, 0); + test__fixsfdi(0.5, 0); + test__fixsfdi(0.99, 0); + test__fixsfdi(1.0, 1); + test__fixsfdi(1.5, 1); + test__fixsfdi(1.99, 1); + test__fixsfdi(2.0, 2); + test__fixsfdi(2.01, 2); + + test__fixsfdi(0x1.FFFFFCp+62, 0x7FFFFF0000000000); + test__fixsfdi(0x1.FFFFFEp+62, 0x7FFFFF8000000000); + test__fixsfdi(0x1.FFFFFFp+62, 0x7FFFFFFFFFFFFFFF); + + test__fixsfdi(0x1.FFFFFFFFFFFFEp+62, 0x7FFFFFFFFFFFFFFF); + test__fixsfdi(0x1.FFFFFFFFFFFFFp+62, 0x7FFFFFFFFFFFFFFF); + test__fixsfdi(0x1.0000000000000p+63, 0x7FFFFFFFFFFFFFFF); + test__fixsfdi(0x1.0000000000001p+63, 0x7FFFFFFFFFFFFFFF); + + test__fixsfdi(0x1.FFFFFFFFFFFFEp+126, 0x7FFFFFFFFFFFFFFF); + test__fixsfdi(0x1.FFFFFFFFFFFFFp+126, 0x7FFFFFFFFFFFFFFF); + test__fixsfdi(0x1.0000000000000p+127, 0x7FFFFFFFFFFFFFFF); + + test__fixsfdi(0x1.FFFFFFFFFFFFFp+1023, 0x7FFFFFFFFFFFFFFF); + test__fixsfdi(0x1.FFFFFFFFFFFFFp+1023, math.maxInt(i64)); + + test__fixsfdi(math.f64_max, math.maxInt(i64)); +} diff --git a/lib/std/special/compiler_rt/fixsfsi.zig b/lib/std/special/compiler_rt/fixsfsi.zig new file mode 100644 index 0000000000..9a94b4395b --- /dev/null +++ b/lib/std/special/compiler_rt/fixsfsi.zig @@ -0,0 +1,11 @@ +const fixint = @import("fixint.zig").fixint; +const builtin = @import("builtin"); + +pub extern fn __fixsfsi(a: f32) i32 { + @setRuntimeSafety(builtin.is_test); + return fixint(f32, i32, a); +} + +test "import fixsfsi" { + _ = @import("fixsfsi_test.zig"); +} diff --git a/lib/std/special/compiler_rt/fixsfsi_test.zig b/lib/std/special/compiler_rt/fixsfsi_test.zig new file mode 100644 index 0000000000..30406fea22 --- /dev/null +++ b/lib/std/special/compiler_rt/fixsfsi_test.zig @@ -0,0 +1,75 @@ +const __fixsfsi = @import("fixsfsi.zig").__fixsfsi; +const std = @import("std"); +const math = std.math; +const testing = std.testing; +const warn = std.debug.warn; + +fn test__fixsfsi(a: f32, expected: i32) void { + const x = __fixsfsi(a); + //warn("a={}:{x} x={}:{x} expected={}:{x}:u32({x})\n", a, @bitCast(u32, a), x, x, expected, expected, @bitCast(u32, expected)); + testing.expect(x == expected); +} + +test "fixsfsi" { + //warn("\n"); + test__fixsfsi(-math.f32_max, math.minInt(i32)); + + test__fixsfsi(-0x1.FFFFFFFFFFFFFp+1023, math.minInt(i32)); + test__fixsfsi(-0x1.FFFFFFFFFFFFFp+1023, -0x80000000); + + test__fixsfsi(-0x1.0000000000000p+127, -0x80000000); + test__fixsfsi(-0x1.FFFFFFFFFFFFFp+126, -0x80000000); + test__fixsfsi(-0x1.FFFFFFFFFFFFEp+126, -0x80000000); + + test__fixsfsi(-0x1.0000000000001p+63, -0x80000000); + test__fixsfsi(-0x1.0000000000000p+63, -0x80000000); + test__fixsfsi(-0x1.FFFFFFFFFFFFFp+62, -0x80000000); + test__fixsfsi(-0x1.FFFFFFFFFFFFEp+62, -0x80000000); + + test__fixsfsi(-0x1.FFFFFEp+62, -0x80000000); + test__fixsfsi(-0x1.FFFFFCp+62, -0x80000000); + + test__fixsfsi(-0x1.000000p+31, -0x80000000); + test__fixsfsi(-0x1.FFFFFFp+30, -0x80000000); + test__fixsfsi(-0x1.FFFFFEp+30, -0x7FFFFF80); + test__fixsfsi(-0x1.FFFFFCp+30, -0x7FFFFF00); + + test__fixsfsi(-2.01, -2); + test__fixsfsi(-2.0, -2); + test__fixsfsi(-1.99, -1); + test__fixsfsi(-1.0, -1); + test__fixsfsi(-0.99, 0); + test__fixsfsi(-0.5, 0); + test__fixsfsi(-math.f32_min, 0); + test__fixsfsi(0.0, 0); + test__fixsfsi(math.f32_min, 0); + test__fixsfsi(0.5, 0); + test__fixsfsi(0.99, 0); + test__fixsfsi(1.0, 1); + test__fixsfsi(1.5, 1); + test__fixsfsi(1.99, 1); + test__fixsfsi(2.0, 2); + test__fixsfsi(2.01, 2); + + test__fixsfsi(0x1.FFFFFCp+30, 0x7FFFFF00); + test__fixsfsi(0x1.FFFFFEp+30, 0x7FFFFF80); + test__fixsfsi(0x1.FFFFFFp+30, 0x7FFFFFFF); + test__fixsfsi(0x1.000000p+31, 0x7FFFFFFF); + + test__fixsfsi(0x1.FFFFFCp+62, 0x7FFFFFFF); + test__fixsfsi(0x1.FFFFFEp+62, 0x7FFFFFFF); + + test__fixsfsi(0x1.FFFFFFFFFFFFEp+62, 0x7FFFFFFF); + test__fixsfsi(0x1.FFFFFFFFFFFFFp+62, 0x7FFFFFFF); + test__fixsfsi(0x1.0000000000000p+63, 0x7FFFFFFF); + test__fixsfsi(0x1.0000000000001p+63, 0x7FFFFFFF); + + test__fixsfsi(0x1.FFFFFFFFFFFFEp+126, 0x7FFFFFFF); + test__fixsfsi(0x1.FFFFFFFFFFFFFp+126, 0x7FFFFFFF); + test__fixsfsi(0x1.0000000000000p+127, 0x7FFFFFFF); + + test__fixsfsi(0x1.FFFFFFFFFFFFFp+1023, 0x7FFFFFFF); + test__fixsfsi(0x1.FFFFFFFFFFFFFp+1023, math.maxInt(i32)); + + test__fixsfsi(math.f32_max, math.maxInt(i32)); +} diff --git a/lib/std/special/compiler_rt/fixsfti.zig b/lib/std/special/compiler_rt/fixsfti.zig new file mode 100644 index 0000000000..806a1678aa --- /dev/null +++ b/lib/std/special/compiler_rt/fixsfti.zig @@ -0,0 +1,11 @@ +const fixint = @import("fixint.zig").fixint; +const builtin = @import("builtin"); + +pub extern fn __fixsfti(a: f32) i128 { + @setRuntimeSafety(builtin.is_test); + return fixint(f32, i128, a); +} + +test "import fixsfti" { + _ = @import("fixsfti_test.zig"); +} diff --git a/lib/std/special/compiler_rt/fixsfti_test.zig b/lib/std/special/compiler_rt/fixsfti_test.zig new file mode 100644 index 0000000000..7136f7cfe8 --- /dev/null +++ b/lib/std/special/compiler_rt/fixsfti_test.zig @@ -0,0 +1,83 @@ +const __fixsfti = @import("fixsfti.zig").__fixsfti; +const std = @import("std"); +const math = std.math; +const testing = std.testing; +const warn = std.debug.warn; + +fn test__fixsfti(a: f32, expected: i128) void { + const x = __fixsfti(a); + //warn("a={}:{x} x={}:{x} expected={}:{x}:u128({x})\n", a, @bitCast(u32, a), x, x, expected, expected, @bitCast(u128, expected)); + testing.expect(x == expected); +} + +test "fixsfti" { + //warn("\n"); + test__fixsfti(-math.f32_max, math.minInt(i128)); + + test__fixsfti(-0x1.FFFFFFFFFFFFFp+1023, math.minInt(i128)); + test__fixsfti(-0x1.FFFFFFFFFFFFFp+1023, -0x80000000000000000000000000000000); + + test__fixsfti(-0x1.0000000000000p+127, -0x80000000000000000000000000000000); + test__fixsfti(-0x1.FFFFFFFFFFFFFp+126, -0x80000000000000000000000000000000); + test__fixsfti(-0x1.FFFFFFFFFFFFEp+126, -0x80000000000000000000000000000000); + test__fixsfti(-0x1.FFFFFF0000000p+126, -0x80000000000000000000000000000000); + test__fixsfti(-0x1.FFFFFE0000000p+126, -0x7FFFFF80000000000000000000000000); + test__fixsfti(-0x1.FFFFFC0000000p+126, -0x7FFFFF00000000000000000000000000); + + test__fixsfti(-0x1.0000000000001p+63, -0x8000000000000000); + test__fixsfti(-0x1.0000000000000p+63, -0x8000000000000000); + test__fixsfti(-0x1.FFFFFFFFFFFFFp+62, -0x8000000000000000); + test__fixsfti(-0x1.FFFFFFFFFFFFEp+62, -0x8000000000000000); + + test__fixsfti(-0x1.FFFFFFp+62, -0x8000000000000000); + test__fixsfti(-0x1.FFFFFEp+62, -0x7fffff8000000000); + test__fixsfti(-0x1.FFFFFCp+62, -0x7fffff0000000000); + + test__fixsfti(-0x1.000000p+31, -0x80000000); + test__fixsfti(-0x1.FFFFFFp+30, -0x80000000); + test__fixsfti(-0x1.FFFFFEp+30, -0x7FFFFF80); + test__fixsfti(-0x1.FFFFFCp+30, -0x7FFFFF00); + + test__fixsfti(-2.01, -2); + test__fixsfti(-2.0, -2); + test__fixsfti(-1.99, -1); + test__fixsfti(-1.0, -1); + test__fixsfti(-0.99, 0); + test__fixsfti(-0.5, 0); + test__fixsfti(-math.f32_min, 0); + test__fixsfti(0.0, 0); + test__fixsfti(math.f32_min, 0); + test__fixsfti(0.5, 0); + test__fixsfti(0.99, 0); + test__fixsfti(1.0, 1); + test__fixsfti(1.5, 1); + test__fixsfti(1.99, 1); + test__fixsfti(2.0, 2); + test__fixsfti(2.01, 2); + + test__fixsfti(0x1.FFFFFCp+30, 0x7FFFFF00); + test__fixsfti(0x1.FFFFFEp+30, 0x7FFFFF80); + test__fixsfti(0x1.FFFFFFp+30, 0x80000000); + test__fixsfti(0x1.000000p+31, 0x80000000); + + test__fixsfti(0x1.FFFFFCp+62, 0x7FFFFF0000000000); + test__fixsfti(0x1.FFFFFEp+62, 0x7FFFFF8000000000); + test__fixsfti(0x1.FFFFFFp+62, 0x8000000000000000); + + test__fixsfti(0x1.FFFFFFFFFFFFEp+62, 0x8000000000000000); + test__fixsfti(0x1.FFFFFFFFFFFFFp+62, 0x8000000000000000); + test__fixsfti(0x1.0000000000000p+63, 0x8000000000000000); + test__fixsfti(0x1.0000000000001p+63, 0x8000000000000000); + + test__fixsfti(0x1.FFFFFC0000000p+126, 0x7FFFFF00000000000000000000000000); + test__fixsfti(0x1.FFFFFE0000000p+126, 0x7FFFFF80000000000000000000000000); + test__fixsfti(0x1.FFFFFF0000000p+126, 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF); + test__fixsfti(0x1.FFFFFFFFFFFFEp+126, 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF); + test__fixsfti(0x1.FFFFFFFFFFFFFp+126, 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF); + test__fixsfti(0x1.0000000000000p+127, 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF); + + test__fixsfti(0x1.FFFFFFFFFFFFFp+1023, 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF); + test__fixsfti(0x1.FFFFFFFFFFFFFp+1023, math.maxInt(i128)); + + test__fixsfti(math.f32_max, math.maxInt(i128)); +} diff --git a/lib/std/special/compiler_rt/fixtfdi.zig b/lib/std/special/compiler_rt/fixtfdi.zig new file mode 100644 index 0000000000..8d99231b74 --- /dev/null +++ b/lib/std/special/compiler_rt/fixtfdi.zig @@ -0,0 +1,11 @@ +const fixint = @import("fixint.zig").fixint; +const builtin = @import("builtin"); + +pub extern fn __fixtfdi(a: f128) i64 { + @setRuntimeSafety(builtin.is_test); + return fixint(f128, i64, a); +} + +test "import fixtfdi" { + _ = @import("fixtfdi_test.zig"); +} diff --git a/lib/std/special/compiler_rt/fixtfdi_test.zig b/lib/std/special/compiler_rt/fixtfdi_test.zig new file mode 100644 index 0000000000..7c63547642 --- /dev/null +++ b/lib/std/special/compiler_rt/fixtfdi_test.zig @@ -0,0 +1,75 @@ +const __fixtfdi = @import("fixtfdi.zig").__fixtfdi; +const std = @import("std"); +const math = std.math; +const testing = std.testing; +const warn = std.debug.warn; + +fn test__fixtfdi(a: f128, expected: i64) void { + const x = __fixtfdi(a); + //warn("a={}:{x} x={}:{x} expected={}:{x}:u64({x})\n", a, @bitCast(u128, a), x, x, expected, expected, @bitCast(u64, expected)); + testing.expect(x == expected); +} + +test "fixtfdi" { + //warn("\n"); + test__fixtfdi(-math.f128_max, math.minInt(i64)); + + test__fixtfdi(-0x1.FFFFFFFFFFFFFp+1023, math.minInt(i64)); + test__fixtfdi(-0x1.FFFFFFFFFFFFFp+1023, -0x8000000000000000); + + test__fixtfdi(-0x1.0000000000000p+127, -0x8000000000000000); + test__fixtfdi(-0x1.FFFFFFFFFFFFFp+126, -0x8000000000000000); + test__fixtfdi(-0x1.FFFFFFFFFFFFEp+126, -0x8000000000000000); + + test__fixtfdi(-0x1.0000000000001p+63, -0x8000000000000000); + test__fixtfdi(-0x1.0000000000000p+63, -0x8000000000000000); + test__fixtfdi(-0x1.FFFFFFFFFFFFFp+62, -0x7FFFFFFFFFFFFC00); + test__fixtfdi(-0x1.FFFFFFFFFFFFEp+62, -0x7FFFFFFFFFFFF800); + + test__fixtfdi(-0x1.FFFFFEp+62, -0x7FFFFF8000000000); + test__fixtfdi(-0x1.FFFFFCp+62, -0x7FFFFF0000000000); + + test__fixtfdi(-0x1.000000p+31, -0x80000000); + test__fixtfdi(-0x1.FFFFFFp+30, -0x7FFFFFC0); + test__fixtfdi(-0x1.FFFFFEp+30, -0x7FFFFF80); + test__fixtfdi(-0x1.FFFFFCp+30, -0x7FFFFF00); + + test__fixtfdi(-2.01, -2); + test__fixtfdi(-2.0, -2); + test__fixtfdi(-1.99, -1); + test__fixtfdi(-1.0, -1); + test__fixtfdi(-0.99, 0); + test__fixtfdi(-0.5, 0); + test__fixtfdi(-math.f64_min, 0); + test__fixtfdi(0.0, 0); + test__fixtfdi(math.f64_min, 0); + test__fixtfdi(0.5, 0); + test__fixtfdi(0.99, 0); + test__fixtfdi(1.0, 1); + test__fixtfdi(1.5, 1); + test__fixtfdi(1.99, 1); + test__fixtfdi(2.0, 2); + test__fixtfdi(2.01, 2); + + test__fixtfdi(0x1.FFFFFCp+30, 0x7FFFFF00); + test__fixtfdi(0x1.FFFFFEp+30, 0x7FFFFF80); + test__fixtfdi(0x1.FFFFFFp+30, 0x7FFFFFC0); + test__fixtfdi(0x1.000000p+31, 0x80000000); + + test__fixtfdi(0x1.FFFFFCp+62, 0x7FFFFF0000000000); + test__fixtfdi(0x1.FFFFFEp+62, 0x7FFFFF8000000000); + + test__fixtfdi(0x1.FFFFFFFFFFFFEp+62, 0x7FFFFFFFFFFFF800); + test__fixtfdi(0x1.FFFFFFFFFFFFFp+62, 0x7FFFFFFFFFFFFC00); + test__fixtfdi(0x1.0000000000000p+63, 0x7FFFFFFFFFFFFFFF); + test__fixtfdi(0x1.0000000000001p+63, 0x7FFFFFFFFFFFFFFF); + + test__fixtfdi(0x1.FFFFFFFFFFFFEp+126, 0x7FFFFFFFFFFFFFFF); + test__fixtfdi(0x1.FFFFFFFFFFFFFp+126, 0x7FFFFFFFFFFFFFFF); + test__fixtfdi(0x1.0000000000000p+127, 0x7FFFFFFFFFFFFFFF); + + test__fixtfdi(0x1.FFFFFFFFFFFFFp+1023, 0x7FFFFFFFFFFFFFFF); + test__fixtfdi(0x1.FFFFFFFFFFFFFp+1023, math.maxInt(i64)); + + test__fixtfdi(math.f128_max, math.maxInt(i64)); +} diff --git a/lib/std/special/compiler_rt/fixtfsi.zig b/lib/std/special/compiler_rt/fixtfsi.zig new file mode 100644 index 0000000000..f3f83634b2 --- /dev/null +++ b/lib/std/special/compiler_rt/fixtfsi.zig @@ -0,0 +1,11 @@ +const fixint = @import("fixint.zig").fixint; +const builtin = @import("builtin"); + +pub extern fn __fixtfsi(a: f128) i32 { + @setRuntimeSafety(builtin.is_test); + return fixint(f128, i32, a); +} + +test "import fixtfsi" { + _ = @import("fixtfsi_test.zig"); +} diff --git a/lib/std/special/compiler_rt/fixtfsi_test.zig b/lib/std/special/compiler_rt/fixtfsi_test.zig new file mode 100644 index 0000000000..da769089df --- /dev/null +++ b/lib/std/special/compiler_rt/fixtfsi_test.zig @@ -0,0 +1,75 @@ +const __fixtfsi = @import("fixtfsi.zig").__fixtfsi; +const std = @import("std"); +const math = std.math; +const testing = std.testing; +const warn = std.debug.warn; + +fn test__fixtfsi(a: f128, expected: i32) void { + const x = __fixtfsi(a); + //warn("a={}:{x} x={}:{x} expected={}:{x}:u32({x})\n", a, @bitCast(u128, a), x, x, expected, expected, @bitCast(u32, expected)); + testing.expect(x == expected); +} + +test "fixtfsi" { + //warn("\n"); + test__fixtfsi(-math.f128_max, math.minInt(i32)); + + test__fixtfsi(-0x1.FFFFFFFFFFFFFp+1023, math.minInt(i32)); + test__fixtfsi(-0x1.FFFFFFFFFFFFFp+1023, -0x80000000); + + test__fixtfsi(-0x1.0000000000000p+127, -0x80000000); + test__fixtfsi(-0x1.FFFFFFFFFFFFFp+126, -0x80000000); + test__fixtfsi(-0x1.FFFFFFFFFFFFEp+126, -0x80000000); + + test__fixtfsi(-0x1.0000000000001p+63, -0x80000000); + test__fixtfsi(-0x1.0000000000000p+63, -0x80000000); + test__fixtfsi(-0x1.FFFFFFFFFFFFFp+62, -0x80000000); + test__fixtfsi(-0x1.FFFFFFFFFFFFEp+62, -0x80000000); + + test__fixtfsi(-0x1.FFFFFEp+62, -0x80000000); + test__fixtfsi(-0x1.FFFFFCp+62, -0x80000000); + + test__fixtfsi(-0x1.000000p+31, -0x80000000); + test__fixtfsi(-0x1.FFFFFFp+30, -0x7FFFFFC0); + test__fixtfsi(-0x1.FFFFFEp+30, -0x7FFFFF80); + test__fixtfsi(-0x1.FFFFFCp+30, -0x7FFFFF00); + + test__fixtfsi(-2.01, -2); + test__fixtfsi(-2.0, -2); + test__fixtfsi(-1.99, -1); + test__fixtfsi(-1.0, -1); + test__fixtfsi(-0.99, 0); + test__fixtfsi(-0.5, 0); + test__fixtfsi(-math.f32_min, 0); + test__fixtfsi(0.0, 0); + test__fixtfsi(math.f32_min, 0); + test__fixtfsi(0.5, 0); + test__fixtfsi(0.99, 0); + test__fixtfsi(1.0, 1); + test__fixtfsi(1.5, 1); + test__fixtfsi(1.99, 1); + test__fixtfsi(2.0, 2); + test__fixtfsi(2.01, 2); + + test__fixtfsi(0x1.FFFFFCp+30, 0x7FFFFF00); + test__fixtfsi(0x1.FFFFFEp+30, 0x7FFFFF80); + test__fixtfsi(0x1.FFFFFFp+30, 0x7FFFFFC0); + test__fixtfsi(0x1.000000p+31, 0x7FFFFFFF); + + test__fixtfsi(0x1.FFFFFCp+62, 0x7FFFFFFF); + test__fixtfsi(0x1.FFFFFEp+62, 0x7FFFFFFF); + + test__fixtfsi(0x1.FFFFFFFFFFFFEp+62, 0x7FFFFFFF); + test__fixtfsi(0x1.FFFFFFFFFFFFFp+62, 0x7FFFFFFF); + test__fixtfsi(0x1.0000000000000p+63, 0x7FFFFFFF); + test__fixtfsi(0x1.0000000000001p+63, 0x7FFFFFFF); + + test__fixtfsi(0x1.FFFFFFFFFFFFEp+126, 0x7FFFFFFF); + test__fixtfsi(0x1.FFFFFFFFFFFFFp+126, 0x7FFFFFFF); + test__fixtfsi(0x1.0000000000000p+127, 0x7FFFFFFF); + + test__fixtfsi(0x1.FFFFFFFFFFFFFp+1023, 0x7FFFFFFF); + test__fixtfsi(0x1.FFFFFFFFFFFFFp+1023, math.maxInt(i32)); + + test__fixtfsi(math.f128_max, math.maxInt(i32)); +} diff --git a/lib/std/special/compiler_rt/fixtfti.zig b/lib/std/special/compiler_rt/fixtfti.zig new file mode 100644 index 0000000000..07d38f2c3b --- /dev/null +++ b/lib/std/special/compiler_rt/fixtfti.zig @@ -0,0 +1,11 @@ +const fixint = @import("fixint.zig").fixint; +const builtin = @import("builtin"); + +pub extern fn __fixtfti(a: f128) i128 { + @setRuntimeSafety(builtin.is_test); + return fixint(f128, i128, a); +} + +test "import fixtfti" { + _ = @import("fixtfti_test.zig"); +} diff --git a/lib/std/special/compiler_rt/fixtfti_test.zig b/lib/std/special/compiler_rt/fixtfti_test.zig new file mode 100644 index 0000000000..02dba7fd61 --- /dev/null +++ b/lib/std/special/compiler_rt/fixtfti_test.zig @@ -0,0 +1,65 @@ +const __fixtfti = @import("fixtfti.zig").__fixtfti; +const std = @import("std"); +const math = std.math; +const testing = std.testing; +const warn = std.debug.warn; + +fn test__fixtfti(a: f128, expected: i128) void { + const x = __fixtfti(a); + //warn("a={}:{x} x={}:{x} expected={}:{x}:u128({x})\n", a, @bitCast(u128, a), x, x, expected, expected, @bitCast(u128, expected)); + testing.expect(x == expected); +} + +test "fixtfti" { + //warn("\n"); + test__fixtfti(-math.f128_max, math.minInt(i128)); + + test__fixtfti(-0x1.FFFFFFFFFFFFFp+1023, math.minInt(i128)); + test__fixtfti(-0x1.FFFFFFFFFFFFFp+1023, -0x80000000000000000000000000000000); + + test__fixtfti(-0x1.0000000000000p+127, -0x80000000000000000000000000000000); + test__fixtfti(-0x1.FFFFFFFFFFFFFp+126, -0x7FFFFFFFFFFFFC000000000000000000); + test__fixtfti(-0x1.FFFFFFFFFFFFEp+126, -0x7FFFFFFFFFFFF8000000000000000000); + + test__fixtfti(-0x1.0000000000001p+63, -0x8000000000000800); + test__fixtfti(-0x1.0000000000000p+63, -0x8000000000000000); + test__fixtfti(-0x1.FFFFFFFFFFFFFp+62, -0x7FFFFFFFFFFFFC00); + test__fixtfti(-0x1.FFFFFFFFFFFFEp+62, -0x7FFFFFFFFFFFF800); + + test__fixtfti(-0x1.FFFFFEp+62, -0x7fffff8000000000); + test__fixtfti(-0x1.FFFFFCp+62, -0x7fffff0000000000); + + test__fixtfti(-2.01, -2); + test__fixtfti(-2.0, -2); + test__fixtfti(-1.99, -1); + test__fixtfti(-1.0, -1); + test__fixtfti(-0.99, 0); + test__fixtfti(-0.5, 0); + test__fixtfti(-math.f128_min, 0); + test__fixtfti(0.0, 0); + test__fixtfti(math.f128_min, 0); + test__fixtfti(0.5, 0); + test__fixtfti(0.99, 0); + test__fixtfti(1.0, 1); + test__fixtfti(1.5, 1); + test__fixtfti(1.99, 1); + test__fixtfti(2.0, 2); + test__fixtfti(2.01, 2); + + test__fixtfti(0x1.FFFFFCp+62, 0x7FFFFF0000000000); + test__fixtfti(0x1.FFFFFEp+62, 0x7FFFFF8000000000); + + test__fixtfti(0x1.FFFFFFFFFFFFEp+62, 0x7FFFFFFFFFFFF800); + test__fixtfti(0x1.FFFFFFFFFFFFFp+62, 0x7FFFFFFFFFFFFC00); + test__fixtfti(0x1.0000000000000p+63, 0x8000000000000000); + test__fixtfti(0x1.0000000000001p+63, 0x8000000000000800); + + test__fixtfti(0x1.FFFFFFFFFFFFEp+126, 0x7FFFFFFFFFFFF8000000000000000000); + test__fixtfti(0x1.FFFFFFFFFFFFFp+126, 0x7FFFFFFFFFFFFC000000000000000000); + test__fixtfti(0x1.0000000000000p+127, 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF); + + test__fixtfti(0x1.FFFFFFFFFFFFFp+1023, 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF); + test__fixtfti(0x1.FFFFFFFFFFFFFp+1023, math.maxInt(i128)); + + test__fixtfti(math.f128_max, math.maxInt(i128)); +} diff --git a/lib/std/special/compiler_rt/fixuint.zig b/lib/std/special/compiler_rt/fixuint.zig new file mode 100644 index 0000000000..55a113b368 --- /dev/null +++ b/lib/std/special/compiler_rt/fixuint.zig @@ -0,0 +1,51 @@ +const is_test = @import("builtin").is_test; +const Log2Int = @import("std").math.Log2Int; + +pub fn fixuint(comptime fp_t: type, comptime fixuint_t: type, a: fp_t) fixuint_t { + @setRuntimeSafety(is_test); + + const rep_t = switch (fp_t) { + f32 => u32, + f64 => u64, + f128 => u128, + else => unreachable, + }; + const srep_t = @IntType(true, rep_t.bit_count); + const significandBits = switch (fp_t) { + f32 => 23, + f64 => 52, + f128 => 112, + else => unreachable, + }; + const typeWidth = rep_t.bit_count; + const exponentBits = (typeWidth - significandBits - 1); + const signBit = (rep_t(1) << (significandBits + exponentBits)); + const maxExponent = ((1 << exponentBits) - 1); + const exponentBias = (maxExponent >> 1); + + const implicitBit = (rep_t(1) << significandBits); + const significandMask = (implicitBit - 1); + + // Break a into sign, exponent, significand + const aRep: rep_t = @bitCast(rep_t, a); + const absMask = signBit - 1; + const aAbs: rep_t = aRep & absMask; + + const sign = if ((aRep & signBit) != 0) i32(-1) else i32(1); + const exponent = @intCast(i32, aAbs >> significandBits) - exponentBias; + const significand: rep_t = (aAbs & significandMask) | implicitBit; + + // If either the value or the exponent is negative, the result is zero. + if (sign == -1 or exponent < 0) return 0; + + // If the value is too large for the integer type, saturate. + if (@intCast(c_uint, exponent) >= fixuint_t.bit_count) return ~fixuint_t(0); + + // If 0 <= exponent < significandBits, right shift to get the result. + // Otherwise, shift left. + if (exponent < significandBits) { + return @intCast(fixuint_t, significand >> @intCast(Log2Int(rep_t), significandBits - exponent)); + } else { + return @intCast(fixuint_t, significand) << @intCast(Log2Int(fixuint_t), exponent - significandBits); + } +} diff --git a/lib/std/special/compiler_rt/fixunsdfdi.zig b/lib/std/special/compiler_rt/fixunsdfdi.zig new file mode 100644 index 0000000000..1fa7ed758e --- /dev/null +++ b/lib/std/special/compiler_rt/fixunsdfdi.zig @@ -0,0 +1,11 @@ +const fixuint = @import("fixuint.zig").fixuint; +const builtin = @import("builtin"); + +pub extern fn __fixunsdfdi(a: f64) u64 { + @setRuntimeSafety(builtin.is_test); + return fixuint(f64, u64, a); +} + +test "import fixunsdfdi" { + _ = @import("fixunsdfdi_test.zig"); +} diff --git a/lib/std/special/compiler_rt/fixunsdfdi_test.zig b/lib/std/special/compiler_rt/fixunsdfdi_test.zig new file mode 100644 index 0000000000..67eeb70520 --- /dev/null +++ b/lib/std/special/compiler_rt/fixunsdfdi_test.zig @@ -0,0 +1,39 @@ +const __fixunsdfdi = @import("fixunsdfdi.zig").__fixunsdfdi; +const testing = @import("std").testing; + +fn test__fixunsdfdi(a: f64, expected: u64) void { + const x = __fixunsdfdi(a); + testing.expect(x == expected); +} + +test "fixunsdfdi" { + //test__fixunsdfdi(0.0, 0); + //test__fixunsdfdi(0.5, 0); + //test__fixunsdfdi(0.99, 0); + test__fixunsdfdi(1.0, 1); + test__fixunsdfdi(1.5, 1); + test__fixunsdfdi(1.99, 1); + test__fixunsdfdi(2.0, 2); + test__fixunsdfdi(2.01, 2); + test__fixunsdfdi(-0.5, 0); + test__fixunsdfdi(-0.99, 0); + test__fixunsdfdi(-1.0, 0); + test__fixunsdfdi(-1.5, 0); + test__fixunsdfdi(-1.99, 0); + test__fixunsdfdi(-2.0, 0); + test__fixunsdfdi(-2.01, 0); + + test__fixunsdfdi(0x1.FFFFFEp+62, 0x7FFFFF8000000000); + test__fixunsdfdi(0x1.FFFFFCp+62, 0x7FFFFF0000000000); + + test__fixunsdfdi(-0x1.FFFFFEp+62, 0); + test__fixunsdfdi(-0x1.FFFFFCp+62, 0); + + test__fixunsdfdi(0x1.FFFFFFFFFFFFFp+63, 0xFFFFFFFFFFFFF800); + test__fixunsdfdi(0x1.0000000000000p+63, 0x8000000000000000); + test__fixunsdfdi(0x1.FFFFFFFFFFFFFp+62, 0x7FFFFFFFFFFFFC00); + test__fixunsdfdi(0x1.FFFFFFFFFFFFEp+62, 0x7FFFFFFFFFFFF800); + + test__fixunsdfdi(-0x1.FFFFFFFFFFFFFp+62, 0); + test__fixunsdfdi(-0x1.FFFFFFFFFFFFEp+62, 0); +} diff --git a/lib/std/special/compiler_rt/fixunsdfsi.zig b/lib/std/special/compiler_rt/fixunsdfsi.zig new file mode 100644 index 0000000000..a77cb8df89 --- /dev/null +++ b/lib/std/special/compiler_rt/fixunsdfsi.zig @@ -0,0 +1,11 @@ +const fixuint = @import("fixuint.zig").fixuint; +const builtin = @import("builtin"); + +pub extern fn __fixunsdfsi(a: f64) u32 { + @setRuntimeSafety(builtin.is_test); + return fixuint(f64, u32, a); +} + +test "import fixunsdfsi" { + _ = @import("fixunsdfsi_test.zig"); +} diff --git a/lib/std/special/compiler_rt/fixunsdfsi_test.zig b/lib/std/special/compiler_rt/fixunsdfsi_test.zig new file mode 100644 index 0000000000..c006473fb9 --- /dev/null +++ b/lib/std/special/compiler_rt/fixunsdfsi_test.zig @@ -0,0 +1,39 @@ +const __fixunsdfsi = @import("fixunsdfsi.zig").__fixunsdfsi; +const testing = @import("std").testing; + +fn test__fixunsdfsi(a: f64, expected: u32) void { + const x = __fixunsdfsi(a); + testing.expect(x == expected); +} + +test "fixunsdfsi" { + test__fixunsdfsi(0.0, 0); + + test__fixunsdfsi(0.5, 0); + test__fixunsdfsi(0.99, 0); + test__fixunsdfsi(1.0, 1); + test__fixunsdfsi(1.5, 1); + test__fixunsdfsi(1.99, 1); + test__fixunsdfsi(2.0, 2); + test__fixunsdfsi(2.01, 2); + test__fixunsdfsi(-0.5, 0); + test__fixunsdfsi(-0.99, 0); + test__fixunsdfsi(-1.0, 0); + test__fixunsdfsi(-1.5, 0); + test__fixunsdfsi(-1.99, 0); + test__fixunsdfsi(-2.0, 0); + test__fixunsdfsi(-2.01, 0); + + test__fixunsdfsi(0x1.000000p+31, 0x80000000); + test__fixunsdfsi(0x1.000000p+32, 0xFFFFFFFF); + test__fixunsdfsi(0x1.FFFFFEp+31, 0xFFFFFF00); + test__fixunsdfsi(0x1.FFFFFEp+30, 0x7FFFFF80); + test__fixunsdfsi(0x1.FFFFFCp+30, 0x7FFFFF00); + + test__fixunsdfsi(-0x1.FFFFFEp+30, 0); + test__fixunsdfsi(-0x1.FFFFFCp+30, 0); + + test__fixunsdfsi(0x1.FFFFFFFEp+31, 0xFFFFFFFF); + test__fixunsdfsi(0x1.FFFFFFFC00000p+30, 0x7FFFFFFF); + test__fixunsdfsi(0x1.FFFFFFF800000p+30, 0x7FFFFFFE); +} diff --git a/lib/std/special/compiler_rt/fixunsdfti.zig b/lib/std/special/compiler_rt/fixunsdfti.zig new file mode 100644 index 0000000000..6e1ded46e5 --- /dev/null +++ b/lib/std/special/compiler_rt/fixunsdfti.zig @@ -0,0 +1,11 @@ +const fixuint = @import("fixuint.zig").fixuint; +const builtin = @import("builtin"); + +pub extern fn __fixunsdfti(a: f64) u128 { + @setRuntimeSafety(builtin.is_test); + return fixuint(f64, u128, a); +} + +test "import fixunsdfti" { + _ = @import("fixunsdfti_test.zig"); +} diff --git a/lib/std/special/compiler_rt/fixunsdfti_test.zig b/lib/std/special/compiler_rt/fixunsdfti_test.zig new file mode 100644 index 0000000000..8241900692 --- /dev/null +++ b/lib/std/special/compiler_rt/fixunsdfti_test.zig @@ -0,0 +1,46 @@ +const __fixunsdfti = @import("fixunsdfti.zig").__fixunsdfti; +const testing = @import("std").testing; + +fn test__fixunsdfti(a: f64, expected: u128) void { + const x = __fixunsdfti(a); + testing.expect(x == expected); +} + +test "fixunsdfti" { + test__fixunsdfti(0.0, 0); + + test__fixunsdfti(0.5, 0); + test__fixunsdfti(0.99, 0); + test__fixunsdfti(1.0, 1); + test__fixunsdfti(1.5, 1); + test__fixunsdfti(1.99, 1); + test__fixunsdfti(2.0, 2); + test__fixunsdfti(2.01, 2); + test__fixunsdfti(-0.5, 0); + test__fixunsdfti(-0.99, 0); + test__fixunsdfti(-1.0, 0); + test__fixunsdfti(-1.5, 0); + test__fixunsdfti(-1.99, 0); + test__fixunsdfti(-2.0, 0); + test__fixunsdfti(-2.01, 0); + + test__fixunsdfti(0x1.FFFFFEp+62, 0x7FFFFF8000000000); + test__fixunsdfti(0x1.FFFFFCp+62, 0x7FFFFF0000000000); + + test__fixunsdfti(-0x1.FFFFFEp+62, 0); + test__fixunsdfti(-0x1.FFFFFCp+62, 0); + + test__fixunsdfti(0x1.FFFFFFFFFFFFFp+63, 0xFFFFFFFFFFFFF800); + test__fixunsdfti(0x1.0000000000000p+63, 0x8000000000000000); + test__fixunsdfti(0x1.FFFFFFFFFFFFFp+62, 0x7FFFFFFFFFFFFC00); + test__fixunsdfti(0x1.FFFFFFFFFFFFEp+62, 0x7FFFFFFFFFFFF800); + + test__fixunsdfti(0x1.FFFFFFFFFFFFFp+127, 0xFFFFFFFFFFFFF8000000000000000000); + test__fixunsdfti(0x1.0000000000000p+127, 0x80000000000000000000000000000000); + test__fixunsdfti(0x1.FFFFFFFFFFFFFp+126, 0x7FFFFFFFFFFFFC000000000000000000); + test__fixunsdfti(0x1.FFFFFFFFFFFFEp+126, 0x7FFFFFFFFFFFF8000000000000000000); + test__fixunsdfti(0x1.0000000000000p+128, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF); + + test__fixunsdfti(-0x1.FFFFFFFFFFFFFp+62, 0); + test__fixunsdfti(-0x1.FFFFFFFFFFFFEp+62, 0); +} diff --git a/lib/std/special/compiler_rt/fixunssfdi.zig b/lib/std/special/compiler_rt/fixunssfdi.zig new file mode 100644 index 0000000000..36d4acc28c --- /dev/null +++ b/lib/std/special/compiler_rt/fixunssfdi.zig @@ -0,0 +1,11 @@ +const fixuint = @import("fixuint.zig").fixuint; +const builtin = @import("builtin"); + +pub extern fn __fixunssfdi(a: f32) u64 { + @setRuntimeSafety(builtin.is_test); + return fixuint(f32, u64, a); +} + +test "import fixunssfdi" { + _ = @import("fixunssfdi_test.zig"); +} diff --git a/lib/std/special/compiler_rt/fixunssfdi_test.zig b/lib/std/special/compiler_rt/fixunssfdi_test.zig new file mode 100644 index 0000000000..e2089822d2 --- /dev/null +++ b/lib/std/special/compiler_rt/fixunssfdi_test.zig @@ -0,0 +1,35 @@ +const __fixunssfdi = @import("fixunssfdi.zig").__fixunssfdi; +const testing = @import("std").testing; + +fn test__fixunssfdi(a: f32, expected: u64) void { + const x = __fixunssfdi(a); + testing.expect(x == expected); +} + +test "fixunssfdi" { + test__fixunssfdi(0.0, 0); + + test__fixunssfdi(0.5, 0); + test__fixunssfdi(0.99, 0); + test__fixunssfdi(1.0, 1); + test__fixunssfdi(1.5, 1); + test__fixunssfdi(1.99, 1); + test__fixunssfdi(2.0, 2); + test__fixunssfdi(2.01, 2); + test__fixunssfdi(-0.5, 0); + test__fixunssfdi(-0.99, 0); + + test__fixunssfdi(-1.0, 0); + test__fixunssfdi(-1.5, 0); + test__fixunssfdi(-1.99, 0); + test__fixunssfdi(-2.0, 0); + test__fixunssfdi(-2.01, 0); + + test__fixunssfdi(0x1.FFFFFEp+63, 0xFFFFFF0000000000); + test__fixunssfdi(0x1.000000p+63, 0x8000000000000000); + test__fixunssfdi(0x1.FFFFFEp+62, 0x7FFFFF8000000000); + test__fixunssfdi(0x1.FFFFFCp+62, 0x7FFFFF0000000000); + + test__fixunssfdi(-0x1.FFFFFEp+62, 0x0000000000000000); + test__fixunssfdi(-0x1.FFFFFCp+62, 0x0000000000000000); +} diff --git a/lib/std/special/compiler_rt/fixunssfsi.zig b/lib/std/special/compiler_rt/fixunssfsi.zig new file mode 100644 index 0000000000..53130286a1 --- /dev/null +++ b/lib/std/special/compiler_rt/fixunssfsi.zig @@ -0,0 +1,11 @@ +const fixuint = @import("fixuint.zig").fixuint; +const builtin = @import("builtin"); + +pub extern fn __fixunssfsi(a: f32) u32 { + @setRuntimeSafety(builtin.is_test); + return fixuint(f32, u32, a); +} + +test "import fixunssfsi" { + _ = @import("fixunssfsi_test.zig"); +} diff --git a/lib/std/special/compiler_rt/fixunssfsi_test.zig b/lib/std/special/compiler_rt/fixunssfsi_test.zig new file mode 100644 index 0000000000..4aee84d2d2 --- /dev/null +++ b/lib/std/special/compiler_rt/fixunssfsi_test.zig @@ -0,0 +1,36 @@ +const __fixunssfsi = @import("fixunssfsi.zig").__fixunssfsi; +const testing = @import("std").testing; + +fn test__fixunssfsi(a: f32, expected: u32) void { + const x = __fixunssfsi(a); + testing.expect(x == expected); +} + +test "fixunssfsi" { + test__fixunssfsi(0.0, 0); + + test__fixunssfsi(0.5, 0); + test__fixunssfsi(0.99, 0); + test__fixunssfsi(1.0, 1); + test__fixunssfsi(1.5, 1); + test__fixunssfsi(1.99, 1); + test__fixunssfsi(2.0, 2); + test__fixunssfsi(2.01, 2); + test__fixunssfsi(-0.5, 0); + test__fixunssfsi(-0.99, 0); + + test__fixunssfsi(-1.0, 0); + test__fixunssfsi(-1.5, 0); + test__fixunssfsi(-1.99, 0); + test__fixunssfsi(-2.0, 0); + test__fixunssfsi(-2.01, 0); + + test__fixunssfsi(0x1.000000p+31, 0x80000000); + test__fixunssfsi(0x1.000000p+32, 0xFFFFFFFF); + test__fixunssfsi(0x1.FFFFFEp+31, 0xFFFFFF00); + test__fixunssfsi(0x1.FFFFFEp+30, 0x7FFFFF80); + test__fixunssfsi(0x1.FFFFFCp+30, 0x7FFFFF00); + + test__fixunssfsi(-0x1.FFFFFEp+30, 0); + test__fixunssfsi(-0x1.FFFFFCp+30, 0); +} diff --git a/lib/std/special/compiler_rt/fixunssfti.zig b/lib/std/special/compiler_rt/fixunssfti.zig new file mode 100644 index 0000000000..f0cd788d2e --- /dev/null +++ b/lib/std/special/compiler_rt/fixunssfti.zig @@ -0,0 +1,11 @@ +const fixuint = @import("fixuint.zig").fixuint; +const builtin = @import("builtin"); + +pub extern fn __fixunssfti(a: f32) u128 { + @setRuntimeSafety(builtin.is_test); + return fixuint(f32, u128, a); +} + +test "import fixunssfti" { + _ = @import("fixunssfti_test.zig"); +} diff --git a/lib/std/special/compiler_rt/fixunssfti_test.zig b/lib/std/special/compiler_rt/fixunssfti_test.zig new file mode 100644 index 0000000000..4cb27cbb8a --- /dev/null +++ b/lib/std/special/compiler_rt/fixunssfti_test.zig @@ -0,0 +1,41 @@ +const __fixunssfti = @import("fixunssfti.zig").__fixunssfti; +const testing = @import("std").testing; + +fn test__fixunssfti(a: f32, expected: u128) void { + const x = __fixunssfti(a); + testing.expect(x == expected); +} + +test "fixunssfti" { + test__fixunssfti(0.0, 0); + + test__fixunssfti(0.5, 0); + test__fixunssfti(0.99, 0); + test__fixunssfti(1.0, 1); + test__fixunssfti(1.5, 1); + test__fixunssfti(1.99, 1); + test__fixunssfti(2.0, 2); + test__fixunssfti(2.01, 2); + test__fixunssfti(-0.5, 0); + test__fixunssfti(-0.99, 0); + + test__fixunssfti(-1.0, 0); + test__fixunssfti(-1.5, 0); + test__fixunssfti(-1.99, 0); + test__fixunssfti(-2.0, 0); + test__fixunssfti(-2.01, 0); + + test__fixunssfti(0x1.FFFFFEp+63, 0xFFFFFF0000000000); + test__fixunssfti(0x1.000000p+63, 0x8000000000000000); + test__fixunssfti(0x1.FFFFFEp+62, 0x7FFFFF8000000000); + test__fixunssfti(0x1.FFFFFCp+62, 0x7FFFFF0000000000); + test__fixunssfti(0x1.FFFFFEp+127, 0xFFFFFF00000000000000000000000000); + test__fixunssfti(0x1.000000p+127, 0x80000000000000000000000000000000); + test__fixunssfti(0x1.FFFFFEp+126, 0x7FFFFF80000000000000000000000000); + test__fixunssfti(0x1.FFFFFCp+126, 0x7FFFFF00000000000000000000000000); + + test__fixunssfti(-0x1.FFFFFEp+62, 0x0000000000000000); + test__fixunssfti(-0x1.FFFFFCp+62, 0x0000000000000000); + test__fixunssfti(-0x1.FFFFFEp+126, 0x0000000000000000); + test__fixunssfti(-0x1.FFFFFCp+126, 0x0000000000000000); +} diff --git a/lib/std/special/compiler_rt/fixunstfdi.zig b/lib/std/special/compiler_rt/fixunstfdi.zig new file mode 100644 index 0000000000..e352044708 --- /dev/null +++ b/lib/std/special/compiler_rt/fixunstfdi.zig @@ -0,0 +1,11 @@ +const fixuint = @import("fixuint.zig").fixuint; +const builtin = @import("builtin"); + +pub extern fn __fixunstfdi(a: f128) u64 { + @setRuntimeSafety(builtin.is_test); + return fixuint(f128, u64, a); +} + +test "import fixunstfdi" { + _ = @import("fixunstfdi_test.zig"); +} diff --git a/lib/std/special/compiler_rt/fixunstfdi_test.zig b/lib/std/special/compiler_rt/fixunstfdi_test.zig new file mode 100644 index 0000000000..0d47641c09 --- /dev/null +++ b/lib/std/special/compiler_rt/fixunstfdi_test.zig @@ -0,0 +1,49 @@ +const __fixunstfdi = @import("fixunstfdi.zig").__fixunstfdi; +const testing = @import("std").testing; + +fn test__fixunstfdi(a: f128, expected: u64) void { + const x = __fixunstfdi(a); + testing.expect(x == expected); +} + +test "fixunstfdi" { + test__fixunstfdi(0.0, 0); + + test__fixunstfdi(0.5, 0); + test__fixunstfdi(0.99, 0); + test__fixunstfdi(1.0, 1); + test__fixunstfdi(1.5, 1); + test__fixunstfdi(1.99, 1); + test__fixunstfdi(2.0, 2); + test__fixunstfdi(2.01, 2); + test__fixunstfdi(-0.5, 0); + test__fixunstfdi(-0.99, 0); + test__fixunstfdi(-1.0, 0); + test__fixunstfdi(-1.5, 0); + test__fixunstfdi(-1.99, 0); + test__fixunstfdi(-2.0, 0); + test__fixunstfdi(-2.01, 0); + + test__fixunstfdi(0x1.FFFFFEp+62, 0x7FFFFF8000000000); + test__fixunstfdi(0x1.FFFFFCp+62, 0x7FFFFF0000000000); + + test__fixunstfdi(-0x1.FFFFFEp+62, 0); + test__fixunstfdi(-0x1.FFFFFCp+62, 0); + + test__fixunstfdi(0x1.FFFFFFFFFFFFFp+62, 0x7FFFFFFFFFFFFC00); + test__fixunstfdi(0x1.FFFFFFFFFFFFEp+62, 0x7FFFFFFFFFFFF800); + + test__fixunstfdi(-0x1.FFFFFFFFFFFFFp+62, 0); + test__fixunstfdi(-0x1.FFFFFFFFFFFFEp+62, 0); + + test__fixunstfdi(0x1.FFFFFFFFFFFFFFFEp+63, 0xFFFFFFFFFFFFFFFF); + test__fixunstfdi(0x1.0000000000000002p+63, 0x8000000000000001); + test__fixunstfdi(0x1.0000000000000000p+63, 0x8000000000000000); + test__fixunstfdi(0x1.FFFFFFFFFFFFFFFCp+62, 0x7FFFFFFFFFFFFFFF); + test__fixunstfdi(0x1.FFFFFFFFFFFFFFF8p+62, 0x7FFFFFFFFFFFFFFE); + test__fixunstfdi(0x1.p+64, 0xFFFFFFFFFFFFFFFF); + + test__fixunstfdi(-0x1.0000000000000000p+63, 0); + test__fixunstfdi(-0x1.FFFFFFFFFFFFFFFCp+62, 0); + test__fixunstfdi(-0x1.FFFFFFFFFFFFFFF8p+62, 0); +} diff --git a/lib/std/special/compiler_rt/fixunstfsi.zig b/lib/std/special/compiler_rt/fixunstfsi.zig new file mode 100644 index 0000000000..579c559790 --- /dev/null +++ b/lib/std/special/compiler_rt/fixunstfsi.zig @@ -0,0 +1,11 @@ +const fixuint = @import("fixuint.zig").fixuint; +const builtin = @import("builtin"); + +pub extern fn __fixunstfsi(a: f128) u32 { + @setRuntimeSafety(builtin.is_test); + return fixuint(f128, u32, a); +} + +test "import fixunstfsi" { + _ = @import("fixunstfsi_test.zig"); +} diff --git a/lib/std/special/compiler_rt/fixunstfsi_test.zig b/lib/std/special/compiler_rt/fixunstfsi_test.zig new file mode 100644 index 0000000000..e709636912 --- /dev/null +++ b/lib/std/special/compiler_rt/fixunstfsi_test.zig @@ -0,0 +1,22 @@ +const __fixunstfsi = @import("fixunstfsi.zig").__fixunstfsi; +const testing = @import("std").testing; + +fn test__fixunstfsi(a: f128, expected: u32) void { + const x = __fixunstfsi(a); + testing.expect(x == expected); +} + +const inf128 = @bitCast(f128, u128(0x7fff0000000000000000000000000000)); + +test "fixunstfsi" { + test__fixunstfsi(inf128, 0xffffffff); + test__fixunstfsi(0, 0x0); + test__fixunstfsi(0x1.23456789abcdefp+5, 0x24); + test__fixunstfsi(0x1.23456789abcdefp-3, 0x0); + test__fixunstfsi(0x1.23456789abcdefp+20, 0x123456); + test__fixunstfsi(0x1.23456789abcdefp+40, 0xffffffff); + test__fixunstfsi(0x1.23456789abcdefp+256, 0xffffffff); + test__fixunstfsi(-0x1.23456789abcdefp+3, 0x0); + + test__fixunstfsi(0x1.p+32, 0xFFFFFFFF); +} diff --git a/lib/std/special/compiler_rt/fixunstfti.zig b/lib/std/special/compiler_rt/fixunstfti.zig new file mode 100644 index 0000000000..cd6178164a --- /dev/null +++ b/lib/std/special/compiler_rt/fixunstfti.zig @@ -0,0 +1,11 @@ +const fixuint = @import("fixuint.zig").fixuint; +const builtin = @import("builtin"); + +pub extern fn __fixunstfti(a: f128) u128 { + @setRuntimeSafety(builtin.is_test); + return fixuint(f128, u128, a); +} + +test "import fixunstfti" { + _ = @import("fixunstfti_test.zig"); +} diff --git a/lib/std/special/compiler_rt/fixunstfti_test.zig b/lib/std/special/compiler_rt/fixunstfti_test.zig new file mode 100644 index 0000000000..833e4779dd --- /dev/null +++ b/lib/std/special/compiler_rt/fixunstfti_test.zig @@ -0,0 +1,32 @@ +const __fixunstfti = @import("fixunstfti.zig").__fixunstfti; +const testing = @import("std").testing; + +fn test__fixunstfti(a: f128, expected: u128) void { + const x = __fixunstfti(a); + testing.expect(x == expected); +} + +const inf128 = @bitCast(f128, u128(0x7fff0000000000000000000000000000)); + +test "fixunstfti" { + test__fixunstfti(inf128, 0xffffffffffffffffffffffffffffffff); + + test__fixunstfti(0.0, 0); + + test__fixunstfti(0.5, 0); + test__fixunstfti(0.99, 0); + test__fixunstfti(1.0, 1); + test__fixunstfti(1.5, 1); + test__fixunstfti(1.99, 1); + test__fixunstfti(2.0, 2); + test__fixunstfti(2.01, 2); + test__fixunstfti(-0.01, 0); + test__fixunstfti(-0.99, 0); + + test__fixunstfti(0x1.p+128, 0xffffffffffffffffffffffffffffffff); + + test__fixunstfti(0x1.FFFFFEp+126, 0x7fffff80000000000000000000000000); + test__fixunstfti(0x1.FFFFFEp+127, 0xffffff00000000000000000000000000); + test__fixunstfti(0x1.FFFFFEp+128, 0xffffffffffffffffffffffffffffffff); + test__fixunstfti(0x1.FFFFFEp+129, 0xffffffffffffffffffffffffffffffff); +} diff --git a/lib/std/special/compiler_rt/floatdidf.zig b/lib/std/special/compiler_rt/floatdidf.zig new file mode 100644 index 0000000000..1610136413 --- /dev/null +++ b/lib/std/special/compiler_rt/floatdidf.zig @@ -0,0 +1,22 @@ +const builtin = @import("builtin"); +const std = @import("std"); + +const twop52: f64 = 0x1.0p52; +const twop32: f64 = 0x1.0p32; + +pub extern fn __floatdidf(a: i64) f64 { + @setRuntimeSafety(builtin.is_test); + + if (a == 0) return 0; + + var low = @bitCast(i64, twop52); + const high = @intToFloat(f64, @truncate(i32, a >> 32)) * twop32; + + low |= @bitCast(i64, a & 0xFFFFFFFF); + + return (high - twop52) + @bitCast(f64, low); +} + +test "import floatdidf" { + _ = @import("floatdidf_test.zig"); +} diff --git a/lib/std/special/compiler_rt/floatdidf_test.zig b/lib/std/special/compiler_rt/floatdidf_test.zig new file mode 100644 index 0000000000..c854183809 --- /dev/null +++ b/lib/std/special/compiler_rt/floatdidf_test.zig @@ -0,0 +1,53 @@ +const __floatdidf = @import("floatdidf.zig").__floatdidf; +const testing = @import("std").testing; + +fn test__floatdidf(a: i64, expected: f64) void { + const r = __floatdidf(a); + testing.expect(r == expected); +} + +test "floatdidf" { + test__floatdidf(0, 0.0); + test__floatdidf(1, 1.0); + test__floatdidf(2, 2.0); + test__floatdidf(20, 20.0); + test__floatdidf(-1, -1.0); + test__floatdidf(-2, -2.0); + test__floatdidf(-20, -20.0); + test__floatdidf(0x7FFFFF8000000000, 0x1.FFFFFEp+62); + test__floatdidf(0x7FFFFFFFFFFFF800, 0x1.FFFFFFFFFFFFEp+62); + test__floatdidf(0x7FFFFF0000000000, 0x1.FFFFFCp+62); + test__floatdidf(0x7FFFFFFFFFFFF000, 0x1.FFFFFFFFFFFFCp+62); + test__floatdidf(@bitCast(i64, @intCast(u64, 0x8000008000000000)), -0x1.FFFFFEp+62); + test__floatdidf(@bitCast(i64, @intCast(u64, 0x8000000000000800)), -0x1.FFFFFFFFFFFFEp+62); + test__floatdidf(@bitCast(i64, @intCast(u64, 0x8000010000000000)), -0x1.FFFFFCp+62); + test__floatdidf(@bitCast(i64, @intCast(u64, 0x8000000000001000)), -0x1.FFFFFFFFFFFFCp+62); + test__floatdidf(@bitCast(i64, @intCast(u64, 0x8000000000000000)), -0x1.000000p+63); + test__floatdidf(@bitCast(i64, @intCast(u64, 0x8000000000000001)), -0x1.000000p+63); + test__floatdidf(0x0007FB72E8000000, 0x1.FEDCBAp+50); + test__floatdidf(0x0007FB72EA000000, 0x1.FEDCBA8p+50); + test__floatdidf(0x0007FB72EB000000, 0x1.FEDCBACp+50); + test__floatdidf(0x0007FB72EBFFFFFF, 0x1.FEDCBAFFFFFFCp+50); + test__floatdidf(0x0007FB72EC000000, 0x1.FEDCBBp+50); + test__floatdidf(0x0007FB72E8000001, 0x1.FEDCBA0000004p+50); + test__floatdidf(0x0007FB72E6000000, 0x1.FEDCB98p+50); + test__floatdidf(0x0007FB72E7000000, 0x1.FEDCB9Cp+50); + test__floatdidf(0x0007FB72E7FFFFFF, 0x1.FEDCB9FFFFFFCp+50); + test__floatdidf(0x0007FB72E4000001, 0x1.FEDCB90000004p+50); + test__floatdidf(0x0007FB72E4000000, 0x1.FEDCB9p+50); + test__floatdidf(0x023479FD0E092DC0, 0x1.1A3CFE870496Ep+57); + test__floatdidf(0x023479FD0E092DA1, 0x1.1A3CFE870496Dp+57); + test__floatdidf(0x023479FD0E092DB0, 0x1.1A3CFE870496Ep+57); + test__floatdidf(0x023479FD0E092DB8, 0x1.1A3CFE870496Ep+57); + test__floatdidf(0x023479FD0E092DB6, 0x1.1A3CFE870496Ep+57); + test__floatdidf(0x023479FD0E092DBF, 0x1.1A3CFE870496Ep+57); + test__floatdidf(0x023479FD0E092DC1, 0x1.1A3CFE870496Ep+57); + test__floatdidf(0x023479FD0E092DC7, 0x1.1A3CFE870496Ep+57); + test__floatdidf(0x023479FD0E092DC8, 0x1.1A3CFE870496Ep+57); + test__floatdidf(0x023479FD0E092DCF, 0x1.1A3CFE870496Ep+57); + test__floatdidf(0x023479FD0E092DD0, 0x1.1A3CFE870496Ep+57); + test__floatdidf(0x023479FD0E092DD1, 0x1.1A3CFE870496Fp+57); + test__floatdidf(0x023479FD0E092DD8, 0x1.1A3CFE870496Fp+57); + test__floatdidf(0x023479FD0E092DDF, 0x1.1A3CFE870496Fp+57); + test__floatdidf(0x023479FD0E092DE0, 0x1.1A3CFE870496Fp+57); +} diff --git a/lib/std/special/compiler_rt/floatsiXf.zig b/lib/std/special/compiler_rt/floatsiXf.zig new file mode 100644 index 0000000000..7e05a3ebf7 --- /dev/null +++ b/lib/std/special/compiler_rt/floatsiXf.zig @@ -0,0 +1,109 @@ +const builtin = @import("builtin"); +const std = @import("std"); +const maxInt = std.math.maxInt; + +fn floatsiXf(comptime T: type, a: i32) T { + @setRuntimeSafety(builtin.is_test); + + const Z = @IntType(false, T.bit_count); + const S = @IntType(false, T.bit_count - @clz(Z, Z(T.bit_count) - 1)); + + if (a == 0) { + return T(0.0); + } + + const significandBits = std.math.floatMantissaBits(T); + const exponentBits = std.math.floatExponentBits(T); + const exponentBias = ((1 << exponentBits - 1) - 1); + + const implicitBit = Z(1) << significandBits; + const signBit = Z(1 << Z.bit_count - 1); + + const sign = a >> 31; + // Take absolute value of a via abs(x) = (x^(x >> 31)) - (x >> 31). + const abs_a = (a ^ sign) -% sign; + // The exponent is the width of abs(a) + const exp = Z(31 - @clz(i32, abs_a)); + + const sign_bit = if (sign < 0) signBit else 0; + + var mantissa: Z = undefined; + // Shift a into the significand field and clear the implicit bit. + if (exp <= significandBits) { + // No rounding needed + const shift = @intCast(S, significandBits - exp); + mantissa = @intCast(Z, @bitCast(u32, abs_a)) << shift ^ implicitBit; + } else { + const shift = @intCast(S, exp - significandBits); + // Round to the nearest number after truncation + mantissa = @intCast(Z, @bitCast(u32, abs_a)) >> shift ^ implicitBit; + // Align to the left and check if the truncated part is halfway over + const round = @bitCast(u32, abs_a) << @intCast(u5, 31 - shift); + mantissa += @boolToInt(round > 0x80000000); + // Tie to even + mantissa += mantissa & 1; + } + + // Use the addition instead of a or since we may have a carry from the + // mantissa to the exponent + var result = mantissa; + result += (exp + exponentBias) << significandBits; + result += sign_bit; + + return @bitCast(T, result); +} + +pub extern fn __floatsisf(arg: i32) f32 { + @setRuntimeSafety(builtin.is_test); + return @inlineCall(floatsiXf, f32, arg); +} + +pub extern fn __floatsidf(arg: i32) f64 { + @setRuntimeSafety(builtin.is_test); + return @inlineCall(floatsiXf, f64, arg); +} + +pub extern fn __floatsitf(arg: i32) f128 { + @setRuntimeSafety(builtin.is_test); + return @inlineCall(floatsiXf, f128, arg); +} + +fn test_one_floatsitf(a: i32, expected: u128) void { + const r = __floatsitf(a); + std.testing.expect(@bitCast(u128, r) == expected); +} + +fn test_one_floatsidf(a: i32, expected: u64) void { + const r = __floatsidf(a); + std.testing.expect(@bitCast(u64, r) == expected); +} + +fn test_one_floatsisf(a: i32, expected: u32) void { + const r = __floatsisf(a); + std.testing.expect(@bitCast(u32, r) == expected); +} + +test "floatsidf" { + test_one_floatsidf(0, 0x0000000000000000); + test_one_floatsidf(1, 0x3ff0000000000000); + test_one_floatsidf(-1, 0xbff0000000000000); + test_one_floatsidf(0x7FFFFFFF, 0x41dfffffffc00000); + test_one_floatsidf(@bitCast(i32, @intCast(u32, 0x80000000)), 0xc1e0000000000000); +} + +test "floatsisf" { + test_one_floatsisf(0, 0x00000000); + test_one_floatsisf(1, 0x3f800000); + test_one_floatsisf(-1, 0xbf800000); + test_one_floatsisf(0x7FFFFFFF, 0x4f000000); + test_one_floatsisf(@bitCast(i32, @intCast(u32, 0x80000000)), 0xcf000000); +} + +test "floatsitf" { + test_one_floatsitf(0, 0); + test_one_floatsitf(0x7FFFFFFF, 0x401dfffffffc00000000000000000000); + test_one_floatsitf(0x12345678, 0x401b2345678000000000000000000000); + test_one_floatsitf(-0x12345678, 0xc01b2345678000000000000000000000); + test_one_floatsitf(@bitCast(i32, @intCast(u32, 0xffffffff)), 0xbfff0000000000000000000000000000); + test_one_floatsitf(@bitCast(i32, @intCast(u32, 0x80000000)), 0xc01e0000000000000000000000000000); +} diff --git a/lib/std/special/compiler_rt/floattidf.zig b/lib/std/special/compiler_rt/floattidf.zig new file mode 100644 index 0000000000..42ef6df7e4 --- /dev/null +++ b/lib/std/special/compiler_rt/floattidf.zig @@ -0,0 +1,71 @@ +const builtin = @import("builtin"); +const is_test = builtin.is_test; +const std = @import("std"); +const maxInt = std.math.maxInt; + +const DBL_MANT_DIG = 53; + +pub extern fn __floattidf(arg: i128) f64 { + @setRuntimeSafety(is_test); + + if (arg == 0) + return 0.0; + + var ai = arg; + const N: u32 = 128; + const si = ai >> @intCast(u7, (N - 1)); + ai = ((ai ^ si) -% si); + var a = @bitCast(u128, ai); + + const sd = @bitCast(i32, N - @clz(u128, a)); // number of significant digits + var e: i32 = sd - 1; // exponent + if (sd > DBL_MANT_DIG) { + // start: 0000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQxxxxxxxxxxxxxxxxxx + // finish: 000000000000000000000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQR + // 12345678901234567890123456 + // 1 = msb 1 bit + // P = bit DBL_MANT_DIG-1 bits to the right of 1 + // Q = bit DBL_MANT_DIG bits to the right of 1 + // R = "or" of all bits to the right of Q + switch (sd) { + DBL_MANT_DIG + 1 => { + a <<= 1; + }, + DBL_MANT_DIG + 2 => {}, + else => { + const shift1_amt = @intCast(i32, sd - (DBL_MANT_DIG + 2)); + const shift1_amt_u7 = @intCast(u7, shift1_amt); + + const shift2_amt = @intCast(i32, N + (DBL_MANT_DIG + 2)) - sd; + const shift2_amt_u7 = @intCast(u7, shift2_amt); + + a = (a >> shift1_amt_u7) | @boolToInt((a & (@intCast(u128, maxInt(u128)) >> shift2_amt_u7)) != 0); + }, + } + // finish + a |= @boolToInt((a & 4) != 0); // Or P into R + a += 1; // round - this step may add a significant bit + a >>= 2; // dump Q and R + // a is now rounded to DBL_MANT_DIG or DBL_MANT_DIG+1 bits + if ((a & (u128(1) << DBL_MANT_DIG)) != 0) { + a >>= 1; + e += 1; + } + // a is now rounded to DBL_MANT_DIG bits + } else { + a <<= @intCast(u7, DBL_MANT_DIG - sd); + // a is now rounded to DBL_MANT_DIG bits + } + + const s = @bitCast(u128, arg) >> (128 - 32); + const high: u64 = (@intCast(u64, s) & 0x80000000) | // sign + (@intCast(u32, (e + 1023)) << 20) | // exponent + (@truncate(u32, a >> 32) & 0x000fffff); // mantissa-high + const low: u64 = @truncate(u32, a); // mantissa-low + + return @bitCast(f64, low | (high << 32)); +} + +test "import floattidf" { + _ = @import("floattidf_test.zig"); +} diff --git a/lib/std/special/compiler_rt/floattidf_test.zig b/lib/std/special/compiler_rt/floattidf_test.zig new file mode 100644 index 0000000000..4914342c31 --- /dev/null +++ b/lib/std/special/compiler_rt/floattidf_test.zig @@ -0,0 +1,84 @@ +const __floattidf = @import("floattidf.zig").__floattidf; +const testing = @import("std").testing; + +fn test__floattidf(a: i128, expected: f64) void { + const x = __floattidf(a); + testing.expect(x == expected); +} + +test "floattidf" { + test__floattidf(0, 0.0); + + test__floattidf(1, 1.0); + test__floattidf(2, 2.0); + test__floattidf(20, 20.0); + test__floattidf(-1, -1.0); + test__floattidf(-2, -2.0); + test__floattidf(-20, -20.0); + + test__floattidf(0x7FFFFF8000000000, 0x1.FFFFFEp+62); + test__floattidf(0x7FFFFFFFFFFFF800, 0x1.FFFFFFFFFFFFEp+62); + test__floattidf(0x7FFFFF0000000000, 0x1.FFFFFCp+62); + test__floattidf(0x7FFFFFFFFFFFF000, 0x1.FFFFFFFFFFFFCp+62); + + test__floattidf(make_ti(0x8000008000000000, 0), -0x1.FFFFFEp+126); + test__floattidf(make_ti(0x8000000000000800, 0), -0x1.FFFFFFFFFFFFEp+126); + test__floattidf(make_ti(0x8000010000000000, 0), -0x1.FFFFFCp+126); + test__floattidf(make_ti(0x8000000000001000, 0), -0x1.FFFFFFFFFFFFCp+126); + + test__floattidf(make_ti(0x8000000000000000, 0), -0x1.000000p+127); + test__floattidf(make_ti(0x8000000000000001, 0), -0x1.000000p+127); + + test__floattidf(0x0007FB72E8000000, 0x1.FEDCBAp+50); + + test__floattidf(0x0007FB72EA000000, 0x1.FEDCBA8p+50); + test__floattidf(0x0007FB72EB000000, 0x1.FEDCBACp+50); + test__floattidf(0x0007FB72EBFFFFFF, 0x1.FEDCBAFFFFFFCp+50); + test__floattidf(0x0007FB72EC000000, 0x1.FEDCBBp+50); + test__floattidf(0x0007FB72E8000001, 0x1.FEDCBA0000004p+50); + + test__floattidf(0x0007FB72E6000000, 0x1.FEDCB98p+50); + test__floattidf(0x0007FB72E7000000, 0x1.FEDCB9Cp+50); + test__floattidf(0x0007FB72E7FFFFFF, 0x1.FEDCB9FFFFFFCp+50); + test__floattidf(0x0007FB72E4000001, 0x1.FEDCB90000004p+50); + test__floattidf(0x0007FB72E4000000, 0x1.FEDCB9p+50); + + test__floattidf(0x023479FD0E092DC0, 0x1.1A3CFE870496Ep+57); + test__floattidf(0x023479FD0E092DA1, 0x1.1A3CFE870496Dp+57); + test__floattidf(0x023479FD0E092DB0, 0x1.1A3CFE870496Ep+57); + test__floattidf(0x023479FD0E092DB8, 0x1.1A3CFE870496Ep+57); + test__floattidf(0x023479FD0E092DB6, 0x1.1A3CFE870496Ep+57); + test__floattidf(0x023479FD0E092DBF, 0x1.1A3CFE870496Ep+57); + test__floattidf(0x023479FD0E092DC1, 0x1.1A3CFE870496Ep+57); + test__floattidf(0x023479FD0E092DC7, 0x1.1A3CFE870496Ep+57); + test__floattidf(0x023479FD0E092DC8, 0x1.1A3CFE870496Ep+57); + test__floattidf(0x023479FD0E092DCF, 0x1.1A3CFE870496Ep+57); + test__floattidf(0x023479FD0E092DD0, 0x1.1A3CFE870496Ep+57); + test__floattidf(0x023479FD0E092DD1, 0x1.1A3CFE870496Fp+57); + test__floattidf(0x023479FD0E092DD8, 0x1.1A3CFE870496Fp+57); + test__floattidf(0x023479FD0E092DDF, 0x1.1A3CFE870496Fp+57); + test__floattidf(0x023479FD0E092DE0, 0x1.1A3CFE870496Fp+57); + + test__floattidf(make_ti(0x023479FD0E092DC0, 0), 0x1.1A3CFE870496Ep+121); + test__floattidf(make_ti(0x023479FD0E092DA1, 1), 0x1.1A3CFE870496Dp+121); + test__floattidf(make_ti(0x023479FD0E092DB0, 2), 0x1.1A3CFE870496Ep+121); + test__floattidf(make_ti(0x023479FD0E092DB8, 3), 0x1.1A3CFE870496Ep+121); + test__floattidf(make_ti(0x023479FD0E092DB6, 4), 0x1.1A3CFE870496Ep+121); + test__floattidf(make_ti(0x023479FD0E092DBF, 5), 0x1.1A3CFE870496Ep+121); + test__floattidf(make_ti(0x023479FD0E092DC1, 6), 0x1.1A3CFE870496Ep+121); + test__floattidf(make_ti(0x023479FD0E092DC7, 7), 0x1.1A3CFE870496Ep+121); + test__floattidf(make_ti(0x023479FD0E092DC8, 8), 0x1.1A3CFE870496Ep+121); + test__floattidf(make_ti(0x023479FD0E092DCF, 9), 0x1.1A3CFE870496Ep+121); + test__floattidf(make_ti(0x023479FD0E092DD0, 0), 0x1.1A3CFE870496Ep+121); + test__floattidf(make_ti(0x023479FD0E092DD1, 11), 0x1.1A3CFE870496Fp+121); + test__floattidf(make_ti(0x023479FD0E092DD8, 12), 0x1.1A3CFE870496Fp+121); + test__floattidf(make_ti(0x023479FD0E092DDF, 13), 0x1.1A3CFE870496Fp+121); + test__floattidf(make_ti(0x023479FD0E092DE0, 14), 0x1.1A3CFE870496Fp+121); +} + +fn make_ti(high: u64, low: u64) i128 { + var result: u128 = high; + result <<= 64; + result |= low; + return @bitCast(i128, result); +} diff --git a/lib/std/special/compiler_rt/floattisf.zig b/lib/std/special/compiler_rt/floattisf.zig new file mode 100644 index 0000000000..f397d130ef --- /dev/null +++ b/lib/std/special/compiler_rt/floattisf.zig @@ -0,0 +1,71 @@ +const builtin = @import("builtin"); +const is_test = builtin.is_test; +const std = @import("std"); +const maxInt = std.math.maxInt; + +const FLT_MANT_DIG = 24; + +pub extern fn __floattisf(arg: i128) f32 { + @setRuntimeSafety(is_test); + + if (arg == 0) + return 0.0; + + var ai = arg; + const N: u32 = 128; + const si = ai >> @intCast(u7, (N - 1)); + ai = ((ai ^ si) -% si); + var a = @bitCast(u128, ai); + + const sd = @bitCast(i32, N - @clz(u128, a)); // number of significant digits + var e: i32 = sd - 1; // exponent + + if (sd > FLT_MANT_DIG) { + // start: 0000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQxxxxxxxxxxxxxxxxxx + // finish: 000000000000000000000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQR + // 12345678901234567890123456 + // 1 = msb 1 bit + // P = bit FLT_MANT_DIG-1 bits to the right of 1 + // Q = bit FLT_MANT_DIG bits to the right of 1 + // R = "or" of all bits to the right of Q + switch (sd) { + FLT_MANT_DIG + 1 => { + a <<= 1; + }, + FLT_MANT_DIG + 2 => {}, + else => { + const shift1_amt = @intCast(i32, sd - (FLT_MANT_DIG + 2)); + const shift1_amt_u7 = @intCast(u7, shift1_amt); + + const shift2_amt = @intCast(i32, N + (FLT_MANT_DIG + 2)) - sd; + const shift2_amt_u7 = @intCast(u7, shift2_amt); + + a = (a >> shift1_amt_u7) | @boolToInt((a & (@intCast(u128, maxInt(u128)) >> shift2_amt_u7)) != 0); + }, + } + // finish + a |= @boolToInt((a & 4) != 0); // Or P into R + a += 1; // round - this step may add a significant bit + a >>= 2; // dump Q and R + // a is now rounded to FLT_MANT_DIG or FLT_MANT_DIG+1 bits + if ((a & (u128(1) << FLT_MANT_DIG)) != 0) { + a >>= 1; + e += 1; + } + // a is now rounded to FLT_MANT_DIG bits + } else { + a <<= @intCast(u7, FLT_MANT_DIG - sd); + // a is now rounded to FLT_MANT_DIG bits + } + + const s = @bitCast(u128, arg) >> (128 - 32); + const r = (@intCast(u32, s) & 0x80000000) | // sign + (@intCast(u32, (e + 127)) << 23) | // exponent + (@truncate(u32, a) & 0x007fffff); // mantissa-high + + return @bitCast(f32, r); +} + +test "import floattisf" { + _ = @import("floattisf_test.zig"); +} diff --git a/lib/std/special/compiler_rt/floattisf_test.zig b/lib/std/special/compiler_rt/floattisf_test.zig new file mode 100644 index 0000000000..a6aa115307 --- /dev/null +++ b/lib/std/special/compiler_rt/floattisf_test.zig @@ -0,0 +1,60 @@ +const __floattisf = @import("floattisf.zig").__floattisf; +const testing = @import("std").testing; + +fn test__floattisf(a: i128, expected: f32) void { + const x = __floattisf(a); + testing.expect(x == expected); +} + +test "floattisf" { + test__floattisf(0, 0.0); + + test__floattisf(1, 1.0); + test__floattisf(2, 2.0); + test__floattisf(-1, -1.0); + test__floattisf(-2, -2.0); + + test__floattisf(0x7FFFFF8000000000, 0x1.FFFFFEp+62); + test__floattisf(0x7FFFFF0000000000, 0x1.FFFFFCp+62); + + test__floattisf(make_ti(0xFFFFFFFFFFFFFFFF, 0x8000008000000000), -0x1.FFFFFEp+62); + test__floattisf(make_ti(0xFFFFFFFFFFFFFFFF, 0x8000010000000000), -0x1.FFFFFCp+62); + + test__floattisf(make_ti(0xFFFFFFFFFFFFFFFF, 0x8000000000000000), -0x1.000000p+63); + test__floattisf(make_ti(0xFFFFFFFFFFFFFFFF, 0x8000000000000001), -0x1.000000p+63); + + test__floattisf(0x0007FB72E8000000, 0x1.FEDCBAp+50); + + test__floattisf(0x0007FB72EA000000, 0x1.FEDCBAp+50); + test__floattisf(0x0007FB72EB000000, 0x1.FEDCBAp+50); + test__floattisf(0x0007FB72EBFFFFFF, 0x1.FEDCBAp+50); + test__floattisf(0x0007FB72EC000000, 0x1.FEDCBCp+50); + test__floattisf(0x0007FB72E8000001, 0x1.FEDCBAp+50); + + test__floattisf(0x0007FB72E6000000, 0x1.FEDCBAp+50); + test__floattisf(0x0007FB72E7000000, 0x1.FEDCBAp+50); + test__floattisf(0x0007FB72E7FFFFFF, 0x1.FEDCBAp+50); + test__floattisf(0x0007FB72E4000001, 0x1.FEDCBAp+50); + test__floattisf(0x0007FB72E4000000, 0x1.FEDCB8p+50); + + test__floattisf(make_ti(0x0007FB72E8000000, 0), 0x1.FEDCBAp+114); + + test__floattisf(make_ti(0x0007FB72EA000000, 0), 0x1.FEDCBAp+114); + test__floattisf(make_ti(0x0007FB72EB000000, 0), 0x1.FEDCBAp+114); + test__floattisf(make_ti(0x0007FB72EBFFFFFF, 0), 0x1.FEDCBAp+114); + test__floattisf(make_ti(0x0007FB72EC000000, 0), 0x1.FEDCBCp+114); + test__floattisf(make_ti(0x0007FB72E8000001, 0), 0x1.FEDCBAp+114); + + test__floattisf(make_ti(0x0007FB72E6000000, 0), 0x1.FEDCBAp+114); + test__floattisf(make_ti(0x0007FB72E7000000, 0), 0x1.FEDCBAp+114); + test__floattisf(make_ti(0x0007FB72E7FFFFFF, 0), 0x1.FEDCBAp+114); + test__floattisf(make_ti(0x0007FB72E4000001, 0), 0x1.FEDCBAp+114); + test__floattisf(make_ti(0x0007FB72E4000000, 0), 0x1.FEDCB8p+114); +} + +fn make_ti(high: u64, low: u64) i128 { + var result: u128 = high; + result <<= 64; + result |= low; + return @bitCast(i128, result); +} diff --git a/lib/std/special/compiler_rt/floattitf.zig b/lib/std/special/compiler_rt/floattitf.zig new file mode 100644 index 0000000000..b05282e293 --- /dev/null +++ b/lib/std/special/compiler_rt/floattitf.zig @@ -0,0 +1,71 @@ +const builtin = @import("builtin"); +const is_test = builtin.is_test; +const std = @import("std"); +const maxInt = std.math.maxInt; + +const LDBL_MANT_DIG = 113; + +pub extern fn __floattitf(arg: i128) f128 { + @setRuntimeSafety(is_test); + + if (arg == 0) + return 0.0; + + var ai = arg; + const N: u32 = 128; + const si = ai >> @intCast(u7, (N - 1)); + ai = ((ai ^ si) -% si); + var a = @bitCast(u128, ai); + + const sd = @bitCast(i32, N - @clz(u128, a)); // number of significant digits + var e: i32 = sd - 1; // exponent + if (sd > LDBL_MANT_DIG) { + // start: 0000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQxxxxxxxxxxxxxxxxxx + // finish: 000000000000000000000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQR + // 12345678901234567890123456 + // 1 = msb 1 bit + // P = bit LDBL_MANT_DIG-1 bits to the right of 1 + // Q = bit LDBL_MANT_DIG bits to the right of 1 + // R = "or" of all bits to the right of Q + switch (sd) { + LDBL_MANT_DIG + 1 => { + a <<= 1; + }, + LDBL_MANT_DIG + 2 => {}, + else => { + const shift1_amt = @intCast(i32, sd - (LDBL_MANT_DIG + 2)); + const shift1_amt_u7 = @intCast(u7, shift1_amt); + + const shift2_amt = @intCast(i32, N + (LDBL_MANT_DIG + 2)) - sd; + const shift2_amt_u7 = @intCast(u7, shift2_amt); + + a = (a >> shift1_amt_u7) | @boolToInt((a & (@intCast(u128, maxInt(u128)) >> shift2_amt_u7)) != 0); + }, + } + // finish + a |= @boolToInt((a & 4) != 0); // Or P into R + a += 1; // round - this step may add a significant bit + a >>= 2; // dump Q and R + // a is now rounded to LDBL_MANT_DIG or LDBL_MANT_DIG+1 bits + if ((a & (u128(1) << LDBL_MANT_DIG)) != 0) { + a >>= 1; + e += 1; + } + // a is now rounded to LDBL_MANT_DIG bits + } else { + a <<= @intCast(u7, LDBL_MANT_DIG - sd); + // a is now rounded to LDBL_MANT_DIG bits + } + + const s = @bitCast(u128, arg) >> (128 - 64); + const high: u128 = (@intCast(u64, s) & 0x8000000000000000) | // sign + (@intCast(u64, (e + 16383)) << 48) | // exponent + (@truncate(u64, a >> 64) & 0x0000ffffffffffff); // mantissa-high + const low = @truncate(u64, a); // mantissa-low + + return @bitCast(f128, low | (high << 64)); +} + +test "import floattitf" { + _ = @import("floattitf_test.zig"); +} diff --git a/lib/std/special/compiler_rt/floattitf_test.zig b/lib/std/special/compiler_rt/floattitf_test.zig new file mode 100644 index 0000000000..53e3e48bdb --- /dev/null +++ b/lib/std/special/compiler_rt/floattitf_test.zig @@ -0,0 +1,96 @@ +const __floattitf = @import("floattitf.zig").__floattitf; +const testing = @import("std").testing; + +fn test__floattitf(a: i128, expected: f128) void { + const x = __floattitf(a); + testing.expect(x == expected); +} + +test "floattitf" { + test__floattitf(0, 0.0); + + test__floattitf(1, 1.0); + test__floattitf(2, 2.0); + test__floattitf(20, 20.0); + test__floattitf(-1, -1.0); + test__floattitf(-2, -2.0); + test__floattitf(-20, -20.0); + + test__floattitf(0x7FFFFF8000000000, 0x1.FFFFFEp+62); + test__floattitf(0x7FFFFFFFFFFFF800, 0x1.FFFFFFFFFFFFEp+62); + test__floattitf(0x7FFFFF0000000000, 0x1.FFFFFCp+62); + test__floattitf(0x7FFFFFFFFFFFF000, 0x1.FFFFFFFFFFFFCp+62); + + test__floattitf(make_ti(0x8000008000000000, 0), -0x1.FFFFFEp+126); + test__floattitf(make_ti(0x8000000000000800, 0), -0x1.FFFFFFFFFFFFEp+126); + test__floattitf(make_ti(0x8000010000000000, 0), -0x1.FFFFFCp+126); + test__floattitf(make_ti(0x8000000000001000, 0), -0x1.FFFFFFFFFFFFCp+126); + + test__floattitf(make_ti(0x8000000000000000, 0), -0x1.000000p+127); + test__floattitf(make_ti(0x8000000000000001, 0), -0x1.FFFFFFFFFFFFFFFCp+126); + + test__floattitf(0x0007FB72E8000000, 0x1.FEDCBAp+50); + + test__floattitf(0x0007FB72EA000000, 0x1.FEDCBA8p+50); + test__floattitf(0x0007FB72EB000000, 0x1.FEDCBACp+50); + test__floattitf(0x0007FB72EBFFFFFF, 0x1.FEDCBAFFFFFFCp+50); + test__floattitf(0x0007FB72EC000000, 0x1.FEDCBBp+50); + test__floattitf(0x0007FB72E8000001, 0x1.FEDCBA0000004p+50); + + test__floattitf(0x0007FB72E6000000, 0x1.FEDCB98p+50); + test__floattitf(0x0007FB72E7000000, 0x1.FEDCB9Cp+50); + test__floattitf(0x0007FB72E7FFFFFF, 0x1.FEDCB9FFFFFFCp+50); + test__floattitf(0x0007FB72E4000001, 0x1.FEDCB90000004p+50); + test__floattitf(0x0007FB72E4000000, 0x1.FEDCB9p+50); + + test__floattitf(0x023479FD0E092DC0, 0x1.1A3CFE870496Ep+57); + test__floattitf(0x023479FD0E092DA1, 0x1.1A3CFE870496D08p+57); + test__floattitf(0x023479FD0E092DB0, 0x1.1A3CFE870496D8p+57); + test__floattitf(0x023479FD0E092DB8, 0x1.1A3CFE870496DCp+57); + test__floattitf(0x023479FD0E092DB6, 0x1.1A3CFE870496DBp+57); + test__floattitf(0x023479FD0E092DBF, 0x1.1A3CFE870496DF8p+57); + test__floattitf(0x023479FD0E092DC1, 0x1.1A3CFE870496E08p+57); + test__floattitf(0x023479FD0E092DC7, 0x1.1A3CFE870496E38p+57); + test__floattitf(0x023479FD0E092DC8, 0x1.1A3CFE870496E4p+57); + test__floattitf(0x023479FD0E092DCF, 0x1.1A3CFE870496E78p+57); + test__floattitf(0x023479FD0E092DD0, 0x1.1A3CFE870496E8p+57); + test__floattitf(0x023479FD0E092DD1, 0x1.1A3CFE870496E88p+57); + test__floattitf(0x023479FD0E092DD8, 0x1.1A3CFE870496ECp+57); + test__floattitf(0x023479FD0E092DDF, 0x1.1A3CFE870496EF8p+57); + test__floattitf(0x023479FD0E092DE0, 0x1.1A3CFE870496Fp+57); + + test__floattitf(make_ti(0x023479FD0E092DC0, 0), 0x1.1A3CFE870496Ep+121); + test__floattitf(make_ti(0x023479FD0E092DA1, 1), 0x1.1A3CFE870496D08p+121); + test__floattitf(make_ti(0x023479FD0E092DB0, 2), 0x1.1A3CFE870496D8p+121); + test__floattitf(make_ti(0x023479FD0E092DB8, 3), 0x1.1A3CFE870496DCp+121); + test__floattitf(make_ti(0x023479FD0E092DB6, 4), 0x1.1A3CFE870496DBp+121); + test__floattitf(make_ti(0x023479FD0E092DBF, 5), 0x1.1A3CFE870496DF8p+121); + test__floattitf(make_ti(0x023479FD0E092DC1, 6), 0x1.1A3CFE870496E08p+121); + test__floattitf(make_ti(0x023479FD0E092DC7, 7), 0x1.1A3CFE870496E38p+121); + test__floattitf(make_ti(0x023479FD0E092DC8, 8), 0x1.1A3CFE870496E4p+121); + test__floattitf(make_ti(0x023479FD0E092DCF, 9), 0x1.1A3CFE870496E78p+121); + test__floattitf(make_ti(0x023479FD0E092DD0, 0), 0x1.1A3CFE870496E8p+121); + test__floattitf(make_ti(0x023479FD0E092DD1, 11), 0x1.1A3CFE870496E88p+121); + test__floattitf(make_ti(0x023479FD0E092DD8, 12), 0x1.1A3CFE870496ECp+121); + test__floattitf(make_ti(0x023479FD0E092DDF, 13), 0x1.1A3CFE870496EF8p+121); + test__floattitf(make_ti(0x023479FD0E092DE0, 14), 0x1.1A3CFE870496Fp+121); + + test__floattitf(make_ti(0, 0xFFFFFFFFFFFFFFFF), 0x1.FFFFFFFFFFFFFFFEp+63); + + test__floattitf(make_ti(0x123456789ABCDEF0, 0x123456789ABC2801), 0x1.23456789ABCDEF0123456789ABC3p+124); + test__floattitf(make_ti(0x123456789ABCDEF0, 0x123456789ABC3000), 0x1.23456789ABCDEF0123456789ABC3p+124); + test__floattitf(make_ti(0x123456789ABCDEF0, 0x123456789ABC37FF), 0x1.23456789ABCDEF0123456789ABC3p+124); + test__floattitf(make_ti(0x123456789ABCDEF0, 0x123456789ABC3800), 0x1.23456789ABCDEF0123456789ABC4p+124); + test__floattitf(make_ti(0x123456789ABCDEF0, 0x123456789ABC4000), 0x1.23456789ABCDEF0123456789ABC4p+124); + test__floattitf(make_ti(0x123456789ABCDEF0, 0x123456789ABC47FF), 0x1.23456789ABCDEF0123456789ABC4p+124); + test__floattitf(make_ti(0x123456789ABCDEF0, 0x123456789ABC4800), 0x1.23456789ABCDEF0123456789ABC4p+124); + test__floattitf(make_ti(0x123456789ABCDEF0, 0x123456789ABC4801), 0x1.23456789ABCDEF0123456789ABC5p+124); + test__floattitf(make_ti(0x123456789ABCDEF0, 0x123456789ABC57FF), 0x1.23456789ABCDEF0123456789ABC5p+124); +} + +fn make_ti(high: u64, low: u64) i128 { + var result: u128 = high; + result <<= 64; + result |= low; + return @bitCast(i128, result); +} diff --git a/lib/std/special/compiler_rt/floatundidf.zig b/lib/std/special/compiler_rt/floatundidf.zig new file mode 100644 index 0000000000..68759a2acd --- /dev/null +++ b/lib/std/special/compiler_rt/floatundidf.zig @@ -0,0 +1,24 @@ +const builtin = @import("builtin"); +const std = @import("std"); + +const twop52: f64 = 0x1.0p52; +const twop84: f64 = 0x1.0p84; +const twop84_plus_twop52: f64 = 0x1.00000001p84; + +pub extern fn __floatundidf(a: u64) f64 { + @setRuntimeSafety(builtin.is_test); + + if (a == 0) return 0; + + var high = @bitCast(u64, twop84); + var low = @bitCast(u64, twop52); + + high |= a >> 32; + low |= a & 0xFFFFFFFF; + + return (@bitCast(f64, high) - twop84_plus_twop52) + @bitCast(f64, low); +} + +test "import floatundidf" { + _ = @import("floatundidf_test.zig"); +} diff --git a/lib/std/special/compiler_rt/floatundidf_test.zig b/lib/std/special/compiler_rt/floatundidf_test.zig new file mode 100644 index 0000000000..084ada51c9 --- /dev/null +++ b/lib/std/special/compiler_rt/floatundidf_test.zig @@ -0,0 +1,50 @@ +const __floatundidf = @import("floatundidf.zig").__floatundidf; +const testing = @import("std").testing; + +fn test__floatundidf(a: u64, expected: f64) void { + const r = __floatundidf(a); + testing.expect(r == expected); +} + +test "floatundidf" { + test__floatundidf(0, 0.0); + test__floatundidf(1, 1.0); + test__floatundidf(2, 2.0); + test__floatundidf(20, 20.0); + test__floatundidf(0x7FFFFF8000000000, 0x1.FFFFFEp+62); + test__floatundidf(0x7FFFFFFFFFFFF800, 0x1.FFFFFFFFFFFFEp+62); + test__floatundidf(0x7FFFFF0000000000, 0x1.FFFFFCp+62); + test__floatundidf(0x7FFFFFFFFFFFF000, 0x1.FFFFFFFFFFFFCp+62); + test__floatundidf(0x8000008000000000, 0x1.000001p+63); + test__floatundidf(0x8000000000000800, 0x1.0000000000001p+63); + test__floatundidf(0x8000010000000000, 0x1.000002p+63); + test__floatundidf(0x8000000000001000, 0x1.0000000000002p+63); + test__floatundidf(0x8000000000000000, 0x1p+63); + test__floatundidf(0x8000000000000001, 0x1p+63); + test__floatundidf(0x0007FB72E8000000, 0x1.FEDCBAp+50); + test__floatundidf(0x0007FB72EA000000, 0x1.FEDCBA8p+50); + test__floatundidf(0x0007FB72EB000000, 0x1.FEDCBACp+50); + test__floatundidf(0x0007FB72EBFFFFFF, 0x1.FEDCBAFFFFFFCp+50); + test__floatundidf(0x0007FB72EC000000, 0x1.FEDCBBp+50); + test__floatundidf(0x0007FB72E8000001, 0x1.FEDCBA0000004p+50); + test__floatundidf(0x0007FB72E6000000, 0x1.FEDCB98p+50); + test__floatundidf(0x0007FB72E7000000, 0x1.FEDCB9Cp+50); + test__floatundidf(0x0007FB72E7FFFFFF, 0x1.FEDCB9FFFFFFCp+50); + test__floatundidf(0x0007FB72E4000001, 0x1.FEDCB90000004p+50); + test__floatundidf(0x0007FB72E4000000, 0x1.FEDCB9p+50); + test__floatundidf(0x023479FD0E092DC0, 0x1.1A3CFE870496Ep+57); + test__floatundidf(0x023479FD0E092DA1, 0x1.1A3CFE870496Dp+57); + test__floatundidf(0x023479FD0E092DB0, 0x1.1A3CFE870496Ep+57); + test__floatundidf(0x023479FD0E092DB8, 0x1.1A3CFE870496Ep+57); + test__floatundidf(0x023479FD0E092DB6, 0x1.1A3CFE870496Ep+57); + test__floatundidf(0x023479FD0E092DBF, 0x1.1A3CFE870496Ep+57); + test__floatundidf(0x023479FD0E092DC1, 0x1.1A3CFE870496Ep+57); + test__floatundidf(0x023479FD0E092DC7, 0x1.1A3CFE870496Ep+57); + test__floatundidf(0x023479FD0E092DC8, 0x1.1A3CFE870496Ep+57); + test__floatundidf(0x023479FD0E092DCF, 0x1.1A3CFE870496Ep+57); + test__floatundidf(0x023479FD0E092DD0, 0x1.1A3CFE870496Ep+57); + test__floatundidf(0x023479FD0E092DD1, 0x1.1A3CFE870496Fp+57); + test__floatundidf(0x023479FD0E092DD8, 0x1.1A3CFE870496Fp+57); + test__floatundidf(0x023479FD0E092DDF, 0x1.1A3CFE870496Fp+57); + test__floatundidf(0x023479FD0E092DE0, 0x1.1A3CFE870496Fp+57); +} diff --git a/lib/std/special/compiler_rt/floatunditf.zig b/lib/std/special/compiler_rt/floatunditf.zig new file mode 100644 index 0000000000..9af83a2b5d --- /dev/null +++ b/lib/std/special/compiler_rt/floatunditf.zig @@ -0,0 +1,28 @@ +const builtin = @import("builtin"); +const is_test = builtin.is_test; +const std = @import("std"); + +pub extern fn __floatunditf(a: u128) f128 { + @setRuntimeSafety(is_test); + + if (a == 0) { + return 0; + } + + const mantissa_bits = std.math.floatMantissaBits(f128); + const exponent_bits = std.math.floatExponentBits(f128); + const exponent_bias = (1 << (exponent_bits - 1)) - 1; + const implicit_bit = 1 << mantissa_bits; + + const exp = (u128.bit_count - 1) - @clz(u128, a); + const shift = mantissa_bits - @intCast(u7, exp); + + var result: u128 align(16) = (a << shift) ^ implicit_bit; + result += (@intCast(u128, exp) + exponent_bias) << mantissa_bits; + + return @bitCast(f128, result); +} + +test "import floatunditf" { + _ = @import("floatunditf_test.zig"); +} diff --git a/lib/std/special/compiler_rt/floatunditf_test.zig b/lib/std/special/compiler_rt/floatunditf_test.zig new file mode 100644 index 0000000000..5b4e195870 --- /dev/null +++ b/lib/std/special/compiler_rt/floatunditf_test.zig @@ -0,0 +1,32 @@ +const __floatunditf = @import("floatunditf.zig").__floatunditf; + +fn test__floatunditf(a: u128, expected_hi: u64, expected_lo: u64) void { + const x = __floatunditf(a); + + const x_repr = @bitCast(u128, x); + const x_hi = @intCast(u64, x_repr >> 64); + const x_lo = @truncate(u64, x_repr); + + if (x_hi == expected_hi and x_lo == expected_lo) { + return; + } + // nan repr + else if (expected_hi == 0x7fff800000000000 and expected_lo == 0x0) { + if ((x_hi & 0x7fff000000000000) == 0x7fff000000000000 and ((x_hi & 0xffffffffffff) > 0 or x_lo > 0)) { + return; + } + } + + @panic("__floatunditf test failure"); +} + +test "floatunditf" { + test__floatunditf(0xffffffffffffffff, 0x403effffffffffff, 0xfffe000000000000); + test__floatunditf(0xfffffffffffffffe, 0x403effffffffffff, 0xfffc000000000000); + test__floatunditf(0x8000000000000000, 0x403e000000000000, 0x0); + test__floatunditf(0x7fffffffffffffff, 0x403dffffffffffff, 0xfffc000000000000); + test__floatunditf(0x123456789abcdef1, 0x403b23456789abcd, 0xef10000000000000); + test__floatunditf(0x2, 0x4000000000000000, 0x0); + test__floatunditf(0x1, 0x3fff000000000000, 0x0); + test__floatunditf(0x0, 0x0, 0x0); +} diff --git a/lib/std/special/compiler_rt/floatunsidf.zig b/lib/std/special/compiler_rt/floatunsidf.zig new file mode 100644 index 0000000000..efeb4c2672 --- /dev/null +++ b/lib/std/special/compiler_rt/floatunsidf.zig @@ -0,0 +1,33 @@ +const builtin = @import("builtin"); +const std = @import("std"); +const maxInt = std.math.maxInt; + +const implicitBit = u64(1) << 52; + +pub extern fn __floatunsidf(arg: u32) f64 { + @setRuntimeSafety(builtin.is_test); + + if (arg == 0) return 0.0; + + // The exponent is the width of abs(a) + const exp = u64(31) - @clz(u32, arg); + // Shift a into the significand field and clear the implicit bit + const shift = @intCast(u6, 52 - exp); + const mant = u64(arg) << shift ^ implicitBit; + + return @bitCast(f64, mant | (exp + 1023) << 52); +} + +fn test_one_floatunsidf(a: u32, expected: u64) void { + const r = __floatunsidf(a); + std.testing.expect(@bitCast(u64, r) == expected); +} + +test "floatsidf" { + // Test the produced bit pattern + test_one_floatunsidf(0, 0x0000000000000000); + test_one_floatunsidf(1, 0x3ff0000000000000); + test_one_floatunsidf(0x7FFFFFFF, 0x41dfffffffc00000); + test_one_floatunsidf(@intCast(u32, 0x80000000), 0x41e0000000000000); + test_one_floatunsidf(@intCast(u32, 0xFFFFFFFF), 0x41efffffffe00000); +} diff --git a/lib/std/special/compiler_rt/floatunsitf.zig b/lib/std/special/compiler_rt/floatunsitf.zig new file mode 100644 index 0000000000..18397f8ad0 --- /dev/null +++ b/lib/std/special/compiler_rt/floatunsitf.zig @@ -0,0 +1,29 @@ +const builtin = @import("builtin"); +const is_test = builtin.is_test; +const std = @import("std"); + +pub extern fn __floatunsitf(a: u64) f128 { + @setRuntimeSafety(is_test); + + if (a == 0) { + return 0; + } + + const mantissa_bits = std.math.floatMantissaBits(f128); + const exponent_bits = std.math.floatExponentBits(f128); + const exponent_bias = (1 << (exponent_bits - 1)) - 1; + const implicit_bit = 1 << mantissa_bits; + + const exp = (u64.bit_count - 1) - @clz(u64, a); + const shift = mantissa_bits - @intCast(u7, exp); + + // TODO(#1148): @bitCast alignment error + var result align(16) = (@intCast(u128, a) << shift) ^ implicit_bit; + result += (@intCast(u128, exp) + exponent_bias) << mantissa_bits; + + return @bitCast(f128, result); +} + +test "import floatunsitf" { + _ = @import("floatunsitf_test.zig"); +} diff --git a/lib/std/special/compiler_rt/floatunsitf_test.zig b/lib/std/special/compiler_rt/floatunsitf_test.zig new file mode 100644 index 0000000000..52e4786903 --- /dev/null +++ b/lib/std/special/compiler_rt/floatunsitf_test.zig @@ -0,0 +1,28 @@ +const __floatunsitf = @import("floatunsitf.zig").__floatunsitf; + +fn test__floatunsitf(a: u64, expected_hi: u64, expected_lo: u64) void { + const x = __floatunsitf(a); + + const x_repr = @bitCast(u128, x); + const x_hi = @intCast(u64, x_repr >> 64); + const x_lo = @truncate(u64, x_repr); + + if (x_hi == expected_hi and x_lo == expected_lo) { + return; + } + // nan repr + else if (expected_hi == 0x7fff800000000000 and expected_lo == 0x0) { + if ((x_hi & 0x7fff000000000000) == 0x7fff000000000000 and ((x_hi & 0xffffffffffff) > 0 or x_lo > 0)) { + return; + } + } + + @panic("__floatunsitf test failure"); +} + +test "floatunsitf" { + test__floatunsitf(0x7fffffff, 0x401dfffffffc0000, 0x0); + test__floatunsitf(0, 0x0, 0x0); + test__floatunsitf(0xffffffff, 0x401efffffffe0000, 0x0); + test__floatunsitf(0x12345678, 0x401b234567800000, 0x0); +} diff --git a/lib/std/special/compiler_rt/floatuntidf.zig b/lib/std/special/compiler_rt/floatuntidf.zig new file mode 100644 index 0000000000..2cd38c7308 --- /dev/null +++ b/lib/std/special/compiler_rt/floatuntidf.zig @@ -0,0 +1,62 @@ +const builtin = @import("builtin"); +const is_test = builtin.is_test; +const std = @import("std"); +const maxInt = std.math.maxInt; + +const DBL_MANT_DIG = 53; + +pub extern fn __floatuntidf(arg: u128) f64 { + @setRuntimeSafety(is_test); + + if (arg == 0) + return 0.0; + + var a = arg; + const N: u32 = @sizeOf(u128) * 8; + const sd = @bitCast(i32, N - @clz(u128, a)); // number of significant digits + var e: i32 = sd - 1; // exponent + if (sd > DBL_MANT_DIG) { + // start: 0000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQxxxxxxxxxxxxxxxxxx + // finish: 000000000000000000000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQR + // 12345678901234567890123456 + // 1 = msb 1 bit + // P = bit DBL_MANT_DIG-1 bits to the right of 1 + // Q = bit DBL_MANT_DIG bits to the right of 1 + // R = "or" of all bits to the right of Q + switch (sd) { + DBL_MANT_DIG + 1 => { + a <<= 1; + }, + DBL_MANT_DIG + 2 => {}, + else => { + const shift_amt = @bitCast(i32, N + (DBL_MANT_DIG + 2)) - sd; + const shift_amt_u7 = @intCast(u7, shift_amt); + a = (a >> @intCast(u7, sd - (DBL_MANT_DIG + 2))) | + @boolToInt((a & (u128(maxInt(u128)) >> shift_amt_u7)) != 0); + }, + } + // finish + a |= @boolToInt((a & 4) != 0); // Or P into R + a += 1; // round - this step may add a significant bit + a >>= 2; // dump Q and R + // a is now rounded to DBL_MANT_DIG or DBL_MANT_DIG+1 bits + if ((a & (u128(1) << DBL_MANT_DIG)) != 0) { + a >>= 1; + e += 1; + } + // a is now rounded to DBL_MANT_DIG bits + } else { + a <<= @intCast(u7, DBL_MANT_DIG - sd); + // a is now rounded to DBL_MANT_DIG bits + } + + const high: u64 = @bitCast(u32, (e + 1023) << 20) | // exponent + (@truncate(u32, a >> 32) & 0x000FFFFF); // mantissa-high + const low = @truncate(u32, a); // mantissa-low + + return @bitCast(f64, low | (high << 32)); +} + +test "import floatuntidf" { + _ = @import("floatuntidf_test.zig"); +} diff --git a/lib/std/special/compiler_rt/floatuntidf_test.zig b/lib/std/special/compiler_rt/floatuntidf_test.zig new file mode 100644 index 0000000000..974f3e4be3 --- /dev/null +++ b/lib/std/special/compiler_rt/floatuntidf_test.zig @@ -0,0 +1,81 @@ +const __floatuntidf = @import("floatuntidf.zig").__floatuntidf; +const testing = @import("std").testing; + +fn test__floatuntidf(a: u128, expected: f64) void { + const x = __floatuntidf(a); + testing.expect(x == expected); +} + +test "floatuntidf" { + test__floatuntidf(0, 0.0); + + test__floatuntidf(1, 1.0); + test__floatuntidf(2, 2.0); + test__floatuntidf(20, 20.0); + + test__floatuntidf(0x7FFFFF8000000000, 0x1.FFFFFEp+62); + test__floatuntidf(0x7FFFFFFFFFFFF800, 0x1.FFFFFFFFFFFFEp+62); + test__floatuntidf(0x7FFFFF0000000000, 0x1.FFFFFCp+62); + test__floatuntidf(0x7FFFFFFFFFFFF000, 0x1.FFFFFFFFFFFFCp+62); + + test__floatuntidf(make_ti(0x8000008000000000, 0), 0x1.000001p+127); + test__floatuntidf(make_ti(0x8000000000000800, 0), 0x1.0000000000001p+127); + test__floatuntidf(make_ti(0x8000010000000000, 0), 0x1.000002p+127); + test__floatuntidf(make_ti(0x8000000000001000, 0), 0x1.0000000000002p+127); + + test__floatuntidf(make_ti(0x8000000000000000, 0), 0x1.000000p+127); + test__floatuntidf(make_ti(0x8000000000000001, 0), 0x1.0000000000000002p+127); + + test__floatuntidf(0x0007FB72E8000000, 0x1.FEDCBAp+50); + + test__floatuntidf(0x0007FB72EA000000, 0x1.FEDCBA8p+50); + test__floatuntidf(0x0007FB72EB000000, 0x1.FEDCBACp+50); + test__floatuntidf(0x0007FB72EBFFFFFF, 0x1.FEDCBAFFFFFFCp+50); + test__floatuntidf(0x0007FB72EC000000, 0x1.FEDCBBp+50); + test__floatuntidf(0x0007FB72E8000001, 0x1.FEDCBA0000004p+50); + + test__floatuntidf(0x0007FB72E6000000, 0x1.FEDCB98p+50); + test__floatuntidf(0x0007FB72E7000000, 0x1.FEDCB9Cp+50); + test__floatuntidf(0x0007FB72E7FFFFFF, 0x1.FEDCB9FFFFFFCp+50); + test__floatuntidf(0x0007FB72E4000001, 0x1.FEDCB90000004p+50); + test__floatuntidf(0x0007FB72E4000000, 0x1.FEDCB9p+50); + + test__floatuntidf(0x023479FD0E092DC0, 0x1.1A3CFE870496Ep+57); + test__floatuntidf(0x023479FD0E092DA1, 0x1.1A3CFE870496Dp+57); + test__floatuntidf(0x023479FD0E092DB0, 0x1.1A3CFE870496Ep+57); + test__floatuntidf(0x023479FD0E092DB8, 0x1.1A3CFE870496Ep+57); + test__floatuntidf(0x023479FD0E092DB6, 0x1.1A3CFE870496Ep+57); + test__floatuntidf(0x023479FD0E092DBF, 0x1.1A3CFE870496Ep+57); + test__floatuntidf(0x023479FD0E092DC1, 0x1.1A3CFE870496Ep+57); + test__floatuntidf(0x023479FD0E092DC7, 0x1.1A3CFE870496Ep+57); + test__floatuntidf(0x023479FD0E092DC8, 0x1.1A3CFE870496Ep+57); + test__floatuntidf(0x023479FD0E092DCF, 0x1.1A3CFE870496Ep+57); + test__floatuntidf(0x023479FD0E092DD0, 0x1.1A3CFE870496Ep+57); + test__floatuntidf(0x023479FD0E092DD1, 0x1.1A3CFE870496Fp+57); + test__floatuntidf(0x023479FD0E092DD8, 0x1.1A3CFE870496Fp+57); + test__floatuntidf(0x023479FD0E092DDF, 0x1.1A3CFE870496Fp+57); + test__floatuntidf(0x023479FD0E092DE0, 0x1.1A3CFE870496Fp+57); + + test__floatuntidf(make_ti(0x023479FD0E092DC0, 0), 0x1.1A3CFE870496Ep+121); + test__floatuntidf(make_ti(0x023479FD0E092DA1, 1), 0x1.1A3CFE870496Dp+121); + test__floatuntidf(make_ti(0x023479FD0E092DB0, 2), 0x1.1A3CFE870496Ep+121); + test__floatuntidf(make_ti(0x023479FD0E092DB8, 3), 0x1.1A3CFE870496Ep+121); + test__floatuntidf(make_ti(0x023479FD0E092DB6, 4), 0x1.1A3CFE870496Ep+121); + test__floatuntidf(make_ti(0x023479FD0E092DBF, 5), 0x1.1A3CFE870496Ep+121); + test__floatuntidf(make_ti(0x023479FD0E092DC1, 6), 0x1.1A3CFE870496Ep+121); + test__floatuntidf(make_ti(0x023479FD0E092DC7, 7), 0x1.1A3CFE870496Ep+121); + test__floatuntidf(make_ti(0x023479FD0E092DC8, 8), 0x1.1A3CFE870496Ep+121); + test__floatuntidf(make_ti(0x023479FD0E092DCF, 9), 0x1.1A3CFE870496Ep+121); + test__floatuntidf(make_ti(0x023479FD0E092DD0, 0), 0x1.1A3CFE870496Ep+121); + test__floatuntidf(make_ti(0x023479FD0E092DD1, 11), 0x1.1A3CFE870496Fp+121); + test__floatuntidf(make_ti(0x023479FD0E092DD8, 12), 0x1.1A3CFE870496Fp+121); + test__floatuntidf(make_ti(0x023479FD0E092DDF, 13), 0x1.1A3CFE870496Fp+121); + test__floatuntidf(make_ti(0x023479FD0E092DE0, 14), 0x1.1A3CFE870496Fp+121); +} + +fn make_ti(high: u64, low: u64) u128 { + var result: u128 = high; + result <<= 64; + result |= low; + return result; +} diff --git a/lib/std/special/compiler_rt/floatuntisf.zig b/lib/std/special/compiler_rt/floatuntisf.zig new file mode 100644 index 0000000000..1b42b267d9 --- /dev/null +++ b/lib/std/special/compiler_rt/floatuntisf.zig @@ -0,0 +1,61 @@ +const builtin = @import("builtin"); +const is_test = builtin.is_test; +const std = @import("std"); +const maxInt = std.math.maxInt; + +const FLT_MANT_DIG = 24; + +pub extern fn __floatuntisf(arg: u128) f32 { + @setRuntimeSafety(is_test); + + if (arg == 0) + return 0.0; + + var a = arg; + const N: u32 = @sizeOf(u128) * 8; + const sd = @bitCast(i32, N - @clz(u128, a)); // number of significant digits + var e: i32 = sd - 1; // exponent + if (sd > FLT_MANT_DIG) { + // start: 0000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQxxxxxxxxxxxxxxxxxx + // finish: 000000000000000000000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQR + // 12345678901234567890123456 + // 1 = msb 1 bit + // P = bit FLT_MANT_DIG-1 bits to the right of 1 + // Q = bit FLT_MANT_DIG bits to the right of 1 + // R = "or" of all bits to the right of Q + switch (sd) { + FLT_MANT_DIG + 1 => { + a <<= 1; + }, + FLT_MANT_DIG + 2 => {}, + else => { + const shift_amt = @bitCast(i32, N + (FLT_MANT_DIG + 2)) - sd; + const shift_amt_u7 = @intCast(u7, shift_amt); + a = (a >> @intCast(u7, sd - (FLT_MANT_DIG + 2))) | + @boolToInt((a & (u128(maxInt(u128)) >> shift_amt_u7)) != 0); + }, + } + // finish + a |= @boolToInt((a & 4) != 0); // Or P into R + a += 1; // round - this step may add a significant bit + a >>= 2; // dump Q and R + // a is now rounded to FLT_MANT_DIG or FLT_MANT_DIG+1 bits + if ((a & (u128(1) << FLT_MANT_DIG)) != 0) { + a >>= 1; + e += 1; + } + // a is now rounded to FLT_MANT_DIG bits + } else { + a <<= @intCast(u7, FLT_MANT_DIG - sd); + // a is now rounded to FLT_MANT_DIG bits + } + + const high = @bitCast(u32, (e + 127) << 23); // exponent + const low = @truncate(u32, a) & 0x007fffff; // mantissa + + return @bitCast(f32, high | low); +} + +test "import floatuntisf" { + _ = @import("floatuntisf_test.zig"); +} diff --git a/lib/std/special/compiler_rt/floatuntisf_test.zig b/lib/std/special/compiler_rt/floatuntisf_test.zig new file mode 100644 index 0000000000..3a97807066 --- /dev/null +++ b/lib/std/special/compiler_rt/floatuntisf_test.zig @@ -0,0 +1,72 @@ +const __floatuntisf = @import("floatuntisf.zig").__floatuntisf; +const testing = @import("std").testing; + +fn test__floatuntisf(a: u128, expected: f32) void { + const x = __floatuntisf(a); + testing.expect(x == expected); +} + +test "floatuntisf" { + test__floatuntisf(0, 0.0); + + test__floatuntisf(1, 1.0); + test__floatuntisf(2, 2.0); + test__floatuntisf(20, 20.0); + + test__floatuntisf(0x7FFFFF8000000000, 0x1.FFFFFEp+62); + test__floatuntisf(0x7FFFFF0000000000, 0x1.FFFFFCp+62); + + test__floatuntisf(make_ti(0x8000008000000000, 0), 0x1.000001p+127); + test__floatuntisf(make_ti(0x8000000000000800, 0), 0x1.0p+127); + test__floatuntisf(make_ti(0x8000010000000000, 0), 0x1.000002p+127); + + test__floatuntisf(make_ti(0x8000000000000000, 0), 0x1.000000p+127); + + test__floatuntisf(0x0007FB72E8000000, 0x1.FEDCBAp+50); + + test__floatuntisf(0x0007FB72EA000000, 0x1.FEDCBA8p+50); + test__floatuntisf(0x0007FB72EB000000, 0x1.FEDCBACp+50); + + test__floatuntisf(0x0007FB72EC000000, 0x1.FEDCBBp+50); + + test__floatuntisf(0x0007FB72E6000000, 0x1.FEDCB98p+50); + test__floatuntisf(0x0007FB72E7000000, 0x1.FEDCB9Cp+50); + test__floatuntisf(0x0007FB72E4000000, 0x1.FEDCB9p+50); + + test__floatuntisf(0xFFFFFFFFFFFFFFFE, 0x1p+64); + test__floatuntisf(0xFFFFFFFFFFFFFFFF, 0x1p+64); + + test__floatuntisf(0x0007FB72E8000000, 0x1.FEDCBAp+50); + + test__floatuntisf(0x0007FB72EA000000, 0x1.FEDCBAp+50); + test__floatuntisf(0x0007FB72EB000000, 0x1.FEDCBAp+50); + test__floatuntisf(0x0007FB72EBFFFFFF, 0x1.FEDCBAp+50); + test__floatuntisf(0x0007FB72EC000000, 0x1.FEDCBCp+50); + test__floatuntisf(0x0007FB72E8000001, 0x1.FEDCBAp+50); + + test__floatuntisf(0x0007FB72E6000000, 0x1.FEDCBAp+50); + test__floatuntisf(0x0007FB72E7000000, 0x1.FEDCBAp+50); + test__floatuntisf(0x0007FB72E7FFFFFF, 0x1.FEDCBAp+50); + test__floatuntisf(0x0007FB72E4000001, 0x1.FEDCBAp+50); + test__floatuntisf(0x0007FB72E4000000, 0x1.FEDCB8p+50); + + test__floatuntisf(make_ti(0x0000000000001FED, 0xCB90000000000001), 0x1.FEDCBAp+76); + test__floatuntisf(make_ti(0x0000000000001FED, 0xCBA0000000000000), 0x1.FEDCBAp+76); + test__floatuntisf(make_ti(0x0000000000001FED, 0xCBAFFFFFFFFFFFFF), 0x1.FEDCBAp+76); + test__floatuntisf(make_ti(0x0000000000001FED, 0xCBB0000000000000), 0x1.FEDCBCp+76); + test__floatuntisf(make_ti(0x0000000000001FED, 0xCBB0000000000001), 0x1.FEDCBCp+76); + test__floatuntisf(make_ti(0x0000000000001FED, 0xCBBFFFFFFFFFFFFF), 0x1.FEDCBCp+76); + test__floatuntisf(make_ti(0x0000000000001FED, 0xCBC0000000000000), 0x1.FEDCBCp+76); + test__floatuntisf(make_ti(0x0000000000001FED, 0xCBC0000000000001), 0x1.FEDCBCp+76); + test__floatuntisf(make_ti(0x0000000000001FED, 0xCBD0000000000000), 0x1.FEDCBCp+76); + test__floatuntisf(make_ti(0x0000000000001FED, 0xCBD0000000000001), 0x1.FEDCBEp+76); + test__floatuntisf(make_ti(0x0000000000001FED, 0xCBDFFFFFFFFFFFFF), 0x1.FEDCBEp+76); + test__floatuntisf(make_ti(0x0000000000001FED, 0xCBE0000000000000), 0x1.FEDCBEp+76); +} + +fn make_ti(high: u64, low: u64) u128 { + var result: u128 = high; + result <<= 64; + result |= low; + return result; +} diff --git a/lib/std/special/compiler_rt/floatuntitf.zig b/lib/std/special/compiler_rt/floatuntitf.zig new file mode 100644 index 0000000000..eddcf92efd --- /dev/null +++ b/lib/std/special/compiler_rt/floatuntitf.zig @@ -0,0 +1,62 @@ +const builtin = @import("builtin"); +const is_test = builtin.is_test; +const std = @import("std"); +const maxInt = std.math.maxInt; + +const LDBL_MANT_DIG = 113; + +pub extern fn __floatuntitf(arg: u128) f128 { + @setRuntimeSafety(is_test); + + if (arg == 0) + return 0.0; + + var a = arg; + const N: u32 = @sizeOf(u128) * 8; + const sd = @bitCast(i32, N - @clz(u128, a)); // number of significant digits + var e: i32 = sd - 1; // exponent + if (sd > LDBL_MANT_DIG) { + // start: 0000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQxxxxxxxxxxxxxxxxxx + // finish: 000000000000000000000000000000000000001xxxxxxxxxxxxxxxxxxxxxxPQR + // 12345678901234567890123456 + // 1 = msb 1 bit + // P = bit LDBL_MANT_DIG-1 bits to the right of 1 + // Q = bit LDBL_MANT_DIG bits to the right of 1 + // R = "or" of all bits to the right of Q + switch (sd) { + LDBL_MANT_DIG + 1 => { + a <<= 1; + }, + LDBL_MANT_DIG + 2 => {}, + else => { + const shift_amt = @bitCast(i32, N + (LDBL_MANT_DIG + 2)) - sd; + const shift_amt_u7 = @intCast(u7, shift_amt); + a = (a >> @intCast(u7, sd - (LDBL_MANT_DIG + 2))) | + @boolToInt((a & (u128(maxInt(u128)) >> shift_amt_u7)) != 0); + }, + } + // finish + a |= @boolToInt((a & 4) != 0); // Or P into R + a += 1; // round - this step may add a significant bit + a >>= 2; // dump Q and R + // a is now rounded to LDBL_MANT_DIG or LDBL_MANT_DIG+1 bits + if ((a & (u128(1) << LDBL_MANT_DIG)) != 0) { + a >>= 1; + e += 1; + } + // a is now rounded to LDBL_MANT_DIG bits + } else { + a <<= @intCast(u7, LDBL_MANT_DIG - sd); + // a is now rounded to LDBL_MANT_DIG bits + } + + const high: u128 = (@intCast(u64, (e + 16383)) << 48) | // exponent + (@truncate(u64, a >> 64) & 0x0000ffffffffffff); // mantissa-high + const low = @truncate(u64, a); // mantissa-low + + return @bitCast(f128, low | (high << 64)); +} + +test "import floatuntitf" { + _ = @import("floatuntitf_test.zig"); +} diff --git a/lib/std/special/compiler_rt/floatuntitf_test.zig b/lib/std/special/compiler_rt/floatuntitf_test.zig new file mode 100644 index 0000000000..09f3eabb3e --- /dev/null +++ b/lib/std/special/compiler_rt/floatuntitf_test.zig @@ -0,0 +1,99 @@ +const __floatuntitf = @import("floatuntitf.zig").__floatuntitf; +const testing = @import("std").testing; + +fn test__floatuntitf(a: u128, expected: f128) void { + const x = __floatuntitf(a); + testing.expect(x == expected); +} + +test "floatuntitf" { + test__floatuntitf(0, 0.0); + + test__floatuntitf(1, 1.0); + test__floatuntitf(2, 2.0); + test__floatuntitf(20, 20.0); + + test__floatuntitf(0x7FFFFF8000000000, 0x1.FFFFFEp+62); + test__floatuntitf(0x7FFFFFFFFFFFF800, 0x1.FFFFFFFFFFFFEp+62); + test__floatuntitf(0x7FFFFF0000000000, 0x1.FFFFFCp+62); + test__floatuntitf(0x7FFFFFFFFFFFF000, 0x1.FFFFFFFFFFFFCp+62); + test__floatuntitf(0x7FFFFFFFFFFFFFFF, 0xF.FFFFFFFFFFFFFFEp+59); + test__floatuntitf(0xFFFFFFFFFFFFFFFE, 0xF.FFFFFFFFFFFFFFEp+60); + test__floatuntitf(0xFFFFFFFFFFFFFFFF, 0xF.FFFFFFFFFFFFFFFp+60); + + test__floatuntitf(0x8000008000000000, 0x8.000008p+60); + test__floatuntitf(0x8000000000000800, 0x8.0000000000008p+60); + test__floatuntitf(0x8000010000000000, 0x8.00001p+60); + test__floatuntitf(0x8000000000001000, 0x8.000000000001p+60); + + test__floatuntitf(0x8000000000000000, 0x8p+60); + test__floatuntitf(0x8000000000000001, 0x8.000000000000001p+60); + + test__floatuntitf(0x0007FB72E8000000, 0x1.FEDCBAp+50); + + test__floatuntitf(0x0007FB72EA000000, 0x1.FEDCBA8p+50); + test__floatuntitf(0x0007FB72EB000000, 0x1.FEDCBACp+50); + test__floatuntitf(0x0007FB72EBFFFFFF, 0x1.FEDCBAFFFFFFCp+50); + test__floatuntitf(0x0007FB72EC000000, 0x1.FEDCBBp+50); + test__floatuntitf(0x0007FB72E8000001, 0x1.FEDCBA0000004p+50); + + test__floatuntitf(0x0007FB72E6000000, 0x1.FEDCB98p+50); + test__floatuntitf(0x0007FB72E7000000, 0x1.FEDCB9Cp+50); + test__floatuntitf(0x0007FB72E7FFFFFF, 0x1.FEDCB9FFFFFFCp+50); + test__floatuntitf(0x0007FB72E4000001, 0x1.FEDCB90000004p+50); + test__floatuntitf(0x0007FB72E4000000, 0x1.FEDCB9p+50); + + test__floatuntitf(0x023479FD0E092DC0, 0x1.1A3CFE870496Ep+57); + test__floatuntitf(0x023479FD0E092DA1, 0x1.1A3CFE870496D08p+57); + test__floatuntitf(0x023479FD0E092DB0, 0x1.1A3CFE870496D8p+57); + test__floatuntitf(0x023479FD0E092DB8, 0x1.1A3CFE870496DCp+57); + test__floatuntitf(0x023479FD0E092DB6, 0x1.1A3CFE870496DBp+57); + test__floatuntitf(0x023479FD0E092DBF, 0x1.1A3CFE870496DF8p+57); + test__floatuntitf(0x023479FD0E092DC1, 0x1.1A3CFE870496E08p+57); + test__floatuntitf(0x023479FD0E092DC7, 0x1.1A3CFE870496E38p+57); + test__floatuntitf(0x023479FD0E092DC8, 0x1.1A3CFE870496E4p+57); + test__floatuntitf(0x023479FD0E092DCF, 0x1.1A3CFE870496E78p+57); + test__floatuntitf(0x023479FD0E092DD0, 0x1.1A3CFE870496E8p+57); + test__floatuntitf(0x023479FD0E092DD1, 0x1.1A3CFE870496E88p+57); + test__floatuntitf(0x023479FD0E092DD8, 0x1.1A3CFE870496ECp+57); + test__floatuntitf(0x023479FD0E092DDF, 0x1.1A3CFE870496EF8p+57); + test__floatuntitf(0x023479FD0E092DE0, 0x1.1A3CFE870496Fp+57); + + test__floatuntitf(make_ti(0x023479FD0E092DC0, 0), 0x1.1A3CFE870496Ep+121); + test__floatuntitf(make_ti(0x023479FD0E092DA1, 1), 0x1.1A3CFE870496D08p+121); + test__floatuntitf(make_ti(0x023479FD0E092DB0, 2), 0x1.1A3CFE870496D8p+121); + test__floatuntitf(make_ti(0x023479FD0E092DB8, 3), 0x1.1A3CFE870496DCp+121); + test__floatuntitf(make_ti(0x023479FD0E092DB6, 4), 0x1.1A3CFE870496DBp+121); + test__floatuntitf(make_ti(0x023479FD0E092DBF, 5), 0x1.1A3CFE870496DF8p+121); + test__floatuntitf(make_ti(0x023479FD0E092DC1, 6), 0x1.1A3CFE870496E08p+121); + test__floatuntitf(make_ti(0x023479FD0E092DC7, 7), 0x1.1A3CFE870496E38p+121); + test__floatuntitf(make_ti(0x023479FD0E092DC8, 8), 0x1.1A3CFE870496E4p+121); + test__floatuntitf(make_ti(0x023479FD0E092DCF, 9), 0x1.1A3CFE870496E78p+121); + test__floatuntitf(make_ti(0x023479FD0E092DD0, 0), 0x1.1A3CFE870496E8p+121); + test__floatuntitf(make_ti(0x023479FD0E092DD1, 11), 0x1.1A3CFE870496E88p+121); + test__floatuntitf(make_ti(0x023479FD0E092DD8, 12), 0x1.1A3CFE870496ECp+121); + test__floatuntitf(make_ti(0x023479FD0E092DDF, 13), 0x1.1A3CFE870496EF8p+121); + test__floatuntitf(make_ti(0x023479FD0E092DE0, 14), 0x1.1A3CFE870496Fp+121); + + test__floatuntitf(make_ti(0, 0xFFFFFFFFFFFFFFFF), 0x1.FFFFFFFFFFFFFFFEp+63); + + test__floatuntitf(make_ti(0xFFFFFFFFFFFFFFFF, 0x0000000000000000), 0x1.FFFFFFFFFFFFFFFEp+127); + test__floatuntitf(make_ti(0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF), 0x1.0000000000000000p+128); + + test__floatuntitf(make_ti(0x123456789ABCDEF0, 0x123456789ABC2801), 0x1.23456789ABCDEF0123456789ABC3p+124); + test__floatuntitf(make_ti(0x123456789ABCDEF0, 0x123456789ABC3000), 0x1.23456789ABCDEF0123456789ABC3p+124); + test__floatuntitf(make_ti(0x123456789ABCDEF0, 0x123456789ABC37FF), 0x1.23456789ABCDEF0123456789ABC3p+124); + test__floatuntitf(make_ti(0x123456789ABCDEF0, 0x123456789ABC3800), 0x1.23456789ABCDEF0123456789ABC4p+124); + test__floatuntitf(make_ti(0x123456789ABCDEF0, 0x123456789ABC4000), 0x1.23456789ABCDEF0123456789ABC4p+124); + test__floatuntitf(make_ti(0x123456789ABCDEF0, 0x123456789ABC47FF), 0x1.23456789ABCDEF0123456789ABC4p+124); + test__floatuntitf(make_ti(0x123456789ABCDEF0, 0x123456789ABC4800), 0x1.23456789ABCDEF0123456789ABC4p+124); + test__floatuntitf(make_ti(0x123456789ABCDEF0, 0x123456789ABC4801), 0x1.23456789ABCDEF0123456789ABC5p+124); + test__floatuntitf(make_ti(0x123456789ABCDEF0, 0x123456789ABC57FF), 0x1.23456789ABCDEF0123456789ABC5p+124); +} + +fn make_ti(high: u64, low: u64) u128 { + var result: u128 = high; + result <<= 64; + result |= low; + return result; +} diff --git a/lib/std/special/compiler_rt/lshrti3.zig b/lib/std/special/compiler_rt/lshrti3.zig new file mode 100644 index 0000000000..329968ae40 --- /dev/null +++ b/lib/std/special/compiler_rt/lshrti3.zig @@ -0,0 +1,41 @@ +const builtin = @import("builtin"); +const compiler_rt = @import("../compiler_rt.zig"); + +pub extern fn __lshrti3(a: i128, b: i32) i128 { + var input = twords{ .all = a }; + var result: twords = undefined; + + if (b > 63) { + // 64 <= b < 128 + result.s.low = input.s.high >> @intCast(u6, b - 64); + result.s.high = 0; + } else { + // 0 <= b < 64 + if (b == 0) return a; + result.s.low = input.s.high << @intCast(u6, 64 - b); + result.s.low |= input.s.low >> @intCast(u6, b); + result.s.high = input.s.high >> @intCast(u6, b); + } + + return result.all; +} + +const twords = extern union { + all: i128, + s: S, + + const S = if (builtin.endian == builtin.Endian.Little) + struct { + low: u64, + high: u64, + } + else + struct { + high: u64, + low: u64, + }; +}; + +test "import lshrti3" { + _ = @import("lshrti3_test.zig"); +} diff --git a/lib/std/special/compiler_rt/lshrti3_test.zig b/lib/std/special/compiler_rt/lshrti3_test.zig new file mode 100644 index 0000000000..60f83d816e --- /dev/null +++ b/lib/std/special/compiler_rt/lshrti3_test.zig @@ -0,0 +1,46 @@ +const __lshrti3 = @import("lshrti3.zig").__lshrti3; +const testing = @import("std").testing; + +fn test__lshrti3(a: i128, b: i32, expected: i128) void { + const x = __lshrti3(a, b); + testing.expect(x == expected); +} + +test "lshrti3" { + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 0, @bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 1, @bitCast(i128, @intCast(u128, 0x7F6E5D4C3B2A190AFF6E5D4C3B2A190A))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 2, @bitCast(i128, @intCast(u128, 0x3FB72EA61D950C857FB72EA61D950C85))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 3, @bitCast(i128, @intCast(u128, 0x1FDB97530ECA8642BFDB97530ECA8642))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 4, @bitCast(i128, @intCast(u128, 0x0FEDCBA9876543215FEDCBA987654321))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 28, @bitCast(i128, @intCast(u128, 0x0000000FEDCBA9876543215FEDCBA987))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 29, @bitCast(i128, @intCast(u128, 0x00000007F6E5D4C3B2A190AFF6E5D4C3))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 30, @bitCast(i128, @intCast(u128, 0x00000003FB72EA61D950C857FB72EA61))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 31, @bitCast(i128, @intCast(u128, 0x00000001FDB97530ECA8642BFDB97530))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 32, @bitCast(i128, @intCast(u128, 0x00000000FEDCBA9876543215FEDCBA98))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 33, @bitCast(i128, @intCast(u128, 0x000000007F6E5D4C3B2A190AFF6E5D4C))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 34, @bitCast(i128, @intCast(u128, 0x000000003FB72EA61D950C857FB72EA6))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 35, @bitCast(i128, @intCast(u128, 0x000000001FDB97530ECA8642BFDB9753))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 36, @bitCast(i128, @intCast(u128, 0x000000000FEDCBA9876543215FEDCBA9))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 60, @bitCast(i128, @intCast(u128, 0x000000000000000FEDCBA9876543215F))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 61, @bitCast(i128, @intCast(u128, 0x0000000000000007F6E5D4C3B2A190AF))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 62, @bitCast(i128, @intCast(u128, 0x0000000000000003FB72EA61D950C857))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 63, @bitCast(i128, @intCast(u128, 0x0000000000000001FDB97530ECA8642B))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 64, @bitCast(i128, @intCast(u128, 0x0000000000000000FEDCBA9876543215))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 65, @bitCast(i128, @intCast(u128, 0x00000000000000007F6E5D4C3B2A190A))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 66, @bitCast(i128, @intCast(u128, 0x00000000000000003FB72EA61D950C85))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 67, @bitCast(i128, @intCast(u128, 0x00000000000000001FDB97530ECA8642))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 68, @bitCast(i128, @intCast(u128, 0x00000000000000000FEDCBA987654321))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 92, @bitCast(i128, @intCast(u128, 0x00000000000000000000000FEDCBA987))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 93, @bitCast(i128, @intCast(u128, 0x000000000000000000000007F6E5D4C3))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 94, @bitCast(i128, @intCast(u128, 0x000000000000000000000003FB72EA61))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 95, @bitCast(i128, @intCast(u128, 0x000000000000000000000001FDB97530))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 96, @bitCast(i128, @intCast(u128, 0x000000000000000000000000FEDCBA98))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 97, @bitCast(i128, @intCast(u128, 0x0000000000000000000000007F6E5D4C))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 98, @bitCast(i128, @intCast(u128, 0x0000000000000000000000003FB72EA6))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 99, @bitCast(i128, @intCast(u128, 0x0000000000000000000000001FDB9753))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 100, @bitCast(i128, @intCast(u128, 0x0000000000000000000000000FEDCBA9))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 124, @bitCast(i128, @intCast(u128, 0x0000000000000000000000000000000F))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 125, @bitCast(i128, @intCast(u128, 0x00000000000000000000000000000007))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 126, @bitCast(i128, @intCast(u128, 0x00000000000000000000000000000003))); + test__lshrti3(@bitCast(i128, @intCast(u128, 0xFEDCBA9876543215FEDCBA9876543215)), 127, @bitCast(i128, @intCast(u128, 0x00000000000000000000000000000001))); +} diff --git a/lib/std/special/compiler_rt/modti3.zig b/lib/std/special/compiler_rt/modti3.zig new file mode 100644 index 0000000000..16f2f38ba3 --- /dev/null +++ b/lib/std/special/compiler_rt/modti3.zig @@ -0,0 +1,30 @@ +// Ported from: +// +// https://github.com/llvm/llvm-project/blob/2ffb1b0413efa9a24eb3c49e710e36f92e2cb50b/compiler-rt/lib/builtins/modti3.c + +const udivmod = @import("udivmod.zig").udivmod; +const builtin = @import("builtin"); +const compiler_rt = @import("../compiler_rt.zig"); + +pub extern fn __modti3(a: i128, b: i128) i128 { + @setRuntimeSafety(builtin.is_test); + + const s_a = a >> (i128.bit_count - 1); // s = a < 0 ? -1 : 0 + const s_b = b >> (i128.bit_count - 1); // s = b < 0 ? -1 : 0 + + const an = (a ^ s_a) -% s_a; // negate if s == -1 + const bn = (b ^ s_b) -% s_b; // negate if s == -1 + + var r: u128 = undefined; + _ = udivmod(u128, @bitCast(u128, an), @bitCast(u128, bn), &r); + return (@bitCast(i128, r) ^ s_a) -% s_a; // negate if s == -1 +} + +const v128 = @Vector(2, u64); +pub extern fn __modti3_windows_x86_64(a: v128, b: v128) v128 { + return @bitCast(v128, @inlineCall(__modti3, @bitCast(i128, a), @bitCast(i128, b))); +} + +test "import modti3" { + _ = @import("modti3_test.zig"); +} diff --git a/lib/std/special/compiler_rt/modti3_test.zig b/lib/std/special/compiler_rt/modti3_test.zig new file mode 100644 index 0000000000..10f81d59d2 --- /dev/null +++ b/lib/std/special/compiler_rt/modti3_test.zig @@ -0,0 +1,37 @@ +const __modti3 = @import("modti3.zig").__modti3; +const testing = @import("std").testing; + +fn test__modti3(a: i128, b: i128, expected: i128) void { + const x = __modti3(a, b); + testing.expect(x == expected); +} + +test "modti3" { + test__modti3(0, 1, 0); + test__modti3(0, -1, 0); + test__modti3(5, 3, 2); + test__modti3(5, -3, 2); + test__modti3(-5, 3, -2); + test__modti3(-5, -3, -2); + + test__modti3(0x8000000000000000, 1, 0x0); + test__modti3(0x8000000000000000, -1, 0x0); + test__modti3(0x8000000000000000, 2, 0x0); + test__modti3(0x8000000000000000, -2, 0x0); + test__modti3(0x8000000000000000, 3, 2); + test__modti3(0x8000000000000000, -3, 2); + + test__modti3(make_ti(0x8000000000000000, 0), 1, 0x0); + test__modti3(make_ti(0x8000000000000000, 0), -1, 0x0); + test__modti3(make_ti(0x8000000000000000, 0), 2, 0x0); + test__modti3(make_ti(0x8000000000000000, 0), -2, 0x0); + test__modti3(make_ti(0x8000000000000000, 0), 3, -2); + test__modti3(make_ti(0x8000000000000000, 0), -3, -2); +} + +fn make_ti(high: u64, low: u64) i128 { + var result: u128 = high; + result <<= 64; + result |= low; + return @bitCast(i128, result); +} diff --git a/lib/std/special/compiler_rt/mulXf3.zig b/lib/std/special/compiler_rt/mulXf3.zig new file mode 100644 index 0000000000..51d40ad26f --- /dev/null +++ b/lib/std/special/compiler_rt/mulXf3.zig @@ -0,0 +1,289 @@ +// Ported from: +// +// https://github.com/llvm/llvm-project/blob/2ffb1b0413efa9a24eb3c49e710e36f92e2cb50b/compiler-rt/lib/builtins/fp_mul_impl.inc + +const std = @import("std"); +const builtin = @import("builtin"); +const compiler_rt = @import("../compiler_rt.zig"); + +pub extern fn __multf3(a: f128, b: f128) f128 { + return mulXf3(f128, a, b); +} +pub extern fn __muldf3(a: f64, b: f64) f64 { + return mulXf3(f64, a, b); +} +pub extern fn __mulsf3(a: f32, b: f32) f32 { + return mulXf3(f32, a, b); +} + +fn mulXf3(comptime T: type, a: T, b: T) T { + @setRuntimeSafety(builtin.is_test); + const Z = @IntType(false, T.bit_count); + + const typeWidth = T.bit_count; + const significandBits = std.math.floatMantissaBits(T); + const exponentBits = std.math.floatExponentBits(T); + + const signBit = (Z(1) << (significandBits + exponentBits)); + const maxExponent = ((1 << exponentBits) - 1); + const exponentBias = (maxExponent >> 1); + + const implicitBit = (Z(1) << significandBits); + const quietBit = implicitBit >> 1; + const significandMask = implicitBit - 1; + + const absMask = signBit - 1; + const exponentMask = absMask ^ significandMask; + const qnanRep = exponentMask | quietBit; + const infRep = @bitCast(Z, std.math.inf(T)); + + const aExponent = @truncate(u32, (@bitCast(Z, a) >> significandBits) & maxExponent); + const bExponent = @truncate(u32, (@bitCast(Z, b) >> significandBits) & maxExponent); + const productSign: Z = (@bitCast(Z, a) ^ @bitCast(Z, b)) & signBit; + + var aSignificand: Z = @bitCast(Z, a) & significandMask; + var bSignificand: Z = @bitCast(Z, b) & significandMask; + var scale: i32 = 0; + + // Detect if a or b is zero, denormal, infinity, or NaN. + if (aExponent -% 1 >= maxExponent -% 1 or bExponent -% 1 >= maxExponent -% 1) { + const aAbs: Z = @bitCast(Z, a) & absMask; + const bAbs: Z = @bitCast(Z, b) & absMask; + + // NaN * anything = qNaN + if (aAbs > infRep) return @bitCast(T, @bitCast(Z, a) | quietBit); + // anything * NaN = qNaN + if (bAbs > infRep) return @bitCast(T, @bitCast(Z, b) | quietBit); + + if (aAbs == infRep) { + // infinity * non-zero = +/- infinity + if (bAbs != 0) { + return @bitCast(T, aAbs | productSign); + } else { + // infinity * zero = NaN + return @bitCast(T, qnanRep); + } + } + + if (bAbs == infRep) { + //? non-zero * infinity = +/- infinity + if (aAbs != 0) { + return @bitCast(T, bAbs | productSign); + } else { + // zero * infinity = NaN + return @bitCast(T, qnanRep); + } + } + + // zero * anything = +/- zero + if (aAbs == 0) return @bitCast(T, productSign); + // anything * zero = +/- zero + if (bAbs == 0) return @bitCast(T, productSign); + + // one or both of a or b is denormal, the other (if applicable) is a + // normal number. Renormalize one or both of a and b, and set scale to + // include the necessary exponent adjustment. + if (aAbs < implicitBit) scale +%= normalize(T, &aSignificand); + if (bAbs < implicitBit) scale +%= normalize(T, &bSignificand); + } + + // Or in the implicit significand bit. (If we fell through from the + // denormal path it was already set by normalize( ), but setting it twice + // won't hurt anything.) + aSignificand |= implicitBit; + bSignificand |= implicitBit; + + // Get the significand of a*b. Before multiplying the significands, shift + // one of them left to left-align it in the field. Thus, the product will + // have (exponentBits + 2) integral digits, all but two of which must be + // zero. Normalizing this result is just a conditional left-shift by one + // and bumping the exponent accordingly. + var productHi: Z = undefined; + var productLo: Z = undefined; + wideMultiply(Z, aSignificand, bSignificand << exponentBits, &productHi, &productLo); + + var productExponent: i32 = @bitCast(i32, aExponent +% bExponent) -% exponentBias +% scale; + + // Normalize the significand, adjust exponent if needed. + if ((productHi & implicitBit) != 0) { + productExponent +%= 1; + } else { + productHi = (productHi << 1) | (productLo >> (typeWidth - 1)); + productLo = productLo << 1; + } + + // If we have overflowed the type, return +/- infinity. + if (productExponent >= maxExponent) return @bitCast(T, infRep | productSign); + + if (productExponent <= 0) { + // Result is denormal before rounding + // + // If the result is so small that it just underflows to zero, return + // a zero of the appropriate sign. Mathematically there is no need to + // handle this case separately, but we make it a special case to + // simplify the shift logic. + const shift: u32 = @truncate(u32, Z(1) -% @bitCast(u32, productExponent)); + if (shift >= typeWidth) return @bitCast(T, productSign); + + // Otherwise, shift the significand of the result so that the round + // bit is the high bit of productLo. + wideRightShiftWithSticky(Z, &productHi, &productLo, shift); + } else { + // Result is normal before rounding; insert the exponent. + productHi &= significandMask; + productHi |= Z(@bitCast(u32, productExponent)) << significandBits; + } + + // Insert the sign of the result: + productHi |= productSign; + + // Final rounding. The final result may overflow to infinity, or underflow + // to zero, but those are the correct results in those cases. We use the + // default IEEE-754 round-to-nearest, ties-to-even rounding mode. + if (productLo > signBit) productHi +%= 1; + if (productLo == signBit) productHi +%= productHi & 1; + return @bitCast(T, productHi); +} + +fn wideMultiply(comptime Z: type, a: Z, b: Z, hi: *Z, lo: *Z) void { + @setRuntimeSafety(builtin.is_test); + switch (Z) { + u32 => { + // 32x32 --> 64 bit multiply + const product = u64(a) * u64(b); + hi.* = @truncate(u32, product >> 32); + lo.* = @truncate(u32, product); + }, + u64 => { + const S = struct { + fn loWord(x: u64) u64 { + return @truncate(u32, x); + } + fn hiWord(x: u64) u64 { + return @truncate(u32, x >> 32); + } + }; + // 64x64 -> 128 wide multiply for platforms that don't have such an operation; + // many 64-bit platforms have this operation, but they tend to have hardware + // floating-point, so we don't bother with a special case for them here. + // Each of the component 32x32 -> 64 products + const plolo: u64 = S.loWord(a) * S.loWord(b); + const plohi: u64 = S.loWord(a) * S.hiWord(b); + const philo: u64 = S.hiWord(a) * S.loWord(b); + const phihi: u64 = S.hiWord(a) * S.hiWord(b); + // Sum terms that contribute to lo in a way that allows us to get the carry + const r0: u64 = S.loWord(plolo); + const r1: u64 = S.hiWord(plolo) +% S.loWord(plohi) +% S.loWord(philo); + lo.* = r0 +% (r1 << 32); + // Sum terms contributing to hi with the carry from lo + hi.* = S.hiWord(plohi) +% S.hiWord(philo) +% S.hiWord(r1) +% phihi; + }, + u128 => { + const Word_LoMask = u64(0x00000000ffffffff); + const Word_HiMask = u64(0xffffffff00000000); + const Word_FullMask = u64(0xffffffffffffffff); + const S = struct { + fn Word_1(x: u128) u64 { + return @truncate(u32, x >> 96); + } + fn Word_2(x: u128) u64 { + return @truncate(u32, x >> 64); + } + fn Word_3(x: u128) u64 { + return @truncate(u32, x >> 32); + } + fn Word_4(x: u128) u64 { + return @truncate(u32, x); + } + }; + // 128x128 -> 256 wide multiply for platforms that don't have such an operation; + // many 64-bit platforms have this operation, but they tend to have hardware + // floating-point, so we don't bother with a special case for them here. + + const product11: u64 = S.Word_1(a) * S.Word_1(b); + const product12: u64 = S.Word_1(a) * S.Word_2(b); + const product13: u64 = S.Word_1(a) * S.Word_3(b); + const product14: u64 = S.Word_1(a) * S.Word_4(b); + const product21: u64 = S.Word_2(a) * S.Word_1(b); + const product22: u64 = S.Word_2(a) * S.Word_2(b); + const product23: u64 = S.Word_2(a) * S.Word_3(b); + const product24: u64 = S.Word_2(a) * S.Word_4(b); + const product31: u64 = S.Word_3(a) * S.Word_1(b); + const product32: u64 = S.Word_3(a) * S.Word_2(b); + const product33: u64 = S.Word_3(a) * S.Word_3(b); + const product34: u64 = S.Word_3(a) * S.Word_4(b); + const product41: u64 = S.Word_4(a) * S.Word_1(b); + const product42: u64 = S.Word_4(a) * S.Word_2(b); + const product43: u64 = S.Word_4(a) * S.Word_3(b); + const product44: u64 = S.Word_4(a) * S.Word_4(b); + + const sum0: u128 = u128(product44); + const sum1: u128 = u128(product34) +% + u128(product43); + const sum2: u128 = u128(product24) +% + u128(product33) +% + u128(product42); + const sum3: u128 = u128(product14) +% + u128(product23) +% + u128(product32) +% + u128(product41); + const sum4: u128 = u128(product13) +% + u128(product22) +% + u128(product31); + const sum5: u128 = u128(product12) +% + u128(product21); + const sum6: u128 = u128(product11); + + const r0: u128 = (sum0 & Word_FullMask) +% + ((sum1 & Word_LoMask) << 32); + const r1: u128 = (sum0 >> 64) +% + ((sum1 >> 32) & Word_FullMask) +% + (sum2 & Word_FullMask) +% + ((sum3 << 32) & Word_HiMask); + + lo.* = r0 +% (r1 << 64); + hi.* = (r1 >> 64) +% + (sum1 >> 96) +% + (sum2 >> 64) +% + (sum3 >> 32) +% + sum4 +% + (sum5 << 32) +% + (sum6 << 64); + }, + else => @compileError("unsupported"), + } +} + +fn normalize(comptime T: type, significand: *@IntType(false, T.bit_count)) i32 { + @setRuntimeSafety(builtin.is_test); + const Z = @IntType(false, T.bit_count); + const significandBits = std.math.floatMantissaBits(T); + const implicitBit = Z(1) << significandBits; + + const shift = @clz(Z, significand.*) - @clz(Z, implicitBit); + significand.* <<= @intCast(std.math.Log2Int(Z), shift); + return 1 - shift; +} + +fn wideRightShiftWithSticky(comptime Z: type, hi: *Z, lo: *Z, count: u32) void { + @setRuntimeSafety(builtin.is_test); + const typeWidth = Z.bit_count; + const S = std.math.Log2Int(Z); + if (count < typeWidth) { + const sticky = @truncate(u8, lo.* << @intCast(S, typeWidth -% count)); + lo.* = (hi.* << @intCast(S, typeWidth -% count)) | (lo.* >> @intCast(S, count)) | sticky; + hi.* = hi.* >> @intCast(S, count); + } else if (count < 2 * typeWidth) { + const sticky = @truncate(u8, hi.* << @intCast(S, 2 * typeWidth -% count) | lo.*); + lo.* = hi.* >> @intCast(S, count -% typeWidth) | sticky; + hi.* = 0; + } else { + const sticky = @truncate(u8, hi.* | lo.*); + lo.* = sticky; + hi.* = 0; + } +} + +test "import mulXf3" { + _ = @import("mulXf3_test.zig"); +} diff --git a/lib/std/special/compiler_rt/mulXf3_test.zig b/lib/std/special/compiler_rt/mulXf3_test.zig new file mode 100644 index 0000000000..1c0c0fc043 --- /dev/null +++ b/lib/std/special/compiler_rt/mulXf3_test.zig @@ -0,0 +1,86 @@ +// Ported from: +// +// https://github.com/llvm/llvm-project/blob/2ffb1b0413efa9a24eb3c49e710e36f92e2cb50b/compiler-rt/test/builtins/Unit/multf3_test.c + +const qnan128 = @bitCast(f128, u128(0x7fff800000000000) << 64); +const inf128 = @bitCast(f128, u128(0x7fff000000000000) << 64); + +const __multf3 = @import("mulXf3.zig").__multf3; + +// return true if equal +// use two 64-bit integers intead of one 128-bit integer +// because 128-bit integer constant can't be assigned directly +fn compareResultLD(result: f128, expectedHi: u64, expectedLo: u64) bool { + const rep = @bitCast(u128, result); + const hi = @intCast(u64, rep >> 64); + const lo = @truncate(u64, rep); + + if (hi == expectedHi and lo == expectedLo) { + return true; + } + // test other possible NaN representation(signal NaN) + if (expectedHi == 0x7fff800000000000 and expectedLo == 0x0) { + if ((hi & 0x7fff000000000000) == 0x7fff000000000000 and + ((hi & 0xffffffffffff) > 0 or lo > 0)) + { + return true; + } + } + return false; +} + +fn test__multf3(a: f128, b: f128, expected_hi: u64, expected_lo: u64) void { + const x = __multf3(a, b); + + if (compareResultLD(x, expected_hi, expected_lo)) + return; + + @panic("__multf3 test failure"); +} + +fn makeNaN128(rand: u64) f128 { + const int_result = u128(0x7fff000000000000 | (rand & 0xffffffffffff)) << 64; + const float_result = @bitCast(f128, int_result); + return float_result; +} +test "multf3" { + // qNaN * any = qNaN + test__multf3(qnan128, 0x1.23456789abcdefp+5, 0x7fff800000000000, 0x0); + + // NaN * any = NaN + const a = makeNaN128(0x800030000000); + test__multf3(a, 0x1.23456789abcdefp+5, 0x7fff800000000000, 0x0); + // inf * any = inf + test__multf3(inf128, 0x1.23456789abcdefp+5, 0x7fff000000000000, 0x0); + + // any * any + test__multf3( + @bitCast(f128, u128(0x40042eab345678439abcdefea5678234)), + @bitCast(f128, u128(0x3ffeedcb34a235253948765432134675)), + 0x400423e7f9e3c9fc, + 0xd906c2c2a85777c4, + ); + + test__multf3( + @bitCast(f128, u128(0x3fcd353e45674d89abacc3a2ebf3ff50)), + @bitCast(f128, u128(0x3ff6ed8764648369535adf4be3214568)), + 0x3fc52a163c6223fc, + 0xc94c4bf0430768b4, + ); + + test__multf3( + 0x1.234425696abcad34a35eeffefdcbap+456, + 0x451.ed98d76e5d46e5f24323dff21ffp+600, + 0x44293a91de5e0e94, + 0xe8ed17cc2cdf64ac, + ); + + test__multf3( + @bitCast(f128, u128(0x3f154356473c82a9fabf2d22ace345df)), + @bitCast(f128, u128(0x3e38eda98765476743ab21da23d45679)), + 0x3d4f37c1a3137cae, + 0xfc6807048bc2836a, + ); + + test__multf3(0x1.23456734245345p-10000, 0x1.edcba524498724p-6497, 0x0, 0x0); +} diff --git a/lib/std/special/compiler_rt/muldi3.zig b/lib/std/special/compiler_rt/muldi3.zig new file mode 100644 index 0000000000..7700777c16 --- /dev/null +++ b/lib/std/special/compiler_rt/muldi3.zig @@ -0,0 +1,54 @@ +const builtin = @import("builtin"); + +// Ported from +// https://github.com/llvm/llvm-project/blob/llvmorg-9.0.0/compiler-rt/lib/builtins/muldi3.c + +const dwords = extern union { + all: i64, + s: switch (builtin.endian) { + .Little => extern struct { + low: u32, + high: u32, + }, + .Big => extern struct { + high: u32, + low: u32, + }, + }, +}; + +fn __muldsi3(a: u32, b: u32) i64 { + @setRuntimeSafety(builtin.is_test); + + const bits_in_word_2 = @sizeOf(i32) * 8 / 2; + const lower_mask = (~u32(0)) >> bits_in_word_2; + + var r: dwords = undefined; + r.s.low = (a & lower_mask) *% (b & lower_mask); + var t: u32 = r.s.low >> bits_in_word_2; + r.s.low &= lower_mask; + t += (a >> bits_in_word_2) *% (b & lower_mask); + r.s.low +%= (t & lower_mask) << bits_in_word_2; + r.s.high = t >> bits_in_word_2; + t = r.s.low >> bits_in_word_2; + r.s.low &= lower_mask; + t +%= (b >> bits_in_word_2) *% (a & lower_mask); + r.s.low +%= (t & lower_mask) << bits_in_word_2; + r.s.high +%= t >> bits_in_word_2; + r.s.high +%= (a >> bits_in_word_2) *% (b >> bits_in_word_2); + return r.all; +} + +pub extern fn __muldi3(a: i64, b: i64) i64 { + @setRuntimeSafety(builtin.is_test); + + const x = dwords{ .all = a }; + const y = dwords{ .all = b }; + var r = dwords{ .all = __muldsi3(x.s.low, y.s.low) }; + r.s.high +%= x.s.high *% y.s.low +% x.s.low *% y.s.high; + return r.all; +} + +test "import muldi3" { + _ = @import("muldi3_test.zig"); +} diff --git a/lib/std/special/compiler_rt/muldi3_test.zig b/lib/std/special/compiler_rt/muldi3_test.zig new file mode 100644 index 0000000000..db4daf1e1e --- /dev/null +++ b/lib/std/special/compiler_rt/muldi3_test.zig @@ -0,0 +1,51 @@ +const __muldi3 = @import("muldi3.zig").__muldi3; +const testing = @import("std").testing; + +fn test__muldi3(a: i64, b: i64, expected: i64) void { + const x = __muldi3(a, b); + testing.expect(x == expected); +} + +test "muldi3" { + test__muldi3(0, 0, 0); + test__muldi3(0, 1, 0); + test__muldi3(1, 0, 0); + test__muldi3(0, 10, 0); + test__muldi3(10, 0, 0); + test__muldi3(0, 81985529216486895, 0); + test__muldi3(81985529216486895, 0, 0); + + test__muldi3(0, -1, 0); + test__muldi3(-1, 0, 0); + test__muldi3(0, -10, 0); + test__muldi3(-10, 0, 0); + test__muldi3(0, -81985529216486895, 0); + test__muldi3(-81985529216486895, 0, 0); + + test__muldi3(1, 1, 1); + test__muldi3(1, 10, 10); + test__muldi3(10, 1, 10); + test__muldi3(1, 81985529216486895, 81985529216486895); + test__muldi3(81985529216486895, 1, 81985529216486895); + + test__muldi3(1, -1, -1); + test__muldi3(1, -10, -10); + test__muldi3(-10, 1, -10); + test__muldi3(1, -81985529216486895, -81985529216486895); + test__muldi3(-81985529216486895, 1, -81985529216486895); + + test__muldi3(3037000499, 3037000499, 9223372030926249001); + test__muldi3(-3037000499, 3037000499, -9223372030926249001); + test__muldi3(3037000499, -3037000499, -9223372030926249001); + test__muldi3(-3037000499, -3037000499, 9223372030926249001); + + test__muldi3(4398046511103, 2097152, 9223372036852678656); + test__muldi3(-4398046511103, 2097152, -9223372036852678656); + test__muldi3(4398046511103, -2097152, -9223372036852678656); + test__muldi3(-4398046511103, -2097152, 9223372036852678656); + + test__muldi3(2097152, 4398046511103, 9223372036852678656); + test__muldi3(-2097152, 4398046511103, -9223372036852678656); + test__muldi3(2097152, -4398046511103, -9223372036852678656); + test__muldi3(-2097152, -4398046511103, 9223372036852678656); +} diff --git a/lib/std/special/compiler_rt/mulodi4.zig b/lib/std/special/compiler_rt/mulodi4.zig new file mode 100644 index 0000000000..82e9ef3253 --- /dev/null +++ b/lib/std/special/compiler_rt/mulodi4.zig @@ -0,0 +1,44 @@ +const builtin = @import("builtin"); +const compiler_rt = @import("../compiler_rt.zig"); +const maxInt = std.math.maxInt; +const minInt = std.math.minInt; + +pub extern fn __mulodi4(a: i64, b: i64, overflow: *c_int) i64 { + @setRuntimeSafety(builtin.is_test); + + const min = @bitCast(i64, u64(1 << (i64.bit_count - 1))); + const max = ~min; + + overflow.* = 0; + const result = a *% b; + + // Edge cases + if (a == min) { + if (b != 0 and b != 1) overflow.* = 1; + return result; + } + if (b == min) { + if (a != 0 and a != 1) overflow.* = 1; + return result; + } + + // Take absolute value of a and b via abs(x) = (x^(x >> 63)) - (x >> 63). + const abs_a = (a ^ (a >> 63)) -% (a >> 63); + const abs_b = (b ^ (b >> 63)) -% (b >> 63); + + // Unitary magnitude, cannot have overflow + if (abs_a < 2 or abs_b < 2) return result; + + // Compare the signs of the operands + if ((a ^ b) >> 63 != 0) { + if (abs_a > @divTrunc(max, abs_b)) overflow.* = 1; + } else { + if (abs_a > @divTrunc(min, -abs_b)) overflow.* = 1; + } + + return result; +} + +test "import mulodi4" { + _ = @import("mulodi4_test.zig"); +} diff --git a/lib/std/special/compiler_rt/mulodi4_test.zig b/lib/std/special/compiler_rt/mulodi4_test.zig new file mode 100644 index 0000000000..7575c77044 --- /dev/null +++ b/lib/std/special/compiler_rt/mulodi4_test.zig @@ -0,0 +1,85 @@ +const __mulodi4 = @import("mulodi4.zig").__mulodi4; +const testing = @import("std").testing; + +fn test__mulodi4(a: i64, b: i64, expected: i64, expected_overflow: c_int) void { + var overflow: c_int = undefined; + const x = __mulodi4(a, b, &overflow); + testing.expect(overflow == expected_overflow and (expected_overflow != 0 or x == expected)); +} + +test "mulodi4" { + test__mulodi4(0, 0, 0, 0); + test__mulodi4(0, 1, 0, 0); + test__mulodi4(1, 0, 0, 0); + test__mulodi4(0, 10, 0, 0); + test__mulodi4(10, 0, 0, 0); + test__mulodi4(0, 81985529216486895, 0, 0); + test__mulodi4(81985529216486895, 0, 0, 0); + + test__mulodi4(0, -1, 0, 0); + test__mulodi4(-1, 0, 0, 0); + test__mulodi4(0, -10, 0, 0); + test__mulodi4(-10, 0, 0, 0); + test__mulodi4(0, -81985529216486895, 0, 0); + test__mulodi4(-81985529216486895, 0, 0, 0); + + test__mulodi4(1, 1, 1, 0); + test__mulodi4(1, 10, 10, 0); + test__mulodi4(10, 1, 10, 0); + test__mulodi4(1, 81985529216486895, 81985529216486895, 0); + test__mulodi4(81985529216486895, 1, 81985529216486895, 0); + + test__mulodi4(1, -1, -1, 0); + test__mulodi4(1, -10, -10, 0); + test__mulodi4(-10, 1, -10, 0); + test__mulodi4(1, -81985529216486895, -81985529216486895, 0); + test__mulodi4(-81985529216486895, 1, -81985529216486895, 0); + + test__mulodi4(3037000499, 3037000499, 9223372030926249001, 0); + test__mulodi4(-3037000499, 3037000499, -9223372030926249001, 0); + test__mulodi4(3037000499, -3037000499, -9223372030926249001, 0); + test__mulodi4(-3037000499, -3037000499, 9223372030926249001, 0); + + test__mulodi4(4398046511103, 2097152, 9223372036852678656, 0); + test__mulodi4(-4398046511103, 2097152, -9223372036852678656, 0); + test__mulodi4(4398046511103, -2097152, -9223372036852678656, 0); + test__mulodi4(-4398046511103, -2097152, 9223372036852678656, 0); + + test__mulodi4(2097152, 4398046511103, 9223372036852678656, 0); + test__mulodi4(-2097152, 4398046511103, -9223372036852678656, 0); + test__mulodi4(2097152, -4398046511103, -9223372036852678656, 0); + test__mulodi4(-2097152, -4398046511103, 9223372036852678656, 0); + + test__mulodi4(0x7FFFFFFFFFFFFFFF, -2, 2, 1); + test__mulodi4(-2, 0x7FFFFFFFFFFFFFFF, 2, 1); + test__mulodi4(0x7FFFFFFFFFFFFFFF, -1, @bitCast(i64, u64(0x8000000000000001)), 0); + test__mulodi4(-1, 0x7FFFFFFFFFFFFFFF, @bitCast(i64, u64(0x8000000000000001)), 0); + test__mulodi4(0x7FFFFFFFFFFFFFFF, 0, 0, 0); + test__mulodi4(0, 0x7FFFFFFFFFFFFFFF, 0, 0); + test__mulodi4(0x7FFFFFFFFFFFFFFF, 1, 0x7FFFFFFFFFFFFFFF, 0); + test__mulodi4(1, 0x7FFFFFFFFFFFFFFF, 0x7FFFFFFFFFFFFFFF, 0); + test__mulodi4(0x7FFFFFFFFFFFFFFF, 2, @bitCast(i64, u64(0x8000000000000001)), 1); + test__mulodi4(2, 0x7FFFFFFFFFFFFFFF, @bitCast(i64, u64(0x8000000000000001)), 1); + + test__mulodi4(@bitCast(i64, u64(0x8000000000000000)), -2, @bitCast(i64, u64(0x8000000000000000)), 1); + test__mulodi4(-2, @bitCast(i64, u64(0x8000000000000000)), @bitCast(i64, u64(0x8000000000000000)), 1); + test__mulodi4(@bitCast(i64, u64(0x8000000000000000)), -1, @bitCast(i64, u64(0x8000000000000000)), 1); + test__mulodi4(-1, @bitCast(i64, u64(0x8000000000000000)), @bitCast(i64, u64(0x8000000000000000)), 1); + test__mulodi4(@bitCast(i64, u64(0x8000000000000000)), 0, 0, 0); + test__mulodi4(0, @bitCast(i64, u64(0x8000000000000000)), 0, 0); + test__mulodi4(@bitCast(i64, u64(0x8000000000000000)), 1, @bitCast(i64, u64(0x8000000000000000)), 0); + test__mulodi4(1, @bitCast(i64, u64(0x8000000000000000)), @bitCast(i64, u64(0x8000000000000000)), 0); + test__mulodi4(@bitCast(i64, u64(0x8000000000000000)), 2, @bitCast(i64, u64(0x8000000000000000)), 1); + test__mulodi4(2, @bitCast(i64, u64(0x8000000000000000)), @bitCast(i64, u64(0x8000000000000000)), 1); + + test__mulodi4(@bitCast(i64, u64(0x8000000000000001)), -2, @bitCast(i64, u64(0x8000000000000001)), 1); + test__mulodi4(-2, @bitCast(i64, u64(0x8000000000000001)), @bitCast(i64, u64(0x8000000000000001)), 1); + test__mulodi4(@bitCast(i64, u64(0x8000000000000001)), -1, 0x7FFFFFFFFFFFFFFF, 0); + test__mulodi4(-1, @bitCast(i64, u64(0x8000000000000001)), 0x7FFFFFFFFFFFFFFF, 0); + test__mulodi4(@bitCast(i64, u64(0x8000000000000001)), 0, 0, 0); + test__mulodi4(0, @bitCast(i64, u64(0x8000000000000001)), 0, 0); + test__mulodi4(@bitCast(i64, u64(0x8000000000000001)), 1, @bitCast(i64, u64(0x8000000000000001)), 0); + test__mulodi4(1, @bitCast(i64, u64(0x8000000000000001)), @bitCast(i64, u64(0x8000000000000001)), 0); + test__mulodi4(@bitCast(i64, u64(0x8000000000000001)), 2, @bitCast(i64, u64(0x8000000000000000)), 1); + test__mulodi4(2, @bitCast(i64, u64(0x8000000000000001)), @bitCast(i64, u64(0x8000000000000000)), 1); +} diff --git a/lib/std/special/compiler_rt/muloti4.zig b/lib/std/special/compiler_rt/muloti4.zig new file mode 100644 index 0000000000..ccde8e3e6c --- /dev/null +++ b/lib/std/special/compiler_rt/muloti4.zig @@ -0,0 +1,49 @@ +const builtin = @import("builtin"); +const compiler_rt = @import("../compiler_rt.zig"); + +pub extern fn __muloti4(a: i128, b: i128, overflow: *c_int) i128 { + @setRuntimeSafety(builtin.is_test); + + const min = @bitCast(i128, u128(1 << (i128.bit_count - 1))); + const max = ~min; + overflow.* = 0; + + const r = a *% b; + if (a == min) { + if (b != 0 and b != 1) { + overflow.* = 1; + } + return r; + } + if (b == min) { + if (a != 0 and a != 1) { + overflow.* = 1; + } + return r; + } + + const sa = a >> (i128.bit_count - 1); + const abs_a = (a ^ sa) -% sa; + const sb = b >> (i128.bit_count - 1); + const abs_b = (b ^ sb) -% sb; + + if (abs_a < 2 or abs_b < 2) { + return r; + } + + if (sa == sb) { + if (abs_a > @divTrunc(max, abs_b)) { + overflow.* = 1; + } + } else { + if (abs_a > @divTrunc(min, -abs_b)) { + overflow.* = 1; + } + } + + return r; +} + +test "import muloti4" { + _ = @import("muloti4_test.zig"); +} diff --git a/lib/std/special/compiler_rt/muloti4_test.zig b/lib/std/special/compiler_rt/muloti4_test.zig new file mode 100644 index 0000000000..00144a8839 --- /dev/null +++ b/lib/std/special/compiler_rt/muloti4_test.zig @@ -0,0 +1,76 @@ +const __muloti4 = @import("muloti4.zig").__muloti4; +const testing = @import("std").testing; + +fn test__muloti4(a: i128, b: i128, expected: i128, expected_overflow: c_int) void { + var overflow: c_int = undefined; + const x = __muloti4(a, b, &overflow); + testing.expect(overflow == expected_overflow and (expected_overflow != 0 or x == expected)); +} + +test "muloti4" { + test__muloti4(0, 0, 0, 0); + test__muloti4(0, 1, 0, 0); + test__muloti4(1, 0, 0, 0); + test__muloti4(0, 10, 0, 0); + test__muloti4(10, 0, 0, 0); + + test__muloti4(0, 81985529216486895, 0, 0); + test__muloti4(81985529216486895, 0, 0, 0); + + test__muloti4(0, -1, 0, 0); + test__muloti4(-1, 0, 0, 0); + test__muloti4(0, -10, 0, 0); + test__muloti4(-10, 0, 0, 0); + test__muloti4(0, -81985529216486895, 0, 0); + test__muloti4(-81985529216486895, 0, 0, 0); + + test__muloti4(3037000499, 3037000499, 9223372030926249001, 0); + test__muloti4(-3037000499, 3037000499, -9223372030926249001, 0); + test__muloti4(3037000499, -3037000499, -9223372030926249001, 0); + test__muloti4(-3037000499, -3037000499, 9223372030926249001, 0); + + test__muloti4(4398046511103, 2097152, 9223372036852678656, 0); + test__muloti4(-4398046511103, 2097152, -9223372036852678656, 0); + test__muloti4(4398046511103, -2097152, -9223372036852678656, 0); + test__muloti4(-4398046511103, -2097152, 9223372036852678656, 0); + + test__muloti4(2097152, 4398046511103, 9223372036852678656, 0); + test__muloti4(-2097152, 4398046511103, -9223372036852678656, 0); + test__muloti4(2097152, -4398046511103, -9223372036852678656, 0); + test__muloti4(-2097152, -4398046511103, 9223372036852678656, 0); + + test__muloti4(@bitCast(i128, u128(0x00000000000000B504F333F9DE5BE000)), @bitCast(i128, u128(0x000000000000000000B504F333F9DE5B)), @bitCast(i128, u128(0x7FFFFFFFFFFFF328DF915DA296E8A000)), 0); + test__muloti4(@bitCast(i128, u128(0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)), -2, @bitCast(i128, u128(0x80000000000000000000000000000001)), 1); + test__muloti4(-2, @bitCast(i128, u128(0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)), @bitCast(i128, u128(0x80000000000000000000000000000001)), 1); + + test__muloti4(@bitCast(i128, u128(0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)), -1, @bitCast(i128, u128(0x80000000000000000000000000000001)), 0); + test__muloti4(-1, @bitCast(i128, u128(0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)), @bitCast(i128, u128(0x80000000000000000000000000000001)), 0); + test__muloti4(@bitCast(i128, u128(0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)), 0, 0, 0); + test__muloti4(0, @bitCast(i128, u128(0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)), 0, 0); + test__muloti4(@bitCast(i128, u128(0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)), 1, @bitCast(i128, u128(0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)), 0); + test__muloti4(1, @bitCast(i128, u128(0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)), @bitCast(i128, u128(0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)), 0); + test__muloti4(@bitCast(i128, u128(0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)), 2, @bitCast(i128, u128(0x80000000000000000000000000000001)), 1); + test__muloti4(2, @bitCast(i128, u128(0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)), @bitCast(i128, u128(0x80000000000000000000000000000001)), 1); + + test__muloti4(@bitCast(i128, u128(0x80000000000000000000000000000000)), -2, @bitCast(i128, u128(0x80000000000000000000000000000000)), 1); + test__muloti4(-2, @bitCast(i128, u128(0x80000000000000000000000000000000)), @bitCast(i128, u128(0x80000000000000000000000000000000)), 1); + test__muloti4(@bitCast(i128, u128(0x80000000000000000000000000000000)), -1, @bitCast(i128, u128(0x80000000000000000000000000000000)), 1); + test__muloti4(-1, @bitCast(i128, u128(0x80000000000000000000000000000000)), @bitCast(i128, u128(0x80000000000000000000000000000000)), 1); + test__muloti4(@bitCast(i128, u128(0x80000000000000000000000000000000)), 0, 0, 0); + test__muloti4(0, @bitCast(i128, u128(0x80000000000000000000000000000000)), 0, 0); + test__muloti4(@bitCast(i128, u128(0x80000000000000000000000000000000)), 1, @bitCast(i128, u128(0x80000000000000000000000000000000)), 0); + test__muloti4(1, @bitCast(i128, u128(0x80000000000000000000000000000000)), @bitCast(i128, u128(0x80000000000000000000000000000000)), 0); + test__muloti4(@bitCast(i128, u128(0x80000000000000000000000000000000)), 2, @bitCast(i128, u128(0x80000000000000000000000000000000)), 1); + test__muloti4(2, @bitCast(i128, u128(0x80000000000000000000000000000000)), @bitCast(i128, u128(0x80000000000000000000000000000000)), 1); + + test__muloti4(@bitCast(i128, u128(0x80000000000000000000000000000001)), -2, @bitCast(i128, u128(0x80000000000000000000000000000001)), 1); + test__muloti4(-2, @bitCast(i128, u128(0x80000000000000000000000000000001)), @bitCast(i128, u128(0x80000000000000000000000000000001)), 1); + test__muloti4(@bitCast(i128, u128(0x80000000000000000000000000000001)), -1, @bitCast(i128, u128(0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)), 0); + test__muloti4(-1, @bitCast(i128, u128(0x80000000000000000000000000000001)), @bitCast(i128, u128(0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)), 0); + test__muloti4(@bitCast(i128, u128(0x80000000000000000000000000000001)), 0, 0, 0); + test__muloti4(0, @bitCast(i128, u128(0x80000000000000000000000000000001)), 0, 0); + test__muloti4(@bitCast(i128, u128(0x80000000000000000000000000000001)), 1, @bitCast(i128, u128(0x80000000000000000000000000000001)), 0); + test__muloti4(1, @bitCast(i128, u128(0x80000000000000000000000000000001)), @bitCast(i128, u128(0x80000000000000000000000000000001)), 0); + test__muloti4(@bitCast(i128, u128(0x80000000000000000000000000000001)), 2, @bitCast(i128, u128(0x80000000000000000000000000000000)), 1); + test__muloti4(2, @bitCast(i128, u128(0x80000000000000000000000000000001)), @bitCast(i128, u128(0x80000000000000000000000000000000)), 1); +} diff --git a/lib/std/special/compiler_rt/multi3.zig b/lib/std/special/compiler_rt/multi3.zig new file mode 100644 index 0000000000..799b1f575d --- /dev/null +++ b/lib/std/special/compiler_rt/multi3.zig @@ -0,0 +1,59 @@ +const builtin = @import("builtin"); +const compiler_rt = @import("../compiler_rt.zig"); + +// Ported from git@github.com:llvm-project/llvm-project-20170507.git +// ae684fad6d34858c014c94da69c15e7774a633c3 +// 2018-08-13 + +pub extern fn __multi3(a: i128, b: i128) i128 { + @setRuntimeSafety(builtin.is_test); + const x = twords{ .all = a }; + const y = twords{ .all = b }; + var r = twords{ .all = __mulddi3(x.s.low, y.s.low) }; + r.s.high +%= x.s.high *% y.s.low +% x.s.low *% y.s.high; + return r.all; +} + +const v128 = @Vector(2, u64); +pub extern fn __multi3_windows_x86_64(a: v128, b: v128) v128 { + return @bitCast(v128, @inlineCall(__multi3, @bitCast(i128, a), @bitCast(i128, b))); +} + +fn __mulddi3(a: u64, b: u64) i128 { + const bits_in_dword_2 = (@sizeOf(i64) * 8) / 2; + const lower_mask = ~u64(0) >> bits_in_dword_2; + var r: twords = undefined; + r.s.low = (a & lower_mask) *% (b & lower_mask); + var t: u64 = r.s.low >> bits_in_dword_2; + r.s.low &= lower_mask; + t +%= (a >> bits_in_dword_2) *% (b & lower_mask); + r.s.low +%= (t & lower_mask) << bits_in_dword_2; + r.s.high = t >> bits_in_dword_2; + t = r.s.low >> bits_in_dword_2; + r.s.low &= lower_mask; + t +%= (b >> bits_in_dword_2) *% (a & lower_mask); + r.s.low +%= (t & lower_mask) << bits_in_dword_2; + r.s.high +%= t >> bits_in_dword_2; + r.s.high +%= (a >> bits_in_dword_2) *% (b >> bits_in_dword_2); + return r.all; +} + +const twords = extern union { + all: i128, + s: S, + + const S = if (builtin.endian == builtin.Endian.Little) + struct { + low: u64, + high: u64, + } + else + struct { + high: u64, + low: u64, + }; +}; + +test "import multi3" { + _ = @import("multi3_test.zig"); +} diff --git a/lib/std/special/compiler_rt/multi3_test.zig b/lib/std/special/compiler_rt/multi3_test.zig new file mode 100644 index 0000000000..92c580e20f --- /dev/null +++ b/lib/std/special/compiler_rt/multi3_test.zig @@ -0,0 +1,53 @@ +const __multi3 = @import("multi3.zig").__multi3; +const testing = @import("std").testing; + +fn test__multi3(a: i128, b: i128, expected: i128) void { + const x = __multi3(a, b); + testing.expect(x == expected); +} + +test "multi3" { + test__multi3(0, 0, 0); + test__multi3(0, 1, 0); + test__multi3(1, 0, 0); + test__multi3(0, 10, 0); + test__multi3(10, 0, 0); + test__multi3(0, 81985529216486895, 0); + test__multi3(81985529216486895, 0, 0); + + test__multi3(0, -1, 0); + test__multi3(-1, 0, 0); + test__multi3(0, -10, 0); + test__multi3(-10, 0, 0); + test__multi3(0, -81985529216486895, 0); + test__multi3(-81985529216486895, 0, 0); + + test__multi3(1, 1, 1); + test__multi3(1, 10, 10); + test__multi3(10, 1, 10); + test__multi3(1, 81985529216486895, 81985529216486895); + test__multi3(81985529216486895, 1, 81985529216486895); + + test__multi3(1, -1, -1); + test__multi3(1, -10, -10); + test__multi3(-10, 1, -10); + test__multi3(1, -81985529216486895, -81985529216486895); + test__multi3(-81985529216486895, 1, -81985529216486895); + + test__multi3(3037000499, 3037000499, 9223372030926249001); + test__multi3(-3037000499, 3037000499, -9223372030926249001); + test__multi3(3037000499, -3037000499, -9223372030926249001); + test__multi3(-3037000499, -3037000499, 9223372030926249001); + + test__multi3(4398046511103, 2097152, 9223372036852678656); + test__multi3(-4398046511103, 2097152, -9223372036852678656); + test__multi3(4398046511103, -2097152, -9223372036852678656); + test__multi3(-4398046511103, -2097152, 9223372036852678656); + + test__multi3(2097152, 4398046511103, 9223372036852678656); + test__multi3(-2097152, 4398046511103, -9223372036852678656); + test__multi3(2097152, -4398046511103, -9223372036852678656); + test__multi3(-2097152, -4398046511103, 9223372036852678656); + + test__multi3(0x00000000000000B504F333F9DE5BE000, 0x000000000000000000B504F333F9DE5B, 0x7FFFFFFFFFFFF328DF915DA296E8A000); +} diff --git a/lib/std/special/compiler_rt/negXf2.zig b/lib/std/special/compiler_rt/negXf2.zig new file mode 100644 index 0000000000..b71a503c1d --- /dev/null +++ b/lib/std/special/compiler_rt/negXf2.zig @@ -0,0 +1,21 @@ +const std = @import("std"); + +pub extern fn __negsf2(a: f32) f32 { + return negXf2(f32, a); +} + +pub extern fn __negdf2(a: f64) f64 { + return negXf2(f64, a); +} + +fn negXf2(comptime T: type, a: T) T { + const Z = @IntType(false, T.bit_count); + + const typeWidth = T.bit_count; + const significandBits = std.math.floatMantissaBits(T); + const exponentBits = std.math.floatExponentBits(T); + + const signBit = (Z(1) << (significandBits + exponentBits)); + + return @bitCast(T, @bitCast(Z, a) ^ signBit); +} diff --git a/lib/std/special/compiler_rt/popcountdi2.zig b/lib/std/special/compiler_rt/popcountdi2.zig new file mode 100644 index 0000000000..ea36b0ec44 --- /dev/null +++ b/lib/std/special/compiler_rt/popcountdi2.zig @@ -0,0 +1,24 @@ +const builtin = @import("builtin"); +const compiler_rt = @import("../compiler_rt.zig"); + +// ported from llvm compiler-rt 8.0.0rc3 95e1c294cb0415a377a7b1d6c7c7d4f89e1c04e4 +pub extern fn __popcountdi2(a: i64) i32 { + var x2 = @bitCast(u64, a); + x2 = x2 - ((x2 >> 1) & 0x5555555555555555); + // Every 2 bits holds the sum of every pair of bits (32) + x2 = ((x2 >> 2) & 0x3333333333333333) + (x2 & 0x3333333333333333); + // Every 4 bits holds the sum of every 4-set of bits (3 significant bits) (16) + x2 = (x2 + (x2 >> 4)) & 0x0F0F0F0F0F0F0F0F; + // Every 8 bits holds the sum of every 8-set of bits (4 significant bits) (8) + var x: u32 = @truncate(u32, x2 + (x2 >> 32)); + // The lower 32 bits hold four 16 bit sums (5 significant bits). + // Upper 32 bits are garbage */ + x = x + (x >> 16); + // The lower 16 bits hold two 32 bit sums (6 significant bits). + // Upper 16 bits are garbage */ + return @bitCast(i32, (x + (x >> 8)) & 0x0000007F); // (7 significant bits) +} + +test "import popcountdi2" { + _ = @import("popcountdi2_test.zig"); +} diff --git a/lib/std/special/compiler_rt/popcountdi2_test.zig b/lib/std/special/compiler_rt/popcountdi2_test.zig new file mode 100644 index 0000000000..bedcbcd1de --- /dev/null +++ b/lib/std/special/compiler_rt/popcountdi2_test.zig @@ -0,0 +1,27 @@ +const __popcountdi2 = @import("popcountdi2.zig").__popcountdi2; +const testing = @import("std").testing; + +fn naive_popcount(a_param: i64) i32 { + var a = a_param; + var r: i32 = 0; + while (a != 0) : (a = @bitCast(i64, @bitCast(u64, a) >> 1)) { + r += @intCast(i32, a & 1); + } + return r; +} + +fn test__popcountdi2(a: i64) void { + const x = __popcountdi2(a); + const expected = naive_popcount(a); + testing.expect(expected == x); +} + +test "popcountdi2" { + test__popcountdi2(0); + test__popcountdi2(1); + test__popcountdi2(2); + test__popcountdi2(@bitCast(i64, u64(0xFFFFFFFFFFFFFFFD))); + test__popcountdi2(@bitCast(i64, u64(0xFFFFFFFFFFFFFFFE))); + test__popcountdi2(@bitCast(i64, u64(0xFFFFFFFFFFFFFFFF))); + // TODO some fuzz testing +} diff --git a/lib/std/special/compiler_rt/stack_probe.zig b/lib/std/special/compiler_rt/stack_probe.zig new file mode 100644 index 0000000000..c3e534c8ec --- /dev/null +++ b/lib/std/special/compiler_rt/stack_probe.zig @@ -0,0 +1,206 @@ +const builtin = @import("builtin"); + +// Zig's own stack-probe routine (available only on x86 and x86_64) +pub nakedcc fn zig_probe_stack() void { + @setRuntimeSafety(false); + + // Versions of the Linux kernel before 5.1 treat any access below SP as + // invalid so let's update it on the go, otherwise we'll get a segfault + // instead of triggering the stack growth. + + switch (builtin.arch) { + .x86_64 => { + // %rax = probe length, %rsp = stack pointer + asm volatile ( + \\ push %%rcx + \\ mov %%rax, %%rcx + \\ cmp $0x1000,%%rcx + \\ jb 2f + \\ 1: + \\ sub $0x1000,%%rsp + \\ orl $0,16(%%rsp) + \\ sub $0x1000,%%rcx + \\ cmp $0x1000,%%rcx + \\ ja 1b + \\ 2: + \\ sub %%rcx, %%rsp + \\ orl $0,16(%%rsp) + \\ add %%rax,%%rsp + \\ pop %%rcx + \\ ret + ); + }, + .i386 => { + // %eax = probe length, %esp = stack pointer + asm volatile ( + \\ push %%ecx + \\ mov %%eax, %%ecx + \\ cmp $0x1000,%%ecx + \\ jb 2f + \\ 1: + \\ sub $0x1000,%%esp + \\ orl $0,8(%%esp) + \\ sub $0x1000,%%ecx + \\ cmp $0x1000,%%ecx + \\ ja 1b + \\ 2: + \\ sub %%ecx, %%esp + \\ orl $0,8(%%esp) + \\ add %%eax,%%esp + \\ pop %%ecx + \\ ret + ); + }, + else => {}, + } + + unreachable; +} + +fn win_probe_stack_only() void { + @setRuntimeSafety(false); + + switch (builtin.arch) { + .x86_64 => { + asm volatile ( + \\ push %%rcx + \\ push %%rax + \\ cmp $0x1000,%%rax + \\ lea 24(%%rsp),%%rcx + \\ jb 1f + \\ 2: + \\ sub $0x1000,%%rcx + \\ test %%rcx,(%%rcx) + \\ sub $0x1000,%%rax + \\ cmp $0x1000,%%rax + \\ ja 2b + \\ 1: + \\ sub %%rax,%%rcx + \\ test %%rcx,(%%rcx) + \\ pop %%rax + \\ pop %%rcx + \\ ret + ); + }, + .i386 => { + asm volatile ( + \\ push %%ecx + \\ push %%eax + \\ cmp $0x1000,%%eax + \\ lea 12(%%esp),%%ecx + \\ jb 1f + \\ 2: + \\ sub $0x1000,%%ecx + \\ test %%ecx,(%%ecx) + \\ sub $0x1000,%%eax + \\ cmp $0x1000,%%eax + \\ ja 2b + \\ 1: + \\ sub %%eax,%%ecx + \\ test %%ecx,(%%ecx) + \\ pop %%eax + \\ pop %%ecx + \\ ret + ); + }, + else => {}, + } + + unreachable; +} + +fn win_probe_stack_adjust_sp() void { + @setRuntimeSafety(false); + + switch (builtin.arch) { + .x86_64 => { + asm volatile ( + \\ push %%rcx + \\ cmp $0x1000,%%rax + \\ lea 16(%%rsp),%%rcx + \\ jb 1f + \\ 2: + \\ sub $0x1000,%%rcx + \\ test %%rcx,(%%rcx) + \\ sub $0x1000,%%rax + \\ cmp $0x1000,%%rax + \\ ja 2b + \\ 1: + \\ sub %%rax,%%rcx + \\ test %%rcx,(%%rcx) + \\ + \\ lea 8(%%rsp),%%rax + \\ mov %%rcx,%%rsp + \\ mov -8(%%rax),%%rcx + \\ push (%%rax) + \\ sub %%rsp,%%rax + \\ ret + ); + }, + .i386 => { + asm volatile ( + \\ push %%ecx + \\ cmp $0x1000,%%eax + \\ lea 8(%%esp),%%ecx + \\ jb 1f + \\ 2: + \\ sub $0x1000,%%ecx + \\ test %%ecx,(%%ecx) + \\ sub $0x1000,%%eax + \\ cmp $0x1000,%%eax + \\ ja 2b + \\ 1: + \\ sub %%eax,%%ecx + \\ test %%ecx,(%%ecx) + \\ + \\ lea 4(%%esp),%%eax + \\ mov %%ecx,%%esp + \\ mov -4(%%eax),%%ecx + \\ push (%%eax) + \\ sub %%esp,%%eax + \\ ret + ); + }, + else => {}, + } + + unreachable; +} + +// Windows has a multitude of stack-probing functions with similar names and +// slightly different behaviours: some behave as alloca() and update the stack +// pointer after probing the stack, other do not. +// +// Function name | Adjusts the SP? | +// | x86 | x86_64 | +// ---------------------------------------- +// _chkstk (_alloca) | yes | yes | +// __chkstk | yes | no | +// __chkstk_ms | no | no | +// ___chkstk (__alloca) | yes | yes | +// ___chkstk_ms | no | no | + +pub nakedcc fn _chkstk() void { + @setRuntimeSafety(false); + @inlineCall(win_probe_stack_adjust_sp); +} +pub nakedcc fn __chkstk() void { + @setRuntimeSafety(false); + switch (builtin.arch) { + .i386 => @inlineCall(win_probe_stack_adjust_sp), + .x86_64 => @inlineCall(win_probe_stack_only), + else => unreachable, + } +} +pub nakedcc fn ___chkstk() void { + @setRuntimeSafety(false); + @inlineCall(win_probe_stack_adjust_sp); +} +pub nakedcc fn __chkstk_ms() void { + @setRuntimeSafety(false); + @inlineCall(win_probe_stack_only); +} +pub nakedcc fn ___chkstk_ms() void { + @setRuntimeSafety(false); + @inlineCall(win_probe_stack_only); +} diff --git a/lib/std/special/compiler_rt/truncXfYf2.zig b/lib/std/special/compiler_rt/truncXfYf2.zig new file mode 100644 index 0000000000..e4c4aa38a7 --- /dev/null +++ b/lib/std/special/compiler_rt/truncXfYf2.zig @@ -0,0 +1,125 @@ +const std = @import("std"); + +pub extern fn __truncsfhf2(a: f32) u16 { + return @bitCast(u16, truncXfYf2(f16, f32, a)); +} + +pub extern fn __truncdfhf2(a: f64) u16 { + return @bitCast(u16, truncXfYf2(f16, f64, a)); +} + +pub extern fn __trunctfsf2(a: f128) f32 { + return truncXfYf2(f32, f128, a); +} + +pub extern fn __trunctfdf2(a: f128) f64 { + return truncXfYf2(f64, f128, a); +} + +pub extern fn __truncdfsf2(a: f64) f32 { + return truncXfYf2(f32, f64, a); +} + +inline fn truncXfYf2(comptime dst_t: type, comptime src_t: type, a: src_t) dst_t { + const src_rep_t = @IntType(false, @typeInfo(src_t).Float.bits); + const dst_rep_t = @IntType(false, @typeInfo(dst_t).Float.bits); + const srcSigBits = std.math.floatMantissaBits(src_t); + const dstSigBits = std.math.floatMantissaBits(dst_t); + const SrcShift = std.math.Log2Int(src_rep_t); + const DstShift = std.math.Log2Int(dst_rep_t); + + // Various constants whose values follow from the type parameters. + // Any reasonable optimizer will fold and propagate all of these. + const srcBits = src_t.bit_count; + const srcExpBits = srcBits - srcSigBits - 1; + const srcInfExp = (1 << srcExpBits) - 1; + const srcExpBias = srcInfExp >> 1; + + const srcMinNormal = 1 << srcSigBits; + const srcSignificandMask = srcMinNormal - 1; + const srcInfinity = srcInfExp << srcSigBits; + const srcSignMask = 1 << (srcSigBits + srcExpBits); + const srcAbsMask = srcSignMask - 1; + const roundMask = (1 << (srcSigBits - dstSigBits)) - 1; + const halfway = 1 << (srcSigBits - dstSigBits - 1); + const srcQNaN = 1 << (srcSigBits - 1); + const srcNaNCode = srcQNaN - 1; + + const dstBits = dst_t.bit_count; + const dstExpBits = dstBits - dstSigBits - 1; + const dstInfExp = (1 << dstExpBits) - 1; + const dstExpBias = dstInfExp >> 1; + + const underflowExponent = srcExpBias + 1 - dstExpBias; + const overflowExponent = srcExpBias + dstInfExp - dstExpBias; + const underflow = underflowExponent << srcSigBits; + const overflow = overflowExponent << srcSigBits; + + const dstQNaN = 1 << (dstSigBits - 1); + const dstNaNCode = dstQNaN - 1; + + // Break a into a sign and representation of the absolute value + const aRep: src_rep_t = @bitCast(src_rep_t, a); + const aAbs: src_rep_t = aRep & srcAbsMask; + const sign: src_rep_t = aRep & srcSignMask; + var absResult: dst_rep_t = undefined; + + if (aAbs -% underflow < aAbs -% overflow) { + // The exponent of a is within the range of normal numbers in the + // destination format. We can convert by simply right-shifting with + // rounding and adjusting the exponent. + absResult = @truncate(dst_rep_t, aAbs >> (srcSigBits - dstSigBits)); + absResult -%= dst_rep_t(srcExpBias - dstExpBias) << dstSigBits; + + const roundBits: src_rep_t = aAbs & roundMask; + if (roundBits > halfway) { + // Round to nearest + absResult += 1; + } else if (roundBits == halfway) { + // Ties to even + absResult += absResult & 1; + } + } else if (aAbs > srcInfinity) { + // a is NaN. + // Conjure the result by beginning with infinity, setting the qNaN + // bit and inserting the (truncated) trailing NaN field. + absResult = @intCast(dst_rep_t, dstInfExp) << dstSigBits; + absResult |= dstQNaN; + absResult |= @intCast(dst_rep_t, ((aAbs & srcNaNCode) >> (srcSigBits - dstSigBits)) & dstNaNCode); + } else if (aAbs >= overflow) { + // a overflows to infinity. + absResult = @intCast(dst_rep_t, dstInfExp) << dstSigBits; + } else { + // a underflows on conversion to the destination type or is an exact + // zero. The result may be a denormal or zero. Extract the exponent + // to get the shift amount for the denormalization. + const aExp = @intCast(u32, aAbs >> srcSigBits); + const shift = @intCast(u32, srcExpBias - dstExpBias - aExp + 1); + + const significand: src_rep_t = (aRep & srcSignificandMask) | srcMinNormal; + + // Right shift by the denormalization amount with sticky. + if (shift > srcSigBits) { + absResult = 0; + } else { + const sticky: src_rep_t = significand << @intCast(SrcShift, srcBits - shift); + const denormalizedSignificand: src_rep_t = significand >> @intCast(SrcShift, shift) | sticky; + absResult = @intCast(dst_rep_t, denormalizedSignificand >> (srcSigBits - dstSigBits)); + const roundBits: src_rep_t = denormalizedSignificand & roundMask; + if (roundBits > halfway) { + // Round to nearest + absResult += 1; + } else if (roundBits == halfway) { + // Ties to even + absResult += absResult & 1; + } + } + } + + const result: dst_rep_t align(@alignOf(dst_t)) = absResult | @truncate(dst_rep_t, sign >> @intCast(SrcShift, srcBits - dstBits)); + return @bitCast(dst_t, result); +} + +test "import truncXfYf2" { + _ = @import("truncXfYf2_test.zig"); +} diff --git a/lib/std/special/compiler_rt/truncXfYf2_test.zig b/lib/std/special/compiler_rt/truncXfYf2_test.zig new file mode 100644 index 0000000000..eccf7efb7e --- /dev/null +++ b/lib/std/special/compiler_rt/truncXfYf2_test.zig @@ -0,0 +1,239 @@ +const __truncsfhf2 = @import("truncXfYf2.zig").__truncsfhf2; + +fn test__truncsfhf2(a: u32, expected: u16) void { + const actual = __truncsfhf2(@bitCast(f32, a)); + + if (actual == expected) { + return; + } + + @panic("__truncsfhf2 test failure"); +} + +test "truncsfhf2" { + test__truncsfhf2(0x7fc00000, 0x7e00); // qNaN + test__truncsfhf2(0x7fe00000, 0x7f00); // sNaN + + test__truncsfhf2(0, 0); // 0 + test__truncsfhf2(0x80000000, 0x8000); // -0 + + test__truncsfhf2(0x7f800000, 0x7c00); // inf + test__truncsfhf2(0xff800000, 0xfc00); // -inf + + test__truncsfhf2(0x477ff000, 0x7c00); // 65520 -> inf + test__truncsfhf2(0xc77ff000, 0xfc00); // -65520 -> -inf + + test__truncsfhf2(0x71cc3892, 0x7c00); // 0x1.987124876876324p+100 -> inf + test__truncsfhf2(0xf1cc3892, 0xfc00); // -0x1.987124876876324p+100 -> -inf + + test__truncsfhf2(0x38800000, 0x0400); // normal (min), 2**-14 + test__truncsfhf2(0xb8800000, 0x8400); // normal (min), -2**-14 + + test__truncsfhf2(0x477fe000, 0x7bff); // normal (max), 65504 + test__truncsfhf2(0xc77fe000, 0xfbff); // normal (max), -65504 + + test__truncsfhf2(0x477fe100, 0x7bff); // normal, 65505 -> 65504 + test__truncsfhf2(0xc77fe100, 0xfbff); // normal, -65505 -> -65504 + + test__truncsfhf2(0x477fef00, 0x7bff); // normal, 65519 -> 65504 + test__truncsfhf2(0xc77fef00, 0xfbff); // normal, -65519 -> -65504 + + test__truncsfhf2(0x3f802000, 0x3c01); // normal, 1 + 2**-10 + test__truncsfhf2(0xbf802000, 0xbc01); // normal, -1 - 2**-10 + + test__truncsfhf2(0x3eaaa000, 0x3555); // normal, approx. 1/3 + test__truncsfhf2(0xbeaaa000, 0xb555); // normal, approx. -1/3 + + test__truncsfhf2(0x40490fdb, 0x4248); // normal, 3.1415926535 + test__truncsfhf2(0xc0490fdb, 0xc248); // normal, -3.1415926535 + + test__truncsfhf2(0x45cc3892, 0x6e62); // normal, 0x1.987124876876324p+12 + + test__truncsfhf2(0x3f800000, 0x3c00); // normal, 1 + test__truncsfhf2(0x38800000, 0x0400); // normal, 0x1.0p-14 + + test__truncsfhf2(0x33800000, 0x0001); // denormal (min), 2**-24 + test__truncsfhf2(0xb3800000, 0x8001); // denormal (min), -2**-24 + + test__truncsfhf2(0x387fc000, 0x03ff); // denormal (max), 2**-14 - 2**-24 + test__truncsfhf2(0xb87fc000, 0x83ff); // denormal (max), -2**-14 + 2**-24 + + test__truncsfhf2(0x35800000, 0x0010); // denormal, 0x1.0p-20 + test__truncsfhf2(0x33280000, 0x0001); // denormal, 0x1.5p-25 -> 0x1.0p-24 + test__truncsfhf2(0x33000000, 0x0000); // 0x1.0p-25 -> zero +} + +const __truncdfhf2 = @import("truncXfYf2.zig").__truncdfhf2; + +fn test__truncdfhf2(a: f64, expected: u16) void { + const rep = @bitCast(u16, __truncdfhf2(a)); + + if (rep == expected) { + return; + } + // test other possible NaN representation(signal NaN) + else if (expected == 0x7e00) { + if ((rep & 0x7c00) == 0x7c00 and (rep & 0x3ff) > 0) { + return; + } + } + + @panic("__truncdfhf2 test failure"); +} + +fn test__truncdfhf2_raw(a: u64, expected: u16) void { + const actual = __truncdfhf2(@bitCast(f64, a)); + + if (actual == expected) { + return; + } + + @panic("__truncdfhf2 test failure"); +} + +test "truncdfhf2" { + test__truncdfhf2_raw(0x7ff8000000000000, 0x7e00); // qNaN + test__truncdfhf2_raw(0x7ff0000000008000, 0x7e00); // NaN + + test__truncdfhf2_raw(0x7ff0000000000000, 0x7c00); //inf + test__truncdfhf2_raw(0xfff0000000000000, 0xfc00); // -inf + + test__truncdfhf2(0.0, 0x0); // zero + test__truncdfhf2_raw(0x80000000 << 32, 0x8000); // -zero + + test__truncdfhf2(3.1415926535, 0x4248); + test__truncdfhf2(-3.1415926535, 0xc248); + + test__truncdfhf2(0x1.987124876876324p+1000, 0x7c00); + test__truncdfhf2(0x1.987124876876324p+12, 0x6e62); + test__truncdfhf2(0x1.0p+0, 0x3c00); + test__truncdfhf2(0x1.0p-14, 0x0400); + + // denormal + test__truncdfhf2(0x1.0p-20, 0x0010); + test__truncdfhf2(0x1.0p-24, 0x0001); + test__truncdfhf2(-0x1.0p-24, 0x8001); + test__truncdfhf2(0x1.5p-25, 0x0001); + + // and back to zero + test__truncdfhf2(0x1.0p-25, 0x0000); + test__truncdfhf2(-0x1.0p-25, 0x8000); + + // max (precise) + test__truncdfhf2(65504.0, 0x7bff); + + // max (rounded) + test__truncdfhf2(65519.0, 0x7bff); + + // max (to +inf) + test__truncdfhf2(65520.0, 0x7c00); + test__truncdfhf2(-65520.0, 0xfc00); + test__truncdfhf2(65536.0, 0x7c00); +} + +const __trunctfsf2 = @import("truncXfYf2.zig").__trunctfsf2; + +fn test__trunctfsf2(a: f128, expected: u32) void { + const x = __trunctfsf2(a); + + const rep = @bitCast(u32, x); + if (rep == expected) { + return; + } + // test other possible NaN representation(signal NaN) + else if (expected == 0x7fc00000) { + if ((rep & 0x7f800000) == 0x7f800000 and (rep & 0x7fffff) > 0) { + return; + } + } + + @panic("__trunctfsf2 test failure"); +} + +test "trunctfsf2" { + // qnan + test__trunctfsf2(@bitCast(f128, u128(0x7fff800000000000 << 64)), 0x7fc00000); + // nan + test__trunctfsf2(@bitCast(f128, u128((0x7fff000000000000 | (0x810000000000 & 0xffffffffffff)) << 64)), 0x7fc08000); + // inf + test__trunctfsf2(@bitCast(f128, u128(0x7fff000000000000 << 64)), 0x7f800000); + // zero + test__trunctfsf2(0.0, 0x0); + + test__trunctfsf2(0x1.23a2abb4a2ddee355f36789abcdep+5, 0x4211d156); + test__trunctfsf2(0x1.e3d3c45bd3abfd98b76a54cc321fp-9, 0x3b71e9e2); + test__trunctfsf2(0x1.234eebb5faa678f4488693abcdefp+4534, 0x7f800000); + test__trunctfsf2(0x1.edcba9bb8c76a5a43dd21f334634p-435, 0x0); +} + +const __trunctfdf2 = @import("truncXfYf2.zig").__trunctfdf2; + +fn test__trunctfdf2(a: f128, expected: u64) void { + const x = __trunctfdf2(a); + + const rep = @bitCast(u64, x); + if (rep == expected) { + return; + } + // test other possible NaN representation(signal NaN) + else if (expected == 0x7ff8000000000000) { + if ((rep & 0x7ff0000000000000) == 0x7ff0000000000000 and (rep & 0xfffffffffffff) > 0) { + return; + } + } + + @panic("__trunctfsf2 test failure"); +} + +test "trunctfdf2" { + // qnan + test__trunctfdf2(@bitCast(f128, u128(0x7fff800000000000 << 64)), 0x7ff8000000000000); + // nan + test__trunctfdf2(@bitCast(f128, u128((0x7fff000000000000 | (0x810000000000 & 0xffffffffffff)) << 64)), 0x7ff8100000000000); + // inf + test__trunctfdf2(@bitCast(f128, u128(0x7fff000000000000 << 64)), 0x7ff0000000000000); + // zero + test__trunctfdf2(0.0, 0x0); + + test__trunctfdf2(0x1.af23456789bbaaab347645365cdep+5, 0x404af23456789bbb); + test__trunctfdf2(0x1.dedafcff354b6ae9758763545432p-9, 0x3f6dedafcff354b7); + test__trunctfdf2(0x1.2f34dd5f437e849b4baab754cdefp+4534, 0x7ff0000000000000); + test__trunctfdf2(0x1.edcbff8ad76ab5bf46463233214fp-435, 0x24cedcbff8ad76ab); +} + +const __truncdfsf2 = @import("truncXfYf2.zig").__truncdfsf2; + +fn test__truncdfsf2(a: f64, expected: u32) void { + const x = __truncdfsf2(a); + + const rep = @bitCast(u32, x); + if (rep == expected) { + return; + } + // test other possible NaN representation(signal NaN) + else if (expected == 0x7fc00000) { + if ((rep & 0x7f800000) == 0x7f800000 and (rep & 0x7fffff) > 0) { + return; + } + } + + @import("std").debug.warn("got 0x{x} wanted 0x{x}\n", rep, expected); + + @panic("__trunctfsf2 test failure"); +} + +test "truncdfsf2" { + // nan & qnan + test__truncdfsf2(@bitCast(f64, u64(0x7ff8000000000000)), 0x7fc00000); + test__truncdfsf2(@bitCast(f64, u64(0x7ff0000000000001)), 0x7fc00000); + // inf + test__truncdfsf2(@bitCast(f64, u64(0x7ff0000000000000)), 0x7f800000); + test__truncdfsf2(@bitCast(f64, u64(0xfff0000000000000)), 0xff800000); + + test__truncdfsf2(0.0, 0x0); + test__truncdfsf2(1.0, 0x3f800000); + test__truncdfsf2(-1.0, 0xbf800000); + + // huge number becomes inf + test__truncdfsf2(340282366920938463463374607431768211456.0, 0x7f800000); +} diff --git a/lib/std/special/compiler_rt/udivmod.zig b/lib/std/special/compiler_rt/udivmod.zig new file mode 100644 index 0000000000..c3066153f3 --- /dev/null +++ b/lib/std/special/compiler_rt/udivmod.zig @@ -0,0 +1,197 @@ +const builtin = @import("builtin"); +const is_test = builtin.is_test; + +const low = switch (builtin.endian) { + builtin.Endian.Big => 1, + builtin.Endian.Little => 0, +}; +const high = 1 - low; + +pub fn udivmod(comptime DoubleInt: type, a: DoubleInt, b: DoubleInt, maybe_rem: ?*DoubleInt) DoubleInt { + @setRuntimeSafety(is_test); + + const SingleInt = @IntType(false, @divExact(DoubleInt.bit_count, 2)); + const SignedDoubleInt = @IntType(true, DoubleInt.bit_count); + const Log2SingleInt = @import("std").math.Log2Int(SingleInt); + + const n = @ptrCast(*const [2]SingleInt, &a).*; // TODO issue #421 + const d = @ptrCast(*const [2]SingleInt, &b).*; // TODO issue #421 + var q: [2]SingleInt = undefined; + var r: [2]SingleInt = undefined; + var sr: c_uint = undefined; + // special cases, X is unknown, K != 0 + if (n[high] == 0) { + if (d[high] == 0) { + // 0 X + // --- + // 0 X + if (maybe_rem) |rem| { + rem.* = n[low] % d[low]; + } + return n[low] / d[low]; + } + // 0 X + // --- + // K X + if (maybe_rem) |rem| { + rem.* = n[low]; + } + return 0; + } + // n[high] != 0 + if (d[low] == 0) { + if (d[high] == 0) { + // K X + // --- + // 0 0 + if (maybe_rem) |rem| { + rem.* = n[high] % d[low]; + } + return n[high] / d[low]; + } + // d[high] != 0 + if (n[low] == 0) { + // K 0 + // --- + // K 0 + if (maybe_rem) |rem| { + r[high] = n[high] % d[high]; + r[low] = 0; + rem.* = @ptrCast(*align(@alignOf(SingleInt)) DoubleInt, &r[0]).*; // TODO issue #421 + } + return n[high] / d[high]; + } + // K K + // --- + // K 0 + if ((d[high] & (d[high] - 1)) == 0) { + // d is a power of 2 + if (maybe_rem) |rem| { + r[low] = n[low]; + r[high] = n[high] & (d[high] - 1); + rem.* = @ptrCast(*align(@alignOf(SingleInt)) DoubleInt, &r[0]).*; // TODO issue #421 + } + return n[high] >> @intCast(Log2SingleInt, @ctz(SingleInt, d[high])); + } + // K K + // --- + // K 0 + sr = @bitCast(c_uint, c_int(@clz(SingleInt, d[high])) - c_int(@clz(SingleInt, n[high]))); + // 0 <= sr <= SingleInt.bit_count - 2 or sr large + if (sr > SingleInt.bit_count - 2) { + if (maybe_rem) |rem| { + rem.* = a; + } + return 0; + } + sr += 1; + // 1 <= sr <= SingleInt.bit_count - 1 + // q.all = a << (DoubleInt.bit_count - sr); + q[low] = 0; + q[high] = n[low] << @intCast(Log2SingleInt, SingleInt.bit_count - sr); + // r.all = a >> sr; + r[high] = n[high] >> @intCast(Log2SingleInt, sr); + r[low] = (n[high] << @intCast(Log2SingleInt, SingleInt.bit_count - sr)) | (n[low] >> @intCast(Log2SingleInt, sr)); + } else { + // d[low] != 0 + if (d[high] == 0) { + // K X + // --- + // 0 K + if ((d[low] & (d[low] - 1)) == 0) { + // d is a power of 2 + if (maybe_rem) |rem| { + rem.* = n[low] & (d[low] - 1); + } + if (d[low] == 1) { + return a; + } + sr = @ctz(SingleInt, d[low]); + q[high] = n[high] >> @intCast(Log2SingleInt, sr); + q[low] = (n[high] << @intCast(Log2SingleInt, SingleInt.bit_count - sr)) | (n[low] >> @intCast(Log2SingleInt, sr)); + return @ptrCast(*align(@alignOf(SingleInt)) DoubleInt, &q[0]).*; // TODO issue #421 + } + // K X + // --- + // 0 K + sr = 1 + SingleInt.bit_count + c_uint(@clz(SingleInt, d[low])) - c_uint(@clz(SingleInt, n[high])); + // 2 <= sr <= DoubleInt.bit_count - 1 + // q.all = a << (DoubleInt.bit_count - sr); + // r.all = a >> sr; + if (sr == SingleInt.bit_count) { + q[low] = 0; + q[high] = n[low]; + r[high] = 0; + r[low] = n[high]; + } else if (sr < SingleInt.bit_count) { + // 2 <= sr <= SingleInt.bit_count - 1 + q[low] = 0; + q[high] = n[low] << @intCast(Log2SingleInt, SingleInt.bit_count - sr); + r[high] = n[high] >> @intCast(Log2SingleInt, sr); + r[low] = (n[high] << @intCast(Log2SingleInt, SingleInt.bit_count - sr)) | (n[low] >> @intCast(Log2SingleInt, sr)); + } else { + // SingleInt.bit_count + 1 <= sr <= DoubleInt.bit_count - 1 + q[low] = n[low] << @intCast(Log2SingleInt, DoubleInt.bit_count - sr); + q[high] = (n[high] << @intCast(Log2SingleInt, DoubleInt.bit_count - sr)) | (n[low] >> @intCast(Log2SingleInt, sr - SingleInt.bit_count)); + r[high] = 0; + r[low] = n[high] >> @intCast(Log2SingleInt, sr - SingleInt.bit_count); + } + } else { + // K X + // --- + // K K + sr = @bitCast(c_uint, c_int(@clz(SingleInt, d[high])) - c_int(@clz(SingleInt, n[high]))); + // 0 <= sr <= SingleInt.bit_count - 1 or sr large + if (sr > SingleInt.bit_count - 1) { + if (maybe_rem) |rem| { + rem.* = a; + } + return 0; + } + sr += 1; + // 1 <= sr <= SingleInt.bit_count + // q.all = a << (DoubleInt.bit_count - sr); + // r.all = a >> sr; + q[low] = 0; + if (sr == SingleInt.bit_count) { + q[high] = n[low]; + r[high] = 0; + r[low] = n[high]; + } else { + r[high] = n[high] >> @intCast(Log2SingleInt, sr); + r[low] = (n[high] << @intCast(Log2SingleInt, SingleInt.bit_count - sr)) | (n[low] >> @intCast(Log2SingleInt, sr)); + q[high] = n[low] << @intCast(Log2SingleInt, SingleInt.bit_count - sr); + } + } + } + // Not a special case + // q and r are initialized with: + // q.all = a << (DoubleInt.bit_count - sr); + // r.all = a >> sr; + // 1 <= sr <= DoubleInt.bit_count - 1 + var carry: u32 = 0; + var r_all: DoubleInt = undefined; + while (sr > 0) : (sr -= 1) { + // r:q = ((r:q) << 1) | carry + r[high] = (r[high] << 1) | (r[low] >> (SingleInt.bit_count - 1)); + r[low] = (r[low] << 1) | (q[high] >> (SingleInt.bit_count - 1)); + q[high] = (q[high] << 1) | (q[low] >> (SingleInt.bit_count - 1)); + q[low] = (q[low] << 1) | carry; + // carry = 0; + // if (r.all >= b) + // { + // r.all -= b; + // carry = 1; + // } + r_all = @ptrCast(*align(@alignOf(SingleInt)) DoubleInt, &r[0]).*; // TODO issue #421 + const s: SignedDoubleInt = @intCast(SignedDoubleInt, b -% r_all -% 1) >> (DoubleInt.bit_count - 1); + carry = @intCast(u32, s & 1); + r_all -= b & @bitCast(DoubleInt, s); + r = @ptrCast(*[2]SingleInt, &r_all).*; // TODO issue #421 + } + const q_all = ((@ptrCast(*align(@alignOf(SingleInt)) DoubleInt, &q[0]).*) << 1) | carry; // TODO issue #421 + if (maybe_rem) |rem| { + rem.* = r_all; + } + return q_all; +} diff --git a/lib/std/special/compiler_rt/udivmoddi4.zig b/lib/std/special/compiler_rt/udivmoddi4.zig new file mode 100644 index 0000000000..de86c845e5 --- /dev/null +++ b/lib/std/special/compiler_rt/udivmoddi4.zig @@ -0,0 +1,11 @@ +const udivmod = @import("udivmod.zig").udivmod; +const builtin = @import("builtin"); + +pub extern fn __udivmoddi4(a: u64, b: u64, maybe_rem: ?*u64) u64 { + @setRuntimeSafety(builtin.is_test); + return udivmod(u64, a, b, maybe_rem); +} + +test "import udivmoddi4" { + _ = @import("udivmoddi4_test.zig"); +} diff --git a/lib/std/special/compiler_rt/udivmoddi4_test.zig b/lib/std/special/compiler_rt/udivmoddi4_test.zig new file mode 100644 index 0000000000..17581fc569 --- /dev/null +++ b/lib/std/special/compiler_rt/udivmoddi4_test.zig @@ -0,0 +1,20612 @@ +// Disable formatting to avoid unnecessary source repository bloat. +// zig fmt: off +const __udivmoddi4 = @import("udivmoddi4.zig").__udivmoddi4; +const testing = @import("std").testing; + +fn test__udivmoddi4(a: u64, b: u64, expected_q: u64, expected_r: u64) void { + var r: u64 = undefined; + const q = __udivmoddi4(a, b, &r); + testing.expect(q == expected_q); + testing.expect(r == expected_r); +} + +test "udivmoddi4" { + for (cases) |case| { + test__udivmoddi4(case[0], case[1], case[2], case[3]); + } +} + +const cases = [_][4]u64{ + [_]u64{0x0000000000000000, 0x0000000000000001, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0000000000000002, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0000000000000003, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0000000000000010, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x00000000078644FA, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x000000000747AE14, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x000000007FFFFFFF, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0000000080000000, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x00000000FFFFFFFD, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x00000000FFFFFFFE, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x00000000FFFFFFFF, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0000000100000000, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0000000100000001, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0000000100000002, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0000000100000003, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0000000100000010, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x00000001078644FA, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x000000010747AE14, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x000000017FFFFFFF, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0000000180000000, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x00000001FFFFFFFD, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x00000001FFFFFFFE, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x00000001FFFFFFFF, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0000000200000000, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0000000200000001, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0000000200000002, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0000000200000003, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0000000200000010, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x00000002078644FA, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x000000020747AE14, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x000000027FFFFFFF, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0000000280000000, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x00000002FFFFFFFD, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x00000002FFFFFFFE, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x00000002FFFFFFFF, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0000000300000000, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0000000300000001, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0000000300000002, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0000000300000003, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0000000300000010, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x00000003078644FA, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x000000030747AE14, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x000000037FFFFFFF, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0000000380000000, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x00000003FFFFFFFD, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x00000003FFFFFFFE, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x00000003FFFFFFFF, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0000001000000000, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0000001000000001, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0000001000000002, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0000001000000003, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0000001000000010, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x00000010078644FA, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x000000100747AE14, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0000001080000000, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x078644FA00000000, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x078644FA00000001, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x078644FA00000002, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x078644FA00000003, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x078644FA00000010, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x078644FA078644FA, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x078644FA0747AE14, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x078644FA80000000, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0747AE1400000000, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0747AE1400000001, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0747AE1400000002, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0747AE1400000003, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0747AE1400000010, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0747AE14078644FA, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0747AE140747AE14, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0747AE1480000000, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x8000000000000000, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x8000000000000001, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x8000000000000002, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x8000000000000003, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x8000000000000010, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x80000000078644FA, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x800000000747AE14, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x8000000080000000, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000000, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000000000000}, + [_]u64{0x0000000000000001, 0x0000000000000001, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000000000000001, 0x0000000000000002, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0000000000000003, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0000000000000010, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x00000000078644FA, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x000000000747AE14, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x000000007FFFFFFF, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0000000080000000, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x00000000FFFFFFFD, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x00000000FFFFFFFE, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x00000000FFFFFFFF, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0000000100000000, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0000000100000001, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0000000100000002, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0000000100000003, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0000000100000010, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x00000001078644FA, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x000000010747AE14, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x000000017FFFFFFF, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0000000180000000, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x00000001FFFFFFFD, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x00000001FFFFFFFE, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x00000001FFFFFFFF, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0000000200000000, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0000000200000001, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0000000200000002, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0000000200000003, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0000000200000010, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x00000002078644FA, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x000000020747AE14, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x000000027FFFFFFF, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0000000280000000, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x00000002FFFFFFFD, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x00000002FFFFFFFE, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x00000002FFFFFFFF, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0000000300000000, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0000000300000001, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0000000300000002, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0000000300000003, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0000000300000010, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x00000003078644FA, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x000000030747AE14, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x000000037FFFFFFF, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0000000380000000, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x00000003FFFFFFFD, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x00000003FFFFFFFE, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x00000003FFFFFFFF, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0000001000000000, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0000001000000001, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0000001000000002, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0000001000000003, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0000001000000010, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x00000010078644FA, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x000000100747AE14, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0000001080000000, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x078644FA00000000, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x078644FA00000001, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x078644FA00000002, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x078644FA00000003, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x078644FA00000010, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x078644FA078644FA, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x078644FA0747AE14, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x078644FA80000000, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0747AE1400000000, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0747AE1400000001, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0747AE1400000002, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0747AE1400000003, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0747AE1400000010, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0747AE14078644FA, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0747AE140747AE14, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0747AE1480000000, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x8000000000000000, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x8000000000000001, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x8000000000000002, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x8000000000000003, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x8000000000000010, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x80000000078644FA, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x800000000747AE14, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x8000000080000000, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000001, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000000000001}, + [_]u64{0x0000000000000002, 0x0000000000000001, 0x0000000000000002, 0x0000000000000000}, + [_]u64{0x0000000000000002, 0x0000000000000002, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000000000000002, 0x0000000000000003, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0000000000000010, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x00000000078644FA, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x000000000747AE14, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x000000007FFFFFFF, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0000000080000000, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x00000000FFFFFFFD, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x00000000FFFFFFFE, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x00000000FFFFFFFF, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0000000100000000, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0000000100000001, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0000000100000002, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0000000100000003, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0000000100000010, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x00000001078644FA, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x000000010747AE14, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x000000017FFFFFFF, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0000000180000000, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x00000001FFFFFFFD, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x00000001FFFFFFFE, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x00000001FFFFFFFF, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0000000200000000, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0000000200000001, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0000000200000002, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0000000200000003, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0000000200000010, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x00000002078644FA, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x000000020747AE14, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x000000027FFFFFFF, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0000000280000000, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x00000002FFFFFFFD, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x00000002FFFFFFFE, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x00000002FFFFFFFF, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0000000300000000, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0000000300000001, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0000000300000002, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0000000300000003, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0000000300000010, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x00000003078644FA, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x000000030747AE14, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x000000037FFFFFFF, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0000000380000000, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x00000003FFFFFFFD, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x00000003FFFFFFFE, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x00000003FFFFFFFF, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0000001000000000, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0000001000000001, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0000001000000002, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0000001000000003, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0000001000000010, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x00000010078644FA, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x000000100747AE14, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0000001080000000, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x078644FA00000000, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x078644FA00000001, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x078644FA00000002, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x078644FA00000003, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x078644FA00000010, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x078644FA078644FA, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x078644FA0747AE14, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x078644FA80000000, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0747AE1400000000, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0747AE1400000001, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0747AE1400000002, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0747AE1400000003, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0747AE1400000010, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0747AE14078644FA, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0747AE140747AE14, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0747AE1480000000, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x8000000000000000, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x8000000000000001, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x8000000000000002, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x8000000000000003, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x8000000000000010, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x80000000078644FA, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x800000000747AE14, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x8000000080000000, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000002, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000000000002}, + [_]u64{0x0000000000000003, 0x0000000000000001, 0x0000000000000003, 0x0000000000000000}, + [_]u64{0x0000000000000003, 0x0000000000000002, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x0000000000000003, 0x0000000000000003, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000000000000003, 0x0000000000000010, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x00000000078644FA, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x000000000747AE14, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x000000007FFFFFFF, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0000000080000000, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x00000000FFFFFFFD, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x00000000FFFFFFFE, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x00000000FFFFFFFF, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0000000100000000, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0000000100000001, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0000000100000002, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0000000100000003, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0000000100000010, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x00000001078644FA, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x000000010747AE14, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x000000017FFFFFFF, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0000000180000000, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x00000001FFFFFFFD, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x00000001FFFFFFFE, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x00000001FFFFFFFF, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0000000200000000, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0000000200000001, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0000000200000002, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0000000200000003, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0000000200000010, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x00000002078644FA, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x000000020747AE14, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x000000027FFFFFFF, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0000000280000000, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x00000002FFFFFFFD, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x00000002FFFFFFFE, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x00000002FFFFFFFF, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0000000300000000, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0000000300000001, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0000000300000002, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0000000300000003, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0000000300000010, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x00000003078644FA, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x000000030747AE14, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x000000037FFFFFFF, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0000000380000000, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x00000003FFFFFFFD, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x00000003FFFFFFFE, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x00000003FFFFFFFF, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0000001000000000, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0000001000000001, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0000001000000002, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0000001000000003, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0000001000000010, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x00000010078644FA, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x000000100747AE14, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0000001080000000, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x078644FA00000000, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x078644FA00000001, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x078644FA00000002, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x078644FA00000003, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x078644FA00000010, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x078644FA078644FA, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x078644FA0747AE14, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x078644FA80000000, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0747AE1400000000, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0747AE1400000001, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0747AE1400000002, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0747AE1400000003, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0747AE1400000010, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0747AE14078644FA, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0747AE140747AE14, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0747AE1480000000, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x8000000000000000, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x8000000000000001, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x8000000000000002, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x8000000000000003, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x8000000000000010, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x80000000078644FA, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x800000000747AE14, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x8000000080000000, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000003, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000000000003}, + [_]u64{0x0000000000000010, 0x0000000000000001, 0x0000000000000010, 0x0000000000000000}, + [_]u64{0x0000000000000010, 0x0000000000000002, 0x0000000000000008, 0x0000000000000000}, + [_]u64{0x0000000000000010, 0x0000000000000003, 0x0000000000000005, 0x0000000000000001}, + [_]u64{0x0000000000000010, 0x0000000000000010, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000000000000010, 0x00000000078644FA, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x000000000747AE14, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x000000007FFFFFFF, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0000000080000000, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x00000000FFFFFFFD, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x00000000FFFFFFFE, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x00000000FFFFFFFF, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0000000100000000, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0000000100000001, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0000000100000002, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0000000100000003, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0000000100000010, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x00000001078644FA, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x000000010747AE14, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x000000017FFFFFFF, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0000000180000000, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x00000001FFFFFFFD, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x00000001FFFFFFFE, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x00000001FFFFFFFF, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0000000200000000, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0000000200000001, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0000000200000002, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0000000200000003, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0000000200000010, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x00000002078644FA, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x000000020747AE14, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x000000027FFFFFFF, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0000000280000000, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x00000002FFFFFFFD, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x00000002FFFFFFFE, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x00000002FFFFFFFF, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0000000300000000, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0000000300000001, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0000000300000002, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0000000300000003, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0000000300000010, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x00000003078644FA, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x000000030747AE14, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x000000037FFFFFFF, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0000000380000000, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x00000003FFFFFFFD, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x00000003FFFFFFFE, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x00000003FFFFFFFF, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0000001000000000, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0000001000000001, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0000001000000002, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0000001000000003, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0000001000000010, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x00000010078644FA, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x000000100747AE14, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0000001080000000, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x078644FA00000000, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x078644FA00000001, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x078644FA00000002, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x078644FA00000003, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x078644FA00000010, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x078644FA078644FA, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x078644FA0747AE14, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x078644FA80000000, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0747AE1400000000, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0747AE1400000001, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0747AE1400000002, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0747AE1400000003, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0747AE1400000010, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0747AE14078644FA, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0747AE140747AE14, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0747AE1480000000, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x8000000000000000, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x8000000000000001, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x8000000000000002, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x8000000000000003, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x8000000000000010, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x80000000078644FA, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x800000000747AE14, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x8000000080000000, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x0000000000000010, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000000000010}, + [_]u64{0x00000000078644FA, 0x0000000000000001, 0x00000000078644FA, 0x0000000000000000}, + [_]u64{0x00000000078644FA, 0x0000000000000002, 0x0000000003C3227D, 0x0000000000000000}, + [_]u64{0x00000000078644FA, 0x0000000000000003, 0x00000000028216FE, 0x0000000000000000}, + [_]u64{0x00000000078644FA, 0x0000000000000010, 0x000000000078644F, 0x000000000000000A}, + [_]u64{0x00000000078644FA, 0x00000000078644FA, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x00000000078644FA, 0x000000000747AE14, 0x0000000000000001, 0x00000000003E96E6}, + [_]u64{0x00000000078644FA, 0x000000007FFFFFFF, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0000000080000000, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x00000000FFFFFFFD, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x00000000FFFFFFFE, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x00000000FFFFFFFF, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0000000100000000, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0000000100000001, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0000000100000002, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0000000100000003, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0000000100000010, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x00000001078644FA, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x000000010747AE14, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x000000017FFFFFFF, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0000000180000000, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x00000001FFFFFFFD, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x00000001FFFFFFFE, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x00000001FFFFFFFF, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0000000200000000, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0000000200000001, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0000000200000002, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0000000200000003, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0000000200000010, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x00000002078644FA, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x000000020747AE14, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x000000027FFFFFFF, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0000000280000000, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x00000002FFFFFFFD, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x00000002FFFFFFFE, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x00000002FFFFFFFF, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0000000300000000, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0000000300000001, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0000000300000002, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0000000300000003, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0000000300000010, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x00000003078644FA, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x000000030747AE14, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x000000037FFFFFFF, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0000000380000000, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x00000003FFFFFFFD, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x00000003FFFFFFFE, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x00000003FFFFFFFF, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0000001000000000, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0000001000000001, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0000001000000002, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0000001000000003, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0000001000000010, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x00000010078644FA, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x000000100747AE14, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x000000107FFFFFFF, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0000001080000000, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x00000010FFFFFFFD, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x00000010FFFFFFFE, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x00000010FFFFFFFF, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x078644FA00000000, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x078644FA00000001, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x078644FA00000002, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x078644FA00000003, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x078644FA00000010, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x078644FA078644FA, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x078644FA0747AE14, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x078644FA80000000, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0747AE1400000000, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0747AE1400000001, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0747AE1400000002, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0747AE1400000003, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0747AE1400000010, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0747AE14078644FA, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0747AE140747AE14, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0747AE1480000000, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x7FFFFFFF00000000, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x7FFFFFFF00000001, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x7FFFFFFF00000002, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x7FFFFFFF00000003, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x7FFFFFFF00000010, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x7FFFFFFF80000000, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x8000000000000000, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x8000000000000001, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x8000000000000002, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x8000000000000003, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x8000000000000010, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x80000000078644FA, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x800000000747AE14, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x800000007FFFFFFF, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x8000000080000000, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x80000000FFFFFFFD, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x80000000FFFFFFFE, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0x80000000FFFFFFFF, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFD00000000, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFD00000001, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFD00000002, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFD00000003, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFD00000010, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFD80000000, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFE00000000, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFE00000001, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFE00000002, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFE00000003, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFE00000010, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFE80000000, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFF00000000, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFF00000001, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFF00000002, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFF00000003, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFF00000010, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFF80000000, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x00000000078644FA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000000078644FA}, + [_]u64{0x000000000747AE14, 0x0000000000000001, 0x000000000747AE14, 0x0000000000000000}, + [_]u64{0x000000000747AE14, 0x0000000000000002, 0x0000000003A3D70A, 0x0000000000000000}, + [_]u64{0x000000000747AE14, 0x0000000000000003, 0x00000000026D3A06, 0x0000000000000002}, + [_]u64{0x000000000747AE14, 0x0000000000000010, 0x0000000000747AE1, 0x0000000000000004}, + [_]u64{0x000000000747AE14, 0x00000000078644FA, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x000000000747AE14, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x000000000747AE14, 0x000000007FFFFFFF, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0000000080000000, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x00000000FFFFFFFD, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x00000000FFFFFFFE, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x00000000FFFFFFFF, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0000000100000000, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0000000100000001, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0000000100000002, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0000000100000003, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0000000100000010, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x00000001078644FA, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x000000010747AE14, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x000000017FFFFFFF, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0000000180000000, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x00000001FFFFFFFD, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x00000001FFFFFFFE, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x00000001FFFFFFFF, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0000000200000000, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0000000200000001, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0000000200000002, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0000000200000003, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0000000200000010, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x00000002078644FA, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x000000020747AE14, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x000000027FFFFFFF, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0000000280000000, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x00000002FFFFFFFD, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x00000002FFFFFFFE, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x00000002FFFFFFFF, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0000000300000000, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0000000300000001, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0000000300000002, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0000000300000003, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0000000300000010, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x00000003078644FA, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x000000030747AE14, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x000000037FFFFFFF, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0000000380000000, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x00000003FFFFFFFD, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x00000003FFFFFFFE, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x00000003FFFFFFFF, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0000001000000000, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0000001000000001, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0000001000000002, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0000001000000003, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0000001000000010, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x00000010078644FA, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x000000100747AE14, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x000000107FFFFFFF, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0000001080000000, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x00000010FFFFFFFD, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x00000010FFFFFFFE, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x00000010FFFFFFFF, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x078644FA00000000, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x078644FA00000001, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x078644FA00000002, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x078644FA00000003, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x078644FA00000010, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x078644FA078644FA, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x078644FA0747AE14, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x078644FA80000000, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0747AE1400000000, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0747AE1400000001, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0747AE1400000002, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0747AE1400000003, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0747AE1400000010, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0747AE14078644FA, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0747AE140747AE14, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0747AE1480000000, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x7FFFFFFF00000000, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x7FFFFFFF00000001, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x7FFFFFFF00000002, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x7FFFFFFF00000003, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x7FFFFFFF00000010, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x7FFFFFFF80000000, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x8000000000000000, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x8000000000000001, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x8000000000000002, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x8000000000000003, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x8000000000000010, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x80000000078644FA, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x800000000747AE14, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x800000007FFFFFFF, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x8000000080000000, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x80000000FFFFFFFD, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x80000000FFFFFFFE, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0x80000000FFFFFFFF, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFD00000000, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFD00000001, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFD00000002, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFD00000003, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFD00000010, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFD80000000, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFE00000000, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFE00000001, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFE00000002, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFE00000003, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFE00000010, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFE80000000, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFF00000000, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFF00000001, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFF00000002, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFF00000003, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFF00000010, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFF80000000, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000000747AE14, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x000000000747AE14}, + [_]u64{0x000000007FFFFFFF, 0x0000000000000001, 0x000000007FFFFFFF, 0x0000000000000000}, + [_]u64{0x000000007FFFFFFF, 0x0000000000000002, 0x000000003FFFFFFF, 0x0000000000000001}, + [_]u64{0x000000007FFFFFFF, 0x0000000000000003, 0x000000002AAAAAAA, 0x0000000000000001}, + [_]u64{0x000000007FFFFFFF, 0x0000000000000010, 0x0000000007FFFFFF, 0x000000000000000F}, + [_]u64{0x000000007FFFFFFF, 0x00000000078644FA, 0x0000000000000011, 0x0000000000156B65}, + [_]u64{0x000000007FFFFFFF, 0x000000000747AE14, 0x0000000000000011, 0x00000000043D70AB}, + [_]u64{0x000000007FFFFFFF, 0x000000007FFFFFFF, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x000000007FFFFFFF, 0x0000000080000000, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x00000000FFFFFFFD, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x00000000FFFFFFFE, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x00000000FFFFFFFF, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0000000100000000, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0000000100000001, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0000000100000002, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0000000100000003, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0000000100000010, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x00000001078644FA, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x000000010747AE14, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x000000017FFFFFFF, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0000000180000000, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x00000001FFFFFFFD, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x00000001FFFFFFFE, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x00000001FFFFFFFF, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0000000200000000, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0000000200000001, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0000000200000002, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0000000200000003, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0000000200000010, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x00000002078644FA, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x000000020747AE14, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x000000027FFFFFFF, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0000000280000000, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x00000002FFFFFFFD, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x00000002FFFFFFFE, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x00000002FFFFFFFF, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0000000300000000, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0000000300000001, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0000000300000002, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0000000300000003, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0000000300000010, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x00000003078644FA, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x000000030747AE14, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x000000037FFFFFFF, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0000000380000000, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x00000003FFFFFFFD, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x00000003FFFFFFFE, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x00000003FFFFFFFF, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0000001000000000, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0000001000000001, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0000001000000002, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0000001000000003, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0000001000000010, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x00000010078644FA, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x000000100747AE14, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x000000107FFFFFFF, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0000001080000000, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x00000010FFFFFFFD, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x00000010FFFFFFFE, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x00000010FFFFFFFF, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x078644FA00000000, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x078644FA00000001, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x078644FA00000002, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x078644FA00000003, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x078644FA00000010, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x078644FA078644FA, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x078644FA0747AE14, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x078644FA80000000, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0747AE1400000000, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0747AE1400000001, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0747AE1400000002, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0747AE1400000003, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0747AE1400000010, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0747AE14078644FA, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0747AE140747AE14, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0747AE1480000000, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x7FFFFFFF00000000, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x7FFFFFFF00000001, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x7FFFFFFF00000002, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x7FFFFFFF00000003, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x7FFFFFFF00000010, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x7FFFFFFF80000000, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x8000000000000000, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x8000000000000001, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x8000000000000002, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x8000000000000003, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x8000000000000010, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x80000000078644FA, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x800000000747AE14, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x800000007FFFFFFF, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x8000000080000000, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x80000000FFFFFFFD, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x80000000FFFFFFFE, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0x80000000FFFFFFFF, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFD00000000, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFD00000001, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFD00000002, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFD00000003, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFD00000010, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFD80000000, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFE00000000, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFE00000001, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFE00000002, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFE00000003, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFE00000010, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFE80000000, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFF00000000, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFF00000001, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFF00000002, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFF00000003, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFF00000010, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFF80000000, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x000000007FFFFFFF, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x000000007FFFFFFF}, + [_]u64{0x0000000080000000, 0x0000000000000001, 0x0000000080000000, 0x0000000000000000}, + [_]u64{0x0000000080000000, 0x0000000000000002, 0x0000000040000000, 0x0000000000000000}, + [_]u64{0x0000000080000000, 0x0000000000000003, 0x000000002AAAAAAA, 0x0000000000000002}, + [_]u64{0x0000000080000000, 0x0000000000000010, 0x0000000008000000, 0x0000000000000000}, + [_]u64{0x0000000080000000, 0x00000000078644FA, 0x0000000000000011, 0x0000000000156B66}, + [_]u64{0x0000000080000000, 0x000000000747AE14, 0x0000000000000011, 0x00000000043D70AC}, + [_]u64{0x0000000080000000, 0x000000007FFFFFFF, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x0000000080000000, 0x0000000080000000, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000000080000000, 0x00000000FFFFFFFD, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x00000000FFFFFFFE, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x00000000FFFFFFFF, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0000000100000000, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0000000100000001, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0000000100000002, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0000000100000003, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0000000100000010, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x00000001078644FA, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x000000010747AE14, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x000000017FFFFFFF, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0000000180000000, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x00000001FFFFFFFD, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x00000001FFFFFFFE, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x00000001FFFFFFFF, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0000000200000000, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0000000200000001, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0000000200000002, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0000000200000003, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0000000200000010, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x00000002078644FA, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x000000020747AE14, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x000000027FFFFFFF, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0000000280000000, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x00000002FFFFFFFD, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x00000002FFFFFFFE, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x00000002FFFFFFFF, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0000000300000000, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0000000300000001, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0000000300000002, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0000000300000003, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0000000300000010, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x00000003078644FA, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x000000030747AE14, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x000000037FFFFFFF, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0000000380000000, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x00000003FFFFFFFD, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x00000003FFFFFFFE, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x00000003FFFFFFFF, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0000001000000000, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0000001000000001, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0000001000000002, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0000001000000003, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0000001000000010, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x00000010078644FA, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x000000100747AE14, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0000001080000000, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x078644FA00000000, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x078644FA00000001, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x078644FA00000002, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x078644FA00000003, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x078644FA00000010, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x078644FA078644FA, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x078644FA0747AE14, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x078644FA80000000, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0747AE1400000000, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0747AE1400000001, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0747AE1400000002, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0747AE1400000003, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0747AE1400000010, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0747AE14078644FA, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0747AE140747AE14, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0747AE1480000000, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x8000000000000000, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x8000000000000001, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x8000000000000002, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x8000000000000003, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x8000000000000010, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x80000000078644FA, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x800000000747AE14, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x8000000080000000, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x0000000080000000, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000080000000}, + [_]u64{0x00000000FFFFFFFD, 0x0000000000000001, 0x00000000FFFFFFFD, 0x0000000000000000}, + [_]u64{0x00000000FFFFFFFD, 0x0000000000000002, 0x000000007FFFFFFE, 0x0000000000000001}, + [_]u64{0x00000000FFFFFFFD, 0x0000000000000003, 0x0000000055555554, 0x0000000000000001}, + [_]u64{0x00000000FFFFFFFD, 0x0000000000000010, 0x000000000FFFFFFF, 0x000000000000000D}, + [_]u64{0x00000000FFFFFFFD, 0x00000000078644FA, 0x0000000000000022, 0x00000000002AD6C9}, + [_]u64{0x00000000FFFFFFFD, 0x000000000747AE14, 0x0000000000000023, 0x0000000001333341}, + [_]u64{0x00000000FFFFFFFD, 0x000000007FFFFFFF, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x00000000FFFFFFFD, 0x0000000080000000, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x00000000FFFFFFFD, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x00000000FFFFFFFD, 0x00000000FFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x00000000FFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0000000100000000, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0000000100000001, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0000000100000002, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0000000100000003, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0000000100000010, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x00000001078644FA, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x000000010747AE14, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x000000017FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0000000180000000, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x00000001FFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x00000001FFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x00000001FFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0000000200000000, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0000000200000001, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0000000200000002, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0000000200000003, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0000000200000010, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x00000002078644FA, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x000000020747AE14, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x000000027FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0000000280000000, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x00000002FFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x00000002FFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x00000002FFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0000000300000000, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0000000300000001, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0000000300000002, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0000000300000003, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0000000300000010, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x00000003078644FA, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x000000030747AE14, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x000000037FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0000000380000000, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x00000003FFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x00000003FFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x00000003FFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0000001000000000, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0000001000000001, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0000001000000002, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0000001000000003, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0000001000000010, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x00000010078644FA, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x000000100747AE14, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x000000107FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0000001080000000, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x00000010FFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x00000010FFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x00000010FFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x078644FA00000000, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x078644FA00000001, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x078644FA00000002, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x078644FA00000003, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x078644FA00000010, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x078644FA078644FA, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x078644FA0747AE14, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x078644FA80000000, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0747AE1400000000, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0747AE1400000001, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0747AE1400000002, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0747AE1400000003, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0747AE1400000010, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0747AE14078644FA, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0747AE140747AE14, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0747AE1480000000, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x7FFFFFFF00000000, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x7FFFFFFF00000001, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x7FFFFFFF00000002, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x7FFFFFFF00000003, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x7FFFFFFF00000010, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x7FFFFFFF80000000, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x8000000000000000, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x8000000000000001, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x8000000000000002, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x8000000000000003, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x8000000000000010, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x80000000078644FA, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x800000000747AE14, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x800000007FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x8000000080000000, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x80000000FFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x80000000FFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0x80000000FFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFD00000000, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFD00000001, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFD00000002, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFD00000003, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFD00000010, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFD80000000, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFE00000000, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFE00000001, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFE00000002, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFE00000003, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFE00000010, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFE80000000, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFF00000000, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFF00000001, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFF00000002, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFF00000003, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFF00000010, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFF80000000, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFD, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFD}, + [_]u64{0x00000000FFFFFFFE, 0x0000000000000001, 0x00000000FFFFFFFE, 0x0000000000000000}, + [_]u64{0x00000000FFFFFFFE, 0x0000000000000002, 0x000000007FFFFFFF, 0x0000000000000000}, + [_]u64{0x00000000FFFFFFFE, 0x0000000000000003, 0x0000000055555554, 0x0000000000000002}, + [_]u64{0x00000000FFFFFFFE, 0x0000000000000010, 0x000000000FFFFFFF, 0x000000000000000E}, + [_]u64{0x00000000FFFFFFFE, 0x00000000078644FA, 0x0000000000000022, 0x00000000002AD6CA}, + [_]u64{0x00000000FFFFFFFE, 0x000000000747AE14, 0x0000000000000023, 0x0000000001333342}, + [_]u64{0x00000000FFFFFFFE, 0x000000007FFFFFFF, 0x0000000000000002, 0x0000000000000000}, + [_]u64{0x00000000FFFFFFFE, 0x0000000080000000, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x00000000FFFFFFFD, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x00000000FFFFFFFE, 0x00000000FFFFFFFE, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x00000000FFFFFFFE, 0x00000000FFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0000000100000000, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0000000100000001, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0000000100000002, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0000000100000003, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0000000100000010, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x00000001078644FA, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x000000010747AE14, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x000000017FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0000000180000000, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x00000001FFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x00000001FFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x00000001FFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0000000200000000, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0000000200000001, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0000000200000002, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0000000200000003, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0000000200000010, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x00000002078644FA, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x000000020747AE14, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x000000027FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0000000280000000, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x00000002FFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x00000002FFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x00000002FFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0000000300000000, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0000000300000001, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0000000300000002, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0000000300000003, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0000000300000010, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x00000003078644FA, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x000000030747AE14, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x000000037FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0000000380000000, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x00000003FFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x00000003FFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x00000003FFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0000001000000000, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0000001000000001, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0000001000000002, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0000001000000003, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0000001000000010, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x00000010078644FA, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x000000100747AE14, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x000000107FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0000001080000000, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x00000010FFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x00000010FFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x00000010FFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x078644FA00000000, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x078644FA00000001, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x078644FA00000002, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x078644FA00000003, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x078644FA00000010, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x078644FA078644FA, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x078644FA0747AE14, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x078644FA80000000, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0747AE1400000000, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0747AE1400000001, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0747AE1400000002, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0747AE1400000003, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0747AE1400000010, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0747AE14078644FA, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0747AE140747AE14, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0747AE1480000000, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x7FFFFFFF00000000, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x7FFFFFFF00000001, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x7FFFFFFF00000002, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x7FFFFFFF00000003, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x7FFFFFFF00000010, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x7FFFFFFF80000000, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x8000000000000000, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x8000000000000001, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x8000000000000002, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x8000000000000003, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x8000000000000010, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x80000000078644FA, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x800000000747AE14, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x800000007FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x8000000080000000, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x80000000FFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x80000000FFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0x80000000FFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFD00000000, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFD00000001, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFD00000002, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFD00000003, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFD00000010, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFD80000000, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFE00000000, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFE00000001, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFE00000002, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFE00000003, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFE00000010, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFE80000000, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFF00000000, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFF00000001, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFF00000002, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFF00000003, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFF00000010, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFF80000000, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFE, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFE}, + [_]u64{0x00000000FFFFFFFF, 0x0000000000000001, 0x00000000FFFFFFFF, 0x0000000000000000}, + [_]u64{0x00000000FFFFFFFF, 0x0000000000000002, 0x000000007FFFFFFF, 0x0000000000000001}, + [_]u64{0x00000000FFFFFFFF, 0x0000000000000003, 0x0000000055555555, 0x0000000000000000}, + [_]u64{0x00000000FFFFFFFF, 0x0000000000000010, 0x000000000FFFFFFF, 0x000000000000000F}, + [_]u64{0x00000000FFFFFFFF, 0x00000000078644FA, 0x0000000000000022, 0x00000000002AD6CB}, + [_]u64{0x00000000FFFFFFFF, 0x000000000747AE14, 0x0000000000000023, 0x0000000001333343}, + [_]u64{0x00000000FFFFFFFF, 0x000000007FFFFFFF, 0x0000000000000002, 0x0000000000000001}, + [_]u64{0x00000000FFFFFFFF, 0x0000000080000000, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x00000000FFFFFFFD, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x00000000FFFFFFFF, 0x00000000FFFFFFFE, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x00000000FFFFFFFF, 0x00000000FFFFFFFF, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x00000000FFFFFFFF, 0x0000000100000000, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0000000100000001, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0000000100000002, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0000000100000003, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0000000100000010, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x00000001078644FA, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x000000010747AE14, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x000000017FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0000000180000000, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x00000001FFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x00000001FFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x00000001FFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0000000200000000, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0000000200000001, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0000000200000002, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0000000200000003, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0000000200000010, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x00000002078644FA, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x000000020747AE14, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x000000027FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0000000280000000, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x00000002FFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x00000002FFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x00000002FFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0000000300000000, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0000000300000001, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0000000300000002, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0000000300000003, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0000000300000010, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x00000003078644FA, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x000000030747AE14, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x000000037FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0000000380000000, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x00000003FFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x00000003FFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x00000003FFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0000001000000000, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0000001000000001, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0000001000000002, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0000001000000003, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0000001000000010, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x00000010078644FA, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x000000100747AE14, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x000000107FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0000001080000000, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x00000010FFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x00000010FFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x00000010FFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x078644FA00000000, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x078644FA00000001, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x078644FA00000002, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x078644FA00000003, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x078644FA00000010, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x078644FA078644FA, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x078644FA0747AE14, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x078644FA80000000, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0747AE1400000000, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0747AE1400000001, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0747AE1400000002, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0747AE1400000003, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0747AE1400000010, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0747AE14078644FA, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0747AE140747AE14, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0747AE1480000000, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x7FFFFFFF00000000, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x7FFFFFFF00000001, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x7FFFFFFF00000002, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x7FFFFFFF00000003, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x7FFFFFFF00000010, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x7FFFFFFF80000000, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x8000000000000000, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x8000000000000001, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x8000000000000002, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x8000000000000003, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x8000000000000010, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x80000000078644FA, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x800000000747AE14, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x800000007FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x8000000080000000, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x80000000FFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x80000000FFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0x80000000FFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFD00000000, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFD00000001, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFD00000002, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFD00000003, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFD00000010, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFD80000000, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFE00000000, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFE00000001, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFE00000002, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFE00000003, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFE00000010, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFE80000000, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFF00000000, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFF00000001, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFF00000002, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFF00000003, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFF00000010, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFF80000000, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000000FFFFFFFF}, + [_]u64{0x0000000100000000, 0x0000000000000001, 0x0000000100000000, 0x0000000000000000}, + [_]u64{0x0000000100000000, 0x0000000000000002, 0x0000000080000000, 0x0000000000000000}, + [_]u64{0x0000000100000000, 0x0000000000000003, 0x0000000055555555, 0x0000000000000001}, + [_]u64{0x0000000100000000, 0x0000000000000010, 0x0000000010000000, 0x0000000000000000}, + [_]u64{0x0000000100000000, 0x00000000078644FA, 0x0000000000000022, 0x00000000002AD6CC}, + [_]u64{0x0000000100000000, 0x000000000747AE14, 0x0000000000000023, 0x0000000001333344}, + [_]u64{0x0000000100000000, 0x000000007FFFFFFF, 0x0000000000000002, 0x0000000000000002}, + [_]u64{0x0000000100000000, 0x0000000080000000, 0x0000000000000002, 0x0000000000000000}, + [_]u64{0x0000000100000000, 0x00000000FFFFFFFD, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0x0000000100000000, 0x00000000FFFFFFFE, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x0000000100000000, 0x00000000FFFFFFFF, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x0000000100000000, 0x0000000100000000, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000000100000000, 0x0000000100000001, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0000000100000002, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0000000100000003, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0000000100000010, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x00000001078644FA, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x000000010747AE14, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x000000017FFFFFFF, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0000000180000000, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x00000001FFFFFFFD, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x00000001FFFFFFFE, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x00000001FFFFFFFF, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0000000200000000, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0000000200000001, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0000000200000002, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0000000200000003, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0000000200000010, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x00000002078644FA, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x000000020747AE14, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x000000027FFFFFFF, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0000000280000000, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x00000002FFFFFFFD, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x00000002FFFFFFFE, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x00000002FFFFFFFF, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0000000300000000, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0000000300000001, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0000000300000002, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0000000300000003, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0000000300000010, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x00000003078644FA, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x000000030747AE14, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x000000037FFFFFFF, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0000000380000000, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x00000003FFFFFFFD, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x00000003FFFFFFFE, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x00000003FFFFFFFF, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0000001000000000, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0000001000000001, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0000001000000002, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0000001000000003, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0000001000000010, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x00000010078644FA, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x000000100747AE14, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0000001080000000, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x078644FA00000000, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x078644FA00000001, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x078644FA00000002, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x078644FA00000003, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x078644FA00000010, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x078644FA078644FA, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x078644FA0747AE14, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x078644FA80000000, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0747AE1400000000, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0747AE1400000001, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0747AE1400000002, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0747AE1400000003, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0747AE1400000010, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0747AE14078644FA, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0747AE140747AE14, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0747AE1480000000, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x8000000000000000, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x8000000000000001, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x8000000000000002, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x8000000000000003, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x8000000000000010, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x80000000078644FA, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x800000000747AE14, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x8000000080000000, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000000, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000100000000}, + [_]u64{0x0000000100000001, 0x0000000000000001, 0x0000000100000001, 0x0000000000000000}, + [_]u64{0x0000000100000001, 0x0000000000000002, 0x0000000080000000, 0x0000000000000001}, + [_]u64{0x0000000100000001, 0x0000000000000003, 0x0000000055555555, 0x0000000000000002}, + [_]u64{0x0000000100000001, 0x0000000000000010, 0x0000000010000000, 0x0000000000000001}, + [_]u64{0x0000000100000001, 0x00000000078644FA, 0x0000000000000022, 0x00000000002AD6CD}, + [_]u64{0x0000000100000001, 0x000000000747AE14, 0x0000000000000023, 0x0000000001333345}, + [_]u64{0x0000000100000001, 0x000000007FFFFFFF, 0x0000000000000002, 0x0000000000000003}, + [_]u64{0x0000000100000001, 0x0000000080000000, 0x0000000000000002, 0x0000000000000001}, + [_]u64{0x0000000100000001, 0x00000000FFFFFFFD, 0x0000000000000001, 0x0000000000000004}, + [_]u64{0x0000000100000001, 0x00000000FFFFFFFE, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0x0000000100000001, 0x00000000FFFFFFFF, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x0000000100000001, 0x0000000100000000, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x0000000100000001, 0x0000000100000001, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000000100000001, 0x0000000100000002, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0000000100000003, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0000000100000010, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x00000001078644FA, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x000000010747AE14, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x000000017FFFFFFF, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0000000180000000, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x00000001FFFFFFFD, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x00000001FFFFFFFE, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x00000001FFFFFFFF, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0000000200000000, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0000000200000001, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0000000200000002, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0000000200000003, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0000000200000010, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x00000002078644FA, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x000000020747AE14, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x000000027FFFFFFF, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0000000280000000, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x00000002FFFFFFFD, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x00000002FFFFFFFE, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x00000002FFFFFFFF, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0000000300000000, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0000000300000001, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0000000300000002, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0000000300000003, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0000000300000010, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x00000003078644FA, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x000000030747AE14, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x000000037FFFFFFF, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0000000380000000, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x00000003FFFFFFFD, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x00000003FFFFFFFE, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x00000003FFFFFFFF, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0000001000000000, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0000001000000001, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0000001000000002, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0000001000000003, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0000001000000010, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x00000010078644FA, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x000000100747AE14, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0000001080000000, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x078644FA00000000, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x078644FA00000001, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x078644FA00000002, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x078644FA00000003, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x078644FA00000010, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x078644FA078644FA, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x078644FA0747AE14, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x078644FA80000000, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0747AE1400000000, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0747AE1400000001, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0747AE1400000002, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0747AE1400000003, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0747AE1400000010, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0747AE14078644FA, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0747AE140747AE14, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0747AE1480000000, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x8000000000000000, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x8000000000000001, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x8000000000000002, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x8000000000000003, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x8000000000000010, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x80000000078644FA, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x800000000747AE14, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x8000000080000000, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000001, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000100000001}, + [_]u64{0x0000000100000002, 0x0000000000000001, 0x0000000100000002, 0x0000000000000000}, + [_]u64{0x0000000100000002, 0x0000000000000002, 0x0000000080000001, 0x0000000000000000}, + [_]u64{0x0000000100000002, 0x0000000000000003, 0x0000000055555556, 0x0000000000000000}, + [_]u64{0x0000000100000002, 0x0000000000000010, 0x0000000010000000, 0x0000000000000002}, + [_]u64{0x0000000100000002, 0x00000000078644FA, 0x0000000000000022, 0x00000000002AD6CE}, + [_]u64{0x0000000100000002, 0x000000000747AE14, 0x0000000000000023, 0x0000000001333346}, + [_]u64{0x0000000100000002, 0x000000007FFFFFFF, 0x0000000000000002, 0x0000000000000004}, + [_]u64{0x0000000100000002, 0x0000000080000000, 0x0000000000000002, 0x0000000000000002}, + [_]u64{0x0000000100000002, 0x00000000FFFFFFFD, 0x0000000000000001, 0x0000000000000005}, + [_]u64{0x0000000100000002, 0x00000000FFFFFFFE, 0x0000000000000001, 0x0000000000000004}, + [_]u64{0x0000000100000002, 0x00000000FFFFFFFF, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0x0000000100000002, 0x0000000100000000, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x0000000100000002, 0x0000000100000001, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x0000000100000002, 0x0000000100000002, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000000100000002, 0x0000000100000003, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0000000100000010, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x00000001078644FA, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x000000010747AE14, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x000000017FFFFFFF, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0000000180000000, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x00000001FFFFFFFD, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x00000001FFFFFFFE, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x00000001FFFFFFFF, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0000000200000000, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0000000200000001, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0000000200000002, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0000000200000003, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0000000200000010, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x00000002078644FA, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x000000020747AE14, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x000000027FFFFFFF, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0000000280000000, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x00000002FFFFFFFD, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x00000002FFFFFFFE, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x00000002FFFFFFFF, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0000000300000000, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0000000300000001, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0000000300000002, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0000000300000003, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0000000300000010, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x00000003078644FA, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x000000030747AE14, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x000000037FFFFFFF, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0000000380000000, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x00000003FFFFFFFD, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x00000003FFFFFFFE, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x00000003FFFFFFFF, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0000001000000000, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0000001000000001, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0000001000000002, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0000001000000003, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0000001000000010, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x00000010078644FA, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x000000100747AE14, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0000001080000000, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x078644FA00000000, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x078644FA00000001, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x078644FA00000002, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x078644FA00000003, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x078644FA00000010, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x078644FA078644FA, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x078644FA0747AE14, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x078644FA80000000, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0747AE1400000000, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0747AE1400000001, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0747AE1400000002, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0747AE1400000003, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0747AE1400000010, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0747AE14078644FA, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0747AE140747AE14, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0747AE1480000000, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x8000000000000000, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x8000000000000001, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x8000000000000002, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x8000000000000003, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x8000000000000010, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x80000000078644FA, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x800000000747AE14, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x8000000080000000, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000002, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000100000002}, + [_]u64{0x0000000100000003, 0x0000000000000001, 0x0000000100000003, 0x0000000000000000}, + [_]u64{0x0000000100000003, 0x0000000000000002, 0x0000000080000001, 0x0000000000000001}, + [_]u64{0x0000000100000003, 0x0000000000000003, 0x0000000055555556, 0x0000000000000001}, + [_]u64{0x0000000100000003, 0x0000000000000010, 0x0000000010000000, 0x0000000000000003}, + [_]u64{0x0000000100000003, 0x00000000078644FA, 0x0000000000000022, 0x00000000002AD6CF}, + [_]u64{0x0000000100000003, 0x000000000747AE14, 0x0000000000000023, 0x0000000001333347}, + [_]u64{0x0000000100000003, 0x000000007FFFFFFF, 0x0000000000000002, 0x0000000000000005}, + [_]u64{0x0000000100000003, 0x0000000080000000, 0x0000000000000002, 0x0000000000000003}, + [_]u64{0x0000000100000003, 0x00000000FFFFFFFD, 0x0000000000000001, 0x0000000000000006}, + [_]u64{0x0000000100000003, 0x00000000FFFFFFFE, 0x0000000000000001, 0x0000000000000005}, + [_]u64{0x0000000100000003, 0x00000000FFFFFFFF, 0x0000000000000001, 0x0000000000000004}, + [_]u64{0x0000000100000003, 0x0000000100000000, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0x0000000100000003, 0x0000000100000001, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x0000000100000003, 0x0000000100000002, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x0000000100000003, 0x0000000100000003, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000000100000003, 0x0000000100000010, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x00000001078644FA, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x000000010747AE14, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x000000017FFFFFFF, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0000000180000000, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x00000001FFFFFFFD, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x00000001FFFFFFFE, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x00000001FFFFFFFF, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0000000200000000, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0000000200000001, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0000000200000002, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0000000200000003, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0000000200000010, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x00000002078644FA, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x000000020747AE14, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x000000027FFFFFFF, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0000000280000000, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x00000002FFFFFFFD, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x00000002FFFFFFFE, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x00000002FFFFFFFF, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0000000300000000, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0000000300000001, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0000000300000002, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0000000300000003, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0000000300000010, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x00000003078644FA, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x000000030747AE14, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x000000037FFFFFFF, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0000000380000000, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x00000003FFFFFFFD, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x00000003FFFFFFFE, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x00000003FFFFFFFF, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0000001000000000, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0000001000000001, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0000001000000002, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0000001000000003, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0000001000000010, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x00000010078644FA, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x000000100747AE14, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0000001080000000, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x078644FA00000000, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x078644FA00000001, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x078644FA00000002, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x078644FA00000003, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x078644FA00000010, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x078644FA078644FA, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x078644FA0747AE14, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x078644FA80000000, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0747AE1400000000, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0747AE1400000001, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0747AE1400000002, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0747AE1400000003, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0747AE1400000010, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0747AE14078644FA, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0747AE140747AE14, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0747AE1480000000, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x8000000000000000, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x8000000000000001, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x8000000000000002, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x8000000000000003, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x8000000000000010, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x80000000078644FA, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x800000000747AE14, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x8000000080000000, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000003, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000100000003}, + [_]u64{0x0000000100000010, 0x0000000000000001, 0x0000000100000010, 0x0000000000000000}, + [_]u64{0x0000000100000010, 0x0000000000000002, 0x0000000080000008, 0x0000000000000000}, + [_]u64{0x0000000100000010, 0x0000000000000003, 0x000000005555555A, 0x0000000000000002}, + [_]u64{0x0000000100000010, 0x0000000000000010, 0x0000000010000001, 0x0000000000000000}, + [_]u64{0x0000000100000010, 0x00000000078644FA, 0x0000000000000022, 0x00000000002AD6DC}, + [_]u64{0x0000000100000010, 0x000000000747AE14, 0x0000000000000023, 0x0000000001333354}, + [_]u64{0x0000000100000010, 0x000000007FFFFFFF, 0x0000000000000002, 0x0000000000000012}, + [_]u64{0x0000000100000010, 0x0000000080000000, 0x0000000000000002, 0x0000000000000010}, + [_]u64{0x0000000100000010, 0x00000000FFFFFFFD, 0x0000000000000001, 0x0000000000000013}, + [_]u64{0x0000000100000010, 0x00000000FFFFFFFE, 0x0000000000000001, 0x0000000000000012}, + [_]u64{0x0000000100000010, 0x00000000FFFFFFFF, 0x0000000000000001, 0x0000000000000011}, + [_]u64{0x0000000100000010, 0x0000000100000000, 0x0000000000000001, 0x0000000000000010}, + [_]u64{0x0000000100000010, 0x0000000100000001, 0x0000000000000001, 0x000000000000000F}, + [_]u64{0x0000000100000010, 0x0000000100000002, 0x0000000000000001, 0x000000000000000E}, + [_]u64{0x0000000100000010, 0x0000000100000003, 0x0000000000000001, 0x000000000000000D}, + [_]u64{0x0000000100000010, 0x0000000100000010, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000000100000010, 0x00000001078644FA, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x000000010747AE14, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x000000017FFFFFFF, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0000000180000000, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x00000001FFFFFFFD, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x00000001FFFFFFFE, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x00000001FFFFFFFF, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0000000200000000, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0000000200000001, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0000000200000002, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0000000200000003, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0000000200000010, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x00000002078644FA, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x000000020747AE14, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x000000027FFFFFFF, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0000000280000000, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x00000002FFFFFFFD, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x00000002FFFFFFFE, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x00000002FFFFFFFF, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0000000300000000, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0000000300000001, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0000000300000002, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0000000300000003, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0000000300000010, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x00000003078644FA, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x000000030747AE14, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x000000037FFFFFFF, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0000000380000000, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x00000003FFFFFFFD, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x00000003FFFFFFFE, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x00000003FFFFFFFF, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0000001000000000, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0000001000000001, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0000001000000002, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0000001000000003, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0000001000000010, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x00000010078644FA, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x000000100747AE14, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0000001080000000, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x078644FA00000000, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x078644FA00000001, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x078644FA00000002, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x078644FA00000003, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x078644FA00000010, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x078644FA078644FA, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x078644FA0747AE14, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x078644FA80000000, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0747AE1400000000, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0747AE1400000001, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0747AE1400000002, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0747AE1400000003, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0747AE1400000010, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0747AE14078644FA, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0747AE140747AE14, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0747AE1480000000, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x8000000000000000, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x8000000000000001, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x8000000000000002, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x8000000000000003, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x8000000000000010, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x80000000078644FA, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x800000000747AE14, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x8000000080000000, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x0000000100000010, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000100000010}, + [_]u64{0x00000001078644FA, 0x0000000000000001, 0x00000001078644FA, 0x0000000000000000}, + [_]u64{0x00000001078644FA, 0x0000000000000002, 0x0000000083C3227D, 0x0000000000000000}, + [_]u64{0x00000001078644FA, 0x0000000000000003, 0x0000000057D76C53, 0x0000000000000001}, + [_]u64{0x00000001078644FA, 0x0000000000000010, 0x000000001078644F, 0x000000000000000A}, + [_]u64{0x00000001078644FA, 0x00000000078644FA, 0x0000000000000023, 0x00000000002AD6CC}, + [_]u64{0x00000001078644FA, 0x000000000747AE14, 0x0000000000000024, 0x000000000171CA2A}, + [_]u64{0x00000001078644FA, 0x000000007FFFFFFF, 0x0000000000000002, 0x00000000078644FC}, + [_]u64{0x00000001078644FA, 0x0000000080000000, 0x0000000000000002, 0x00000000078644FA}, + [_]u64{0x00000001078644FA, 0x00000000FFFFFFFD, 0x0000000000000001, 0x00000000078644FD}, + [_]u64{0x00000001078644FA, 0x00000000FFFFFFFE, 0x0000000000000001, 0x00000000078644FC}, + [_]u64{0x00000001078644FA, 0x00000000FFFFFFFF, 0x0000000000000001, 0x00000000078644FB}, + [_]u64{0x00000001078644FA, 0x0000000100000000, 0x0000000000000001, 0x00000000078644FA}, + [_]u64{0x00000001078644FA, 0x0000000100000001, 0x0000000000000001, 0x00000000078644F9}, + [_]u64{0x00000001078644FA, 0x0000000100000002, 0x0000000000000001, 0x00000000078644F8}, + [_]u64{0x00000001078644FA, 0x0000000100000003, 0x0000000000000001, 0x00000000078644F7}, + [_]u64{0x00000001078644FA, 0x0000000100000010, 0x0000000000000001, 0x00000000078644EA}, + [_]u64{0x00000001078644FA, 0x00000001078644FA, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x00000001078644FA, 0x000000010747AE14, 0x0000000000000001, 0x00000000003E96E6}, + [_]u64{0x00000001078644FA, 0x000000017FFFFFFF, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0000000180000000, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x00000001FFFFFFFD, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x00000001FFFFFFFE, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x00000001FFFFFFFF, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0000000200000000, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0000000200000001, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0000000200000002, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0000000200000003, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0000000200000010, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x00000002078644FA, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x000000020747AE14, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x000000027FFFFFFF, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0000000280000000, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x00000002FFFFFFFD, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x00000002FFFFFFFE, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x00000002FFFFFFFF, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0000000300000000, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0000000300000001, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0000000300000002, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0000000300000003, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0000000300000010, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x00000003078644FA, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x000000030747AE14, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x000000037FFFFFFF, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0000000380000000, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x00000003FFFFFFFD, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x00000003FFFFFFFE, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x00000003FFFFFFFF, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0000001000000000, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0000001000000001, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0000001000000002, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0000001000000003, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0000001000000010, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x00000010078644FA, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x000000100747AE14, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x000000107FFFFFFF, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0000001080000000, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x00000010FFFFFFFD, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x00000010FFFFFFFE, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x00000010FFFFFFFF, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x078644FA00000000, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x078644FA00000001, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x078644FA00000002, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x078644FA00000003, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x078644FA00000010, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x078644FA078644FA, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x078644FA0747AE14, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x078644FA80000000, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0747AE1400000000, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0747AE1400000001, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0747AE1400000002, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0747AE1400000003, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0747AE1400000010, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0747AE14078644FA, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0747AE140747AE14, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0747AE1480000000, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x7FFFFFFF00000000, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x7FFFFFFF00000001, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x7FFFFFFF00000002, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x7FFFFFFF00000003, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x7FFFFFFF00000010, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x7FFFFFFF80000000, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x8000000000000000, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x8000000000000001, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x8000000000000002, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x8000000000000003, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x8000000000000010, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x80000000078644FA, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x800000000747AE14, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x800000007FFFFFFF, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x8000000080000000, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x80000000FFFFFFFD, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x80000000FFFFFFFE, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0x80000000FFFFFFFF, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFD00000000, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFD00000001, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFD00000002, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFD00000003, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFD00000010, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFD80000000, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFE00000000, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFE00000001, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFE00000002, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFE00000003, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFE00000010, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFE80000000, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFF00000000, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFF00000001, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFF00000002, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFF00000003, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFF00000010, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFF80000000, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x00000001078644FA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000001078644FA}, + [_]u64{0x000000010747AE14, 0x0000000000000001, 0x000000010747AE14, 0x0000000000000000}, + [_]u64{0x000000010747AE14, 0x0000000000000002, 0x0000000083A3D70A, 0x0000000000000000}, + [_]u64{0x000000010747AE14, 0x0000000000000003, 0x0000000057C28F5C, 0x0000000000000000}, + [_]u64{0x000000010747AE14, 0x0000000000000010, 0x0000000010747AE1, 0x0000000000000004}, + [_]u64{0x000000010747AE14, 0x00000000078644FA, 0x0000000000000022, 0x00000000077284E0}, + [_]u64{0x000000010747AE14, 0x000000000747AE14, 0x0000000000000024, 0x0000000001333344}, + [_]u64{0x000000010747AE14, 0x000000007FFFFFFF, 0x0000000000000002, 0x000000000747AE16}, + [_]u64{0x000000010747AE14, 0x0000000080000000, 0x0000000000000002, 0x000000000747AE14}, + [_]u64{0x000000010747AE14, 0x00000000FFFFFFFD, 0x0000000000000001, 0x000000000747AE17}, + [_]u64{0x000000010747AE14, 0x00000000FFFFFFFE, 0x0000000000000001, 0x000000000747AE16}, + [_]u64{0x000000010747AE14, 0x00000000FFFFFFFF, 0x0000000000000001, 0x000000000747AE15}, + [_]u64{0x000000010747AE14, 0x0000000100000000, 0x0000000000000001, 0x000000000747AE14}, + [_]u64{0x000000010747AE14, 0x0000000100000001, 0x0000000000000001, 0x000000000747AE13}, + [_]u64{0x000000010747AE14, 0x0000000100000002, 0x0000000000000001, 0x000000000747AE12}, + [_]u64{0x000000010747AE14, 0x0000000100000003, 0x0000000000000001, 0x000000000747AE11}, + [_]u64{0x000000010747AE14, 0x0000000100000010, 0x0000000000000001, 0x000000000747AE04}, + [_]u64{0x000000010747AE14, 0x00000001078644FA, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x000000010747AE14, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x000000010747AE14, 0x000000017FFFFFFF, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0000000180000000, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x00000001FFFFFFFD, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x00000001FFFFFFFE, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x00000001FFFFFFFF, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0000000200000000, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0000000200000001, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0000000200000002, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0000000200000003, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0000000200000010, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x00000002078644FA, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x000000020747AE14, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x000000027FFFFFFF, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0000000280000000, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x00000002FFFFFFFD, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x00000002FFFFFFFE, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x00000002FFFFFFFF, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0000000300000000, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0000000300000001, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0000000300000002, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0000000300000003, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0000000300000010, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x00000003078644FA, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x000000030747AE14, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x000000037FFFFFFF, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0000000380000000, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x00000003FFFFFFFD, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x00000003FFFFFFFE, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x00000003FFFFFFFF, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0000001000000000, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0000001000000001, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0000001000000002, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0000001000000003, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0000001000000010, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x00000010078644FA, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x000000100747AE14, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x000000107FFFFFFF, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0000001080000000, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x00000010FFFFFFFD, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x00000010FFFFFFFE, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x00000010FFFFFFFF, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x078644FA00000000, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x078644FA00000001, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x078644FA00000002, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x078644FA00000003, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x078644FA00000010, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x078644FA078644FA, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x078644FA0747AE14, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x078644FA80000000, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0747AE1400000000, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0747AE1400000001, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0747AE1400000002, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0747AE1400000003, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0747AE1400000010, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0747AE14078644FA, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0747AE140747AE14, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0747AE1480000000, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x7FFFFFFF00000000, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x7FFFFFFF00000001, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x7FFFFFFF00000002, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x7FFFFFFF00000003, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x7FFFFFFF00000010, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x7FFFFFFF80000000, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x8000000000000000, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x8000000000000001, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x8000000000000002, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x8000000000000003, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x8000000000000010, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x80000000078644FA, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x800000000747AE14, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x800000007FFFFFFF, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x8000000080000000, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x80000000FFFFFFFD, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x80000000FFFFFFFE, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0x80000000FFFFFFFF, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFD00000000, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFD00000001, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFD00000002, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFD00000003, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFD00000010, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFD80000000, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFE00000000, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFE00000001, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFE00000002, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFE00000003, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFE00000010, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFE80000000, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFF00000000, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFF00000001, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFF00000002, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFF00000003, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFF00000010, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFF80000000, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000010747AE14, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x000000010747AE14}, + [_]u64{0x000000017FFFFFFF, 0x0000000000000001, 0x000000017FFFFFFF, 0x0000000000000000}, + [_]u64{0x000000017FFFFFFF, 0x0000000000000002, 0x00000000BFFFFFFF, 0x0000000000000001}, + [_]u64{0x000000017FFFFFFF, 0x0000000000000003, 0x000000007FFFFFFF, 0x0000000000000002}, + [_]u64{0x000000017FFFFFFF, 0x0000000000000010, 0x0000000017FFFFFF, 0x000000000000000F}, + [_]u64{0x000000017FFFFFFF, 0x00000000078644FA, 0x0000000000000033, 0x0000000000404231}, + [_]u64{0x000000017FFFFFFF, 0x000000000747AE14, 0x0000000000000034, 0x000000000570A3EF}, + [_]u64{0x000000017FFFFFFF, 0x000000007FFFFFFF, 0x0000000000000003, 0x0000000000000002}, + [_]u64{0x000000017FFFFFFF, 0x0000000080000000, 0x0000000000000002, 0x000000007FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x00000000FFFFFFFD, 0x0000000000000001, 0x0000000080000002}, + [_]u64{0x000000017FFFFFFF, 0x00000000FFFFFFFE, 0x0000000000000001, 0x0000000080000001}, + [_]u64{0x000000017FFFFFFF, 0x00000000FFFFFFFF, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0x000000017FFFFFFF, 0x0000000100000000, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0000000100000001, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x000000017FFFFFFF, 0x0000000100000002, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0x000000017FFFFFFF, 0x0000000100000003, 0x0000000000000001, 0x000000007FFFFFFC}, + [_]u64{0x000000017FFFFFFF, 0x0000000100000010, 0x0000000000000001, 0x000000007FFFFFEF}, + [_]u64{0x000000017FFFFFFF, 0x00000001078644FA, 0x0000000000000001, 0x000000007879BB05}, + [_]u64{0x000000017FFFFFFF, 0x000000010747AE14, 0x0000000000000001, 0x0000000078B851EB}, + [_]u64{0x000000017FFFFFFF, 0x000000017FFFFFFF, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x000000017FFFFFFF, 0x0000000180000000, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x00000001FFFFFFFD, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x00000001FFFFFFFE, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x00000001FFFFFFFF, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0000000200000000, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0000000200000001, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0000000200000002, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0000000200000003, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0000000200000010, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x00000002078644FA, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x000000020747AE14, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x000000027FFFFFFF, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0000000280000000, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x00000002FFFFFFFD, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x00000002FFFFFFFE, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x00000002FFFFFFFF, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0000000300000000, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0000000300000001, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0000000300000002, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0000000300000003, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0000000300000010, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x00000003078644FA, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x000000030747AE14, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x000000037FFFFFFF, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0000000380000000, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x00000003FFFFFFFD, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x00000003FFFFFFFE, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x00000003FFFFFFFF, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0000001000000000, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0000001000000001, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0000001000000002, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0000001000000003, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0000001000000010, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x00000010078644FA, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x000000100747AE14, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x000000107FFFFFFF, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0000001080000000, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x00000010FFFFFFFD, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x00000010FFFFFFFE, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x00000010FFFFFFFF, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x078644FA00000000, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x078644FA00000001, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x078644FA00000002, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x078644FA00000003, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x078644FA00000010, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x078644FA078644FA, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x078644FA0747AE14, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x078644FA80000000, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0747AE1400000000, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0747AE1400000001, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0747AE1400000002, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0747AE1400000003, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0747AE1400000010, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0747AE14078644FA, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0747AE140747AE14, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0747AE1480000000, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x7FFFFFFF00000000, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x7FFFFFFF00000001, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x7FFFFFFF00000002, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x7FFFFFFF00000003, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x7FFFFFFF00000010, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x7FFFFFFF80000000, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x8000000000000000, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x8000000000000001, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x8000000000000002, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x8000000000000003, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x8000000000000010, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x80000000078644FA, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x800000000747AE14, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x800000007FFFFFFF, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x8000000080000000, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x80000000FFFFFFFD, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x80000000FFFFFFFE, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0x80000000FFFFFFFF, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFD00000000, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFD00000001, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFD00000002, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFD00000003, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFD00000010, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFD80000000, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFE00000000, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFE00000001, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFE00000002, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFE00000003, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFE00000010, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFE80000000, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFF00000000, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFF00000001, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFF00000002, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFF00000003, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFF00000010, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFF80000000, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x000000017FFFFFFF, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x000000017FFFFFFF}, + [_]u64{0x0000000180000000, 0x0000000000000001, 0x0000000180000000, 0x0000000000000000}, + [_]u64{0x0000000180000000, 0x0000000000000002, 0x00000000C0000000, 0x0000000000000000}, + [_]u64{0x0000000180000000, 0x0000000000000003, 0x0000000080000000, 0x0000000000000000}, + [_]u64{0x0000000180000000, 0x0000000000000010, 0x0000000018000000, 0x0000000000000000}, + [_]u64{0x0000000180000000, 0x00000000078644FA, 0x0000000000000033, 0x0000000000404232}, + [_]u64{0x0000000180000000, 0x000000000747AE14, 0x0000000000000034, 0x000000000570A3F0}, + [_]u64{0x0000000180000000, 0x000000007FFFFFFF, 0x0000000000000003, 0x0000000000000003}, + [_]u64{0x0000000180000000, 0x0000000080000000, 0x0000000000000003, 0x0000000000000000}, + [_]u64{0x0000000180000000, 0x00000000FFFFFFFD, 0x0000000000000001, 0x0000000080000003}, + [_]u64{0x0000000180000000, 0x00000000FFFFFFFE, 0x0000000000000001, 0x0000000080000002}, + [_]u64{0x0000000180000000, 0x00000000FFFFFFFF, 0x0000000000000001, 0x0000000080000001}, + [_]u64{0x0000000180000000, 0x0000000100000000, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0x0000000180000000, 0x0000000100000001, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x0000000180000000, 0x0000000100000002, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x0000000180000000, 0x0000000100000003, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0x0000000180000000, 0x0000000100000010, 0x0000000000000001, 0x000000007FFFFFF0}, + [_]u64{0x0000000180000000, 0x00000001078644FA, 0x0000000000000001, 0x000000007879BB06}, + [_]u64{0x0000000180000000, 0x000000010747AE14, 0x0000000000000001, 0x0000000078B851EC}, + [_]u64{0x0000000180000000, 0x000000017FFFFFFF, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x0000000180000000, 0x0000000180000000, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000000180000000, 0x00000001FFFFFFFD, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x00000001FFFFFFFE, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x00000001FFFFFFFF, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0000000200000000, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0000000200000001, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0000000200000002, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0000000200000003, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0000000200000010, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x00000002078644FA, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x000000020747AE14, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x000000027FFFFFFF, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0000000280000000, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x00000002FFFFFFFD, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x00000002FFFFFFFE, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x00000002FFFFFFFF, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0000000300000000, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0000000300000001, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0000000300000002, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0000000300000003, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0000000300000010, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x00000003078644FA, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x000000030747AE14, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x000000037FFFFFFF, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0000000380000000, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x00000003FFFFFFFD, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x00000003FFFFFFFE, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x00000003FFFFFFFF, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0000001000000000, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0000001000000001, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0000001000000002, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0000001000000003, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0000001000000010, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x00000010078644FA, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x000000100747AE14, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0000001080000000, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x078644FA00000000, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x078644FA00000001, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x078644FA00000002, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x078644FA00000003, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x078644FA00000010, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x078644FA078644FA, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x078644FA0747AE14, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x078644FA80000000, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0747AE1400000000, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0747AE1400000001, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0747AE1400000002, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0747AE1400000003, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0747AE1400000010, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0747AE14078644FA, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0747AE140747AE14, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0747AE1480000000, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x8000000000000000, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x8000000000000001, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x8000000000000002, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x8000000000000003, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x8000000000000010, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x80000000078644FA, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x800000000747AE14, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x8000000080000000, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x0000000180000000, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000180000000}, + [_]u64{0x00000001FFFFFFFD, 0x0000000000000001, 0x00000001FFFFFFFD, 0x0000000000000000}, + [_]u64{0x00000001FFFFFFFD, 0x0000000000000002, 0x00000000FFFFFFFE, 0x0000000000000001}, + [_]u64{0x00000001FFFFFFFD, 0x0000000000000003, 0x00000000AAAAAAA9, 0x0000000000000002}, + [_]u64{0x00000001FFFFFFFD, 0x0000000000000010, 0x000000001FFFFFFF, 0x000000000000000D}, + [_]u64{0x00000001FFFFFFFD, 0x00000000078644FA, 0x0000000000000044, 0x000000000055AD95}, + [_]u64{0x00000001FFFFFFFD, 0x000000000747AE14, 0x0000000000000046, 0x0000000002666685}, + [_]u64{0x00000001FFFFFFFD, 0x000000007FFFFFFF, 0x0000000000000004, 0x0000000000000001}, + [_]u64{0x00000001FFFFFFFD, 0x0000000080000000, 0x0000000000000003, 0x000000007FFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x00000000FFFFFFFD, 0x0000000000000002, 0x0000000000000003}, + [_]u64{0x00000001FFFFFFFD, 0x00000000FFFFFFFE, 0x0000000000000002, 0x0000000000000001}, + [_]u64{0x00000001FFFFFFFD, 0x00000000FFFFFFFF, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0x00000001FFFFFFFD, 0x0000000100000000, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0000000100000001, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0x00000001FFFFFFFD, 0x0000000100000002, 0x0000000000000001, 0x00000000FFFFFFFB}, + [_]u64{0x00000001FFFFFFFD, 0x0000000100000003, 0x0000000000000001, 0x00000000FFFFFFFA}, + [_]u64{0x00000001FFFFFFFD, 0x0000000100000010, 0x0000000000000001, 0x00000000FFFFFFED}, + [_]u64{0x00000001FFFFFFFD, 0x00000001078644FA, 0x0000000000000001, 0x00000000F879BB03}, + [_]u64{0x00000001FFFFFFFD, 0x000000010747AE14, 0x0000000000000001, 0x00000000F8B851E9}, + [_]u64{0x00000001FFFFFFFD, 0x000000017FFFFFFF, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x00000001FFFFFFFD, 0x0000000180000000, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x00000001FFFFFFFD, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x00000001FFFFFFFD, 0x00000001FFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x00000001FFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0000000200000000, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0000000200000001, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0000000200000002, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0000000200000003, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0000000200000010, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x00000002078644FA, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x000000020747AE14, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x000000027FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0000000280000000, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x00000002FFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x00000002FFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x00000002FFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0000000300000000, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0000000300000001, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0000000300000002, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0000000300000003, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0000000300000010, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x00000003078644FA, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x000000030747AE14, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x000000037FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0000000380000000, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x00000003FFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x00000003FFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x00000003FFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0000001000000000, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0000001000000001, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0000001000000002, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0000001000000003, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0000001000000010, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x00000010078644FA, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x000000100747AE14, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x000000107FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0000001080000000, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x00000010FFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x00000010FFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x00000010FFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x078644FA00000000, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x078644FA00000001, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x078644FA00000002, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x078644FA00000003, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x078644FA00000010, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x078644FA078644FA, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x078644FA0747AE14, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x078644FA80000000, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0747AE1400000000, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0747AE1400000001, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0747AE1400000002, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0747AE1400000003, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0747AE1400000010, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0747AE14078644FA, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0747AE140747AE14, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0747AE1480000000, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x7FFFFFFF00000000, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x7FFFFFFF00000001, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x7FFFFFFF00000002, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x7FFFFFFF00000003, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x7FFFFFFF00000010, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x7FFFFFFF80000000, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x8000000000000000, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x8000000000000001, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x8000000000000002, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x8000000000000003, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x8000000000000010, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x80000000078644FA, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x800000000747AE14, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x800000007FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x8000000080000000, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x80000000FFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x80000000FFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0x80000000FFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFD00000000, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFD00000001, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFD00000002, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFD00000003, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFD00000010, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFD80000000, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFE00000000, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFE00000001, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFE00000002, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFE00000003, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFE00000010, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFE80000000, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFF00000000, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFF00000001, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFF00000002, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFF00000003, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFF00000010, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFF80000000, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFD, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFD}, + [_]u64{0x00000001FFFFFFFE, 0x0000000000000001, 0x00000001FFFFFFFE, 0x0000000000000000}, + [_]u64{0x00000001FFFFFFFE, 0x0000000000000002, 0x00000000FFFFFFFF, 0x0000000000000000}, + [_]u64{0x00000001FFFFFFFE, 0x0000000000000003, 0x00000000AAAAAAAA, 0x0000000000000000}, + [_]u64{0x00000001FFFFFFFE, 0x0000000000000010, 0x000000001FFFFFFF, 0x000000000000000E}, + [_]u64{0x00000001FFFFFFFE, 0x00000000078644FA, 0x0000000000000044, 0x000000000055AD96}, + [_]u64{0x00000001FFFFFFFE, 0x000000000747AE14, 0x0000000000000046, 0x0000000002666686}, + [_]u64{0x00000001FFFFFFFE, 0x000000007FFFFFFF, 0x0000000000000004, 0x0000000000000002}, + [_]u64{0x00000001FFFFFFFE, 0x0000000080000000, 0x0000000000000003, 0x000000007FFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x00000000FFFFFFFD, 0x0000000000000002, 0x0000000000000004}, + [_]u64{0x00000001FFFFFFFE, 0x00000000FFFFFFFE, 0x0000000000000002, 0x0000000000000002}, + [_]u64{0x00000001FFFFFFFE, 0x00000000FFFFFFFF, 0x0000000000000002, 0x0000000000000000}, + [_]u64{0x00000001FFFFFFFE, 0x0000000100000000, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0000000100000001, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0x00000001FFFFFFFE, 0x0000000100000002, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0x00000001FFFFFFFE, 0x0000000100000003, 0x0000000000000001, 0x00000000FFFFFFFB}, + [_]u64{0x00000001FFFFFFFE, 0x0000000100000010, 0x0000000000000001, 0x00000000FFFFFFEE}, + [_]u64{0x00000001FFFFFFFE, 0x00000001078644FA, 0x0000000000000001, 0x00000000F879BB04}, + [_]u64{0x00000001FFFFFFFE, 0x000000010747AE14, 0x0000000000000001, 0x00000000F8B851EA}, + [_]u64{0x00000001FFFFFFFE, 0x000000017FFFFFFF, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x00000001FFFFFFFE, 0x0000000180000000, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x00000001FFFFFFFD, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x00000001FFFFFFFE, 0x00000001FFFFFFFE, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x00000001FFFFFFFE, 0x00000001FFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0000000200000000, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0000000200000001, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0000000200000002, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0000000200000003, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0000000200000010, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x00000002078644FA, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x000000020747AE14, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x000000027FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0000000280000000, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x00000002FFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x00000002FFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x00000002FFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0000000300000000, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0000000300000001, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0000000300000002, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0000000300000003, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0000000300000010, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x00000003078644FA, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x000000030747AE14, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x000000037FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0000000380000000, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x00000003FFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x00000003FFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x00000003FFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0000001000000000, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0000001000000001, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0000001000000002, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0000001000000003, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0000001000000010, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x00000010078644FA, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x000000100747AE14, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x000000107FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0000001080000000, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x00000010FFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x00000010FFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x00000010FFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x078644FA00000000, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x078644FA00000001, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x078644FA00000002, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x078644FA00000003, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x078644FA00000010, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x078644FA078644FA, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x078644FA0747AE14, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x078644FA80000000, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0747AE1400000000, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0747AE1400000001, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0747AE1400000002, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0747AE1400000003, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0747AE1400000010, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0747AE14078644FA, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0747AE140747AE14, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0747AE1480000000, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x7FFFFFFF00000000, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x7FFFFFFF00000001, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x7FFFFFFF00000002, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x7FFFFFFF00000003, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x7FFFFFFF00000010, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x7FFFFFFF80000000, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x8000000000000000, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x8000000000000001, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x8000000000000002, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x8000000000000003, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x8000000000000010, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x80000000078644FA, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x800000000747AE14, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x800000007FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x8000000080000000, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x80000000FFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x80000000FFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0x80000000FFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFD00000000, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFD00000001, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFD00000002, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFD00000003, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFD00000010, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFD80000000, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFE00000000, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFE00000001, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFE00000002, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFE00000003, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFE00000010, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFE80000000, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFF00000000, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFF00000001, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFF00000002, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFF00000003, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFF00000010, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFF80000000, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFE, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFE}, + [_]u64{0x00000001FFFFFFFF, 0x0000000000000001, 0x00000001FFFFFFFF, 0x0000000000000000}, + [_]u64{0x00000001FFFFFFFF, 0x0000000000000002, 0x00000000FFFFFFFF, 0x0000000000000001}, + [_]u64{0x00000001FFFFFFFF, 0x0000000000000003, 0x00000000AAAAAAAA, 0x0000000000000001}, + [_]u64{0x00000001FFFFFFFF, 0x0000000000000010, 0x000000001FFFFFFF, 0x000000000000000F}, + [_]u64{0x00000001FFFFFFFF, 0x00000000078644FA, 0x0000000000000044, 0x000000000055AD97}, + [_]u64{0x00000001FFFFFFFF, 0x000000000747AE14, 0x0000000000000046, 0x0000000002666687}, + [_]u64{0x00000001FFFFFFFF, 0x000000007FFFFFFF, 0x0000000000000004, 0x0000000000000003}, + [_]u64{0x00000001FFFFFFFF, 0x0000000080000000, 0x0000000000000003, 0x000000007FFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x00000000FFFFFFFD, 0x0000000000000002, 0x0000000000000005}, + [_]u64{0x00000001FFFFFFFF, 0x00000000FFFFFFFE, 0x0000000000000002, 0x0000000000000003}, + [_]u64{0x00000001FFFFFFFF, 0x00000000FFFFFFFF, 0x0000000000000002, 0x0000000000000001}, + [_]u64{0x00000001FFFFFFFF, 0x0000000100000000, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0000000100000001, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0x00000001FFFFFFFF, 0x0000000100000002, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0x00000001FFFFFFFF, 0x0000000100000003, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0x00000001FFFFFFFF, 0x0000000100000010, 0x0000000000000001, 0x00000000FFFFFFEF}, + [_]u64{0x00000001FFFFFFFF, 0x00000001078644FA, 0x0000000000000001, 0x00000000F879BB05}, + [_]u64{0x00000001FFFFFFFF, 0x000000010747AE14, 0x0000000000000001, 0x00000000F8B851EB}, + [_]u64{0x00000001FFFFFFFF, 0x000000017FFFFFFF, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0x00000001FFFFFFFF, 0x0000000180000000, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x00000001FFFFFFFD, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x00000001FFFFFFFF, 0x00000001FFFFFFFE, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x00000001FFFFFFFF, 0x00000001FFFFFFFF, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x00000001FFFFFFFF, 0x0000000200000000, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0000000200000001, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0000000200000002, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0000000200000003, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0000000200000010, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x00000002078644FA, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x000000020747AE14, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x000000027FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0000000280000000, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x00000002FFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x00000002FFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x00000002FFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0000000300000000, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0000000300000001, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0000000300000002, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0000000300000003, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0000000300000010, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x00000003078644FA, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x000000030747AE14, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x000000037FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0000000380000000, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x00000003FFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x00000003FFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x00000003FFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0000001000000000, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0000001000000001, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0000001000000002, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0000001000000003, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0000001000000010, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x00000010078644FA, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x000000100747AE14, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x000000107FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0000001080000000, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x00000010FFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x00000010FFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x00000010FFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x078644FA00000000, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x078644FA00000001, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x078644FA00000002, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x078644FA00000003, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x078644FA00000010, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x078644FA078644FA, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x078644FA0747AE14, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x078644FA80000000, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0747AE1400000000, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0747AE1400000001, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0747AE1400000002, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0747AE1400000003, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0747AE1400000010, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0747AE14078644FA, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0747AE140747AE14, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0747AE1480000000, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x7FFFFFFF00000000, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x7FFFFFFF00000001, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x7FFFFFFF00000002, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x7FFFFFFF00000003, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x7FFFFFFF00000010, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x7FFFFFFF80000000, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x8000000000000000, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x8000000000000001, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x8000000000000002, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x8000000000000003, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x8000000000000010, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x80000000078644FA, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x800000000747AE14, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x800000007FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x8000000080000000, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x80000000FFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x80000000FFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0x80000000FFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFD00000000, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFD00000001, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFD00000002, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFD00000003, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFD00000010, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFD80000000, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFE00000000, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFE00000001, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFE00000002, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFE00000003, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFE00000010, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFE80000000, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFF00000000, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFF00000001, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFF00000002, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFF00000003, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFF00000010, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFF80000000, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000001FFFFFFFF}, + [_]u64{0x0000000200000000, 0x0000000000000001, 0x0000000200000000, 0x0000000000000000}, + [_]u64{0x0000000200000000, 0x0000000000000002, 0x0000000100000000, 0x0000000000000000}, + [_]u64{0x0000000200000000, 0x0000000000000003, 0x00000000AAAAAAAA, 0x0000000000000002}, + [_]u64{0x0000000200000000, 0x0000000000000010, 0x0000000020000000, 0x0000000000000000}, + [_]u64{0x0000000200000000, 0x00000000078644FA, 0x0000000000000044, 0x000000000055AD98}, + [_]u64{0x0000000200000000, 0x000000000747AE14, 0x0000000000000046, 0x0000000002666688}, + [_]u64{0x0000000200000000, 0x000000007FFFFFFF, 0x0000000000000004, 0x0000000000000004}, + [_]u64{0x0000000200000000, 0x0000000080000000, 0x0000000000000004, 0x0000000000000000}, + [_]u64{0x0000000200000000, 0x00000000FFFFFFFD, 0x0000000000000002, 0x0000000000000006}, + [_]u64{0x0000000200000000, 0x00000000FFFFFFFE, 0x0000000000000002, 0x0000000000000004}, + [_]u64{0x0000000200000000, 0x00000000FFFFFFFF, 0x0000000000000002, 0x0000000000000002}, + [_]u64{0x0000000200000000, 0x0000000100000000, 0x0000000000000002, 0x0000000000000000}, + [_]u64{0x0000000200000000, 0x0000000100000001, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0x0000000200000000, 0x0000000100000002, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0x0000000200000000, 0x0000000100000003, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0x0000000200000000, 0x0000000100000010, 0x0000000000000001, 0x00000000FFFFFFF0}, + [_]u64{0x0000000200000000, 0x00000001078644FA, 0x0000000000000001, 0x00000000F879BB06}, + [_]u64{0x0000000200000000, 0x000000010747AE14, 0x0000000000000001, 0x00000000F8B851EC}, + [_]u64{0x0000000200000000, 0x000000017FFFFFFF, 0x0000000000000001, 0x0000000080000001}, + [_]u64{0x0000000200000000, 0x0000000180000000, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0x0000000200000000, 0x00000001FFFFFFFD, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0x0000000200000000, 0x00000001FFFFFFFE, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x0000000200000000, 0x00000001FFFFFFFF, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x0000000200000000, 0x0000000200000000, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000000200000000, 0x0000000200000001, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x0000000200000002, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x0000000200000003, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x0000000200000010, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x00000002078644FA, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x000000020747AE14, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x000000027FFFFFFF, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x0000000280000000, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x00000002FFFFFFFD, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x00000002FFFFFFFE, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x00000002FFFFFFFF, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x0000000300000000, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x0000000300000001, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x0000000300000002, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x0000000300000003, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x0000000300000010, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x00000003078644FA, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x000000030747AE14, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x000000037FFFFFFF, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x0000000380000000, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x00000003FFFFFFFD, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x00000003FFFFFFFE, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x00000003FFFFFFFF, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x0000001000000000, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x0000001000000001, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x0000001000000002, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x0000001000000003, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x0000001000000010, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x00000010078644FA, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x000000100747AE14, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x0000001080000000, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x078644FA00000000, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x078644FA00000001, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x078644FA00000002, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x078644FA00000003, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x078644FA00000010, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x078644FA078644FA, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x078644FA0747AE14, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x078644FA80000000, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x0747AE1400000000, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x0747AE1400000001, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x0747AE1400000002, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x0747AE1400000003, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x0747AE1400000010, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x0747AE14078644FA, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x0747AE140747AE14, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x0747AE1480000000, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x8000000000000000, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x8000000000000001, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x8000000000000002, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x8000000000000003, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x8000000000000010, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x80000000078644FA, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x800000000747AE14, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x8000000080000000, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000000, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000200000000}, + [_]u64{0x0000000200000001, 0x0000000000000001, 0x0000000200000001, 0x0000000000000000}, + [_]u64{0x0000000200000001, 0x0000000000000002, 0x0000000100000000, 0x0000000000000001}, + [_]u64{0x0000000200000001, 0x0000000000000003, 0x00000000AAAAAAAB, 0x0000000000000000}, + [_]u64{0x0000000200000001, 0x0000000000000010, 0x0000000020000000, 0x0000000000000001}, + [_]u64{0x0000000200000001, 0x00000000078644FA, 0x0000000000000044, 0x000000000055AD99}, + [_]u64{0x0000000200000001, 0x000000000747AE14, 0x0000000000000046, 0x0000000002666689}, + [_]u64{0x0000000200000001, 0x000000007FFFFFFF, 0x0000000000000004, 0x0000000000000005}, + [_]u64{0x0000000200000001, 0x0000000080000000, 0x0000000000000004, 0x0000000000000001}, + [_]u64{0x0000000200000001, 0x00000000FFFFFFFD, 0x0000000000000002, 0x0000000000000007}, + [_]u64{0x0000000200000001, 0x00000000FFFFFFFE, 0x0000000000000002, 0x0000000000000005}, + [_]u64{0x0000000200000001, 0x00000000FFFFFFFF, 0x0000000000000002, 0x0000000000000003}, + [_]u64{0x0000000200000001, 0x0000000100000000, 0x0000000000000002, 0x0000000000000001}, + [_]u64{0x0000000200000001, 0x0000000100000001, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x0000000200000001, 0x0000000100000002, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0x0000000200000001, 0x0000000100000003, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0x0000000200000001, 0x0000000100000010, 0x0000000000000001, 0x00000000FFFFFFF1}, + [_]u64{0x0000000200000001, 0x00000001078644FA, 0x0000000000000001, 0x00000000F879BB07}, + [_]u64{0x0000000200000001, 0x000000010747AE14, 0x0000000000000001, 0x00000000F8B851ED}, + [_]u64{0x0000000200000001, 0x000000017FFFFFFF, 0x0000000000000001, 0x0000000080000002}, + [_]u64{0x0000000200000001, 0x0000000180000000, 0x0000000000000001, 0x0000000080000001}, + [_]u64{0x0000000200000001, 0x00000001FFFFFFFD, 0x0000000000000001, 0x0000000000000004}, + [_]u64{0x0000000200000001, 0x00000001FFFFFFFE, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0x0000000200000001, 0x00000001FFFFFFFF, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x0000000200000001, 0x0000000200000000, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x0000000200000001, 0x0000000200000001, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000000200000001, 0x0000000200000002, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x0000000200000003, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x0000000200000010, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x00000002078644FA, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x000000020747AE14, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x000000027FFFFFFF, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x0000000280000000, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x00000002FFFFFFFD, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x00000002FFFFFFFE, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x00000002FFFFFFFF, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x0000000300000000, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x0000000300000001, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x0000000300000002, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x0000000300000003, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x0000000300000010, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x00000003078644FA, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x000000030747AE14, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x000000037FFFFFFF, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x0000000380000000, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x00000003FFFFFFFD, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x00000003FFFFFFFE, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x00000003FFFFFFFF, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x0000001000000000, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x0000001000000001, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x0000001000000002, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x0000001000000003, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x0000001000000010, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x00000010078644FA, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x000000100747AE14, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x0000001080000000, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x078644FA00000000, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x078644FA00000001, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x078644FA00000002, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x078644FA00000003, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x078644FA00000010, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x078644FA078644FA, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x078644FA0747AE14, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x078644FA80000000, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x0747AE1400000000, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x0747AE1400000001, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x0747AE1400000002, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x0747AE1400000003, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x0747AE1400000010, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x0747AE14078644FA, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x0747AE140747AE14, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x0747AE1480000000, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x8000000000000000, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x8000000000000001, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x8000000000000002, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x8000000000000003, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x8000000000000010, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x80000000078644FA, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x800000000747AE14, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x8000000080000000, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000001, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000200000001}, + [_]u64{0x0000000200000002, 0x0000000000000001, 0x0000000200000002, 0x0000000000000000}, + [_]u64{0x0000000200000002, 0x0000000000000002, 0x0000000100000001, 0x0000000000000000}, + [_]u64{0x0000000200000002, 0x0000000000000003, 0x00000000AAAAAAAB, 0x0000000000000001}, + [_]u64{0x0000000200000002, 0x0000000000000010, 0x0000000020000000, 0x0000000000000002}, + [_]u64{0x0000000200000002, 0x00000000078644FA, 0x0000000000000044, 0x000000000055AD9A}, + [_]u64{0x0000000200000002, 0x000000000747AE14, 0x0000000000000046, 0x000000000266668A}, + [_]u64{0x0000000200000002, 0x000000007FFFFFFF, 0x0000000000000004, 0x0000000000000006}, + [_]u64{0x0000000200000002, 0x0000000080000000, 0x0000000000000004, 0x0000000000000002}, + [_]u64{0x0000000200000002, 0x00000000FFFFFFFD, 0x0000000000000002, 0x0000000000000008}, + [_]u64{0x0000000200000002, 0x00000000FFFFFFFE, 0x0000000000000002, 0x0000000000000006}, + [_]u64{0x0000000200000002, 0x00000000FFFFFFFF, 0x0000000000000002, 0x0000000000000004}, + [_]u64{0x0000000200000002, 0x0000000100000000, 0x0000000000000002, 0x0000000000000002}, + [_]u64{0x0000000200000002, 0x0000000100000001, 0x0000000000000002, 0x0000000000000000}, + [_]u64{0x0000000200000002, 0x0000000100000002, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x0000000200000002, 0x0000000100000003, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0x0000000200000002, 0x0000000100000010, 0x0000000000000001, 0x00000000FFFFFFF2}, + [_]u64{0x0000000200000002, 0x00000001078644FA, 0x0000000000000001, 0x00000000F879BB08}, + [_]u64{0x0000000200000002, 0x000000010747AE14, 0x0000000000000001, 0x00000000F8B851EE}, + [_]u64{0x0000000200000002, 0x000000017FFFFFFF, 0x0000000000000001, 0x0000000080000003}, + [_]u64{0x0000000200000002, 0x0000000180000000, 0x0000000000000001, 0x0000000080000002}, + [_]u64{0x0000000200000002, 0x00000001FFFFFFFD, 0x0000000000000001, 0x0000000000000005}, + [_]u64{0x0000000200000002, 0x00000001FFFFFFFE, 0x0000000000000001, 0x0000000000000004}, + [_]u64{0x0000000200000002, 0x00000001FFFFFFFF, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0x0000000200000002, 0x0000000200000000, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x0000000200000002, 0x0000000200000001, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x0000000200000002, 0x0000000200000002, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000000200000002, 0x0000000200000003, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x0000000200000010, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x00000002078644FA, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x000000020747AE14, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x000000027FFFFFFF, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x0000000280000000, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x00000002FFFFFFFD, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x00000002FFFFFFFE, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x00000002FFFFFFFF, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x0000000300000000, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x0000000300000001, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x0000000300000002, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x0000000300000003, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x0000000300000010, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x00000003078644FA, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x000000030747AE14, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x000000037FFFFFFF, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x0000000380000000, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x00000003FFFFFFFD, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x00000003FFFFFFFE, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x00000003FFFFFFFF, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x0000001000000000, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x0000001000000001, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x0000001000000002, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x0000001000000003, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x0000001000000010, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x00000010078644FA, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x000000100747AE14, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x0000001080000000, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x078644FA00000000, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x078644FA00000001, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x078644FA00000002, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x078644FA00000003, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x078644FA00000010, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x078644FA078644FA, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x078644FA0747AE14, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x078644FA80000000, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x0747AE1400000000, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x0747AE1400000001, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x0747AE1400000002, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x0747AE1400000003, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x0747AE1400000010, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x0747AE14078644FA, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x0747AE140747AE14, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x0747AE1480000000, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x8000000000000000, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x8000000000000001, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x8000000000000002, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x8000000000000003, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x8000000000000010, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x80000000078644FA, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x800000000747AE14, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x8000000080000000, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000002, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000200000002}, + [_]u64{0x0000000200000003, 0x0000000000000001, 0x0000000200000003, 0x0000000000000000}, + [_]u64{0x0000000200000003, 0x0000000000000002, 0x0000000100000001, 0x0000000000000001}, + [_]u64{0x0000000200000003, 0x0000000000000003, 0x00000000AAAAAAAB, 0x0000000000000002}, + [_]u64{0x0000000200000003, 0x0000000000000010, 0x0000000020000000, 0x0000000000000003}, + [_]u64{0x0000000200000003, 0x00000000078644FA, 0x0000000000000044, 0x000000000055AD9B}, + [_]u64{0x0000000200000003, 0x000000000747AE14, 0x0000000000000046, 0x000000000266668B}, + [_]u64{0x0000000200000003, 0x000000007FFFFFFF, 0x0000000000000004, 0x0000000000000007}, + [_]u64{0x0000000200000003, 0x0000000080000000, 0x0000000000000004, 0x0000000000000003}, + [_]u64{0x0000000200000003, 0x00000000FFFFFFFD, 0x0000000000000002, 0x0000000000000009}, + [_]u64{0x0000000200000003, 0x00000000FFFFFFFE, 0x0000000000000002, 0x0000000000000007}, + [_]u64{0x0000000200000003, 0x00000000FFFFFFFF, 0x0000000000000002, 0x0000000000000005}, + [_]u64{0x0000000200000003, 0x0000000100000000, 0x0000000000000002, 0x0000000000000003}, + [_]u64{0x0000000200000003, 0x0000000100000001, 0x0000000000000002, 0x0000000000000001}, + [_]u64{0x0000000200000003, 0x0000000100000002, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0x0000000200000003, 0x0000000100000003, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x0000000200000003, 0x0000000100000010, 0x0000000000000001, 0x00000000FFFFFFF3}, + [_]u64{0x0000000200000003, 0x00000001078644FA, 0x0000000000000001, 0x00000000F879BB09}, + [_]u64{0x0000000200000003, 0x000000010747AE14, 0x0000000000000001, 0x00000000F8B851EF}, + [_]u64{0x0000000200000003, 0x000000017FFFFFFF, 0x0000000000000001, 0x0000000080000004}, + [_]u64{0x0000000200000003, 0x0000000180000000, 0x0000000000000001, 0x0000000080000003}, + [_]u64{0x0000000200000003, 0x00000001FFFFFFFD, 0x0000000000000001, 0x0000000000000006}, + [_]u64{0x0000000200000003, 0x00000001FFFFFFFE, 0x0000000000000001, 0x0000000000000005}, + [_]u64{0x0000000200000003, 0x00000001FFFFFFFF, 0x0000000000000001, 0x0000000000000004}, + [_]u64{0x0000000200000003, 0x0000000200000000, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0x0000000200000003, 0x0000000200000001, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x0000000200000003, 0x0000000200000002, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x0000000200000003, 0x0000000200000003, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000000200000003, 0x0000000200000010, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x00000002078644FA, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x000000020747AE14, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x000000027FFFFFFF, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x0000000280000000, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x00000002FFFFFFFD, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x00000002FFFFFFFE, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x00000002FFFFFFFF, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x0000000300000000, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x0000000300000001, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x0000000300000002, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x0000000300000003, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x0000000300000010, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x00000003078644FA, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x000000030747AE14, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x000000037FFFFFFF, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x0000000380000000, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x00000003FFFFFFFD, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x00000003FFFFFFFE, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x00000003FFFFFFFF, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x0000001000000000, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x0000001000000001, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x0000001000000002, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x0000001000000003, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x0000001000000010, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x00000010078644FA, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x000000100747AE14, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x0000001080000000, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x078644FA00000000, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x078644FA00000001, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x078644FA00000002, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x078644FA00000003, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x078644FA00000010, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x078644FA078644FA, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x078644FA0747AE14, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x078644FA80000000, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x0747AE1400000000, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x0747AE1400000001, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x0747AE1400000002, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x0747AE1400000003, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x0747AE1400000010, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x0747AE14078644FA, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x0747AE140747AE14, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x0747AE1480000000, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x8000000000000000, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x8000000000000001, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x8000000000000002, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x8000000000000003, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x8000000000000010, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x80000000078644FA, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x800000000747AE14, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x8000000080000000, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000003, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000200000003}, + [_]u64{0x0000000200000010, 0x0000000000000001, 0x0000000200000010, 0x0000000000000000}, + [_]u64{0x0000000200000010, 0x0000000000000002, 0x0000000100000008, 0x0000000000000000}, + [_]u64{0x0000000200000010, 0x0000000000000003, 0x00000000AAAAAAB0, 0x0000000000000000}, + [_]u64{0x0000000200000010, 0x0000000000000010, 0x0000000020000001, 0x0000000000000000}, + [_]u64{0x0000000200000010, 0x00000000078644FA, 0x0000000000000044, 0x000000000055ADA8}, + [_]u64{0x0000000200000010, 0x000000000747AE14, 0x0000000000000046, 0x0000000002666698}, + [_]u64{0x0000000200000010, 0x000000007FFFFFFF, 0x0000000000000004, 0x0000000000000014}, + [_]u64{0x0000000200000010, 0x0000000080000000, 0x0000000000000004, 0x0000000000000010}, + [_]u64{0x0000000200000010, 0x00000000FFFFFFFD, 0x0000000000000002, 0x0000000000000016}, + [_]u64{0x0000000200000010, 0x00000000FFFFFFFE, 0x0000000000000002, 0x0000000000000014}, + [_]u64{0x0000000200000010, 0x00000000FFFFFFFF, 0x0000000000000002, 0x0000000000000012}, + [_]u64{0x0000000200000010, 0x0000000100000000, 0x0000000000000002, 0x0000000000000010}, + [_]u64{0x0000000200000010, 0x0000000100000001, 0x0000000000000002, 0x000000000000000E}, + [_]u64{0x0000000200000010, 0x0000000100000002, 0x0000000000000002, 0x000000000000000C}, + [_]u64{0x0000000200000010, 0x0000000100000003, 0x0000000000000002, 0x000000000000000A}, + [_]u64{0x0000000200000010, 0x0000000100000010, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x0000000200000010, 0x00000001078644FA, 0x0000000000000001, 0x00000000F879BB16}, + [_]u64{0x0000000200000010, 0x000000010747AE14, 0x0000000000000001, 0x00000000F8B851FC}, + [_]u64{0x0000000200000010, 0x000000017FFFFFFF, 0x0000000000000001, 0x0000000080000011}, + [_]u64{0x0000000200000010, 0x0000000180000000, 0x0000000000000001, 0x0000000080000010}, + [_]u64{0x0000000200000010, 0x00000001FFFFFFFD, 0x0000000000000001, 0x0000000000000013}, + [_]u64{0x0000000200000010, 0x00000001FFFFFFFE, 0x0000000000000001, 0x0000000000000012}, + [_]u64{0x0000000200000010, 0x00000001FFFFFFFF, 0x0000000000000001, 0x0000000000000011}, + [_]u64{0x0000000200000010, 0x0000000200000000, 0x0000000000000001, 0x0000000000000010}, + [_]u64{0x0000000200000010, 0x0000000200000001, 0x0000000000000001, 0x000000000000000F}, + [_]u64{0x0000000200000010, 0x0000000200000002, 0x0000000000000001, 0x000000000000000E}, + [_]u64{0x0000000200000010, 0x0000000200000003, 0x0000000000000001, 0x000000000000000D}, + [_]u64{0x0000000200000010, 0x0000000200000010, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000000200000010, 0x00000002078644FA, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x000000020747AE14, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x000000027FFFFFFF, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x0000000280000000, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x00000002FFFFFFFD, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x00000002FFFFFFFE, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x00000002FFFFFFFF, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x0000000300000000, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x0000000300000001, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x0000000300000002, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x0000000300000003, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x0000000300000010, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x00000003078644FA, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x000000030747AE14, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x000000037FFFFFFF, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x0000000380000000, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x00000003FFFFFFFD, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x00000003FFFFFFFE, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x00000003FFFFFFFF, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x0000001000000000, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x0000001000000001, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x0000001000000002, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x0000001000000003, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x0000001000000010, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x00000010078644FA, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x000000100747AE14, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x0000001080000000, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x078644FA00000000, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x078644FA00000001, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x078644FA00000002, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x078644FA00000003, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x078644FA00000010, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x078644FA078644FA, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x078644FA0747AE14, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x078644FA80000000, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x0747AE1400000000, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x0747AE1400000001, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x0747AE1400000002, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x0747AE1400000003, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x0747AE1400000010, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x0747AE14078644FA, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x0747AE140747AE14, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x0747AE1480000000, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x8000000000000000, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x8000000000000001, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x8000000000000002, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x8000000000000003, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x8000000000000010, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x80000000078644FA, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x800000000747AE14, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x8000000080000000, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x0000000200000010, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000200000010}, + [_]u64{0x00000002078644FA, 0x0000000000000001, 0x00000002078644FA, 0x0000000000000000}, + [_]u64{0x00000002078644FA, 0x0000000000000002, 0x0000000103C3227D, 0x0000000000000000}, + [_]u64{0x00000002078644FA, 0x0000000000000003, 0x00000000AD2CC1A8, 0x0000000000000002}, + [_]u64{0x00000002078644FA, 0x0000000000000010, 0x000000002078644F, 0x000000000000000A}, + [_]u64{0x00000002078644FA, 0x00000000078644FA, 0x0000000000000045, 0x000000000055AD98}, + [_]u64{0x00000002078644FA, 0x000000000747AE14, 0x0000000000000047, 0x0000000002A4FD6E}, + [_]u64{0x00000002078644FA, 0x000000007FFFFFFF, 0x0000000000000004, 0x00000000078644FE}, + [_]u64{0x00000002078644FA, 0x0000000080000000, 0x0000000000000004, 0x00000000078644FA}, + [_]u64{0x00000002078644FA, 0x00000000FFFFFFFD, 0x0000000000000002, 0x0000000007864500}, + [_]u64{0x00000002078644FA, 0x00000000FFFFFFFE, 0x0000000000000002, 0x00000000078644FE}, + [_]u64{0x00000002078644FA, 0x00000000FFFFFFFF, 0x0000000000000002, 0x00000000078644FC}, + [_]u64{0x00000002078644FA, 0x0000000100000000, 0x0000000000000002, 0x00000000078644FA}, + [_]u64{0x00000002078644FA, 0x0000000100000001, 0x0000000000000002, 0x00000000078644F8}, + [_]u64{0x00000002078644FA, 0x0000000100000002, 0x0000000000000002, 0x00000000078644F6}, + [_]u64{0x00000002078644FA, 0x0000000100000003, 0x0000000000000002, 0x00000000078644F4}, + [_]u64{0x00000002078644FA, 0x0000000100000010, 0x0000000000000002, 0x00000000078644DA}, + [_]u64{0x00000002078644FA, 0x00000001078644FA, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x00000002078644FA, 0x000000010747AE14, 0x0000000000000001, 0x00000001003E96E6}, + [_]u64{0x00000002078644FA, 0x000000017FFFFFFF, 0x0000000000000001, 0x00000000878644FB}, + [_]u64{0x00000002078644FA, 0x0000000180000000, 0x0000000000000001, 0x00000000878644FA}, + [_]u64{0x00000002078644FA, 0x00000001FFFFFFFD, 0x0000000000000001, 0x00000000078644FD}, + [_]u64{0x00000002078644FA, 0x00000001FFFFFFFE, 0x0000000000000001, 0x00000000078644FC}, + [_]u64{0x00000002078644FA, 0x00000001FFFFFFFF, 0x0000000000000001, 0x00000000078644FB}, + [_]u64{0x00000002078644FA, 0x0000000200000000, 0x0000000000000001, 0x00000000078644FA}, + [_]u64{0x00000002078644FA, 0x0000000200000001, 0x0000000000000001, 0x00000000078644F9}, + [_]u64{0x00000002078644FA, 0x0000000200000002, 0x0000000000000001, 0x00000000078644F8}, + [_]u64{0x00000002078644FA, 0x0000000200000003, 0x0000000000000001, 0x00000000078644F7}, + [_]u64{0x00000002078644FA, 0x0000000200000010, 0x0000000000000001, 0x00000000078644EA}, + [_]u64{0x00000002078644FA, 0x00000002078644FA, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x00000002078644FA, 0x000000020747AE14, 0x0000000000000001, 0x00000000003E96E6}, + [_]u64{0x00000002078644FA, 0x000000027FFFFFFF, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x0000000280000000, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x00000002FFFFFFFD, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x00000002FFFFFFFE, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x00000002FFFFFFFF, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x0000000300000000, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x0000000300000001, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x0000000300000002, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x0000000300000003, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x0000000300000010, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x00000003078644FA, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x000000030747AE14, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x000000037FFFFFFF, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x0000000380000000, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x00000003FFFFFFFD, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x00000003FFFFFFFE, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x00000003FFFFFFFF, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x0000001000000000, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x0000001000000001, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x0000001000000002, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x0000001000000003, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x0000001000000010, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x00000010078644FA, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x000000100747AE14, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x000000107FFFFFFF, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x0000001080000000, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x00000010FFFFFFFD, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x00000010FFFFFFFE, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x00000010FFFFFFFF, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x078644FA00000000, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x078644FA00000001, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x078644FA00000002, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x078644FA00000003, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x078644FA00000010, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x078644FA078644FA, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x078644FA0747AE14, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x078644FA80000000, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x0747AE1400000000, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x0747AE1400000001, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x0747AE1400000002, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x0747AE1400000003, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x0747AE1400000010, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x0747AE14078644FA, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x0747AE140747AE14, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x0747AE1480000000, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x7FFFFFFF00000000, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x7FFFFFFF00000001, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x7FFFFFFF00000002, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x7FFFFFFF00000003, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x7FFFFFFF00000010, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x7FFFFFFF80000000, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x8000000000000000, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x8000000000000001, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x8000000000000002, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x8000000000000003, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x8000000000000010, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x80000000078644FA, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x800000000747AE14, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x800000007FFFFFFF, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x8000000080000000, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x80000000FFFFFFFD, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x80000000FFFFFFFE, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0x80000000FFFFFFFF, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFD00000000, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFD00000001, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFD00000002, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFD00000003, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFD00000010, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFD80000000, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFE00000000, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFE00000001, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFE00000002, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFE00000003, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFE00000010, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFE80000000, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFF00000000, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFF00000001, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFF00000002, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFF00000003, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFF00000010, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFF80000000, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x00000002078644FA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000002078644FA}, + [_]u64{0x000000020747AE14, 0x0000000000000001, 0x000000020747AE14, 0x0000000000000000}, + [_]u64{0x000000020747AE14, 0x0000000000000002, 0x0000000103A3D70A, 0x0000000000000000}, + [_]u64{0x000000020747AE14, 0x0000000000000003, 0x00000000AD17E4B1, 0x0000000000000001}, + [_]u64{0x000000020747AE14, 0x0000000000000010, 0x0000000020747AE1, 0x0000000000000004}, + [_]u64{0x000000020747AE14, 0x00000000078644FA, 0x0000000000000045, 0x00000000001716B2}, + [_]u64{0x000000020747AE14, 0x000000000747AE14, 0x0000000000000047, 0x0000000002666688}, + [_]u64{0x000000020747AE14, 0x000000007FFFFFFF, 0x0000000000000004, 0x000000000747AE18}, + [_]u64{0x000000020747AE14, 0x0000000080000000, 0x0000000000000004, 0x000000000747AE14}, + [_]u64{0x000000020747AE14, 0x00000000FFFFFFFD, 0x0000000000000002, 0x000000000747AE1A}, + [_]u64{0x000000020747AE14, 0x00000000FFFFFFFE, 0x0000000000000002, 0x000000000747AE18}, + [_]u64{0x000000020747AE14, 0x00000000FFFFFFFF, 0x0000000000000002, 0x000000000747AE16}, + [_]u64{0x000000020747AE14, 0x0000000100000000, 0x0000000000000002, 0x000000000747AE14}, + [_]u64{0x000000020747AE14, 0x0000000100000001, 0x0000000000000002, 0x000000000747AE12}, + [_]u64{0x000000020747AE14, 0x0000000100000002, 0x0000000000000002, 0x000000000747AE10}, + [_]u64{0x000000020747AE14, 0x0000000100000003, 0x0000000000000002, 0x000000000747AE0E}, + [_]u64{0x000000020747AE14, 0x0000000100000010, 0x0000000000000002, 0x000000000747ADF4}, + [_]u64{0x000000020747AE14, 0x00000001078644FA, 0x0000000000000001, 0x00000000FFC1691A}, + [_]u64{0x000000020747AE14, 0x000000010747AE14, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x000000020747AE14, 0x000000017FFFFFFF, 0x0000000000000001, 0x000000008747AE15}, + [_]u64{0x000000020747AE14, 0x0000000180000000, 0x0000000000000001, 0x000000008747AE14}, + [_]u64{0x000000020747AE14, 0x00000001FFFFFFFD, 0x0000000000000001, 0x000000000747AE17}, + [_]u64{0x000000020747AE14, 0x00000001FFFFFFFE, 0x0000000000000001, 0x000000000747AE16}, + [_]u64{0x000000020747AE14, 0x00000001FFFFFFFF, 0x0000000000000001, 0x000000000747AE15}, + [_]u64{0x000000020747AE14, 0x0000000200000000, 0x0000000000000001, 0x000000000747AE14}, + [_]u64{0x000000020747AE14, 0x0000000200000001, 0x0000000000000001, 0x000000000747AE13}, + [_]u64{0x000000020747AE14, 0x0000000200000002, 0x0000000000000001, 0x000000000747AE12}, + [_]u64{0x000000020747AE14, 0x0000000200000003, 0x0000000000000001, 0x000000000747AE11}, + [_]u64{0x000000020747AE14, 0x0000000200000010, 0x0000000000000001, 0x000000000747AE04}, + [_]u64{0x000000020747AE14, 0x00000002078644FA, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x000000020747AE14, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x000000020747AE14, 0x000000027FFFFFFF, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x0000000280000000, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x00000002FFFFFFFD, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x00000002FFFFFFFE, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x00000002FFFFFFFF, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x0000000300000000, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x0000000300000001, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x0000000300000002, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x0000000300000003, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x0000000300000010, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x00000003078644FA, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x000000030747AE14, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x000000037FFFFFFF, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x0000000380000000, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x00000003FFFFFFFD, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x00000003FFFFFFFE, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x00000003FFFFFFFF, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x0000001000000000, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x0000001000000001, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x0000001000000002, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x0000001000000003, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x0000001000000010, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x00000010078644FA, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x000000100747AE14, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x000000107FFFFFFF, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x0000001080000000, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x00000010FFFFFFFD, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x00000010FFFFFFFE, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x00000010FFFFFFFF, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x078644FA00000000, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x078644FA00000001, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x078644FA00000002, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x078644FA00000003, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x078644FA00000010, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x078644FA078644FA, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x078644FA0747AE14, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x078644FA80000000, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x0747AE1400000000, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x0747AE1400000001, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x0747AE1400000002, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x0747AE1400000003, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x0747AE1400000010, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x0747AE14078644FA, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x0747AE140747AE14, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x0747AE1480000000, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x7FFFFFFF00000000, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x7FFFFFFF00000001, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x7FFFFFFF00000002, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x7FFFFFFF00000003, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x7FFFFFFF00000010, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x7FFFFFFF80000000, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x8000000000000000, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x8000000000000001, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x8000000000000002, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x8000000000000003, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x8000000000000010, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x80000000078644FA, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x800000000747AE14, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x800000007FFFFFFF, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x8000000080000000, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x80000000FFFFFFFD, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x80000000FFFFFFFE, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0x80000000FFFFFFFF, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFD00000000, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFD00000001, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFD00000002, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFD00000003, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFD00000010, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFD80000000, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFE00000000, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFE00000001, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFE00000002, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFE00000003, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFE00000010, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFE80000000, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFF00000000, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFF00000001, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFF00000002, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFF00000003, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFF00000010, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFF80000000, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000020747AE14, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x000000020747AE14}, + [_]u64{0x000000027FFFFFFF, 0x0000000000000001, 0x000000027FFFFFFF, 0x0000000000000000}, + [_]u64{0x000000027FFFFFFF, 0x0000000000000002, 0x000000013FFFFFFF, 0x0000000000000001}, + [_]u64{0x000000027FFFFFFF, 0x0000000000000003, 0x00000000D5555555, 0x0000000000000000}, + [_]u64{0x000000027FFFFFFF, 0x0000000000000010, 0x0000000027FFFFFF, 0x000000000000000F}, + [_]u64{0x000000027FFFFFFF, 0x00000000078644FA, 0x0000000000000055, 0x00000000006B18FD}, + [_]u64{0x000000027FFFFFFF, 0x000000000747AE14, 0x0000000000000057, 0x0000000006A3D733}, + [_]u64{0x000000027FFFFFFF, 0x000000007FFFFFFF, 0x0000000000000005, 0x0000000000000004}, + [_]u64{0x000000027FFFFFFF, 0x0000000080000000, 0x0000000000000004, 0x000000007FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x00000000FFFFFFFD, 0x0000000000000002, 0x0000000080000005}, + [_]u64{0x000000027FFFFFFF, 0x00000000FFFFFFFE, 0x0000000000000002, 0x0000000080000003}, + [_]u64{0x000000027FFFFFFF, 0x00000000FFFFFFFF, 0x0000000000000002, 0x0000000080000001}, + [_]u64{0x000000027FFFFFFF, 0x0000000100000000, 0x0000000000000002, 0x000000007FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x0000000100000001, 0x0000000000000002, 0x000000007FFFFFFD}, + [_]u64{0x000000027FFFFFFF, 0x0000000100000002, 0x0000000000000002, 0x000000007FFFFFFB}, + [_]u64{0x000000027FFFFFFF, 0x0000000100000003, 0x0000000000000002, 0x000000007FFFFFF9}, + [_]u64{0x000000027FFFFFFF, 0x0000000100000010, 0x0000000000000002, 0x000000007FFFFFDF}, + [_]u64{0x000000027FFFFFFF, 0x00000001078644FA, 0x0000000000000002, 0x0000000070F3760B}, + [_]u64{0x000000027FFFFFFF, 0x000000010747AE14, 0x0000000000000002, 0x000000007170A3D7}, + [_]u64{0x000000027FFFFFFF, 0x000000017FFFFFFF, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x000000027FFFFFFF, 0x0000000180000000, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x00000001FFFFFFFD, 0x0000000000000001, 0x0000000080000002}, + [_]u64{0x000000027FFFFFFF, 0x00000001FFFFFFFE, 0x0000000000000001, 0x0000000080000001}, + [_]u64{0x000000027FFFFFFF, 0x00000001FFFFFFFF, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0x000000027FFFFFFF, 0x0000000200000000, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x0000000200000001, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x000000027FFFFFFF, 0x0000000200000002, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0x000000027FFFFFFF, 0x0000000200000003, 0x0000000000000001, 0x000000007FFFFFFC}, + [_]u64{0x000000027FFFFFFF, 0x0000000200000010, 0x0000000000000001, 0x000000007FFFFFEF}, + [_]u64{0x000000027FFFFFFF, 0x00000002078644FA, 0x0000000000000001, 0x000000007879BB05}, + [_]u64{0x000000027FFFFFFF, 0x000000020747AE14, 0x0000000000000001, 0x0000000078B851EB}, + [_]u64{0x000000027FFFFFFF, 0x000000027FFFFFFF, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x000000027FFFFFFF, 0x0000000280000000, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x00000002FFFFFFFD, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x00000002FFFFFFFE, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x00000002FFFFFFFF, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x0000000300000000, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x0000000300000001, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x0000000300000002, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x0000000300000003, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x0000000300000010, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x00000003078644FA, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x000000030747AE14, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x000000037FFFFFFF, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x0000000380000000, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x00000003FFFFFFFD, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x00000003FFFFFFFE, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x00000003FFFFFFFF, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x0000001000000000, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x0000001000000001, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x0000001000000002, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x0000001000000003, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x0000001000000010, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x00000010078644FA, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x000000100747AE14, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x000000107FFFFFFF, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x0000001080000000, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x00000010FFFFFFFD, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x00000010FFFFFFFE, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x00000010FFFFFFFF, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x078644FA00000000, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x078644FA00000001, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x078644FA00000002, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x078644FA00000003, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x078644FA00000010, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x078644FA078644FA, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x078644FA0747AE14, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x078644FA80000000, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x0747AE1400000000, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x0747AE1400000001, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x0747AE1400000002, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x0747AE1400000003, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x0747AE1400000010, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x0747AE14078644FA, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x0747AE140747AE14, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x0747AE1480000000, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x7FFFFFFF00000000, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x7FFFFFFF00000001, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x7FFFFFFF00000002, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x7FFFFFFF00000003, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x7FFFFFFF00000010, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x7FFFFFFF80000000, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x8000000000000000, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x8000000000000001, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x8000000000000002, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x8000000000000003, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x8000000000000010, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x80000000078644FA, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x800000000747AE14, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x800000007FFFFFFF, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x8000000080000000, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x80000000FFFFFFFD, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x80000000FFFFFFFE, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0x80000000FFFFFFFF, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFD00000000, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFD00000001, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFD00000002, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFD00000003, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFD00000010, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFD80000000, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFE00000000, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFE00000001, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFE00000002, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFE00000003, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFE00000010, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFE80000000, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFF00000000, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFF00000001, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFF00000002, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFF00000003, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFF00000010, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFF80000000, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x000000027FFFFFFF, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x000000027FFFFFFF}, + [_]u64{0x0000000280000000, 0x0000000000000001, 0x0000000280000000, 0x0000000000000000}, + [_]u64{0x0000000280000000, 0x0000000000000002, 0x0000000140000000, 0x0000000000000000}, + [_]u64{0x0000000280000000, 0x0000000000000003, 0x00000000D5555555, 0x0000000000000001}, + [_]u64{0x0000000280000000, 0x0000000000000010, 0x0000000028000000, 0x0000000000000000}, + [_]u64{0x0000000280000000, 0x00000000078644FA, 0x0000000000000055, 0x00000000006B18FE}, + [_]u64{0x0000000280000000, 0x000000000747AE14, 0x0000000000000057, 0x0000000006A3D734}, + [_]u64{0x0000000280000000, 0x000000007FFFFFFF, 0x0000000000000005, 0x0000000000000005}, + [_]u64{0x0000000280000000, 0x0000000080000000, 0x0000000000000005, 0x0000000000000000}, + [_]u64{0x0000000280000000, 0x00000000FFFFFFFD, 0x0000000000000002, 0x0000000080000006}, + [_]u64{0x0000000280000000, 0x00000000FFFFFFFE, 0x0000000000000002, 0x0000000080000004}, + [_]u64{0x0000000280000000, 0x00000000FFFFFFFF, 0x0000000000000002, 0x0000000080000002}, + [_]u64{0x0000000280000000, 0x0000000100000000, 0x0000000000000002, 0x0000000080000000}, + [_]u64{0x0000000280000000, 0x0000000100000001, 0x0000000000000002, 0x000000007FFFFFFE}, + [_]u64{0x0000000280000000, 0x0000000100000002, 0x0000000000000002, 0x000000007FFFFFFC}, + [_]u64{0x0000000280000000, 0x0000000100000003, 0x0000000000000002, 0x000000007FFFFFFA}, + [_]u64{0x0000000280000000, 0x0000000100000010, 0x0000000000000002, 0x000000007FFFFFE0}, + [_]u64{0x0000000280000000, 0x00000001078644FA, 0x0000000000000002, 0x0000000070F3760C}, + [_]u64{0x0000000280000000, 0x000000010747AE14, 0x0000000000000002, 0x000000007170A3D8}, + [_]u64{0x0000000280000000, 0x000000017FFFFFFF, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0x0000000280000000, 0x0000000180000000, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x0000000280000000, 0x00000001FFFFFFFD, 0x0000000000000001, 0x0000000080000003}, + [_]u64{0x0000000280000000, 0x00000001FFFFFFFE, 0x0000000000000001, 0x0000000080000002}, + [_]u64{0x0000000280000000, 0x00000001FFFFFFFF, 0x0000000000000001, 0x0000000080000001}, + [_]u64{0x0000000280000000, 0x0000000200000000, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0x0000000280000000, 0x0000000200000001, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x0000000280000000, 0x0000000200000002, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x0000000280000000, 0x0000000200000003, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0x0000000280000000, 0x0000000200000010, 0x0000000000000001, 0x000000007FFFFFF0}, + [_]u64{0x0000000280000000, 0x00000002078644FA, 0x0000000000000001, 0x000000007879BB06}, + [_]u64{0x0000000280000000, 0x000000020747AE14, 0x0000000000000001, 0x0000000078B851EC}, + [_]u64{0x0000000280000000, 0x000000027FFFFFFF, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x0000000280000000, 0x0000000280000000, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000000280000000, 0x00000002FFFFFFFD, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x00000002FFFFFFFE, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x00000002FFFFFFFF, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x0000000300000000, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x0000000300000001, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x0000000300000002, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x0000000300000003, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x0000000300000010, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x00000003078644FA, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x000000030747AE14, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x000000037FFFFFFF, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x0000000380000000, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x00000003FFFFFFFD, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x00000003FFFFFFFE, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x00000003FFFFFFFF, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x0000001000000000, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x0000001000000001, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x0000001000000002, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x0000001000000003, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x0000001000000010, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x00000010078644FA, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x000000100747AE14, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x0000001080000000, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x078644FA00000000, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x078644FA00000001, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x078644FA00000002, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x078644FA00000003, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x078644FA00000010, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x078644FA078644FA, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x078644FA0747AE14, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x078644FA80000000, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x0747AE1400000000, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x0747AE1400000001, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x0747AE1400000002, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x0747AE1400000003, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x0747AE1400000010, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x0747AE14078644FA, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x0747AE140747AE14, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x0747AE1480000000, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x8000000000000000, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x8000000000000001, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x8000000000000002, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x8000000000000003, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x8000000000000010, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x80000000078644FA, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x800000000747AE14, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x8000000080000000, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x0000000280000000, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000280000000}, + [_]u64{0x00000002FFFFFFFD, 0x0000000000000001, 0x00000002FFFFFFFD, 0x0000000000000000}, + [_]u64{0x00000002FFFFFFFD, 0x0000000000000002, 0x000000017FFFFFFE, 0x0000000000000001}, + [_]u64{0x00000002FFFFFFFD, 0x0000000000000003, 0x00000000FFFFFFFF, 0x0000000000000000}, + [_]u64{0x00000002FFFFFFFD, 0x0000000000000010, 0x000000002FFFFFFF, 0x000000000000000D}, + [_]u64{0x00000002FFFFFFFD, 0x00000000078644FA, 0x0000000000000066, 0x0000000000808461}, + [_]u64{0x00000002FFFFFFFD, 0x000000000747AE14, 0x0000000000000069, 0x00000000039999C9}, + [_]u64{0x00000002FFFFFFFD, 0x000000007FFFFFFF, 0x0000000000000006, 0x0000000000000003}, + [_]u64{0x00000002FFFFFFFD, 0x0000000080000000, 0x0000000000000005, 0x000000007FFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x00000000FFFFFFFD, 0x0000000000000003, 0x0000000000000006}, + [_]u64{0x00000002FFFFFFFD, 0x00000000FFFFFFFE, 0x0000000000000003, 0x0000000000000003}, + [_]u64{0x00000002FFFFFFFD, 0x00000000FFFFFFFF, 0x0000000000000003, 0x0000000000000000}, + [_]u64{0x00000002FFFFFFFD, 0x0000000100000000, 0x0000000000000002, 0x00000000FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x0000000100000001, 0x0000000000000002, 0x00000000FFFFFFFB}, + [_]u64{0x00000002FFFFFFFD, 0x0000000100000002, 0x0000000000000002, 0x00000000FFFFFFF9}, + [_]u64{0x00000002FFFFFFFD, 0x0000000100000003, 0x0000000000000002, 0x00000000FFFFFFF7}, + [_]u64{0x00000002FFFFFFFD, 0x0000000100000010, 0x0000000000000002, 0x00000000FFFFFFDD}, + [_]u64{0x00000002FFFFFFFD, 0x00000001078644FA, 0x0000000000000002, 0x00000000F0F37609}, + [_]u64{0x00000002FFFFFFFD, 0x000000010747AE14, 0x0000000000000002, 0x00000000F170A3D5}, + [_]u64{0x00000002FFFFFFFD, 0x000000017FFFFFFF, 0x0000000000000001, 0x000000017FFFFFFE}, + [_]u64{0x00000002FFFFFFFD, 0x0000000180000000, 0x0000000000000001, 0x000000017FFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x00000001FFFFFFFD, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x00000002FFFFFFFD, 0x00000001FFFFFFFE, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0x00000002FFFFFFFD, 0x00000001FFFFFFFF, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0x00000002FFFFFFFD, 0x0000000200000000, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x0000000200000001, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0x00000002FFFFFFFD, 0x0000000200000002, 0x0000000000000001, 0x00000000FFFFFFFB}, + [_]u64{0x00000002FFFFFFFD, 0x0000000200000003, 0x0000000000000001, 0x00000000FFFFFFFA}, + [_]u64{0x00000002FFFFFFFD, 0x0000000200000010, 0x0000000000000001, 0x00000000FFFFFFED}, + [_]u64{0x00000002FFFFFFFD, 0x00000002078644FA, 0x0000000000000001, 0x00000000F879BB03}, + [_]u64{0x00000002FFFFFFFD, 0x000000020747AE14, 0x0000000000000001, 0x00000000F8B851E9}, + [_]u64{0x00000002FFFFFFFD, 0x000000027FFFFFFF, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x00000002FFFFFFFD, 0x0000000280000000, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x00000002FFFFFFFD, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x00000002FFFFFFFD, 0x00000002FFFFFFFE, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x00000002FFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x0000000300000000, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x0000000300000001, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x0000000300000002, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x0000000300000003, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x0000000300000010, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x00000003078644FA, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x000000030747AE14, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x000000037FFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x0000000380000000, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x00000003FFFFFFFD, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x00000003FFFFFFFE, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x00000003FFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x0000001000000000, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x0000001000000001, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x0000001000000002, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x0000001000000003, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x0000001000000010, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x00000010078644FA, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x000000100747AE14, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x000000107FFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x0000001080000000, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x00000010FFFFFFFD, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x00000010FFFFFFFE, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x00000010FFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x078644FA00000000, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x078644FA00000001, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x078644FA00000002, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x078644FA00000003, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x078644FA00000010, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x078644FA078644FA, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x078644FA0747AE14, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x078644FA80000000, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x0747AE1400000000, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x0747AE1400000001, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x0747AE1400000002, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x0747AE1400000003, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x0747AE1400000010, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x0747AE14078644FA, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x0747AE140747AE14, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x0747AE1480000000, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x7FFFFFFF00000000, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x7FFFFFFF00000001, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x7FFFFFFF00000002, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x7FFFFFFF00000003, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x7FFFFFFF00000010, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x7FFFFFFF80000000, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x8000000000000000, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x8000000000000001, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x8000000000000002, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x8000000000000003, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x8000000000000010, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x80000000078644FA, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x800000000747AE14, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x800000007FFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x8000000080000000, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x80000000FFFFFFFD, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x80000000FFFFFFFE, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0x80000000FFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFD00000000, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFD00000001, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFD00000002, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFD00000003, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFD00000010, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFD80000000, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFE00000000, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFE00000001, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFE00000002, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFE00000003, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFE00000010, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFE80000000, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFF00000000, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFF00000001, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFF00000002, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFF00000003, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFF00000010, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFF80000000, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFD, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFD}, + [_]u64{0x00000002FFFFFFFE, 0x0000000000000001, 0x00000002FFFFFFFE, 0x0000000000000000}, + [_]u64{0x00000002FFFFFFFE, 0x0000000000000002, 0x000000017FFFFFFF, 0x0000000000000000}, + [_]u64{0x00000002FFFFFFFE, 0x0000000000000003, 0x00000000FFFFFFFF, 0x0000000000000001}, + [_]u64{0x00000002FFFFFFFE, 0x0000000000000010, 0x000000002FFFFFFF, 0x000000000000000E}, + [_]u64{0x00000002FFFFFFFE, 0x00000000078644FA, 0x0000000000000066, 0x0000000000808462}, + [_]u64{0x00000002FFFFFFFE, 0x000000000747AE14, 0x0000000000000069, 0x00000000039999CA}, + [_]u64{0x00000002FFFFFFFE, 0x000000007FFFFFFF, 0x0000000000000006, 0x0000000000000004}, + [_]u64{0x00000002FFFFFFFE, 0x0000000080000000, 0x0000000000000005, 0x000000007FFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x00000000FFFFFFFD, 0x0000000000000003, 0x0000000000000007}, + [_]u64{0x00000002FFFFFFFE, 0x00000000FFFFFFFE, 0x0000000000000003, 0x0000000000000004}, + [_]u64{0x00000002FFFFFFFE, 0x00000000FFFFFFFF, 0x0000000000000003, 0x0000000000000001}, + [_]u64{0x00000002FFFFFFFE, 0x0000000100000000, 0x0000000000000002, 0x00000000FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x0000000100000001, 0x0000000000000002, 0x00000000FFFFFFFC}, + [_]u64{0x00000002FFFFFFFE, 0x0000000100000002, 0x0000000000000002, 0x00000000FFFFFFFA}, + [_]u64{0x00000002FFFFFFFE, 0x0000000100000003, 0x0000000000000002, 0x00000000FFFFFFF8}, + [_]u64{0x00000002FFFFFFFE, 0x0000000100000010, 0x0000000000000002, 0x00000000FFFFFFDE}, + [_]u64{0x00000002FFFFFFFE, 0x00000001078644FA, 0x0000000000000002, 0x00000000F0F3760A}, + [_]u64{0x00000002FFFFFFFE, 0x000000010747AE14, 0x0000000000000002, 0x00000000F170A3D6}, + [_]u64{0x00000002FFFFFFFE, 0x000000017FFFFFFF, 0x0000000000000002, 0x0000000000000000}, + [_]u64{0x00000002FFFFFFFE, 0x0000000180000000, 0x0000000000000001, 0x000000017FFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x00000001FFFFFFFD, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0x00000002FFFFFFFE, 0x00000001FFFFFFFE, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x00000002FFFFFFFE, 0x00000001FFFFFFFF, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0x00000002FFFFFFFE, 0x0000000200000000, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x0000000200000001, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0x00000002FFFFFFFE, 0x0000000200000002, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0x00000002FFFFFFFE, 0x0000000200000003, 0x0000000000000001, 0x00000000FFFFFFFB}, + [_]u64{0x00000002FFFFFFFE, 0x0000000200000010, 0x0000000000000001, 0x00000000FFFFFFEE}, + [_]u64{0x00000002FFFFFFFE, 0x00000002078644FA, 0x0000000000000001, 0x00000000F879BB04}, + [_]u64{0x00000002FFFFFFFE, 0x000000020747AE14, 0x0000000000000001, 0x00000000F8B851EA}, + [_]u64{0x00000002FFFFFFFE, 0x000000027FFFFFFF, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x00000002FFFFFFFE, 0x0000000280000000, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x00000002FFFFFFFD, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x00000002FFFFFFFE, 0x00000002FFFFFFFE, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x00000002FFFFFFFE, 0x00000002FFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x0000000300000000, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x0000000300000001, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x0000000300000002, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x0000000300000003, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x0000000300000010, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x00000003078644FA, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x000000030747AE14, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x000000037FFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x0000000380000000, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x00000003FFFFFFFD, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x00000003FFFFFFFE, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x00000003FFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x0000001000000000, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x0000001000000001, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x0000001000000002, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x0000001000000003, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x0000001000000010, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x00000010078644FA, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x000000100747AE14, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x000000107FFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x0000001080000000, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x00000010FFFFFFFD, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x00000010FFFFFFFE, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x00000010FFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x078644FA00000000, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x078644FA00000001, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x078644FA00000002, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x078644FA00000003, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x078644FA00000010, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x078644FA078644FA, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x078644FA0747AE14, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x078644FA80000000, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x0747AE1400000000, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x0747AE1400000001, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x0747AE1400000002, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x0747AE1400000003, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x0747AE1400000010, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x0747AE14078644FA, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x0747AE140747AE14, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x0747AE1480000000, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x7FFFFFFF00000000, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x7FFFFFFF00000001, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x7FFFFFFF00000002, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x7FFFFFFF00000003, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x7FFFFFFF00000010, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x7FFFFFFF80000000, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x8000000000000000, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x8000000000000001, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x8000000000000002, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x8000000000000003, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x8000000000000010, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x80000000078644FA, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x800000000747AE14, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x800000007FFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x8000000080000000, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x80000000FFFFFFFD, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x80000000FFFFFFFE, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0x80000000FFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFD00000000, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFD00000001, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFD00000002, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFD00000003, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFD00000010, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFD80000000, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFE00000000, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFE00000001, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFE00000002, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFE00000003, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFE00000010, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFE80000000, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFF00000000, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFF00000001, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFF00000002, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFF00000003, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFF00000010, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFF80000000, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFE, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFE}, + [_]u64{0x00000002FFFFFFFF, 0x0000000000000001, 0x00000002FFFFFFFF, 0x0000000000000000}, + [_]u64{0x00000002FFFFFFFF, 0x0000000000000002, 0x000000017FFFFFFF, 0x0000000000000001}, + [_]u64{0x00000002FFFFFFFF, 0x0000000000000003, 0x00000000FFFFFFFF, 0x0000000000000002}, + [_]u64{0x00000002FFFFFFFF, 0x0000000000000010, 0x000000002FFFFFFF, 0x000000000000000F}, + [_]u64{0x00000002FFFFFFFF, 0x00000000078644FA, 0x0000000000000066, 0x0000000000808463}, + [_]u64{0x00000002FFFFFFFF, 0x000000000747AE14, 0x0000000000000069, 0x00000000039999CB}, + [_]u64{0x00000002FFFFFFFF, 0x000000007FFFFFFF, 0x0000000000000006, 0x0000000000000005}, + [_]u64{0x00000002FFFFFFFF, 0x0000000080000000, 0x0000000000000005, 0x000000007FFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x00000000FFFFFFFD, 0x0000000000000003, 0x0000000000000008}, + [_]u64{0x00000002FFFFFFFF, 0x00000000FFFFFFFE, 0x0000000000000003, 0x0000000000000005}, + [_]u64{0x00000002FFFFFFFF, 0x00000000FFFFFFFF, 0x0000000000000003, 0x0000000000000002}, + [_]u64{0x00000002FFFFFFFF, 0x0000000100000000, 0x0000000000000002, 0x00000000FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x0000000100000001, 0x0000000000000002, 0x00000000FFFFFFFD}, + [_]u64{0x00000002FFFFFFFF, 0x0000000100000002, 0x0000000000000002, 0x00000000FFFFFFFB}, + [_]u64{0x00000002FFFFFFFF, 0x0000000100000003, 0x0000000000000002, 0x00000000FFFFFFF9}, + [_]u64{0x00000002FFFFFFFF, 0x0000000100000010, 0x0000000000000002, 0x00000000FFFFFFDF}, + [_]u64{0x00000002FFFFFFFF, 0x00000001078644FA, 0x0000000000000002, 0x00000000F0F3760B}, + [_]u64{0x00000002FFFFFFFF, 0x000000010747AE14, 0x0000000000000002, 0x00000000F170A3D7}, + [_]u64{0x00000002FFFFFFFF, 0x000000017FFFFFFF, 0x0000000000000002, 0x0000000000000001}, + [_]u64{0x00000002FFFFFFFF, 0x0000000180000000, 0x0000000000000001, 0x000000017FFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x00000001FFFFFFFD, 0x0000000000000001, 0x0000000100000002}, + [_]u64{0x00000002FFFFFFFF, 0x00000001FFFFFFFE, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0x00000002FFFFFFFF, 0x00000001FFFFFFFF, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x00000002FFFFFFFF, 0x0000000200000000, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x0000000200000001, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0x00000002FFFFFFFF, 0x0000000200000002, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0x00000002FFFFFFFF, 0x0000000200000003, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0x00000002FFFFFFFF, 0x0000000200000010, 0x0000000000000001, 0x00000000FFFFFFEF}, + [_]u64{0x00000002FFFFFFFF, 0x00000002078644FA, 0x0000000000000001, 0x00000000F879BB05}, + [_]u64{0x00000002FFFFFFFF, 0x000000020747AE14, 0x0000000000000001, 0x00000000F8B851EB}, + [_]u64{0x00000002FFFFFFFF, 0x000000027FFFFFFF, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0x00000002FFFFFFFF, 0x0000000280000000, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x00000002FFFFFFFD, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x00000002FFFFFFFF, 0x00000002FFFFFFFE, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x00000002FFFFFFFF, 0x00000002FFFFFFFF, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x00000002FFFFFFFF, 0x0000000300000000, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x0000000300000001, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x0000000300000002, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x0000000300000003, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x0000000300000010, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x00000003078644FA, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x000000030747AE14, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x000000037FFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x0000000380000000, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x00000003FFFFFFFD, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x00000003FFFFFFFE, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x00000003FFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x0000001000000000, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x0000001000000001, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x0000001000000002, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x0000001000000003, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x0000001000000010, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x00000010078644FA, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x000000100747AE14, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x000000107FFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x0000001080000000, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x00000010FFFFFFFD, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x00000010FFFFFFFE, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x00000010FFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x078644FA00000000, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x078644FA00000001, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x078644FA00000002, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x078644FA00000003, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x078644FA00000010, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x078644FA078644FA, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x078644FA0747AE14, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x078644FA80000000, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x0747AE1400000000, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x0747AE1400000001, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x0747AE1400000002, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x0747AE1400000003, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x0747AE1400000010, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x0747AE14078644FA, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x0747AE140747AE14, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x0747AE1480000000, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x7FFFFFFF00000000, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x7FFFFFFF00000001, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x7FFFFFFF00000002, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x7FFFFFFF00000003, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x7FFFFFFF00000010, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x7FFFFFFF80000000, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x8000000000000000, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x8000000000000001, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x8000000000000002, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x8000000000000003, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x8000000000000010, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x80000000078644FA, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x800000000747AE14, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x800000007FFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x8000000080000000, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x80000000FFFFFFFD, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x80000000FFFFFFFE, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0x80000000FFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFD00000000, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFD00000001, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFD00000002, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFD00000003, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFD00000010, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFD80000000, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFE00000000, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFE00000001, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFE00000002, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFE00000003, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFE00000010, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFE80000000, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFF00000000, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFF00000001, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFF00000002, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFF00000003, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFF00000010, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFF80000000, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x00000002FFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000002FFFFFFFF}, + [_]u64{0x0000000300000000, 0x0000000000000001, 0x0000000300000000, 0x0000000000000000}, + [_]u64{0x0000000300000000, 0x0000000000000002, 0x0000000180000000, 0x0000000000000000}, + [_]u64{0x0000000300000000, 0x0000000000000003, 0x0000000100000000, 0x0000000000000000}, + [_]u64{0x0000000300000000, 0x0000000000000010, 0x0000000030000000, 0x0000000000000000}, + [_]u64{0x0000000300000000, 0x00000000078644FA, 0x0000000000000066, 0x0000000000808464}, + [_]u64{0x0000000300000000, 0x000000000747AE14, 0x0000000000000069, 0x00000000039999CC}, + [_]u64{0x0000000300000000, 0x000000007FFFFFFF, 0x0000000000000006, 0x0000000000000006}, + [_]u64{0x0000000300000000, 0x0000000080000000, 0x0000000000000006, 0x0000000000000000}, + [_]u64{0x0000000300000000, 0x00000000FFFFFFFD, 0x0000000000000003, 0x0000000000000009}, + [_]u64{0x0000000300000000, 0x00000000FFFFFFFE, 0x0000000000000003, 0x0000000000000006}, + [_]u64{0x0000000300000000, 0x00000000FFFFFFFF, 0x0000000000000003, 0x0000000000000003}, + [_]u64{0x0000000300000000, 0x0000000100000000, 0x0000000000000003, 0x0000000000000000}, + [_]u64{0x0000000300000000, 0x0000000100000001, 0x0000000000000002, 0x00000000FFFFFFFE}, + [_]u64{0x0000000300000000, 0x0000000100000002, 0x0000000000000002, 0x00000000FFFFFFFC}, + [_]u64{0x0000000300000000, 0x0000000100000003, 0x0000000000000002, 0x00000000FFFFFFFA}, + [_]u64{0x0000000300000000, 0x0000000100000010, 0x0000000000000002, 0x00000000FFFFFFE0}, + [_]u64{0x0000000300000000, 0x00000001078644FA, 0x0000000000000002, 0x00000000F0F3760C}, + [_]u64{0x0000000300000000, 0x000000010747AE14, 0x0000000000000002, 0x00000000F170A3D8}, + [_]u64{0x0000000300000000, 0x000000017FFFFFFF, 0x0000000000000002, 0x0000000000000002}, + [_]u64{0x0000000300000000, 0x0000000180000000, 0x0000000000000002, 0x0000000000000000}, + [_]u64{0x0000000300000000, 0x00000001FFFFFFFD, 0x0000000000000001, 0x0000000100000003}, + [_]u64{0x0000000300000000, 0x00000001FFFFFFFE, 0x0000000000000001, 0x0000000100000002}, + [_]u64{0x0000000300000000, 0x00000001FFFFFFFF, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0x0000000300000000, 0x0000000200000000, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x0000000300000000, 0x0000000200000001, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0x0000000300000000, 0x0000000200000002, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0x0000000300000000, 0x0000000200000003, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0x0000000300000000, 0x0000000200000010, 0x0000000000000001, 0x00000000FFFFFFF0}, + [_]u64{0x0000000300000000, 0x00000002078644FA, 0x0000000000000001, 0x00000000F879BB06}, + [_]u64{0x0000000300000000, 0x000000020747AE14, 0x0000000000000001, 0x00000000F8B851EC}, + [_]u64{0x0000000300000000, 0x000000027FFFFFFF, 0x0000000000000001, 0x0000000080000001}, + [_]u64{0x0000000300000000, 0x0000000280000000, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0x0000000300000000, 0x00000002FFFFFFFD, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0x0000000300000000, 0x00000002FFFFFFFE, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x0000000300000000, 0x00000002FFFFFFFF, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x0000000300000000, 0x0000000300000000, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000000300000000, 0x0000000300000001, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x0000000300000002, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x0000000300000003, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x0000000300000010, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x00000003078644FA, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x000000030747AE14, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x000000037FFFFFFF, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x0000000380000000, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x00000003FFFFFFFD, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x00000003FFFFFFFE, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x00000003FFFFFFFF, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x0000001000000000, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x0000001000000001, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x0000001000000002, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x0000001000000003, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x0000001000000010, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x00000010078644FA, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x000000100747AE14, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x0000001080000000, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x078644FA00000000, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x078644FA00000001, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x078644FA00000002, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x078644FA00000003, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x078644FA00000010, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x078644FA078644FA, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x078644FA0747AE14, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x078644FA80000000, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x0747AE1400000000, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x0747AE1400000001, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x0747AE1400000002, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x0747AE1400000003, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x0747AE1400000010, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x0747AE14078644FA, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x0747AE140747AE14, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x0747AE1480000000, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x8000000000000000, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x8000000000000001, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x8000000000000002, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x8000000000000003, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x8000000000000010, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x80000000078644FA, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x800000000747AE14, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x8000000080000000, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000000, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000300000000}, + [_]u64{0x0000000300000001, 0x0000000000000001, 0x0000000300000001, 0x0000000000000000}, + [_]u64{0x0000000300000001, 0x0000000000000002, 0x0000000180000000, 0x0000000000000001}, + [_]u64{0x0000000300000001, 0x0000000000000003, 0x0000000100000000, 0x0000000000000001}, + [_]u64{0x0000000300000001, 0x0000000000000010, 0x0000000030000000, 0x0000000000000001}, + [_]u64{0x0000000300000001, 0x00000000078644FA, 0x0000000000000066, 0x0000000000808465}, + [_]u64{0x0000000300000001, 0x000000000747AE14, 0x0000000000000069, 0x00000000039999CD}, + [_]u64{0x0000000300000001, 0x000000007FFFFFFF, 0x0000000000000006, 0x0000000000000007}, + [_]u64{0x0000000300000001, 0x0000000080000000, 0x0000000000000006, 0x0000000000000001}, + [_]u64{0x0000000300000001, 0x00000000FFFFFFFD, 0x0000000000000003, 0x000000000000000A}, + [_]u64{0x0000000300000001, 0x00000000FFFFFFFE, 0x0000000000000003, 0x0000000000000007}, + [_]u64{0x0000000300000001, 0x00000000FFFFFFFF, 0x0000000000000003, 0x0000000000000004}, + [_]u64{0x0000000300000001, 0x0000000100000000, 0x0000000000000003, 0x0000000000000001}, + [_]u64{0x0000000300000001, 0x0000000100000001, 0x0000000000000002, 0x00000000FFFFFFFF}, + [_]u64{0x0000000300000001, 0x0000000100000002, 0x0000000000000002, 0x00000000FFFFFFFD}, + [_]u64{0x0000000300000001, 0x0000000100000003, 0x0000000000000002, 0x00000000FFFFFFFB}, + [_]u64{0x0000000300000001, 0x0000000100000010, 0x0000000000000002, 0x00000000FFFFFFE1}, + [_]u64{0x0000000300000001, 0x00000001078644FA, 0x0000000000000002, 0x00000000F0F3760D}, + [_]u64{0x0000000300000001, 0x000000010747AE14, 0x0000000000000002, 0x00000000F170A3D9}, + [_]u64{0x0000000300000001, 0x000000017FFFFFFF, 0x0000000000000002, 0x0000000000000003}, + [_]u64{0x0000000300000001, 0x0000000180000000, 0x0000000000000002, 0x0000000000000001}, + [_]u64{0x0000000300000001, 0x00000001FFFFFFFD, 0x0000000000000001, 0x0000000100000004}, + [_]u64{0x0000000300000001, 0x00000001FFFFFFFE, 0x0000000000000001, 0x0000000100000003}, + [_]u64{0x0000000300000001, 0x00000001FFFFFFFF, 0x0000000000000001, 0x0000000100000002}, + [_]u64{0x0000000300000001, 0x0000000200000000, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0x0000000300000001, 0x0000000200000001, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x0000000300000001, 0x0000000200000002, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0x0000000300000001, 0x0000000200000003, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0x0000000300000001, 0x0000000200000010, 0x0000000000000001, 0x00000000FFFFFFF1}, + [_]u64{0x0000000300000001, 0x00000002078644FA, 0x0000000000000001, 0x00000000F879BB07}, + [_]u64{0x0000000300000001, 0x000000020747AE14, 0x0000000000000001, 0x00000000F8B851ED}, + [_]u64{0x0000000300000001, 0x000000027FFFFFFF, 0x0000000000000001, 0x0000000080000002}, + [_]u64{0x0000000300000001, 0x0000000280000000, 0x0000000000000001, 0x0000000080000001}, + [_]u64{0x0000000300000001, 0x00000002FFFFFFFD, 0x0000000000000001, 0x0000000000000004}, + [_]u64{0x0000000300000001, 0x00000002FFFFFFFE, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0x0000000300000001, 0x00000002FFFFFFFF, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x0000000300000001, 0x0000000300000000, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x0000000300000001, 0x0000000300000001, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000000300000001, 0x0000000300000002, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x0000000300000003, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x0000000300000010, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x00000003078644FA, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x000000030747AE14, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x000000037FFFFFFF, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x0000000380000000, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x00000003FFFFFFFD, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x00000003FFFFFFFE, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x00000003FFFFFFFF, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x0000001000000000, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x0000001000000001, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x0000001000000002, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x0000001000000003, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x0000001000000010, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x00000010078644FA, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x000000100747AE14, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x0000001080000000, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x078644FA00000000, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x078644FA00000001, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x078644FA00000002, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x078644FA00000003, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x078644FA00000010, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x078644FA078644FA, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x078644FA0747AE14, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x078644FA80000000, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x0747AE1400000000, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x0747AE1400000001, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x0747AE1400000002, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x0747AE1400000003, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x0747AE1400000010, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x0747AE14078644FA, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x0747AE140747AE14, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x0747AE1480000000, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x8000000000000000, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x8000000000000001, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x8000000000000002, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x8000000000000003, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x8000000000000010, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x80000000078644FA, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x800000000747AE14, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x8000000080000000, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000001, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000300000001}, + [_]u64{0x0000000300000002, 0x0000000000000001, 0x0000000300000002, 0x0000000000000000}, + [_]u64{0x0000000300000002, 0x0000000000000002, 0x0000000180000001, 0x0000000000000000}, + [_]u64{0x0000000300000002, 0x0000000000000003, 0x0000000100000000, 0x0000000000000002}, + [_]u64{0x0000000300000002, 0x0000000000000010, 0x0000000030000000, 0x0000000000000002}, + [_]u64{0x0000000300000002, 0x00000000078644FA, 0x0000000000000066, 0x0000000000808466}, + [_]u64{0x0000000300000002, 0x000000000747AE14, 0x0000000000000069, 0x00000000039999CE}, + [_]u64{0x0000000300000002, 0x000000007FFFFFFF, 0x0000000000000006, 0x0000000000000008}, + [_]u64{0x0000000300000002, 0x0000000080000000, 0x0000000000000006, 0x0000000000000002}, + [_]u64{0x0000000300000002, 0x00000000FFFFFFFD, 0x0000000000000003, 0x000000000000000B}, + [_]u64{0x0000000300000002, 0x00000000FFFFFFFE, 0x0000000000000003, 0x0000000000000008}, + [_]u64{0x0000000300000002, 0x00000000FFFFFFFF, 0x0000000000000003, 0x0000000000000005}, + [_]u64{0x0000000300000002, 0x0000000100000000, 0x0000000000000003, 0x0000000000000002}, + [_]u64{0x0000000300000002, 0x0000000100000001, 0x0000000000000002, 0x0000000100000000}, + [_]u64{0x0000000300000002, 0x0000000100000002, 0x0000000000000002, 0x00000000FFFFFFFE}, + [_]u64{0x0000000300000002, 0x0000000100000003, 0x0000000000000002, 0x00000000FFFFFFFC}, + [_]u64{0x0000000300000002, 0x0000000100000010, 0x0000000000000002, 0x00000000FFFFFFE2}, + [_]u64{0x0000000300000002, 0x00000001078644FA, 0x0000000000000002, 0x00000000F0F3760E}, + [_]u64{0x0000000300000002, 0x000000010747AE14, 0x0000000000000002, 0x00000000F170A3DA}, + [_]u64{0x0000000300000002, 0x000000017FFFFFFF, 0x0000000000000002, 0x0000000000000004}, + [_]u64{0x0000000300000002, 0x0000000180000000, 0x0000000000000002, 0x0000000000000002}, + [_]u64{0x0000000300000002, 0x00000001FFFFFFFD, 0x0000000000000001, 0x0000000100000005}, + [_]u64{0x0000000300000002, 0x00000001FFFFFFFE, 0x0000000000000001, 0x0000000100000004}, + [_]u64{0x0000000300000002, 0x00000001FFFFFFFF, 0x0000000000000001, 0x0000000100000003}, + [_]u64{0x0000000300000002, 0x0000000200000000, 0x0000000000000001, 0x0000000100000002}, + [_]u64{0x0000000300000002, 0x0000000200000001, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0x0000000300000002, 0x0000000200000002, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x0000000300000002, 0x0000000200000003, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0x0000000300000002, 0x0000000200000010, 0x0000000000000001, 0x00000000FFFFFFF2}, + [_]u64{0x0000000300000002, 0x00000002078644FA, 0x0000000000000001, 0x00000000F879BB08}, + [_]u64{0x0000000300000002, 0x000000020747AE14, 0x0000000000000001, 0x00000000F8B851EE}, + [_]u64{0x0000000300000002, 0x000000027FFFFFFF, 0x0000000000000001, 0x0000000080000003}, + [_]u64{0x0000000300000002, 0x0000000280000000, 0x0000000000000001, 0x0000000080000002}, + [_]u64{0x0000000300000002, 0x00000002FFFFFFFD, 0x0000000000000001, 0x0000000000000005}, + [_]u64{0x0000000300000002, 0x00000002FFFFFFFE, 0x0000000000000001, 0x0000000000000004}, + [_]u64{0x0000000300000002, 0x00000002FFFFFFFF, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0x0000000300000002, 0x0000000300000000, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x0000000300000002, 0x0000000300000001, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x0000000300000002, 0x0000000300000002, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000000300000002, 0x0000000300000003, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x0000000300000010, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x00000003078644FA, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x000000030747AE14, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x000000037FFFFFFF, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x0000000380000000, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x00000003FFFFFFFD, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x00000003FFFFFFFE, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x00000003FFFFFFFF, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x0000001000000000, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x0000001000000001, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x0000001000000002, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x0000001000000003, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x0000001000000010, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x00000010078644FA, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x000000100747AE14, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x0000001080000000, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x078644FA00000000, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x078644FA00000001, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x078644FA00000002, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x078644FA00000003, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x078644FA00000010, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x078644FA078644FA, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x078644FA0747AE14, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x078644FA80000000, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x0747AE1400000000, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x0747AE1400000001, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x0747AE1400000002, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x0747AE1400000003, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x0747AE1400000010, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x0747AE14078644FA, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x0747AE140747AE14, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x0747AE1480000000, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x8000000000000000, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x8000000000000001, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x8000000000000002, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x8000000000000003, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x8000000000000010, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x80000000078644FA, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x800000000747AE14, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x8000000080000000, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000002, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000300000002}, + [_]u64{0x0000000300000003, 0x0000000000000001, 0x0000000300000003, 0x0000000000000000}, + [_]u64{0x0000000300000003, 0x0000000000000002, 0x0000000180000001, 0x0000000000000001}, + [_]u64{0x0000000300000003, 0x0000000000000003, 0x0000000100000001, 0x0000000000000000}, + [_]u64{0x0000000300000003, 0x0000000000000010, 0x0000000030000000, 0x0000000000000003}, + [_]u64{0x0000000300000003, 0x00000000078644FA, 0x0000000000000066, 0x0000000000808467}, + [_]u64{0x0000000300000003, 0x000000000747AE14, 0x0000000000000069, 0x00000000039999CF}, + [_]u64{0x0000000300000003, 0x000000007FFFFFFF, 0x0000000000000006, 0x0000000000000009}, + [_]u64{0x0000000300000003, 0x0000000080000000, 0x0000000000000006, 0x0000000000000003}, + [_]u64{0x0000000300000003, 0x00000000FFFFFFFD, 0x0000000000000003, 0x000000000000000C}, + [_]u64{0x0000000300000003, 0x00000000FFFFFFFE, 0x0000000000000003, 0x0000000000000009}, + [_]u64{0x0000000300000003, 0x00000000FFFFFFFF, 0x0000000000000003, 0x0000000000000006}, + [_]u64{0x0000000300000003, 0x0000000100000000, 0x0000000000000003, 0x0000000000000003}, + [_]u64{0x0000000300000003, 0x0000000100000001, 0x0000000000000003, 0x0000000000000000}, + [_]u64{0x0000000300000003, 0x0000000100000002, 0x0000000000000002, 0x00000000FFFFFFFF}, + [_]u64{0x0000000300000003, 0x0000000100000003, 0x0000000000000002, 0x00000000FFFFFFFD}, + [_]u64{0x0000000300000003, 0x0000000100000010, 0x0000000000000002, 0x00000000FFFFFFE3}, + [_]u64{0x0000000300000003, 0x00000001078644FA, 0x0000000000000002, 0x00000000F0F3760F}, + [_]u64{0x0000000300000003, 0x000000010747AE14, 0x0000000000000002, 0x00000000F170A3DB}, + [_]u64{0x0000000300000003, 0x000000017FFFFFFF, 0x0000000000000002, 0x0000000000000005}, + [_]u64{0x0000000300000003, 0x0000000180000000, 0x0000000000000002, 0x0000000000000003}, + [_]u64{0x0000000300000003, 0x00000001FFFFFFFD, 0x0000000000000001, 0x0000000100000006}, + [_]u64{0x0000000300000003, 0x00000001FFFFFFFE, 0x0000000000000001, 0x0000000100000005}, + [_]u64{0x0000000300000003, 0x00000001FFFFFFFF, 0x0000000000000001, 0x0000000100000004}, + [_]u64{0x0000000300000003, 0x0000000200000000, 0x0000000000000001, 0x0000000100000003}, + [_]u64{0x0000000300000003, 0x0000000200000001, 0x0000000000000001, 0x0000000100000002}, + [_]u64{0x0000000300000003, 0x0000000200000002, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0x0000000300000003, 0x0000000200000003, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x0000000300000003, 0x0000000200000010, 0x0000000000000001, 0x00000000FFFFFFF3}, + [_]u64{0x0000000300000003, 0x00000002078644FA, 0x0000000000000001, 0x00000000F879BB09}, + [_]u64{0x0000000300000003, 0x000000020747AE14, 0x0000000000000001, 0x00000000F8B851EF}, + [_]u64{0x0000000300000003, 0x000000027FFFFFFF, 0x0000000000000001, 0x0000000080000004}, + [_]u64{0x0000000300000003, 0x0000000280000000, 0x0000000000000001, 0x0000000080000003}, + [_]u64{0x0000000300000003, 0x00000002FFFFFFFD, 0x0000000000000001, 0x0000000000000006}, + [_]u64{0x0000000300000003, 0x00000002FFFFFFFE, 0x0000000000000001, 0x0000000000000005}, + [_]u64{0x0000000300000003, 0x00000002FFFFFFFF, 0x0000000000000001, 0x0000000000000004}, + [_]u64{0x0000000300000003, 0x0000000300000000, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0x0000000300000003, 0x0000000300000001, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x0000000300000003, 0x0000000300000002, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x0000000300000003, 0x0000000300000003, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000000300000003, 0x0000000300000010, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x00000003078644FA, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x000000030747AE14, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x000000037FFFFFFF, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x0000000380000000, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x00000003FFFFFFFD, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x00000003FFFFFFFE, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x00000003FFFFFFFF, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x0000001000000000, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x0000001000000001, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x0000001000000002, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x0000001000000003, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x0000001000000010, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x00000010078644FA, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x000000100747AE14, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x0000001080000000, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x078644FA00000000, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x078644FA00000001, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x078644FA00000002, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x078644FA00000003, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x078644FA00000010, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x078644FA078644FA, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x078644FA0747AE14, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x078644FA80000000, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x0747AE1400000000, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x0747AE1400000001, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x0747AE1400000002, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x0747AE1400000003, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x0747AE1400000010, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x0747AE14078644FA, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x0747AE140747AE14, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x0747AE1480000000, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x8000000000000000, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x8000000000000001, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x8000000000000002, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x8000000000000003, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x8000000000000010, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x80000000078644FA, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x800000000747AE14, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x8000000080000000, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000003, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000300000003}, + [_]u64{0x0000000300000010, 0x0000000000000001, 0x0000000300000010, 0x0000000000000000}, + [_]u64{0x0000000300000010, 0x0000000000000002, 0x0000000180000008, 0x0000000000000000}, + [_]u64{0x0000000300000010, 0x0000000000000003, 0x0000000100000005, 0x0000000000000001}, + [_]u64{0x0000000300000010, 0x0000000000000010, 0x0000000030000001, 0x0000000000000000}, + [_]u64{0x0000000300000010, 0x00000000078644FA, 0x0000000000000066, 0x0000000000808474}, + [_]u64{0x0000000300000010, 0x000000000747AE14, 0x0000000000000069, 0x00000000039999DC}, + [_]u64{0x0000000300000010, 0x000000007FFFFFFF, 0x0000000000000006, 0x0000000000000016}, + [_]u64{0x0000000300000010, 0x0000000080000000, 0x0000000000000006, 0x0000000000000010}, + [_]u64{0x0000000300000010, 0x00000000FFFFFFFD, 0x0000000000000003, 0x0000000000000019}, + [_]u64{0x0000000300000010, 0x00000000FFFFFFFE, 0x0000000000000003, 0x0000000000000016}, + [_]u64{0x0000000300000010, 0x00000000FFFFFFFF, 0x0000000000000003, 0x0000000000000013}, + [_]u64{0x0000000300000010, 0x0000000100000000, 0x0000000000000003, 0x0000000000000010}, + [_]u64{0x0000000300000010, 0x0000000100000001, 0x0000000000000003, 0x000000000000000D}, + [_]u64{0x0000000300000010, 0x0000000100000002, 0x0000000000000003, 0x000000000000000A}, + [_]u64{0x0000000300000010, 0x0000000100000003, 0x0000000000000003, 0x0000000000000007}, + [_]u64{0x0000000300000010, 0x0000000100000010, 0x0000000000000002, 0x00000000FFFFFFF0}, + [_]u64{0x0000000300000010, 0x00000001078644FA, 0x0000000000000002, 0x00000000F0F3761C}, + [_]u64{0x0000000300000010, 0x000000010747AE14, 0x0000000000000002, 0x00000000F170A3E8}, + [_]u64{0x0000000300000010, 0x000000017FFFFFFF, 0x0000000000000002, 0x0000000000000012}, + [_]u64{0x0000000300000010, 0x0000000180000000, 0x0000000000000002, 0x0000000000000010}, + [_]u64{0x0000000300000010, 0x00000001FFFFFFFD, 0x0000000000000001, 0x0000000100000013}, + [_]u64{0x0000000300000010, 0x00000001FFFFFFFE, 0x0000000000000001, 0x0000000100000012}, + [_]u64{0x0000000300000010, 0x00000001FFFFFFFF, 0x0000000000000001, 0x0000000100000011}, + [_]u64{0x0000000300000010, 0x0000000200000000, 0x0000000000000001, 0x0000000100000010}, + [_]u64{0x0000000300000010, 0x0000000200000001, 0x0000000000000001, 0x000000010000000F}, + [_]u64{0x0000000300000010, 0x0000000200000002, 0x0000000000000001, 0x000000010000000E}, + [_]u64{0x0000000300000010, 0x0000000200000003, 0x0000000000000001, 0x000000010000000D}, + [_]u64{0x0000000300000010, 0x0000000200000010, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x0000000300000010, 0x00000002078644FA, 0x0000000000000001, 0x00000000F879BB16}, + [_]u64{0x0000000300000010, 0x000000020747AE14, 0x0000000000000001, 0x00000000F8B851FC}, + [_]u64{0x0000000300000010, 0x000000027FFFFFFF, 0x0000000000000001, 0x0000000080000011}, + [_]u64{0x0000000300000010, 0x0000000280000000, 0x0000000000000001, 0x0000000080000010}, + [_]u64{0x0000000300000010, 0x00000002FFFFFFFD, 0x0000000000000001, 0x0000000000000013}, + [_]u64{0x0000000300000010, 0x00000002FFFFFFFE, 0x0000000000000001, 0x0000000000000012}, + [_]u64{0x0000000300000010, 0x00000002FFFFFFFF, 0x0000000000000001, 0x0000000000000011}, + [_]u64{0x0000000300000010, 0x0000000300000000, 0x0000000000000001, 0x0000000000000010}, + [_]u64{0x0000000300000010, 0x0000000300000001, 0x0000000000000001, 0x000000000000000F}, + [_]u64{0x0000000300000010, 0x0000000300000002, 0x0000000000000001, 0x000000000000000E}, + [_]u64{0x0000000300000010, 0x0000000300000003, 0x0000000000000001, 0x000000000000000D}, + [_]u64{0x0000000300000010, 0x0000000300000010, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000000300000010, 0x00000003078644FA, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x000000030747AE14, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x000000037FFFFFFF, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x0000000380000000, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x00000003FFFFFFFD, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x00000003FFFFFFFE, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x00000003FFFFFFFF, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x0000001000000000, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x0000001000000001, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x0000001000000002, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x0000001000000003, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x0000001000000010, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x00000010078644FA, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x000000100747AE14, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x0000001080000000, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x078644FA00000000, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x078644FA00000001, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x078644FA00000002, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x078644FA00000003, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x078644FA00000010, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x078644FA078644FA, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x078644FA0747AE14, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x078644FA80000000, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x0747AE1400000000, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x0747AE1400000001, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x0747AE1400000002, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x0747AE1400000003, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x0747AE1400000010, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x0747AE14078644FA, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x0747AE140747AE14, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x0747AE1480000000, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x8000000000000000, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x8000000000000001, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x8000000000000002, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x8000000000000003, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x8000000000000010, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x80000000078644FA, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x800000000747AE14, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x8000000080000000, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x0000000300000010, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000300000010}, + [_]u64{0x00000003078644FA, 0x0000000000000001, 0x00000003078644FA, 0x0000000000000000}, + [_]u64{0x00000003078644FA, 0x0000000000000002, 0x0000000183C3227D, 0x0000000000000000}, + [_]u64{0x00000003078644FA, 0x0000000000000003, 0x00000001028216FE, 0x0000000000000000}, + [_]u64{0x00000003078644FA, 0x0000000000000010, 0x000000003078644F, 0x000000000000000A}, + [_]u64{0x00000003078644FA, 0x00000000078644FA, 0x0000000000000067, 0x0000000000808464}, + [_]u64{0x00000003078644FA, 0x000000000747AE14, 0x000000000000006A, 0x0000000003D830B2}, + [_]u64{0x00000003078644FA, 0x000000007FFFFFFF, 0x0000000000000006, 0x0000000007864500}, + [_]u64{0x00000003078644FA, 0x0000000080000000, 0x0000000000000006, 0x00000000078644FA}, + [_]u64{0x00000003078644FA, 0x00000000FFFFFFFD, 0x0000000000000003, 0x0000000007864503}, + [_]u64{0x00000003078644FA, 0x00000000FFFFFFFE, 0x0000000000000003, 0x0000000007864500}, + [_]u64{0x00000003078644FA, 0x00000000FFFFFFFF, 0x0000000000000003, 0x00000000078644FD}, + [_]u64{0x00000003078644FA, 0x0000000100000000, 0x0000000000000003, 0x00000000078644FA}, + [_]u64{0x00000003078644FA, 0x0000000100000001, 0x0000000000000003, 0x00000000078644F7}, + [_]u64{0x00000003078644FA, 0x0000000100000002, 0x0000000000000003, 0x00000000078644F4}, + [_]u64{0x00000003078644FA, 0x0000000100000003, 0x0000000000000003, 0x00000000078644F1}, + [_]u64{0x00000003078644FA, 0x0000000100000010, 0x0000000000000003, 0x00000000078644CA}, + [_]u64{0x00000003078644FA, 0x00000001078644FA, 0x0000000000000002, 0x00000000F879BB06}, + [_]u64{0x00000003078644FA, 0x000000010747AE14, 0x0000000000000002, 0x00000000F8F6E8D2}, + [_]u64{0x00000003078644FA, 0x000000017FFFFFFF, 0x0000000000000002, 0x00000000078644FC}, + [_]u64{0x00000003078644FA, 0x0000000180000000, 0x0000000000000002, 0x00000000078644FA}, + [_]u64{0x00000003078644FA, 0x00000001FFFFFFFD, 0x0000000000000001, 0x00000001078644FD}, + [_]u64{0x00000003078644FA, 0x00000001FFFFFFFE, 0x0000000000000001, 0x00000001078644FC}, + [_]u64{0x00000003078644FA, 0x00000001FFFFFFFF, 0x0000000000000001, 0x00000001078644FB}, + [_]u64{0x00000003078644FA, 0x0000000200000000, 0x0000000000000001, 0x00000001078644FA}, + [_]u64{0x00000003078644FA, 0x0000000200000001, 0x0000000000000001, 0x00000001078644F9}, + [_]u64{0x00000003078644FA, 0x0000000200000002, 0x0000000000000001, 0x00000001078644F8}, + [_]u64{0x00000003078644FA, 0x0000000200000003, 0x0000000000000001, 0x00000001078644F7}, + [_]u64{0x00000003078644FA, 0x0000000200000010, 0x0000000000000001, 0x00000001078644EA}, + [_]u64{0x00000003078644FA, 0x00000002078644FA, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x00000003078644FA, 0x000000020747AE14, 0x0000000000000001, 0x00000001003E96E6}, + [_]u64{0x00000003078644FA, 0x000000027FFFFFFF, 0x0000000000000001, 0x00000000878644FB}, + [_]u64{0x00000003078644FA, 0x0000000280000000, 0x0000000000000001, 0x00000000878644FA}, + [_]u64{0x00000003078644FA, 0x00000002FFFFFFFD, 0x0000000000000001, 0x00000000078644FD}, + [_]u64{0x00000003078644FA, 0x00000002FFFFFFFE, 0x0000000000000001, 0x00000000078644FC}, + [_]u64{0x00000003078644FA, 0x00000002FFFFFFFF, 0x0000000000000001, 0x00000000078644FB}, + [_]u64{0x00000003078644FA, 0x0000000300000000, 0x0000000000000001, 0x00000000078644FA}, + [_]u64{0x00000003078644FA, 0x0000000300000001, 0x0000000000000001, 0x00000000078644F9}, + [_]u64{0x00000003078644FA, 0x0000000300000002, 0x0000000000000001, 0x00000000078644F8}, + [_]u64{0x00000003078644FA, 0x0000000300000003, 0x0000000000000001, 0x00000000078644F7}, + [_]u64{0x00000003078644FA, 0x0000000300000010, 0x0000000000000001, 0x00000000078644EA}, + [_]u64{0x00000003078644FA, 0x00000003078644FA, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x00000003078644FA, 0x000000030747AE14, 0x0000000000000001, 0x00000000003E96E6}, + [_]u64{0x00000003078644FA, 0x000000037FFFFFFF, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x0000000380000000, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x00000003FFFFFFFD, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x00000003FFFFFFFE, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x00000003FFFFFFFF, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x0000001000000000, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x0000001000000001, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x0000001000000002, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x0000001000000003, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x0000001000000010, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x00000010078644FA, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x000000100747AE14, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x000000107FFFFFFF, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x0000001080000000, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x00000010FFFFFFFD, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x00000010FFFFFFFE, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x00000010FFFFFFFF, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x078644FA00000000, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x078644FA00000001, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x078644FA00000002, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x078644FA00000003, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x078644FA00000010, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x078644FA078644FA, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x078644FA0747AE14, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x078644FA80000000, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x0747AE1400000000, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x0747AE1400000001, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x0747AE1400000002, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x0747AE1400000003, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x0747AE1400000010, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x0747AE14078644FA, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x0747AE140747AE14, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x0747AE1480000000, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x7FFFFFFF00000000, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x7FFFFFFF00000001, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x7FFFFFFF00000002, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x7FFFFFFF00000003, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x7FFFFFFF00000010, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x7FFFFFFF80000000, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x8000000000000000, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x8000000000000001, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x8000000000000002, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x8000000000000003, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x8000000000000010, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x80000000078644FA, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x800000000747AE14, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x800000007FFFFFFF, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x8000000080000000, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x80000000FFFFFFFD, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x80000000FFFFFFFE, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0x80000000FFFFFFFF, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFD00000000, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFD00000001, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFD00000002, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFD00000003, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFD00000010, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFD80000000, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFE00000000, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFE00000001, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFE00000002, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFE00000003, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFE00000010, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFE80000000, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFF00000000, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFF00000001, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFF00000002, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFF00000003, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFF00000010, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFF80000000, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x00000003078644FA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000003078644FA}, + [_]u64{0x000000030747AE14, 0x0000000000000001, 0x000000030747AE14, 0x0000000000000000}, + [_]u64{0x000000030747AE14, 0x0000000000000002, 0x0000000183A3D70A, 0x0000000000000000}, + [_]u64{0x000000030747AE14, 0x0000000000000003, 0x00000001026D3A06, 0x0000000000000002}, + [_]u64{0x000000030747AE14, 0x0000000000000010, 0x0000000030747AE1, 0x0000000000000004}, + [_]u64{0x000000030747AE14, 0x00000000078644FA, 0x0000000000000067, 0x000000000041ED7E}, + [_]u64{0x000000030747AE14, 0x000000000747AE14, 0x000000000000006A, 0x00000000039999CC}, + [_]u64{0x000000030747AE14, 0x000000007FFFFFFF, 0x0000000000000006, 0x000000000747AE1A}, + [_]u64{0x000000030747AE14, 0x0000000080000000, 0x0000000000000006, 0x000000000747AE14}, + [_]u64{0x000000030747AE14, 0x00000000FFFFFFFD, 0x0000000000000003, 0x000000000747AE1D}, + [_]u64{0x000000030747AE14, 0x00000000FFFFFFFE, 0x0000000000000003, 0x000000000747AE1A}, + [_]u64{0x000000030747AE14, 0x00000000FFFFFFFF, 0x0000000000000003, 0x000000000747AE17}, + [_]u64{0x000000030747AE14, 0x0000000100000000, 0x0000000000000003, 0x000000000747AE14}, + [_]u64{0x000000030747AE14, 0x0000000100000001, 0x0000000000000003, 0x000000000747AE11}, + [_]u64{0x000000030747AE14, 0x0000000100000002, 0x0000000000000003, 0x000000000747AE0E}, + [_]u64{0x000000030747AE14, 0x0000000100000003, 0x0000000000000003, 0x000000000747AE0B}, + [_]u64{0x000000030747AE14, 0x0000000100000010, 0x0000000000000003, 0x000000000747ADE4}, + [_]u64{0x000000030747AE14, 0x00000001078644FA, 0x0000000000000002, 0x00000000F83B2420}, + [_]u64{0x000000030747AE14, 0x000000010747AE14, 0x0000000000000002, 0x00000000F8B851EC}, + [_]u64{0x000000030747AE14, 0x000000017FFFFFFF, 0x0000000000000002, 0x000000000747AE16}, + [_]u64{0x000000030747AE14, 0x0000000180000000, 0x0000000000000002, 0x000000000747AE14}, + [_]u64{0x000000030747AE14, 0x00000001FFFFFFFD, 0x0000000000000001, 0x000000010747AE17}, + [_]u64{0x000000030747AE14, 0x00000001FFFFFFFE, 0x0000000000000001, 0x000000010747AE16}, + [_]u64{0x000000030747AE14, 0x00000001FFFFFFFF, 0x0000000000000001, 0x000000010747AE15}, + [_]u64{0x000000030747AE14, 0x0000000200000000, 0x0000000000000001, 0x000000010747AE14}, + [_]u64{0x000000030747AE14, 0x0000000200000001, 0x0000000000000001, 0x000000010747AE13}, + [_]u64{0x000000030747AE14, 0x0000000200000002, 0x0000000000000001, 0x000000010747AE12}, + [_]u64{0x000000030747AE14, 0x0000000200000003, 0x0000000000000001, 0x000000010747AE11}, + [_]u64{0x000000030747AE14, 0x0000000200000010, 0x0000000000000001, 0x000000010747AE04}, + [_]u64{0x000000030747AE14, 0x00000002078644FA, 0x0000000000000001, 0x00000000FFC1691A}, + [_]u64{0x000000030747AE14, 0x000000020747AE14, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x000000030747AE14, 0x000000027FFFFFFF, 0x0000000000000001, 0x000000008747AE15}, + [_]u64{0x000000030747AE14, 0x0000000280000000, 0x0000000000000001, 0x000000008747AE14}, + [_]u64{0x000000030747AE14, 0x00000002FFFFFFFD, 0x0000000000000001, 0x000000000747AE17}, + [_]u64{0x000000030747AE14, 0x00000002FFFFFFFE, 0x0000000000000001, 0x000000000747AE16}, + [_]u64{0x000000030747AE14, 0x00000002FFFFFFFF, 0x0000000000000001, 0x000000000747AE15}, + [_]u64{0x000000030747AE14, 0x0000000300000000, 0x0000000000000001, 0x000000000747AE14}, + [_]u64{0x000000030747AE14, 0x0000000300000001, 0x0000000000000001, 0x000000000747AE13}, + [_]u64{0x000000030747AE14, 0x0000000300000002, 0x0000000000000001, 0x000000000747AE12}, + [_]u64{0x000000030747AE14, 0x0000000300000003, 0x0000000000000001, 0x000000000747AE11}, + [_]u64{0x000000030747AE14, 0x0000000300000010, 0x0000000000000001, 0x000000000747AE04}, + [_]u64{0x000000030747AE14, 0x00000003078644FA, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x000000030747AE14, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x000000030747AE14, 0x000000037FFFFFFF, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x0000000380000000, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x00000003FFFFFFFD, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x00000003FFFFFFFE, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x00000003FFFFFFFF, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x0000001000000000, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x0000001000000001, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x0000001000000002, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x0000001000000003, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x0000001000000010, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x00000010078644FA, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x000000100747AE14, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x000000107FFFFFFF, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x0000001080000000, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x00000010FFFFFFFD, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x00000010FFFFFFFE, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x00000010FFFFFFFF, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x078644FA00000000, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x078644FA00000001, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x078644FA00000002, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x078644FA00000003, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x078644FA00000010, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x078644FA078644FA, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x078644FA0747AE14, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x078644FA80000000, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x0747AE1400000000, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x0747AE1400000001, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x0747AE1400000002, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x0747AE1400000003, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x0747AE1400000010, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x0747AE14078644FA, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x0747AE140747AE14, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x0747AE1480000000, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x7FFFFFFF00000000, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x7FFFFFFF00000001, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x7FFFFFFF00000002, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x7FFFFFFF00000003, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x7FFFFFFF00000010, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x7FFFFFFF80000000, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x8000000000000000, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x8000000000000001, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x8000000000000002, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x8000000000000003, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x8000000000000010, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x80000000078644FA, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x800000000747AE14, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x800000007FFFFFFF, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x8000000080000000, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x80000000FFFFFFFD, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x80000000FFFFFFFE, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0x80000000FFFFFFFF, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFD00000000, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFD00000001, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFD00000002, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFD00000003, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFD00000010, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFD80000000, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFE00000000, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFE00000001, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFE00000002, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFE00000003, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFE00000010, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFE80000000, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFF00000000, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFF00000001, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFF00000002, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFF00000003, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFF00000010, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFF80000000, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000030747AE14, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x000000030747AE14}, + [_]u64{0x000000037FFFFFFF, 0x0000000000000001, 0x000000037FFFFFFF, 0x0000000000000000}, + [_]u64{0x000000037FFFFFFF, 0x0000000000000002, 0x00000001BFFFFFFF, 0x0000000000000001}, + [_]u64{0x000000037FFFFFFF, 0x0000000000000003, 0x000000012AAAAAAA, 0x0000000000000001}, + [_]u64{0x000000037FFFFFFF, 0x0000000000000010, 0x0000000037FFFFFF, 0x000000000000000F}, + [_]u64{0x000000037FFFFFFF, 0x00000000078644FA, 0x0000000000000077, 0x000000000095EFC9}, + [_]u64{0x000000037FFFFFFF, 0x000000000747AE14, 0x000000000000007B, 0x00000000008F5C63}, + [_]u64{0x000000037FFFFFFF, 0x000000007FFFFFFF, 0x0000000000000007, 0x0000000000000006}, + [_]u64{0x000000037FFFFFFF, 0x0000000080000000, 0x0000000000000006, 0x000000007FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x00000000FFFFFFFD, 0x0000000000000003, 0x0000000080000008}, + [_]u64{0x000000037FFFFFFF, 0x00000000FFFFFFFE, 0x0000000000000003, 0x0000000080000005}, + [_]u64{0x000000037FFFFFFF, 0x00000000FFFFFFFF, 0x0000000000000003, 0x0000000080000002}, + [_]u64{0x000000037FFFFFFF, 0x0000000100000000, 0x0000000000000003, 0x000000007FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x0000000100000001, 0x0000000000000003, 0x000000007FFFFFFC}, + [_]u64{0x000000037FFFFFFF, 0x0000000100000002, 0x0000000000000003, 0x000000007FFFFFF9}, + [_]u64{0x000000037FFFFFFF, 0x0000000100000003, 0x0000000000000003, 0x000000007FFFFFF6}, + [_]u64{0x000000037FFFFFFF, 0x0000000100000010, 0x0000000000000003, 0x000000007FFFFFCF}, + [_]u64{0x000000037FFFFFFF, 0x00000001078644FA, 0x0000000000000003, 0x00000000696D3111}, + [_]u64{0x000000037FFFFFFF, 0x000000010747AE14, 0x0000000000000003, 0x000000006A28F5C3}, + [_]u64{0x000000037FFFFFFF, 0x000000017FFFFFFF, 0x0000000000000002, 0x0000000080000001}, + [_]u64{0x000000037FFFFFFF, 0x0000000180000000, 0x0000000000000002, 0x000000007FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x00000001FFFFFFFD, 0x0000000000000001, 0x0000000180000002}, + [_]u64{0x000000037FFFFFFF, 0x00000001FFFFFFFE, 0x0000000000000001, 0x0000000180000001}, + [_]u64{0x000000037FFFFFFF, 0x00000001FFFFFFFF, 0x0000000000000001, 0x0000000180000000}, + [_]u64{0x000000037FFFFFFF, 0x0000000200000000, 0x0000000000000001, 0x000000017FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x0000000200000001, 0x0000000000000001, 0x000000017FFFFFFE}, + [_]u64{0x000000037FFFFFFF, 0x0000000200000002, 0x0000000000000001, 0x000000017FFFFFFD}, + [_]u64{0x000000037FFFFFFF, 0x0000000200000003, 0x0000000000000001, 0x000000017FFFFFFC}, + [_]u64{0x000000037FFFFFFF, 0x0000000200000010, 0x0000000000000001, 0x000000017FFFFFEF}, + [_]u64{0x000000037FFFFFFF, 0x00000002078644FA, 0x0000000000000001, 0x000000017879BB05}, + [_]u64{0x000000037FFFFFFF, 0x000000020747AE14, 0x0000000000000001, 0x0000000178B851EB}, + [_]u64{0x000000037FFFFFFF, 0x000000027FFFFFFF, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x000000037FFFFFFF, 0x0000000280000000, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x00000002FFFFFFFD, 0x0000000000000001, 0x0000000080000002}, + [_]u64{0x000000037FFFFFFF, 0x00000002FFFFFFFE, 0x0000000000000001, 0x0000000080000001}, + [_]u64{0x000000037FFFFFFF, 0x00000002FFFFFFFF, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0x000000037FFFFFFF, 0x0000000300000000, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x0000000300000001, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x000000037FFFFFFF, 0x0000000300000002, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0x000000037FFFFFFF, 0x0000000300000003, 0x0000000000000001, 0x000000007FFFFFFC}, + [_]u64{0x000000037FFFFFFF, 0x0000000300000010, 0x0000000000000001, 0x000000007FFFFFEF}, + [_]u64{0x000000037FFFFFFF, 0x00000003078644FA, 0x0000000000000001, 0x000000007879BB05}, + [_]u64{0x000000037FFFFFFF, 0x000000030747AE14, 0x0000000000000001, 0x0000000078B851EB}, + [_]u64{0x000000037FFFFFFF, 0x000000037FFFFFFF, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x000000037FFFFFFF, 0x0000000380000000, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x00000003FFFFFFFD, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x00000003FFFFFFFE, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x00000003FFFFFFFF, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x0000001000000000, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x0000001000000001, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x0000001000000002, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x0000001000000003, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x0000001000000010, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x00000010078644FA, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x000000100747AE14, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x000000107FFFFFFF, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x0000001080000000, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x00000010FFFFFFFD, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x00000010FFFFFFFE, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x00000010FFFFFFFF, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x078644FA00000000, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x078644FA00000001, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x078644FA00000002, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x078644FA00000003, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x078644FA00000010, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x078644FA078644FA, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x078644FA0747AE14, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x078644FA80000000, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x0747AE1400000000, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x0747AE1400000001, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x0747AE1400000002, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x0747AE1400000003, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x0747AE1400000010, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x0747AE14078644FA, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x0747AE140747AE14, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x0747AE1480000000, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x7FFFFFFF00000000, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x7FFFFFFF00000001, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x7FFFFFFF00000002, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x7FFFFFFF00000003, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x7FFFFFFF00000010, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x7FFFFFFF80000000, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x8000000000000000, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x8000000000000001, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x8000000000000002, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x8000000000000003, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x8000000000000010, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x80000000078644FA, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x800000000747AE14, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x800000007FFFFFFF, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x8000000080000000, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x80000000FFFFFFFD, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x80000000FFFFFFFE, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0x80000000FFFFFFFF, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFD00000000, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFD00000001, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFD00000002, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFD00000003, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFD00000010, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFD80000000, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFE00000000, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFE00000001, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFE00000002, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFE00000003, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFE00000010, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFE80000000, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFF00000000, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFF00000001, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFF00000002, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFF00000003, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFF00000010, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFF80000000, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x000000037FFFFFFF, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x000000037FFFFFFF}, + [_]u64{0x0000000380000000, 0x0000000000000001, 0x0000000380000000, 0x0000000000000000}, + [_]u64{0x0000000380000000, 0x0000000000000002, 0x00000001C0000000, 0x0000000000000000}, + [_]u64{0x0000000380000000, 0x0000000000000003, 0x000000012AAAAAAA, 0x0000000000000002}, + [_]u64{0x0000000380000000, 0x0000000000000010, 0x0000000038000000, 0x0000000000000000}, + [_]u64{0x0000000380000000, 0x00000000078644FA, 0x0000000000000077, 0x000000000095EFCA}, + [_]u64{0x0000000380000000, 0x000000000747AE14, 0x000000000000007B, 0x00000000008F5C64}, + [_]u64{0x0000000380000000, 0x000000007FFFFFFF, 0x0000000000000007, 0x0000000000000007}, + [_]u64{0x0000000380000000, 0x0000000080000000, 0x0000000000000007, 0x0000000000000000}, + [_]u64{0x0000000380000000, 0x00000000FFFFFFFD, 0x0000000000000003, 0x0000000080000009}, + [_]u64{0x0000000380000000, 0x00000000FFFFFFFE, 0x0000000000000003, 0x0000000080000006}, + [_]u64{0x0000000380000000, 0x00000000FFFFFFFF, 0x0000000000000003, 0x0000000080000003}, + [_]u64{0x0000000380000000, 0x0000000100000000, 0x0000000000000003, 0x0000000080000000}, + [_]u64{0x0000000380000000, 0x0000000100000001, 0x0000000000000003, 0x000000007FFFFFFD}, + [_]u64{0x0000000380000000, 0x0000000100000002, 0x0000000000000003, 0x000000007FFFFFFA}, + [_]u64{0x0000000380000000, 0x0000000100000003, 0x0000000000000003, 0x000000007FFFFFF7}, + [_]u64{0x0000000380000000, 0x0000000100000010, 0x0000000000000003, 0x000000007FFFFFD0}, + [_]u64{0x0000000380000000, 0x00000001078644FA, 0x0000000000000003, 0x00000000696D3112}, + [_]u64{0x0000000380000000, 0x000000010747AE14, 0x0000000000000003, 0x000000006A28F5C4}, + [_]u64{0x0000000380000000, 0x000000017FFFFFFF, 0x0000000000000002, 0x0000000080000002}, + [_]u64{0x0000000380000000, 0x0000000180000000, 0x0000000000000002, 0x0000000080000000}, + [_]u64{0x0000000380000000, 0x00000001FFFFFFFD, 0x0000000000000001, 0x0000000180000003}, + [_]u64{0x0000000380000000, 0x00000001FFFFFFFE, 0x0000000000000001, 0x0000000180000002}, + [_]u64{0x0000000380000000, 0x00000001FFFFFFFF, 0x0000000000000001, 0x0000000180000001}, + [_]u64{0x0000000380000000, 0x0000000200000000, 0x0000000000000001, 0x0000000180000000}, + [_]u64{0x0000000380000000, 0x0000000200000001, 0x0000000000000001, 0x000000017FFFFFFF}, + [_]u64{0x0000000380000000, 0x0000000200000002, 0x0000000000000001, 0x000000017FFFFFFE}, + [_]u64{0x0000000380000000, 0x0000000200000003, 0x0000000000000001, 0x000000017FFFFFFD}, + [_]u64{0x0000000380000000, 0x0000000200000010, 0x0000000000000001, 0x000000017FFFFFF0}, + [_]u64{0x0000000380000000, 0x00000002078644FA, 0x0000000000000001, 0x000000017879BB06}, + [_]u64{0x0000000380000000, 0x000000020747AE14, 0x0000000000000001, 0x0000000178B851EC}, + [_]u64{0x0000000380000000, 0x000000027FFFFFFF, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0x0000000380000000, 0x0000000280000000, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x0000000380000000, 0x00000002FFFFFFFD, 0x0000000000000001, 0x0000000080000003}, + [_]u64{0x0000000380000000, 0x00000002FFFFFFFE, 0x0000000000000001, 0x0000000080000002}, + [_]u64{0x0000000380000000, 0x00000002FFFFFFFF, 0x0000000000000001, 0x0000000080000001}, + [_]u64{0x0000000380000000, 0x0000000300000000, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0x0000000380000000, 0x0000000300000001, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x0000000380000000, 0x0000000300000002, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x0000000380000000, 0x0000000300000003, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0x0000000380000000, 0x0000000300000010, 0x0000000000000001, 0x000000007FFFFFF0}, + [_]u64{0x0000000380000000, 0x00000003078644FA, 0x0000000000000001, 0x000000007879BB06}, + [_]u64{0x0000000380000000, 0x000000030747AE14, 0x0000000000000001, 0x0000000078B851EC}, + [_]u64{0x0000000380000000, 0x000000037FFFFFFF, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x0000000380000000, 0x0000000380000000, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000000380000000, 0x00000003FFFFFFFD, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x00000003FFFFFFFE, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x00000003FFFFFFFF, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x0000001000000000, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x0000001000000001, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x0000001000000002, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x0000001000000003, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x0000001000000010, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x00000010078644FA, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x000000100747AE14, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x0000001080000000, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x078644FA00000000, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x078644FA00000001, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x078644FA00000002, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x078644FA00000003, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x078644FA00000010, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x078644FA078644FA, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x078644FA0747AE14, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x078644FA80000000, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x0747AE1400000000, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x0747AE1400000001, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x0747AE1400000002, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x0747AE1400000003, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x0747AE1400000010, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x0747AE14078644FA, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x0747AE140747AE14, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x0747AE1480000000, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x8000000000000000, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x8000000000000001, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x8000000000000002, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x8000000000000003, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x8000000000000010, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x80000000078644FA, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x800000000747AE14, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x8000000080000000, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x0000000380000000, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000000380000000}, + [_]u64{0x00000003FFFFFFFD, 0x0000000000000001, 0x00000003FFFFFFFD, 0x0000000000000000}, + [_]u64{0x00000003FFFFFFFD, 0x0000000000000002, 0x00000001FFFFFFFE, 0x0000000000000001}, + [_]u64{0x00000003FFFFFFFD, 0x0000000000000003, 0x0000000155555554, 0x0000000000000001}, + [_]u64{0x00000003FFFFFFFD, 0x0000000000000010, 0x000000003FFFFFFF, 0x000000000000000D}, + [_]u64{0x00000003FFFFFFFD, 0x00000000078644FA, 0x0000000000000088, 0x0000000000AB5B2D}, + [_]u64{0x00000003FFFFFFFD, 0x000000000747AE14, 0x000000000000008C, 0x0000000004CCCD0D}, + [_]u64{0x00000003FFFFFFFD, 0x000000007FFFFFFF, 0x0000000000000008, 0x0000000000000005}, + [_]u64{0x00000003FFFFFFFD, 0x0000000080000000, 0x0000000000000007, 0x000000007FFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x00000000FFFFFFFD, 0x0000000000000004, 0x0000000000000009}, + [_]u64{0x00000003FFFFFFFD, 0x00000000FFFFFFFE, 0x0000000000000004, 0x0000000000000005}, + [_]u64{0x00000003FFFFFFFD, 0x00000000FFFFFFFF, 0x0000000000000004, 0x0000000000000001}, + [_]u64{0x00000003FFFFFFFD, 0x0000000100000000, 0x0000000000000003, 0x00000000FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x0000000100000001, 0x0000000000000003, 0x00000000FFFFFFFA}, + [_]u64{0x00000003FFFFFFFD, 0x0000000100000002, 0x0000000000000003, 0x00000000FFFFFFF7}, + [_]u64{0x00000003FFFFFFFD, 0x0000000100000003, 0x0000000000000003, 0x00000000FFFFFFF4}, + [_]u64{0x00000003FFFFFFFD, 0x0000000100000010, 0x0000000000000003, 0x00000000FFFFFFCD}, + [_]u64{0x00000003FFFFFFFD, 0x00000001078644FA, 0x0000000000000003, 0x00000000E96D310F}, + [_]u64{0x00000003FFFFFFFD, 0x000000010747AE14, 0x0000000000000003, 0x00000000EA28F5C1}, + [_]u64{0x00000003FFFFFFFD, 0x000000017FFFFFFF, 0x0000000000000002, 0x00000000FFFFFFFF}, + [_]u64{0x00000003FFFFFFFD, 0x0000000180000000, 0x0000000000000002, 0x00000000FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x00000001FFFFFFFD, 0x0000000000000002, 0x0000000000000003}, + [_]u64{0x00000003FFFFFFFD, 0x00000001FFFFFFFE, 0x0000000000000002, 0x0000000000000001}, + [_]u64{0x00000003FFFFFFFD, 0x00000001FFFFFFFF, 0x0000000000000001, 0x00000001FFFFFFFE}, + [_]u64{0x00000003FFFFFFFD, 0x0000000200000000, 0x0000000000000001, 0x00000001FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x0000000200000001, 0x0000000000000001, 0x00000001FFFFFFFC}, + [_]u64{0x00000003FFFFFFFD, 0x0000000200000002, 0x0000000000000001, 0x00000001FFFFFFFB}, + [_]u64{0x00000003FFFFFFFD, 0x0000000200000003, 0x0000000000000001, 0x00000001FFFFFFFA}, + [_]u64{0x00000003FFFFFFFD, 0x0000000200000010, 0x0000000000000001, 0x00000001FFFFFFED}, + [_]u64{0x00000003FFFFFFFD, 0x00000002078644FA, 0x0000000000000001, 0x00000001F879BB03}, + [_]u64{0x00000003FFFFFFFD, 0x000000020747AE14, 0x0000000000000001, 0x00000001F8B851E9}, + [_]u64{0x00000003FFFFFFFD, 0x000000027FFFFFFF, 0x0000000000000001, 0x000000017FFFFFFE}, + [_]u64{0x00000003FFFFFFFD, 0x0000000280000000, 0x0000000000000001, 0x000000017FFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x00000002FFFFFFFD, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x00000003FFFFFFFD, 0x00000002FFFFFFFE, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0x00000003FFFFFFFD, 0x00000002FFFFFFFF, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0x00000003FFFFFFFD, 0x0000000300000000, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x0000000300000001, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0x00000003FFFFFFFD, 0x0000000300000002, 0x0000000000000001, 0x00000000FFFFFFFB}, + [_]u64{0x00000003FFFFFFFD, 0x0000000300000003, 0x0000000000000001, 0x00000000FFFFFFFA}, + [_]u64{0x00000003FFFFFFFD, 0x0000000300000010, 0x0000000000000001, 0x00000000FFFFFFED}, + [_]u64{0x00000003FFFFFFFD, 0x00000003078644FA, 0x0000000000000001, 0x00000000F879BB03}, + [_]u64{0x00000003FFFFFFFD, 0x000000030747AE14, 0x0000000000000001, 0x00000000F8B851E9}, + [_]u64{0x00000003FFFFFFFD, 0x000000037FFFFFFF, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x00000003FFFFFFFD, 0x0000000380000000, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x00000003FFFFFFFD, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x00000003FFFFFFFD, 0x00000003FFFFFFFE, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x00000003FFFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x0000001000000000, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x0000001000000001, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x0000001000000002, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x0000001000000003, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x0000001000000010, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x00000010078644FA, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x000000100747AE14, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x000000107FFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x0000001080000000, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x00000010FFFFFFFD, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x00000010FFFFFFFE, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x00000010FFFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x078644FA00000000, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x078644FA00000001, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x078644FA00000002, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x078644FA00000003, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x078644FA00000010, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x078644FA078644FA, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x078644FA0747AE14, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x078644FA80000000, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x0747AE1400000000, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x0747AE1400000001, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x0747AE1400000002, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x0747AE1400000003, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x0747AE1400000010, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x0747AE14078644FA, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x0747AE140747AE14, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x0747AE1480000000, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x7FFFFFFF00000000, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x7FFFFFFF00000001, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x7FFFFFFF00000002, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x7FFFFFFF00000003, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x7FFFFFFF00000010, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x7FFFFFFF80000000, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x8000000000000000, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x8000000000000001, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x8000000000000002, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x8000000000000003, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x8000000000000010, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x80000000078644FA, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x800000000747AE14, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x800000007FFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x8000000080000000, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x80000000FFFFFFFD, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x80000000FFFFFFFE, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0x80000000FFFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFD00000000, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFD00000001, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFD00000002, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFD00000003, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFD00000010, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFD80000000, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFE00000000, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFE00000001, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFE00000002, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFE00000003, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFE00000010, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFE80000000, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFF00000000, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFF00000001, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFF00000002, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFF00000003, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFF00000010, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFF80000000, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFD, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFD}, + [_]u64{0x00000003FFFFFFFE, 0x0000000000000001, 0x00000003FFFFFFFE, 0x0000000000000000}, + [_]u64{0x00000003FFFFFFFE, 0x0000000000000002, 0x00000001FFFFFFFF, 0x0000000000000000}, + [_]u64{0x00000003FFFFFFFE, 0x0000000000000003, 0x0000000155555554, 0x0000000000000002}, + [_]u64{0x00000003FFFFFFFE, 0x0000000000000010, 0x000000003FFFFFFF, 0x000000000000000E}, + [_]u64{0x00000003FFFFFFFE, 0x00000000078644FA, 0x0000000000000088, 0x0000000000AB5B2E}, + [_]u64{0x00000003FFFFFFFE, 0x000000000747AE14, 0x000000000000008C, 0x0000000004CCCD0E}, + [_]u64{0x00000003FFFFFFFE, 0x000000007FFFFFFF, 0x0000000000000008, 0x0000000000000006}, + [_]u64{0x00000003FFFFFFFE, 0x0000000080000000, 0x0000000000000007, 0x000000007FFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x00000000FFFFFFFD, 0x0000000000000004, 0x000000000000000A}, + [_]u64{0x00000003FFFFFFFE, 0x00000000FFFFFFFE, 0x0000000000000004, 0x0000000000000006}, + [_]u64{0x00000003FFFFFFFE, 0x00000000FFFFFFFF, 0x0000000000000004, 0x0000000000000002}, + [_]u64{0x00000003FFFFFFFE, 0x0000000100000000, 0x0000000000000003, 0x00000000FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x0000000100000001, 0x0000000000000003, 0x00000000FFFFFFFB}, + [_]u64{0x00000003FFFFFFFE, 0x0000000100000002, 0x0000000000000003, 0x00000000FFFFFFF8}, + [_]u64{0x00000003FFFFFFFE, 0x0000000100000003, 0x0000000000000003, 0x00000000FFFFFFF5}, + [_]u64{0x00000003FFFFFFFE, 0x0000000100000010, 0x0000000000000003, 0x00000000FFFFFFCE}, + [_]u64{0x00000003FFFFFFFE, 0x00000001078644FA, 0x0000000000000003, 0x00000000E96D3110}, + [_]u64{0x00000003FFFFFFFE, 0x000000010747AE14, 0x0000000000000003, 0x00000000EA28F5C2}, + [_]u64{0x00000003FFFFFFFE, 0x000000017FFFFFFF, 0x0000000000000002, 0x0000000100000000}, + [_]u64{0x00000003FFFFFFFE, 0x0000000180000000, 0x0000000000000002, 0x00000000FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x00000001FFFFFFFD, 0x0000000000000002, 0x0000000000000004}, + [_]u64{0x00000003FFFFFFFE, 0x00000001FFFFFFFE, 0x0000000000000002, 0x0000000000000002}, + [_]u64{0x00000003FFFFFFFE, 0x00000001FFFFFFFF, 0x0000000000000002, 0x0000000000000000}, + [_]u64{0x00000003FFFFFFFE, 0x0000000200000000, 0x0000000000000001, 0x00000001FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x0000000200000001, 0x0000000000000001, 0x00000001FFFFFFFD}, + [_]u64{0x00000003FFFFFFFE, 0x0000000200000002, 0x0000000000000001, 0x00000001FFFFFFFC}, + [_]u64{0x00000003FFFFFFFE, 0x0000000200000003, 0x0000000000000001, 0x00000001FFFFFFFB}, + [_]u64{0x00000003FFFFFFFE, 0x0000000200000010, 0x0000000000000001, 0x00000001FFFFFFEE}, + [_]u64{0x00000003FFFFFFFE, 0x00000002078644FA, 0x0000000000000001, 0x00000001F879BB04}, + [_]u64{0x00000003FFFFFFFE, 0x000000020747AE14, 0x0000000000000001, 0x00000001F8B851EA}, + [_]u64{0x00000003FFFFFFFE, 0x000000027FFFFFFF, 0x0000000000000001, 0x000000017FFFFFFF}, + [_]u64{0x00000003FFFFFFFE, 0x0000000280000000, 0x0000000000000001, 0x000000017FFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x00000002FFFFFFFD, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0x00000003FFFFFFFE, 0x00000002FFFFFFFE, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x00000003FFFFFFFE, 0x00000002FFFFFFFF, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0x00000003FFFFFFFE, 0x0000000300000000, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x0000000300000001, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0x00000003FFFFFFFE, 0x0000000300000002, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0x00000003FFFFFFFE, 0x0000000300000003, 0x0000000000000001, 0x00000000FFFFFFFB}, + [_]u64{0x00000003FFFFFFFE, 0x0000000300000010, 0x0000000000000001, 0x00000000FFFFFFEE}, + [_]u64{0x00000003FFFFFFFE, 0x00000003078644FA, 0x0000000000000001, 0x00000000F879BB04}, + [_]u64{0x00000003FFFFFFFE, 0x000000030747AE14, 0x0000000000000001, 0x00000000F8B851EA}, + [_]u64{0x00000003FFFFFFFE, 0x000000037FFFFFFF, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x00000003FFFFFFFE, 0x0000000380000000, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x00000003FFFFFFFD, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x00000003FFFFFFFE, 0x00000003FFFFFFFE, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x00000003FFFFFFFE, 0x00000003FFFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x0000001000000000, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x0000001000000001, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x0000001000000002, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x0000001000000003, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x0000001000000010, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x00000010078644FA, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x000000100747AE14, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x000000107FFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x0000001080000000, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x00000010FFFFFFFD, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x00000010FFFFFFFE, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x00000010FFFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x078644FA00000000, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x078644FA00000001, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x078644FA00000002, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x078644FA00000003, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x078644FA00000010, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x078644FA078644FA, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x078644FA0747AE14, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x078644FA80000000, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x0747AE1400000000, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x0747AE1400000001, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x0747AE1400000002, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x0747AE1400000003, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x0747AE1400000010, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x0747AE14078644FA, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x0747AE140747AE14, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x0747AE1480000000, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x7FFFFFFF00000000, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x7FFFFFFF00000001, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x7FFFFFFF00000002, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x7FFFFFFF00000003, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x7FFFFFFF00000010, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x7FFFFFFF80000000, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x8000000000000000, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x8000000000000001, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x8000000000000002, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x8000000000000003, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x8000000000000010, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x80000000078644FA, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x800000000747AE14, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x800000007FFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x8000000080000000, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x80000000FFFFFFFD, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x80000000FFFFFFFE, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0x80000000FFFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFD00000000, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFD00000001, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFD00000002, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFD00000003, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFD00000010, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFD80000000, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFE00000000, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFE00000001, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFE00000002, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFE00000003, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFE00000010, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFE80000000, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFF00000000, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFF00000001, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFF00000002, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFF00000003, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFF00000010, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFF80000000, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFE, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFE}, + [_]u64{0x00000003FFFFFFFF, 0x0000000000000001, 0x00000003FFFFFFFF, 0x0000000000000000}, + [_]u64{0x00000003FFFFFFFF, 0x0000000000000002, 0x00000001FFFFFFFF, 0x0000000000000001}, + [_]u64{0x00000003FFFFFFFF, 0x0000000000000003, 0x0000000155555555, 0x0000000000000000}, + [_]u64{0x00000003FFFFFFFF, 0x0000000000000010, 0x000000003FFFFFFF, 0x000000000000000F}, + [_]u64{0x00000003FFFFFFFF, 0x00000000078644FA, 0x0000000000000088, 0x0000000000AB5B2F}, + [_]u64{0x00000003FFFFFFFF, 0x000000000747AE14, 0x000000000000008C, 0x0000000004CCCD0F}, + [_]u64{0x00000003FFFFFFFF, 0x000000007FFFFFFF, 0x0000000000000008, 0x0000000000000007}, + [_]u64{0x00000003FFFFFFFF, 0x0000000080000000, 0x0000000000000007, 0x000000007FFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x00000000FFFFFFFD, 0x0000000000000004, 0x000000000000000B}, + [_]u64{0x00000003FFFFFFFF, 0x00000000FFFFFFFE, 0x0000000000000004, 0x0000000000000007}, + [_]u64{0x00000003FFFFFFFF, 0x00000000FFFFFFFF, 0x0000000000000004, 0x0000000000000003}, + [_]u64{0x00000003FFFFFFFF, 0x0000000100000000, 0x0000000000000003, 0x00000000FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x0000000100000001, 0x0000000000000003, 0x00000000FFFFFFFC}, + [_]u64{0x00000003FFFFFFFF, 0x0000000100000002, 0x0000000000000003, 0x00000000FFFFFFF9}, + [_]u64{0x00000003FFFFFFFF, 0x0000000100000003, 0x0000000000000003, 0x00000000FFFFFFF6}, + [_]u64{0x00000003FFFFFFFF, 0x0000000100000010, 0x0000000000000003, 0x00000000FFFFFFCF}, + [_]u64{0x00000003FFFFFFFF, 0x00000001078644FA, 0x0000000000000003, 0x00000000E96D3111}, + [_]u64{0x00000003FFFFFFFF, 0x000000010747AE14, 0x0000000000000003, 0x00000000EA28F5C3}, + [_]u64{0x00000003FFFFFFFF, 0x000000017FFFFFFF, 0x0000000000000002, 0x0000000100000001}, + [_]u64{0x00000003FFFFFFFF, 0x0000000180000000, 0x0000000000000002, 0x00000000FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x00000001FFFFFFFD, 0x0000000000000002, 0x0000000000000005}, + [_]u64{0x00000003FFFFFFFF, 0x00000001FFFFFFFE, 0x0000000000000002, 0x0000000000000003}, + [_]u64{0x00000003FFFFFFFF, 0x00000001FFFFFFFF, 0x0000000000000002, 0x0000000000000001}, + [_]u64{0x00000003FFFFFFFF, 0x0000000200000000, 0x0000000000000001, 0x00000001FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x0000000200000001, 0x0000000000000001, 0x00000001FFFFFFFE}, + [_]u64{0x00000003FFFFFFFF, 0x0000000200000002, 0x0000000000000001, 0x00000001FFFFFFFD}, + [_]u64{0x00000003FFFFFFFF, 0x0000000200000003, 0x0000000000000001, 0x00000001FFFFFFFC}, + [_]u64{0x00000003FFFFFFFF, 0x0000000200000010, 0x0000000000000001, 0x00000001FFFFFFEF}, + [_]u64{0x00000003FFFFFFFF, 0x00000002078644FA, 0x0000000000000001, 0x00000001F879BB05}, + [_]u64{0x00000003FFFFFFFF, 0x000000020747AE14, 0x0000000000000001, 0x00000001F8B851EB}, + [_]u64{0x00000003FFFFFFFF, 0x000000027FFFFFFF, 0x0000000000000001, 0x0000000180000000}, + [_]u64{0x00000003FFFFFFFF, 0x0000000280000000, 0x0000000000000001, 0x000000017FFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x00000002FFFFFFFD, 0x0000000000000001, 0x0000000100000002}, + [_]u64{0x00000003FFFFFFFF, 0x00000002FFFFFFFE, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0x00000003FFFFFFFF, 0x00000002FFFFFFFF, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x00000003FFFFFFFF, 0x0000000300000000, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x0000000300000001, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0x00000003FFFFFFFF, 0x0000000300000002, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0x00000003FFFFFFFF, 0x0000000300000003, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0x00000003FFFFFFFF, 0x0000000300000010, 0x0000000000000001, 0x00000000FFFFFFEF}, + [_]u64{0x00000003FFFFFFFF, 0x00000003078644FA, 0x0000000000000001, 0x00000000F879BB05}, + [_]u64{0x00000003FFFFFFFF, 0x000000030747AE14, 0x0000000000000001, 0x00000000F8B851EB}, + [_]u64{0x00000003FFFFFFFF, 0x000000037FFFFFFF, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0x00000003FFFFFFFF, 0x0000000380000000, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x00000003FFFFFFFD, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x00000003FFFFFFFF, 0x00000003FFFFFFFE, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x00000003FFFFFFFF, 0x00000003FFFFFFFF, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x00000003FFFFFFFF, 0x0000001000000000, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x0000001000000001, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x0000001000000002, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x0000001000000003, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x0000001000000010, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x00000010078644FA, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x000000100747AE14, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x000000107FFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x0000001080000000, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x00000010FFFFFFFD, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x00000010FFFFFFFE, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x00000010FFFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x078644FA00000000, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x078644FA00000001, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x078644FA00000002, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x078644FA00000003, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x078644FA00000010, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x078644FA078644FA, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x078644FA0747AE14, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x078644FA80000000, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x0747AE1400000000, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x0747AE1400000001, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x0747AE1400000002, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x0747AE1400000003, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x0747AE1400000010, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x0747AE14078644FA, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x0747AE140747AE14, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x0747AE1480000000, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x7FFFFFFF00000000, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x7FFFFFFF00000001, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x7FFFFFFF00000002, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x7FFFFFFF00000003, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x7FFFFFFF00000010, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x7FFFFFFF80000000, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x8000000000000000, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x8000000000000001, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x8000000000000002, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x8000000000000003, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x8000000000000010, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x80000000078644FA, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x800000000747AE14, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x800000007FFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x8000000080000000, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x80000000FFFFFFFD, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x80000000FFFFFFFE, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0x80000000FFFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFD00000000, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFD00000001, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFD00000002, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFD00000003, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFD00000010, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFD80000000, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFE00000000, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFE00000001, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFE00000002, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFE00000003, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFE00000010, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFE80000000, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFF00000000, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFF00000001, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFF00000002, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFF00000003, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFF00000010, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFF80000000, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x00000003FFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000003FFFFFFFF}, + [_]u64{0x0000001000000000, 0x0000000000000001, 0x0000001000000000, 0x0000000000000000}, + [_]u64{0x0000001000000000, 0x0000000000000002, 0x0000000800000000, 0x0000000000000000}, + [_]u64{0x0000001000000000, 0x0000000000000003, 0x0000000555555555, 0x0000000000000001}, + [_]u64{0x0000001000000000, 0x0000000000000010, 0x0000000100000000, 0x0000000000000000}, + [_]u64{0x0000001000000000, 0x00000000078644FA, 0x0000000000000220, 0x0000000002AD6CC0}, + [_]u64{0x0000001000000000, 0x000000000747AE14, 0x0000000000000232, 0x0000000004A3D818}, + [_]u64{0x0000001000000000, 0x000000007FFFFFFF, 0x0000000000000020, 0x0000000000000020}, + [_]u64{0x0000001000000000, 0x0000000080000000, 0x0000000000000020, 0x0000000000000000}, + [_]u64{0x0000001000000000, 0x00000000FFFFFFFD, 0x0000000000000010, 0x0000000000000030}, + [_]u64{0x0000001000000000, 0x00000000FFFFFFFE, 0x0000000000000010, 0x0000000000000020}, + [_]u64{0x0000001000000000, 0x00000000FFFFFFFF, 0x0000000000000010, 0x0000000000000010}, + [_]u64{0x0000001000000000, 0x0000000100000000, 0x0000000000000010, 0x0000000000000000}, + [_]u64{0x0000001000000000, 0x0000000100000001, 0x000000000000000F, 0x00000000FFFFFFF1}, + [_]u64{0x0000001000000000, 0x0000000100000002, 0x000000000000000F, 0x00000000FFFFFFE2}, + [_]u64{0x0000001000000000, 0x0000000100000003, 0x000000000000000F, 0x00000000FFFFFFD3}, + [_]u64{0x0000001000000000, 0x0000000100000010, 0x000000000000000F, 0x00000000FFFFFF10}, + [_]u64{0x0000001000000000, 0x00000001078644FA, 0x000000000000000F, 0x000000008F21F55A}, + [_]u64{0x0000001000000000, 0x000000010747AE14, 0x000000000000000F, 0x0000000092CCCCD4}, + [_]u64{0x0000001000000000, 0x000000017FFFFFFF, 0x000000000000000A, 0x000000010000000A}, + [_]u64{0x0000001000000000, 0x0000000180000000, 0x000000000000000A, 0x0000000100000000}, + [_]u64{0x0000001000000000, 0x00000001FFFFFFFD, 0x0000000000000008, 0x0000000000000018}, + [_]u64{0x0000001000000000, 0x00000001FFFFFFFE, 0x0000000000000008, 0x0000000000000010}, + [_]u64{0x0000001000000000, 0x00000001FFFFFFFF, 0x0000000000000008, 0x0000000000000008}, + [_]u64{0x0000001000000000, 0x0000000200000000, 0x0000000000000008, 0x0000000000000000}, + [_]u64{0x0000001000000000, 0x0000000200000001, 0x0000000000000007, 0x00000001FFFFFFF9}, + [_]u64{0x0000001000000000, 0x0000000200000002, 0x0000000000000007, 0x00000001FFFFFFF2}, + [_]u64{0x0000001000000000, 0x0000000200000003, 0x0000000000000007, 0x00000001FFFFFFEB}, + [_]u64{0x0000001000000000, 0x0000000200000010, 0x0000000000000007, 0x00000001FFFFFF90}, + [_]u64{0x0000001000000000, 0x00000002078644FA, 0x0000000000000007, 0x00000001CB541D2A}, + [_]u64{0x0000001000000000, 0x000000020747AE14, 0x0000000000000007, 0x00000001CD0A3D74}, + [_]u64{0x0000001000000000, 0x000000027FFFFFFF, 0x0000000000000006, 0x0000000100000006}, + [_]u64{0x0000001000000000, 0x0000000280000000, 0x0000000000000006, 0x0000000100000000}, + [_]u64{0x0000001000000000, 0x00000002FFFFFFFD, 0x0000000000000005, 0x000000010000000F}, + [_]u64{0x0000001000000000, 0x00000002FFFFFFFE, 0x0000000000000005, 0x000000010000000A}, + [_]u64{0x0000001000000000, 0x00000002FFFFFFFF, 0x0000000000000005, 0x0000000100000005}, + [_]u64{0x0000001000000000, 0x0000000300000000, 0x0000000000000005, 0x0000000100000000}, + [_]u64{0x0000001000000000, 0x0000000300000001, 0x0000000000000005, 0x00000000FFFFFFFB}, + [_]u64{0x0000001000000000, 0x0000000300000002, 0x0000000000000005, 0x00000000FFFFFFF6}, + [_]u64{0x0000001000000000, 0x0000000300000003, 0x0000000000000005, 0x00000000FFFFFFF1}, + [_]u64{0x0000001000000000, 0x0000000300000010, 0x0000000000000005, 0x00000000FFFFFFB0}, + [_]u64{0x0000001000000000, 0x00000003078644FA, 0x0000000000000005, 0x00000000DA60A71E}, + [_]u64{0x0000001000000000, 0x000000030747AE14, 0x0000000000000005, 0x00000000DB99999C}, + [_]u64{0x0000001000000000, 0x000000037FFFFFFF, 0x0000000000000004, 0x0000000200000004}, + [_]u64{0x0000001000000000, 0x0000000380000000, 0x0000000000000004, 0x0000000200000000}, + [_]u64{0x0000001000000000, 0x00000003FFFFFFFD, 0x0000000000000004, 0x000000000000000C}, + [_]u64{0x0000001000000000, 0x00000003FFFFFFFE, 0x0000000000000004, 0x0000000000000008}, + [_]u64{0x0000001000000000, 0x00000003FFFFFFFF, 0x0000000000000004, 0x0000000000000004}, + [_]u64{0x0000001000000000, 0x0000001000000000, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000001000000000, 0x0000001000000001, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x0000001000000002, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x0000001000000003, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x0000001000000010, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x00000010078644FA, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x000000100747AE14, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x0000001080000000, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x078644FA00000000, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x078644FA00000001, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x078644FA00000002, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x078644FA00000003, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x078644FA00000010, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x078644FA078644FA, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x078644FA0747AE14, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x078644FA80000000, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x0747AE1400000000, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x0747AE1400000001, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x0747AE1400000002, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x0747AE1400000003, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x0747AE1400000010, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x0747AE14078644FA, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x0747AE140747AE14, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x0747AE1480000000, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x8000000000000000, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x8000000000000001, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x8000000000000002, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x8000000000000003, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x8000000000000010, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x80000000078644FA, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x800000000747AE14, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x8000000080000000, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000000, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000001000000000}, + [_]u64{0x0000001000000001, 0x0000000000000001, 0x0000001000000001, 0x0000000000000000}, + [_]u64{0x0000001000000001, 0x0000000000000002, 0x0000000800000000, 0x0000000000000001}, + [_]u64{0x0000001000000001, 0x0000000000000003, 0x0000000555555555, 0x0000000000000002}, + [_]u64{0x0000001000000001, 0x0000000000000010, 0x0000000100000000, 0x0000000000000001}, + [_]u64{0x0000001000000001, 0x00000000078644FA, 0x0000000000000220, 0x0000000002AD6CC1}, + [_]u64{0x0000001000000001, 0x000000000747AE14, 0x0000000000000232, 0x0000000004A3D819}, + [_]u64{0x0000001000000001, 0x000000007FFFFFFF, 0x0000000000000020, 0x0000000000000021}, + [_]u64{0x0000001000000001, 0x0000000080000000, 0x0000000000000020, 0x0000000000000001}, + [_]u64{0x0000001000000001, 0x00000000FFFFFFFD, 0x0000000000000010, 0x0000000000000031}, + [_]u64{0x0000001000000001, 0x00000000FFFFFFFE, 0x0000000000000010, 0x0000000000000021}, + [_]u64{0x0000001000000001, 0x00000000FFFFFFFF, 0x0000000000000010, 0x0000000000000011}, + [_]u64{0x0000001000000001, 0x0000000100000000, 0x0000000000000010, 0x0000000000000001}, + [_]u64{0x0000001000000001, 0x0000000100000001, 0x000000000000000F, 0x00000000FFFFFFF2}, + [_]u64{0x0000001000000001, 0x0000000100000002, 0x000000000000000F, 0x00000000FFFFFFE3}, + [_]u64{0x0000001000000001, 0x0000000100000003, 0x000000000000000F, 0x00000000FFFFFFD4}, + [_]u64{0x0000001000000001, 0x0000000100000010, 0x000000000000000F, 0x00000000FFFFFF11}, + [_]u64{0x0000001000000001, 0x00000001078644FA, 0x000000000000000F, 0x000000008F21F55B}, + [_]u64{0x0000001000000001, 0x000000010747AE14, 0x000000000000000F, 0x0000000092CCCCD5}, + [_]u64{0x0000001000000001, 0x000000017FFFFFFF, 0x000000000000000A, 0x000000010000000B}, + [_]u64{0x0000001000000001, 0x0000000180000000, 0x000000000000000A, 0x0000000100000001}, + [_]u64{0x0000001000000001, 0x00000001FFFFFFFD, 0x0000000000000008, 0x0000000000000019}, + [_]u64{0x0000001000000001, 0x00000001FFFFFFFE, 0x0000000000000008, 0x0000000000000011}, + [_]u64{0x0000001000000001, 0x00000001FFFFFFFF, 0x0000000000000008, 0x0000000000000009}, + [_]u64{0x0000001000000001, 0x0000000200000000, 0x0000000000000008, 0x0000000000000001}, + [_]u64{0x0000001000000001, 0x0000000200000001, 0x0000000000000007, 0x00000001FFFFFFFA}, + [_]u64{0x0000001000000001, 0x0000000200000002, 0x0000000000000007, 0x00000001FFFFFFF3}, + [_]u64{0x0000001000000001, 0x0000000200000003, 0x0000000000000007, 0x00000001FFFFFFEC}, + [_]u64{0x0000001000000001, 0x0000000200000010, 0x0000000000000007, 0x00000001FFFFFF91}, + [_]u64{0x0000001000000001, 0x00000002078644FA, 0x0000000000000007, 0x00000001CB541D2B}, + [_]u64{0x0000001000000001, 0x000000020747AE14, 0x0000000000000007, 0x00000001CD0A3D75}, + [_]u64{0x0000001000000001, 0x000000027FFFFFFF, 0x0000000000000006, 0x0000000100000007}, + [_]u64{0x0000001000000001, 0x0000000280000000, 0x0000000000000006, 0x0000000100000001}, + [_]u64{0x0000001000000001, 0x00000002FFFFFFFD, 0x0000000000000005, 0x0000000100000010}, + [_]u64{0x0000001000000001, 0x00000002FFFFFFFE, 0x0000000000000005, 0x000000010000000B}, + [_]u64{0x0000001000000001, 0x00000002FFFFFFFF, 0x0000000000000005, 0x0000000100000006}, + [_]u64{0x0000001000000001, 0x0000000300000000, 0x0000000000000005, 0x0000000100000001}, + [_]u64{0x0000001000000001, 0x0000000300000001, 0x0000000000000005, 0x00000000FFFFFFFC}, + [_]u64{0x0000001000000001, 0x0000000300000002, 0x0000000000000005, 0x00000000FFFFFFF7}, + [_]u64{0x0000001000000001, 0x0000000300000003, 0x0000000000000005, 0x00000000FFFFFFF2}, + [_]u64{0x0000001000000001, 0x0000000300000010, 0x0000000000000005, 0x00000000FFFFFFB1}, + [_]u64{0x0000001000000001, 0x00000003078644FA, 0x0000000000000005, 0x00000000DA60A71F}, + [_]u64{0x0000001000000001, 0x000000030747AE14, 0x0000000000000005, 0x00000000DB99999D}, + [_]u64{0x0000001000000001, 0x000000037FFFFFFF, 0x0000000000000004, 0x0000000200000005}, + [_]u64{0x0000001000000001, 0x0000000380000000, 0x0000000000000004, 0x0000000200000001}, + [_]u64{0x0000001000000001, 0x00000003FFFFFFFD, 0x0000000000000004, 0x000000000000000D}, + [_]u64{0x0000001000000001, 0x00000003FFFFFFFE, 0x0000000000000004, 0x0000000000000009}, + [_]u64{0x0000001000000001, 0x00000003FFFFFFFF, 0x0000000000000004, 0x0000000000000005}, + [_]u64{0x0000001000000001, 0x0000001000000000, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x0000001000000001, 0x0000001000000001, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000001000000001, 0x0000001000000002, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x0000001000000003, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x0000001000000010, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x00000010078644FA, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x000000100747AE14, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x0000001080000000, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x078644FA00000000, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x078644FA00000001, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x078644FA00000002, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x078644FA00000003, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x078644FA00000010, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x078644FA078644FA, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x078644FA0747AE14, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x078644FA80000000, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x0747AE1400000000, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x0747AE1400000001, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x0747AE1400000002, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x0747AE1400000003, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x0747AE1400000010, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x0747AE14078644FA, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x0747AE140747AE14, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x0747AE1480000000, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x8000000000000000, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x8000000000000001, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x8000000000000002, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x8000000000000003, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x8000000000000010, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x80000000078644FA, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x800000000747AE14, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x8000000080000000, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000001, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000001000000001}, + [_]u64{0x0000001000000002, 0x0000000000000001, 0x0000001000000002, 0x0000000000000000}, + [_]u64{0x0000001000000002, 0x0000000000000002, 0x0000000800000001, 0x0000000000000000}, + [_]u64{0x0000001000000002, 0x0000000000000003, 0x0000000555555556, 0x0000000000000000}, + [_]u64{0x0000001000000002, 0x0000000000000010, 0x0000000100000000, 0x0000000000000002}, + [_]u64{0x0000001000000002, 0x00000000078644FA, 0x0000000000000220, 0x0000000002AD6CC2}, + [_]u64{0x0000001000000002, 0x000000000747AE14, 0x0000000000000232, 0x0000000004A3D81A}, + [_]u64{0x0000001000000002, 0x000000007FFFFFFF, 0x0000000000000020, 0x0000000000000022}, + [_]u64{0x0000001000000002, 0x0000000080000000, 0x0000000000000020, 0x0000000000000002}, + [_]u64{0x0000001000000002, 0x00000000FFFFFFFD, 0x0000000000000010, 0x0000000000000032}, + [_]u64{0x0000001000000002, 0x00000000FFFFFFFE, 0x0000000000000010, 0x0000000000000022}, + [_]u64{0x0000001000000002, 0x00000000FFFFFFFF, 0x0000000000000010, 0x0000000000000012}, + [_]u64{0x0000001000000002, 0x0000000100000000, 0x0000000000000010, 0x0000000000000002}, + [_]u64{0x0000001000000002, 0x0000000100000001, 0x000000000000000F, 0x00000000FFFFFFF3}, + [_]u64{0x0000001000000002, 0x0000000100000002, 0x000000000000000F, 0x00000000FFFFFFE4}, + [_]u64{0x0000001000000002, 0x0000000100000003, 0x000000000000000F, 0x00000000FFFFFFD5}, + [_]u64{0x0000001000000002, 0x0000000100000010, 0x000000000000000F, 0x00000000FFFFFF12}, + [_]u64{0x0000001000000002, 0x00000001078644FA, 0x000000000000000F, 0x000000008F21F55C}, + [_]u64{0x0000001000000002, 0x000000010747AE14, 0x000000000000000F, 0x0000000092CCCCD6}, + [_]u64{0x0000001000000002, 0x000000017FFFFFFF, 0x000000000000000A, 0x000000010000000C}, + [_]u64{0x0000001000000002, 0x0000000180000000, 0x000000000000000A, 0x0000000100000002}, + [_]u64{0x0000001000000002, 0x00000001FFFFFFFD, 0x0000000000000008, 0x000000000000001A}, + [_]u64{0x0000001000000002, 0x00000001FFFFFFFE, 0x0000000000000008, 0x0000000000000012}, + [_]u64{0x0000001000000002, 0x00000001FFFFFFFF, 0x0000000000000008, 0x000000000000000A}, + [_]u64{0x0000001000000002, 0x0000000200000000, 0x0000000000000008, 0x0000000000000002}, + [_]u64{0x0000001000000002, 0x0000000200000001, 0x0000000000000007, 0x00000001FFFFFFFB}, + [_]u64{0x0000001000000002, 0x0000000200000002, 0x0000000000000007, 0x00000001FFFFFFF4}, + [_]u64{0x0000001000000002, 0x0000000200000003, 0x0000000000000007, 0x00000001FFFFFFED}, + [_]u64{0x0000001000000002, 0x0000000200000010, 0x0000000000000007, 0x00000001FFFFFF92}, + [_]u64{0x0000001000000002, 0x00000002078644FA, 0x0000000000000007, 0x00000001CB541D2C}, + [_]u64{0x0000001000000002, 0x000000020747AE14, 0x0000000000000007, 0x00000001CD0A3D76}, + [_]u64{0x0000001000000002, 0x000000027FFFFFFF, 0x0000000000000006, 0x0000000100000008}, + [_]u64{0x0000001000000002, 0x0000000280000000, 0x0000000000000006, 0x0000000100000002}, + [_]u64{0x0000001000000002, 0x00000002FFFFFFFD, 0x0000000000000005, 0x0000000100000011}, + [_]u64{0x0000001000000002, 0x00000002FFFFFFFE, 0x0000000000000005, 0x000000010000000C}, + [_]u64{0x0000001000000002, 0x00000002FFFFFFFF, 0x0000000000000005, 0x0000000100000007}, + [_]u64{0x0000001000000002, 0x0000000300000000, 0x0000000000000005, 0x0000000100000002}, + [_]u64{0x0000001000000002, 0x0000000300000001, 0x0000000000000005, 0x00000000FFFFFFFD}, + [_]u64{0x0000001000000002, 0x0000000300000002, 0x0000000000000005, 0x00000000FFFFFFF8}, + [_]u64{0x0000001000000002, 0x0000000300000003, 0x0000000000000005, 0x00000000FFFFFFF3}, + [_]u64{0x0000001000000002, 0x0000000300000010, 0x0000000000000005, 0x00000000FFFFFFB2}, + [_]u64{0x0000001000000002, 0x00000003078644FA, 0x0000000000000005, 0x00000000DA60A720}, + [_]u64{0x0000001000000002, 0x000000030747AE14, 0x0000000000000005, 0x00000000DB99999E}, + [_]u64{0x0000001000000002, 0x000000037FFFFFFF, 0x0000000000000004, 0x0000000200000006}, + [_]u64{0x0000001000000002, 0x0000000380000000, 0x0000000000000004, 0x0000000200000002}, + [_]u64{0x0000001000000002, 0x00000003FFFFFFFD, 0x0000000000000004, 0x000000000000000E}, + [_]u64{0x0000001000000002, 0x00000003FFFFFFFE, 0x0000000000000004, 0x000000000000000A}, + [_]u64{0x0000001000000002, 0x00000003FFFFFFFF, 0x0000000000000004, 0x0000000000000006}, + [_]u64{0x0000001000000002, 0x0000001000000000, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x0000001000000002, 0x0000001000000001, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x0000001000000002, 0x0000001000000002, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000001000000002, 0x0000001000000003, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x0000001000000010, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x00000010078644FA, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x000000100747AE14, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x0000001080000000, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x078644FA00000000, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x078644FA00000001, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x078644FA00000002, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x078644FA00000003, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x078644FA00000010, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x078644FA078644FA, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x078644FA0747AE14, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x078644FA80000000, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x0747AE1400000000, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x0747AE1400000001, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x0747AE1400000002, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x0747AE1400000003, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x0747AE1400000010, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x0747AE14078644FA, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x0747AE140747AE14, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x0747AE1480000000, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x8000000000000000, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x8000000000000001, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x8000000000000002, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x8000000000000003, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x8000000000000010, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x80000000078644FA, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x800000000747AE14, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x8000000080000000, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000002, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000001000000002}, + [_]u64{0x0000001000000003, 0x0000000000000001, 0x0000001000000003, 0x0000000000000000}, + [_]u64{0x0000001000000003, 0x0000000000000002, 0x0000000800000001, 0x0000000000000001}, + [_]u64{0x0000001000000003, 0x0000000000000003, 0x0000000555555556, 0x0000000000000001}, + [_]u64{0x0000001000000003, 0x0000000000000010, 0x0000000100000000, 0x0000000000000003}, + [_]u64{0x0000001000000003, 0x00000000078644FA, 0x0000000000000220, 0x0000000002AD6CC3}, + [_]u64{0x0000001000000003, 0x000000000747AE14, 0x0000000000000232, 0x0000000004A3D81B}, + [_]u64{0x0000001000000003, 0x000000007FFFFFFF, 0x0000000000000020, 0x0000000000000023}, + [_]u64{0x0000001000000003, 0x0000000080000000, 0x0000000000000020, 0x0000000000000003}, + [_]u64{0x0000001000000003, 0x00000000FFFFFFFD, 0x0000000000000010, 0x0000000000000033}, + [_]u64{0x0000001000000003, 0x00000000FFFFFFFE, 0x0000000000000010, 0x0000000000000023}, + [_]u64{0x0000001000000003, 0x00000000FFFFFFFF, 0x0000000000000010, 0x0000000000000013}, + [_]u64{0x0000001000000003, 0x0000000100000000, 0x0000000000000010, 0x0000000000000003}, + [_]u64{0x0000001000000003, 0x0000000100000001, 0x000000000000000F, 0x00000000FFFFFFF4}, + [_]u64{0x0000001000000003, 0x0000000100000002, 0x000000000000000F, 0x00000000FFFFFFE5}, + [_]u64{0x0000001000000003, 0x0000000100000003, 0x000000000000000F, 0x00000000FFFFFFD6}, + [_]u64{0x0000001000000003, 0x0000000100000010, 0x000000000000000F, 0x00000000FFFFFF13}, + [_]u64{0x0000001000000003, 0x00000001078644FA, 0x000000000000000F, 0x000000008F21F55D}, + [_]u64{0x0000001000000003, 0x000000010747AE14, 0x000000000000000F, 0x0000000092CCCCD7}, + [_]u64{0x0000001000000003, 0x000000017FFFFFFF, 0x000000000000000A, 0x000000010000000D}, + [_]u64{0x0000001000000003, 0x0000000180000000, 0x000000000000000A, 0x0000000100000003}, + [_]u64{0x0000001000000003, 0x00000001FFFFFFFD, 0x0000000000000008, 0x000000000000001B}, + [_]u64{0x0000001000000003, 0x00000001FFFFFFFE, 0x0000000000000008, 0x0000000000000013}, + [_]u64{0x0000001000000003, 0x00000001FFFFFFFF, 0x0000000000000008, 0x000000000000000B}, + [_]u64{0x0000001000000003, 0x0000000200000000, 0x0000000000000008, 0x0000000000000003}, + [_]u64{0x0000001000000003, 0x0000000200000001, 0x0000000000000007, 0x00000001FFFFFFFC}, + [_]u64{0x0000001000000003, 0x0000000200000002, 0x0000000000000007, 0x00000001FFFFFFF5}, + [_]u64{0x0000001000000003, 0x0000000200000003, 0x0000000000000007, 0x00000001FFFFFFEE}, + [_]u64{0x0000001000000003, 0x0000000200000010, 0x0000000000000007, 0x00000001FFFFFF93}, + [_]u64{0x0000001000000003, 0x00000002078644FA, 0x0000000000000007, 0x00000001CB541D2D}, + [_]u64{0x0000001000000003, 0x000000020747AE14, 0x0000000000000007, 0x00000001CD0A3D77}, + [_]u64{0x0000001000000003, 0x000000027FFFFFFF, 0x0000000000000006, 0x0000000100000009}, + [_]u64{0x0000001000000003, 0x0000000280000000, 0x0000000000000006, 0x0000000100000003}, + [_]u64{0x0000001000000003, 0x00000002FFFFFFFD, 0x0000000000000005, 0x0000000100000012}, + [_]u64{0x0000001000000003, 0x00000002FFFFFFFE, 0x0000000000000005, 0x000000010000000D}, + [_]u64{0x0000001000000003, 0x00000002FFFFFFFF, 0x0000000000000005, 0x0000000100000008}, + [_]u64{0x0000001000000003, 0x0000000300000000, 0x0000000000000005, 0x0000000100000003}, + [_]u64{0x0000001000000003, 0x0000000300000001, 0x0000000000000005, 0x00000000FFFFFFFE}, + [_]u64{0x0000001000000003, 0x0000000300000002, 0x0000000000000005, 0x00000000FFFFFFF9}, + [_]u64{0x0000001000000003, 0x0000000300000003, 0x0000000000000005, 0x00000000FFFFFFF4}, + [_]u64{0x0000001000000003, 0x0000000300000010, 0x0000000000000005, 0x00000000FFFFFFB3}, + [_]u64{0x0000001000000003, 0x00000003078644FA, 0x0000000000000005, 0x00000000DA60A721}, + [_]u64{0x0000001000000003, 0x000000030747AE14, 0x0000000000000005, 0x00000000DB99999F}, + [_]u64{0x0000001000000003, 0x000000037FFFFFFF, 0x0000000000000004, 0x0000000200000007}, + [_]u64{0x0000001000000003, 0x0000000380000000, 0x0000000000000004, 0x0000000200000003}, + [_]u64{0x0000001000000003, 0x00000003FFFFFFFD, 0x0000000000000004, 0x000000000000000F}, + [_]u64{0x0000001000000003, 0x00000003FFFFFFFE, 0x0000000000000004, 0x000000000000000B}, + [_]u64{0x0000001000000003, 0x00000003FFFFFFFF, 0x0000000000000004, 0x0000000000000007}, + [_]u64{0x0000001000000003, 0x0000001000000000, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0x0000001000000003, 0x0000001000000001, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x0000001000000003, 0x0000001000000002, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x0000001000000003, 0x0000001000000003, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000001000000003, 0x0000001000000010, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x00000010078644FA, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x000000100747AE14, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x0000001080000000, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x078644FA00000000, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x078644FA00000001, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x078644FA00000002, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x078644FA00000003, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x078644FA00000010, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x078644FA078644FA, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x078644FA0747AE14, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x078644FA80000000, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x0747AE1400000000, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x0747AE1400000001, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x0747AE1400000002, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x0747AE1400000003, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x0747AE1400000010, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x0747AE14078644FA, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x0747AE140747AE14, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x0747AE1480000000, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x8000000000000000, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x8000000000000001, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x8000000000000002, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x8000000000000003, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x8000000000000010, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x80000000078644FA, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x800000000747AE14, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x8000000080000000, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000003, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000001000000003}, + [_]u64{0x0000001000000010, 0x0000000000000001, 0x0000001000000010, 0x0000000000000000}, + [_]u64{0x0000001000000010, 0x0000000000000002, 0x0000000800000008, 0x0000000000000000}, + [_]u64{0x0000001000000010, 0x0000000000000003, 0x000000055555555A, 0x0000000000000002}, + [_]u64{0x0000001000000010, 0x0000000000000010, 0x0000000100000001, 0x0000000000000000}, + [_]u64{0x0000001000000010, 0x00000000078644FA, 0x0000000000000220, 0x0000000002AD6CD0}, + [_]u64{0x0000001000000010, 0x000000000747AE14, 0x0000000000000232, 0x0000000004A3D828}, + [_]u64{0x0000001000000010, 0x000000007FFFFFFF, 0x0000000000000020, 0x0000000000000030}, + [_]u64{0x0000001000000010, 0x0000000080000000, 0x0000000000000020, 0x0000000000000010}, + [_]u64{0x0000001000000010, 0x00000000FFFFFFFD, 0x0000000000000010, 0x0000000000000040}, + [_]u64{0x0000001000000010, 0x00000000FFFFFFFE, 0x0000000000000010, 0x0000000000000030}, + [_]u64{0x0000001000000010, 0x00000000FFFFFFFF, 0x0000000000000010, 0x0000000000000020}, + [_]u64{0x0000001000000010, 0x0000000100000000, 0x0000000000000010, 0x0000000000000010}, + [_]u64{0x0000001000000010, 0x0000000100000001, 0x0000000000000010, 0x0000000000000000}, + [_]u64{0x0000001000000010, 0x0000000100000002, 0x000000000000000F, 0x00000000FFFFFFF2}, + [_]u64{0x0000001000000010, 0x0000000100000003, 0x000000000000000F, 0x00000000FFFFFFE3}, + [_]u64{0x0000001000000010, 0x0000000100000010, 0x000000000000000F, 0x00000000FFFFFF20}, + [_]u64{0x0000001000000010, 0x00000001078644FA, 0x000000000000000F, 0x000000008F21F56A}, + [_]u64{0x0000001000000010, 0x000000010747AE14, 0x000000000000000F, 0x0000000092CCCCE4}, + [_]u64{0x0000001000000010, 0x000000017FFFFFFF, 0x000000000000000A, 0x000000010000001A}, + [_]u64{0x0000001000000010, 0x0000000180000000, 0x000000000000000A, 0x0000000100000010}, + [_]u64{0x0000001000000010, 0x00000001FFFFFFFD, 0x0000000000000008, 0x0000000000000028}, + [_]u64{0x0000001000000010, 0x00000001FFFFFFFE, 0x0000000000000008, 0x0000000000000020}, + [_]u64{0x0000001000000010, 0x00000001FFFFFFFF, 0x0000000000000008, 0x0000000000000018}, + [_]u64{0x0000001000000010, 0x0000000200000000, 0x0000000000000008, 0x0000000000000010}, + [_]u64{0x0000001000000010, 0x0000000200000001, 0x0000000000000008, 0x0000000000000008}, + [_]u64{0x0000001000000010, 0x0000000200000002, 0x0000000000000008, 0x0000000000000000}, + [_]u64{0x0000001000000010, 0x0000000200000003, 0x0000000000000007, 0x00000001FFFFFFFB}, + [_]u64{0x0000001000000010, 0x0000000200000010, 0x0000000000000007, 0x00000001FFFFFFA0}, + [_]u64{0x0000001000000010, 0x00000002078644FA, 0x0000000000000007, 0x00000001CB541D3A}, + [_]u64{0x0000001000000010, 0x000000020747AE14, 0x0000000000000007, 0x00000001CD0A3D84}, + [_]u64{0x0000001000000010, 0x000000027FFFFFFF, 0x0000000000000006, 0x0000000100000016}, + [_]u64{0x0000001000000010, 0x0000000280000000, 0x0000000000000006, 0x0000000100000010}, + [_]u64{0x0000001000000010, 0x00000002FFFFFFFD, 0x0000000000000005, 0x000000010000001F}, + [_]u64{0x0000001000000010, 0x00000002FFFFFFFE, 0x0000000000000005, 0x000000010000001A}, + [_]u64{0x0000001000000010, 0x00000002FFFFFFFF, 0x0000000000000005, 0x0000000100000015}, + [_]u64{0x0000001000000010, 0x0000000300000000, 0x0000000000000005, 0x0000000100000010}, + [_]u64{0x0000001000000010, 0x0000000300000001, 0x0000000000000005, 0x000000010000000B}, + [_]u64{0x0000001000000010, 0x0000000300000002, 0x0000000000000005, 0x0000000100000006}, + [_]u64{0x0000001000000010, 0x0000000300000003, 0x0000000000000005, 0x0000000100000001}, + [_]u64{0x0000001000000010, 0x0000000300000010, 0x0000000000000005, 0x00000000FFFFFFC0}, + [_]u64{0x0000001000000010, 0x00000003078644FA, 0x0000000000000005, 0x00000000DA60A72E}, + [_]u64{0x0000001000000010, 0x000000030747AE14, 0x0000000000000005, 0x00000000DB9999AC}, + [_]u64{0x0000001000000010, 0x000000037FFFFFFF, 0x0000000000000004, 0x0000000200000014}, + [_]u64{0x0000001000000010, 0x0000000380000000, 0x0000000000000004, 0x0000000200000010}, + [_]u64{0x0000001000000010, 0x00000003FFFFFFFD, 0x0000000000000004, 0x000000000000001C}, + [_]u64{0x0000001000000010, 0x00000003FFFFFFFE, 0x0000000000000004, 0x0000000000000018}, + [_]u64{0x0000001000000010, 0x00000003FFFFFFFF, 0x0000000000000004, 0x0000000000000014}, + [_]u64{0x0000001000000010, 0x0000001000000000, 0x0000000000000001, 0x0000000000000010}, + [_]u64{0x0000001000000010, 0x0000001000000001, 0x0000000000000001, 0x000000000000000F}, + [_]u64{0x0000001000000010, 0x0000001000000002, 0x0000000000000001, 0x000000000000000E}, + [_]u64{0x0000001000000010, 0x0000001000000003, 0x0000000000000001, 0x000000000000000D}, + [_]u64{0x0000001000000010, 0x0000001000000010, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000001000000010, 0x00000010078644FA, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x000000100747AE14, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x000000107FFFFFFF, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x0000001080000000, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x078644FA00000000, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x078644FA00000001, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x078644FA00000002, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x078644FA00000003, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x078644FA00000010, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x078644FA078644FA, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x078644FA0747AE14, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x078644FA80000000, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x0747AE1400000000, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x0747AE1400000001, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x0747AE1400000002, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x0747AE1400000003, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x0747AE1400000010, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x0747AE14078644FA, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x0747AE140747AE14, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x0747AE1480000000, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x8000000000000000, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x8000000000000001, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x8000000000000002, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x8000000000000003, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x8000000000000010, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x80000000078644FA, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x800000000747AE14, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x8000000080000000, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x0000001000000010, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000001000000010}, + [_]u64{0x00000010078644FA, 0x0000000000000001, 0x00000010078644FA, 0x0000000000000000}, + [_]u64{0x00000010078644FA, 0x0000000000000002, 0x0000000803C3227D, 0x0000000000000000}, + [_]u64{0x00000010078644FA, 0x0000000000000003, 0x0000000557D76C53, 0x0000000000000001}, + [_]u64{0x00000010078644FA, 0x0000000000000010, 0x000000010078644F, 0x000000000000000A}, + [_]u64{0x00000010078644FA, 0x00000000078644FA, 0x0000000000000221, 0x0000000002AD6CC0}, + [_]u64{0x00000010078644FA, 0x000000000747AE14, 0x0000000000000233, 0x0000000004E26EFE}, + [_]u64{0x00000010078644FA, 0x000000007FFFFFFF, 0x0000000000000020, 0x000000000786451A}, + [_]u64{0x00000010078644FA, 0x0000000080000000, 0x0000000000000020, 0x00000000078644FA}, + [_]u64{0x00000010078644FA, 0x00000000FFFFFFFD, 0x0000000000000010, 0x000000000786452A}, + [_]u64{0x00000010078644FA, 0x00000000FFFFFFFE, 0x0000000000000010, 0x000000000786451A}, + [_]u64{0x00000010078644FA, 0x00000000FFFFFFFF, 0x0000000000000010, 0x000000000786450A}, + [_]u64{0x00000010078644FA, 0x0000000100000000, 0x0000000000000010, 0x00000000078644FA}, + [_]u64{0x00000010078644FA, 0x0000000100000001, 0x0000000000000010, 0x00000000078644EA}, + [_]u64{0x00000010078644FA, 0x0000000100000002, 0x0000000000000010, 0x00000000078644DA}, + [_]u64{0x00000010078644FA, 0x0000000100000003, 0x0000000000000010, 0x00000000078644CA}, + [_]u64{0x00000010078644FA, 0x0000000100000010, 0x0000000000000010, 0x00000000078643FA}, + [_]u64{0x00000010078644FA, 0x00000001078644FA, 0x000000000000000F, 0x0000000096A83A54}, + [_]u64{0x00000010078644FA, 0x000000010747AE14, 0x000000000000000F, 0x000000009A5311CE}, + [_]u64{0x00000010078644FA, 0x000000017FFFFFFF, 0x000000000000000A, 0x0000000107864504}, + [_]u64{0x00000010078644FA, 0x0000000180000000, 0x000000000000000A, 0x00000001078644FA}, + [_]u64{0x00000010078644FA, 0x00000001FFFFFFFD, 0x0000000000000008, 0x0000000007864512}, + [_]u64{0x00000010078644FA, 0x00000001FFFFFFFE, 0x0000000000000008, 0x000000000786450A}, + [_]u64{0x00000010078644FA, 0x00000001FFFFFFFF, 0x0000000000000008, 0x0000000007864502}, + [_]u64{0x00000010078644FA, 0x0000000200000000, 0x0000000000000008, 0x00000000078644FA}, + [_]u64{0x00000010078644FA, 0x0000000200000001, 0x0000000000000008, 0x00000000078644F2}, + [_]u64{0x00000010078644FA, 0x0000000200000002, 0x0000000000000008, 0x00000000078644EA}, + [_]u64{0x00000010078644FA, 0x0000000200000003, 0x0000000000000008, 0x00000000078644E2}, + [_]u64{0x00000010078644FA, 0x0000000200000010, 0x0000000000000008, 0x000000000786447A}, + [_]u64{0x00000010078644FA, 0x00000002078644FA, 0x0000000000000007, 0x00000001D2DA6224}, + [_]u64{0x00000010078644FA, 0x000000020747AE14, 0x0000000000000007, 0x00000001D490826E}, + [_]u64{0x00000010078644FA, 0x000000027FFFFFFF, 0x0000000000000006, 0x0000000107864500}, + [_]u64{0x00000010078644FA, 0x0000000280000000, 0x0000000000000006, 0x00000001078644FA}, + [_]u64{0x00000010078644FA, 0x00000002FFFFFFFD, 0x0000000000000005, 0x0000000107864509}, + [_]u64{0x00000010078644FA, 0x00000002FFFFFFFE, 0x0000000000000005, 0x0000000107864504}, + [_]u64{0x00000010078644FA, 0x00000002FFFFFFFF, 0x0000000000000005, 0x00000001078644FF}, + [_]u64{0x00000010078644FA, 0x0000000300000000, 0x0000000000000005, 0x00000001078644FA}, + [_]u64{0x00000010078644FA, 0x0000000300000001, 0x0000000000000005, 0x00000001078644F5}, + [_]u64{0x00000010078644FA, 0x0000000300000002, 0x0000000000000005, 0x00000001078644F0}, + [_]u64{0x00000010078644FA, 0x0000000300000003, 0x0000000000000005, 0x00000001078644EB}, + [_]u64{0x00000010078644FA, 0x0000000300000010, 0x0000000000000005, 0x00000001078644AA}, + [_]u64{0x00000010078644FA, 0x00000003078644FA, 0x0000000000000005, 0x00000000E1E6EC18}, + [_]u64{0x00000010078644FA, 0x000000030747AE14, 0x0000000000000005, 0x00000000E31FDE96}, + [_]u64{0x00000010078644FA, 0x000000037FFFFFFF, 0x0000000000000004, 0x00000002078644FE}, + [_]u64{0x00000010078644FA, 0x0000000380000000, 0x0000000000000004, 0x00000002078644FA}, + [_]u64{0x00000010078644FA, 0x00000003FFFFFFFD, 0x0000000000000004, 0x0000000007864506}, + [_]u64{0x00000010078644FA, 0x00000003FFFFFFFE, 0x0000000000000004, 0x0000000007864502}, + [_]u64{0x00000010078644FA, 0x00000003FFFFFFFF, 0x0000000000000004, 0x00000000078644FE}, + [_]u64{0x00000010078644FA, 0x0000001000000000, 0x0000000000000001, 0x00000000078644FA}, + [_]u64{0x00000010078644FA, 0x0000001000000001, 0x0000000000000001, 0x00000000078644F9}, + [_]u64{0x00000010078644FA, 0x0000001000000002, 0x0000000000000001, 0x00000000078644F8}, + [_]u64{0x00000010078644FA, 0x0000001000000003, 0x0000000000000001, 0x00000000078644F7}, + [_]u64{0x00000010078644FA, 0x0000001000000010, 0x0000000000000001, 0x00000000078644EA}, + [_]u64{0x00000010078644FA, 0x00000010078644FA, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x00000010078644FA, 0x000000100747AE14, 0x0000000000000001, 0x00000000003E96E6}, + [_]u64{0x00000010078644FA, 0x000000107FFFFFFF, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x0000001080000000, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x00000010FFFFFFFD, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x00000010FFFFFFFE, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x00000010FFFFFFFF, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x078644FA00000000, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x078644FA00000001, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x078644FA00000002, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x078644FA00000003, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x078644FA00000010, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x078644FA078644FA, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x078644FA0747AE14, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x078644FA80000000, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x0747AE1400000000, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x0747AE1400000001, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x0747AE1400000002, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x0747AE1400000003, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x0747AE1400000010, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x0747AE14078644FA, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x0747AE140747AE14, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x0747AE1480000000, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x7FFFFFFF00000000, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x7FFFFFFF00000001, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x7FFFFFFF00000002, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x7FFFFFFF00000003, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x7FFFFFFF00000010, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x7FFFFFFF80000000, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x8000000000000000, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x8000000000000001, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x8000000000000002, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x8000000000000003, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x8000000000000010, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x80000000078644FA, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x800000000747AE14, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x800000007FFFFFFF, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x8000000080000000, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x80000000FFFFFFFD, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x80000000FFFFFFFE, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0x80000000FFFFFFFF, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFD00000000, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFD00000001, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFD00000002, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFD00000003, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFD00000010, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFD80000000, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFE00000000, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFE00000001, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFE00000002, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFE00000003, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFE00000010, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFE80000000, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFF00000000, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFF00000001, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFF00000002, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFF00000003, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFF00000010, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFF80000000, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x00000010078644FA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000010078644FA}, + [_]u64{0x000000100747AE14, 0x0000000000000001, 0x000000100747AE14, 0x0000000000000000}, + [_]u64{0x000000100747AE14, 0x0000000000000002, 0x0000000803A3D70A, 0x0000000000000000}, + [_]u64{0x000000100747AE14, 0x0000000000000003, 0x0000000557C28F5C, 0x0000000000000000}, + [_]u64{0x000000100747AE14, 0x0000000000000010, 0x0000000100747AE1, 0x0000000000000004}, + [_]u64{0x000000100747AE14, 0x00000000078644FA, 0x0000000000000221, 0x00000000026ED5DA}, + [_]u64{0x000000100747AE14, 0x000000000747AE14, 0x0000000000000233, 0x0000000004A3D818}, + [_]u64{0x000000100747AE14, 0x000000007FFFFFFF, 0x0000000000000020, 0x000000000747AE34}, + [_]u64{0x000000100747AE14, 0x0000000080000000, 0x0000000000000020, 0x000000000747AE14}, + [_]u64{0x000000100747AE14, 0x00000000FFFFFFFD, 0x0000000000000010, 0x000000000747AE44}, + [_]u64{0x000000100747AE14, 0x00000000FFFFFFFE, 0x0000000000000010, 0x000000000747AE34}, + [_]u64{0x000000100747AE14, 0x00000000FFFFFFFF, 0x0000000000000010, 0x000000000747AE24}, + [_]u64{0x000000100747AE14, 0x0000000100000000, 0x0000000000000010, 0x000000000747AE14}, + [_]u64{0x000000100747AE14, 0x0000000100000001, 0x0000000000000010, 0x000000000747AE04}, + [_]u64{0x000000100747AE14, 0x0000000100000002, 0x0000000000000010, 0x000000000747ADF4}, + [_]u64{0x000000100747AE14, 0x0000000100000003, 0x0000000000000010, 0x000000000747ADE4}, + [_]u64{0x000000100747AE14, 0x0000000100000010, 0x0000000000000010, 0x000000000747AD14}, + [_]u64{0x000000100747AE14, 0x00000001078644FA, 0x000000000000000F, 0x000000009669A36E}, + [_]u64{0x000000100747AE14, 0x000000010747AE14, 0x000000000000000F, 0x000000009A147AE8}, + [_]u64{0x000000100747AE14, 0x000000017FFFFFFF, 0x000000000000000A, 0x000000010747AE1E}, + [_]u64{0x000000100747AE14, 0x0000000180000000, 0x000000000000000A, 0x000000010747AE14}, + [_]u64{0x000000100747AE14, 0x00000001FFFFFFFD, 0x0000000000000008, 0x000000000747AE2C}, + [_]u64{0x000000100747AE14, 0x00000001FFFFFFFE, 0x0000000000000008, 0x000000000747AE24}, + [_]u64{0x000000100747AE14, 0x00000001FFFFFFFF, 0x0000000000000008, 0x000000000747AE1C}, + [_]u64{0x000000100747AE14, 0x0000000200000000, 0x0000000000000008, 0x000000000747AE14}, + [_]u64{0x000000100747AE14, 0x0000000200000001, 0x0000000000000008, 0x000000000747AE0C}, + [_]u64{0x000000100747AE14, 0x0000000200000002, 0x0000000000000008, 0x000000000747AE04}, + [_]u64{0x000000100747AE14, 0x0000000200000003, 0x0000000000000008, 0x000000000747ADFC}, + [_]u64{0x000000100747AE14, 0x0000000200000010, 0x0000000000000008, 0x000000000747AD94}, + [_]u64{0x000000100747AE14, 0x00000002078644FA, 0x0000000000000007, 0x00000001D29BCB3E}, + [_]u64{0x000000100747AE14, 0x000000020747AE14, 0x0000000000000007, 0x00000001D451EB88}, + [_]u64{0x000000100747AE14, 0x000000027FFFFFFF, 0x0000000000000006, 0x000000010747AE1A}, + [_]u64{0x000000100747AE14, 0x0000000280000000, 0x0000000000000006, 0x000000010747AE14}, + [_]u64{0x000000100747AE14, 0x00000002FFFFFFFD, 0x0000000000000005, 0x000000010747AE23}, + [_]u64{0x000000100747AE14, 0x00000002FFFFFFFE, 0x0000000000000005, 0x000000010747AE1E}, + [_]u64{0x000000100747AE14, 0x00000002FFFFFFFF, 0x0000000000000005, 0x000000010747AE19}, + [_]u64{0x000000100747AE14, 0x0000000300000000, 0x0000000000000005, 0x000000010747AE14}, + [_]u64{0x000000100747AE14, 0x0000000300000001, 0x0000000000000005, 0x000000010747AE0F}, + [_]u64{0x000000100747AE14, 0x0000000300000002, 0x0000000000000005, 0x000000010747AE0A}, + [_]u64{0x000000100747AE14, 0x0000000300000003, 0x0000000000000005, 0x000000010747AE05}, + [_]u64{0x000000100747AE14, 0x0000000300000010, 0x0000000000000005, 0x000000010747ADC4}, + [_]u64{0x000000100747AE14, 0x00000003078644FA, 0x0000000000000005, 0x00000000E1A85532}, + [_]u64{0x000000100747AE14, 0x000000030747AE14, 0x0000000000000005, 0x00000000E2E147B0}, + [_]u64{0x000000100747AE14, 0x000000037FFFFFFF, 0x0000000000000004, 0x000000020747AE18}, + [_]u64{0x000000100747AE14, 0x0000000380000000, 0x0000000000000004, 0x000000020747AE14}, + [_]u64{0x000000100747AE14, 0x00000003FFFFFFFD, 0x0000000000000004, 0x000000000747AE20}, + [_]u64{0x000000100747AE14, 0x00000003FFFFFFFE, 0x0000000000000004, 0x000000000747AE1C}, + [_]u64{0x000000100747AE14, 0x00000003FFFFFFFF, 0x0000000000000004, 0x000000000747AE18}, + [_]u64{0x000000100747AE14, 0x0000001000000000, 0x0000000000000001, 0x000000000747AE14}, + [_]u64{0x000000100747AE14, 0x0000001000000001, 0x0000000000000001, 0x000000000747AE13}, + [_]u64{0x000000100747AE14, 0x0000001000000002, 0x0000000000000001, 0x000000000747AE12}, + [_]u64{0x000000100747AE14, 0x0000001000000003, 0x0000000000000001, 0x000000000747AE11}, + [_]u64{0x000000100747AE14, 0x0000001000000010, 0x0000000000000001, 0x000000000747AE04}, + [_]u64{0x000000100747AE14, 0x00000010078644FA, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x000000100747AE14, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x000000100747AE14, 0x000000107FFFFFFF, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x0000001080000000, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x00000010FFFFFFFD, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x00000010FFFFFFFE, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x00000010FFFFFFFF, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x078644FA00000000, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x078644FA00000001, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x078644FA00000002, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x078644FA00000003, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x078644FA00000010, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x078644FA078644FA, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x078644FA0747AE14, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x078644FA80000000, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x0747AE1400000000, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x0747AE1400000001, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x0747AE1400000002, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x0747AE1400000003, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x0747AE1400000010, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x0747AE14078644FA, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x0747AE140747AE14, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x0747AE1480000000, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x7FFFFFFF00000000, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x7FFFFFFF00000001, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x7FFFFFFF00000002, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x7FFFFFFF00000003, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x7FFFFFFF00000010, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x7FFFFFFF80000000, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x8000000000000000, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x8000000000000001, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x8000000000000002, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x8000000000000003, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x8000000000000010, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x80000000078644FA, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x800000000747AE14, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x800000007FFFFFFF, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x8000000080000000, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x80000000FFFFFFFD, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x80000000FFFFFFFE, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0x80000000FFFFFFFF, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFD00000000, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFD00000001, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFD00000002, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFD00000003, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFD00000010, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFD80000000, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFE00000000, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFE00000001, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFE00000002, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFE00000003, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFE00000010, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFE80000000, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFF00000000, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFF00000001, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFF00000002, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFF00000003, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFF00000010, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFF80000000, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000100747AE14, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x000000100747AE14}, + [_]u64{0x000000107FFFFFFF, 0x0000000000000001, 0x000000107FFFFFFF, 0x0000000000000000}, + [_]u64{0x000000107FFFFFFF, 0x0000000000000002, 0x000000083FFFFFFF, 0x0000000000000001}, + [_]u64{0x000000107FFFFFFF, 0x0000000000000003, 0x000000057FFFFFFF, 0x0000000000000002}, + [_]u64{0x000000107FFFFFFF, 0x0000000000000010, 0x0000000107FFFFFF, 0x000000000000000F}, + [_]u64{0x000000107FFFFFFF, 0x00000000078644FA, 0x0000000000000231, 0x0000000002C2D825}, + [_]u64{0x000000107FFFFFFF, 0x000000000747AE14, 0x0000000000000244, 0x0000000001999AAF}, + [_]u64{0x000000107FFFFFFF, 0x000000007FFFFFFF, 0x0000000000000021, 0x0000000000000020}, + [_]u64{0x000000107FFFFFFF, 0x0000000080000000, 0x0000000000000020, 0x000000007FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x00000000FFFFFFFD, 0x0000000000000010, 0x000000008000002F}, + [_]u64{0x000000107FFFFFFF, 0x00000000FFFFFFFE, 0x0000000000000010, 0x000000008000001F}, + [_]u64{0x000000107FFFFFFF, 0x00000000FFFFFFFF, 0x0000000000000010, 0x000000008000000F}, + [_]u64{0x000000107FFFFFFF, 0x0000000100000000, 0x0000000000000010, 0x000000007FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x0000000100000001, 0x0000000000000010, 0x000000007FFFFFEF}, + [_]u64{0x000000107FFFFFFF, 0x0000000100000002, 0x0000000000000010, 0x000000007FFFFFDF}, + [_]u64{0x000000107FFFFFFF, 0x0000000100000003, 0x0000000000000010, 0x000000007FFFFFCF}, + [_]u64{0x000000107FFFFFFF, 0x0000000100000010, 0x0000000000000010, 0x000000007FFFFEFF}, + [_]u64{0x000000107FFFFFFF, 0x00000001078644FA, 0x0000000000000010, 0x00000000079BB05F}, + [_]u64{0x000000107FFFFFFF, 0x000000010747AE14, 0x0000000000000010, 0x000000000B851EBF}, + [_]u64{0x000000107FFFFFFF, 0x000000017FFFFFFF, 0x000000000000000B, 0x000000000000000A}, + [_]u64{0x000000107FFFFFFF, 0x0000000180000000, 0x000000000000000A, 0x000000017FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x00000001FFFFFFFD, 0x0000000000000008, 0x0000000080000017}, + [_]u64{0x000000107FFFFFFF, 0x00000001FFFFFFFE, 0x0000000000000008, 0x000000008000000F}, + [_]u64{0x000000107FFFFFFF, 0x00000001FFFFFFFF, 0x0000000000000008, 0x0000000080000007}, + [_]u64{0x000000107FFFFFFF, 0x0000000200000000, 0x0000000000000008, 0x000000007FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x0000000200000001, 0x0000000000000008, 0x000000007FFFFFF7}, + [_]u64{0x000000107FFFFFFF, 0x0000000200000002, 0x0000000000000008, 0x000000007FFFFFEF}, + [_]u64{0x000000107FFFFFFF, 0x0000000200000003, 0x0000000000000008, 0x000000007FFFFFE7}, + [_]u64{0x000000107FFFFFFF, 0x0000000200000010, 0x0000000000000008, 0x000000007FFFFF7F}, + [_]u64{0x000000107FFFFFFF, 0x00000002078644FA, 0x0000000000000008, 0x0000000043CDD82F}, + [_]u64{0x000000107FFFFFFF, 0x000000020747AE14, 0x0000000000000008, 0x0000000045C28F5F}, + [_]u64{0x000000107FFFFFFF, 0x000000027FFFFFFF, 0x0000000000000006, 0x0000000180000005}, + [_]u64{0x000000107FFFFFFF, 0x0000000280000000, 0x0000000000000006, 0x000000017FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x00000002FFFFFFFD, 0x0000000000000005, 0x000000018000000E}, + [_]u64{0x000000107FFFFFFF, 0x00000002FFFFFFFE, 0x0000000000000005, 0x0000000180000009}, + [_]u64{0x000000107FFFFFFF, 0x00000002FFFFFFFF, 0x0000000000000005, 0x0000000180000004}, + [_]u64{0x000000107FFFFFFF, 0x0000000300000000, 0x0000000000000005, 0x000000017FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x0000000300000001, 0x0000000000000005, 0x000000017FFFFFFA}, + [_]u64{0x000000107FFFFFFF, 0x0000000300000002, 0x0000000000000005, 0x000000017FFFFFF5}, + [_]u64{0x000000107FFFFFFF, 0x0000000300000003, 0x0000000000000005, 0x000000017FFFFFF0}, + [_]u64{0x000000107FFFFFFF, 0x0000000300000010, 0x0000000000000005, 0x000000017FFFFFAF}, + [_]u64{0x000000107FFFFFFF, 0x00000003078644FA, 0x0000000000000005, 0x000000015A60A71D}, + [_]u64{0x000000107FFFFFFF, 0x000000030747AE14, 0x0000000000000005, 0x000000015B99999B}, + [_]u64{0x000000107FFFFFFF, 0x000000037FFFFFFF, 0x0000000000000004, 0x0000000280000003}, + [_]u64{0x000000107FFFFFFF, 0x0000000380000000, 0x0000000000000004, 0x000000027FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x00000003FFFFFFFD, 0x0000000000000004, 0x000000008000000B}, + [_]u64{0x000000107FFFFFFF, 0x00000003FFFFFFFE, 0x0000000000000004, 0x0000000080000007}, + [_]u64{0x000000107FFFFFFF, 0x00000003FFFFFFFF, 0x0000000000000004, 0x0000000080000003}, + [_]u64{0x000000107FFFFFFF, 0x0000001000000000, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x0000001000000001, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x000000107FFFFFFF, 0x0000001000000002, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0x000000107FFFFFFF, 0x0000001000000003, 0x0000000000000001, 0x000000007FFFFFFC}, + [_]u64{0x000000107FFFFFFF, 0x0000001000000010, 0x0000000000000001, 0x000000007FFFFFEF}, + [_]u64{0x000000107FFFFFFF, 0x00000010078644FA, 0x0000000000000001, 0x000000007879BB05}, + [_]u64{0x000000107FFFFFFF, 0x000000100747AE14, 0x0000000000000001, 0x0000000078B851EB}, + [_]u64{0x000000107FFFFFFF, 0x000000107FFFFFFF, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x000000107FFFFFFF, 0x0000001080000000, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x00000010FFFFFFFD, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x00000010FFFFFFFE, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x00000010FFFFFFFF, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x078644FA00000000, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x078644FA00000001, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x078644FA00000002, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x078644FA00000003, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x078644FA00000010, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x078644FA078644FA, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x078644FA0747AE14, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x078644FA80000000, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x0747AE1400000000, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x0747AE1400000001, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x0747AE1400000002, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x0747AE1400000003, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x0747AE1400000010, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x0747AE14078644FA, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x0747AE140747AE14, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x0747AE1480000000, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x7FFFFFFF00000000, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x7FFFFFFF00000001, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x7FFFFFFF00000002, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x7FFFFFFF00000003, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x7FFFFFFF00000010, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x7FFFFFFF80000000, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x8000000000000000, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x8000000000000001, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x8000000000000002, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x8000000000000003, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x8000000000000010, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x80000000078644FA, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x800000000747AE14, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x800000007FFFFFFF, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x8000000080000000, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x80000000FFFFFFFD, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x80000000FFFFFFFE, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0x80000000FFFFFFFF, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFD00000000, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFD00000001, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFD00000002, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFD00000003, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFD00000010, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFD80000000, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFE00000000, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFE00000001, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFE00000002, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFE00000003, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFE00000010, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFE80000000, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFF00000000, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFF00000001, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFF00000002, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFF00000003, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFF00000010, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFF80000000, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x000000107FFFFFFF, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x000000107FFFFFFF}, + [_]u64{0x0000001080000000, 0x0000000000000001, 0x0000001080000000, 0x0000000000000000}, + [_]u64{0x0000001080000000, 0x0000000000000002, 0x0000000840000000, 0x0000000000000000}, + [_]u64{0x0000001080000000, 0x0000000000000003, 0x0000000580000000, 0x0000000000000000}, + [_]u64{0x0000001080000000, 0x0000000000000010, 0x0000000108000000, 0x0000000000000000}, + [_]u64{0x0000001080000000, 0x00000000078644FA, 0x0000000000000231, 0x0000000002C2D826}, + [_]u64{0x0000001080000000, 0x000000000747AE14, 0x0000000000000244, 0x0000000001999AB0}, + [_]u64{0x0000001080000000, 0x000000007FFFFFFF, 0x0000000000000021, 0x0000000000000021}, + [_]u64{0x0000001080000000, 0x0000000080000000, 0x0000000000000021, 0x0000000000000000}, + [_]u64{0x0000001080000000, 0x00000000FFFFFFFD, 0x0000000000000010, 0x0000000080000030}, + [_]u64{0x0000001080000000, 0x00000000FFFFFFFE, 0x0000000000000010, 0x0000000080000020}, + [_]u64{0x0000001080000000, 0x00000000FFFFFFFF, 0x0000000000000010, 0x0000000080000010}, + [_]u64{0x0000001080000000, 0x0000000100000000, 0x0000000000000010, 0x0000000080000000}, + [_]u64{0x0000001080000000, 0x0000000100000001, 0x0000000000000010, 0x000000007FFFFFF0}, + [_]u64{0x0000001080000000, 0x0000000100000002, 0x0000000000000010, 0x000000007FFFFFE0}, + [_]u64{0x0000001080000000, 0x0000000100000003, 0x0000000000000010, 0x000000007FFFFFD0}, + [_]u64{0x0000001080000000, 0x0000000100000010, 0x0000000000000010, 0x000000007FFFFF00}, + [_]u64{0x0000001080000000, 0x00000001078644FA, 0x0000000000000010, 0x00000000079BB060}, + [_]u64{0x0000001080000000, 0x000000010747AE14, 0x0000000000000010, 0x000000000B851EC0}, + [_]u64{0x0000001080000000, 0x000000017FFFFFFF, 0x000000000000000B, 0x000000000000000B}, + [_]u64{0x0000001080000000, 0x0000000180000000, 0x000000000000000B, 0x0000000000000000}, + [_]u64{0x0000001080000000, 0x00000001FFFFFFFD, 0x0000000000000008, 0x0000000080000018}, + [_]u64{0x0000001080000000, 0x00000001FFFFFFFE, 0x0000000000000008, 0x0000000080000010}, + [_]u64{0x0000001080000000, 0x00000001FFFFFFFF, 0x0000000000000008, 0x0000000080000008}, + [_]u64{0x0000001080000000, 0x0000000200000000, 0x0000000000000008, 0x0000000080000000}, + [_]u64{0x0000001080000000, 0x0000000200000001, 0x0000000000000008, 0x000000007FFFFFF8}, + [_]u64{0x0000001080000000, 0x0000000200000002, 0x0000000000000008, 0x000000007FFFFFF0}, + [_]u64{0x0000001080000000, 0x0000000200000003, 0x0000000000000008, 0x000000007FFFFFE8}, + [_]u64{0x0000001080000000, 0x0000000200000010, 0x0000000000000008, 0x000000007FFFFF80}, + [_]u64{0x0000001080000000, 0x00000002078644FA, 0x0000000000000008, 0x0000000043CDD830}, + [_]u64{0x0000001080000000, 0x000000020747AE14, 0x0000000000000008, 0x0000000045C28F60}, + [_]u64{0x0000001080000000, 0x000000027FFFFFFF, 0x0000000000000006, 0x0000000180000006}, + [_]u64{0x0000001080000000, 0x0000000280000000, 0x0000000000000006, 0x0000000180000000}, + [_]u64{0x0000001080000000, 0x00000002FFFFFFFD, 0x0000000000000005, 0x000000018000000F}, + [_]u64{0x0000001080000000, 0x00000002FFFFFFFE, 0x0000000000000005, 0x000000018000000A}, + [_]u64{0x0000001080000000, 0x00000002FFFFFFFF, 0x0000000000000005, 0x0000000180000005}, + [_]u64{0x0000001080000000, 0x0000000300000000, 0x0000000000000005, 0x0000000180000000}, + [_]u64{0x0000001080000000, 0x0000000300000001, 0x0000000000000005, 0x000000017FFFFFFB}, + [_]u64{0x0000001080000000, 0x0000000300000002, 0x0000000000000005, 0x000000017FFFFFF6}, + [_]u64{0x0000001080000000, 0x0000000300000003, 0x0000000000000005, 0x000000017FFFFFF1}, + [_]u64{0x0000001080000000, 0x0000000300000010, 0x0000000000000005, 0x000000017FFFFFB0}, + [_]u64{0x0000001080000000, 0x00000003078644FA, 0x0000000000000005, 0x000000015A60A71E}, + [_]u64{0x0000001080000000, 0x000000030747AE14, 0x0000000000000005, 0x000000015B99999C}, + [_]u64{0x0000001080000000, 0x000000037FFFFFFF, 0x0000000000000004, 0x0000000280000004}, + [_]u64{0x0000001080000000, 0x0000000380000000, 0x0000000000000004, 0x0000000280000000}, + [_]u64{0x0000001080000000, 0x00000003FFFFFFFD, 0x0000000000000004, 0x000000008000000C}, + [_]u64{0x0000001080000000, 0x00000003FFFFFFFE, 0x0000000000000004, 0x0000000080000008}, + [_]u64{0x0000001080000000, 0x00000003FFFFFFFF, 0x0000000000000004, 0x0000000080000004}, + [_]u64{0x0000001080000000, 0x0000001000000000, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0x0000001080000000, 0x0000001000000001, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x0000001080000000, 0x0000001000000002, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x0000001080000000, 0x0000001000000003, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0x0000001080000000, 0x0000001000000010, 0x0000000000000001, 0x000000007FFFFFF0}, + [_]u64{0x0000001080000000, 0x00000010078644FA, 0x0000000000000001, 0x000000007879BB06}, + [_]u64{0x0000001080000000, 0x000000100747AE14, 0x0000000000000001, 0x0000000078B851EC}, + [_]u64{0x0000001080000000, 0x000000107FFFFFFF, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x0000001080000000, 0x0000001080000000, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0000001080000000, 0x00000010FFFFFFFD, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x00000010FFFFFFFE, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x00000010FFFFFFFF, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x078644FA00000000, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x078644FA00000001, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x078644FA00000002, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x078644FA00000003, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x078644FA00000010, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x078644FA078644FA, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x078644FA0747AE14, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x078644FA80000000, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x0747AE1400000000, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x0747AE1400000001, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x0747AE1400000002, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x0747AE1400000003, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x0747AE1400000010, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x0747AE14078644FA, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x0747AE140747AE14, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x0747AE1480000000, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x8000000000000000, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x8000000000000001, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x8000000000000002, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x8000000000000003, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x8000000000000010, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x80000000078644FA, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x800000000747AE14, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x800000007FFFFFFF, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x8000000080000000, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x0000001080000000, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0000001080000000}, + [_]u64{0x00000010FFFFFFFD, 0x0000000000000001, 0x00000010FFFFFFFD, 0x0000000000000000}, + [_]u64{0x00000010FFFFFFFD, 0x0000000000000002, 0x000000087FFFFFFE, 0x0000000000000001}, + [_]u64{0x00000010FFFFFFFD, 0x0000000000000003, 0x00000005AAAAAAA9, 0x0000000000000002}, + [_]u64{0x00000010FFFFFFFD, 0x0000000000000010, 0x000000010FFFFFFF, 0x000000000000000D}, + [_]u64{0x00000010FFFFFFFD, 0x00000000078644FA, 0x0000000000000242, 0x0000000002D84389}, + [_]u64{0x00000010FFFFFFFD, 0x000000000747AE14, 0x0000000000000255, 0x0000000005D70B59}, + [_]u64{0x00000010FFFFFFFD, 0x000000007FFFFFFF, 0x0000000000000022, 0x000000000000001F}, + [_]u64{0x00000010FFFFFFFD, 0x0000000080000000, 0x0000000000000021, 0x000000007FFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x00000000FFFFFFFD, 0x0000000000000011, 0x0000000000000030}, + [_]u64{0x00000010FFFFFFFD, 0x00000000FFFFFFFE, 0x0000000000000011, 0x000000000000001F}, + [_]u64{0x00000010FFFFFFFD, 0x00000000FFFFFFFF, 0x0000000000000011, 0x000000000000000E}, + [_]u64{0x00000010FFFFFFFD, 0x0000000100000000, 0x0000000000000010, 0x00000000FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x0000000100000001, 0x0000000000000010, 0x00000000FFFFFFED}, + [_]u64{0x00000010FFFFFFFD, 0x0000000100000002, 0x0000000000000010, 0x00000000FFFFFFDD}, + [_]u64{0x00000010FFFFFFFD, 0x0000000100000003, 0x0000000000000010, 0x00000000FFFFFFCD}, + [_]u64{0x00000010FFFFFFFD, 0x0000000100000010, 0x0000000000000010, 0x00000000FFFFFEFD}, + [_]u64{0x00000010FFFFFFFD, 0x00000001078644FA, 0x0000000000000010, 0x00000000879BB05D}, + [_]u64{0x00000010FFFFFFFD, 0x000000010747AE14, 0x0000000000000010, 0x000000008B851EBD}, + [_]u64{0x00000010FFFFFFFD, 0x000000017FFFFFFF, 0x000000000000000B, 0x0000000080000008}, + [_]u64{0x00000010FFFFFFFD, 0x0000000180000000, 0x000000000000000B, 0x000000007FFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x00000001FFFFFFFD, 0x0000000000000008, 0x0000000100000015}, + [_]u64{0x00000010FFFFFFFD, 0x00000001FFFFFFFE, 0x0000000000000008, 0x000000010000000D}, + [_]u64{0x00000010FFFFFFFD, 0x00000001FFFFFFFF, 0x0000000000000008, 0x0000000100000005}, + [_]u64{0x00000010FFFFFFFD, 0x0000000200000000, 0x0000000000000008, 0x00000000FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x0000000200000001, 0x0000000000000008, 0x00000000FFFFFFF5}, + [_]u64{0x00000010FFFFFFFD, 0x0000000200000002, 0x0000000000000008, 0x00000000FFFFFFED}, + [_]u64{0x00000010FFFFFFFD, 0x0000000200000003, 0x0000000000000008, 0x00000000FFFFFFE5}, + [_]u64{0x00000010FFFFFFFD, 0x0000000200000010, 0x0000000000000008, 0x00000000FFFFFF7D}, + [_]u64{0x00000010FFFFFFFD, 0x00000002078644FA, 0x0000000000000008, 0x00000000C3CDD82D}, + [_]u64{0x00000010FFFFFFFD, 0x000000020747AE14, 0x0000000000000008, 0x00000000C5C28F5D}, + [_]u64{0x00000010FFFFFFFD, 0x000000027FFFFFFF, 0x0000000000000006, 0x0000000200000003}, + [_]u64{0x00000010FFFFFFFD, 0x0000000280000000, 0x0000000000000006, 0x00000001FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x00000002FFFFFFFD, 0x0000000000000005, 0x000000020000000C}, + [_]u64{0x00000010FFFFFFFD, 0x00000002FFFFFFFE, 0x0000000000000005, 0x0000000200000007}, + [_]u64{0x00000010FFFFFFFD, 0x00000002FFFFFFFF, 0x0000000000000005, 0x0000000200000002}, + [_]u64{0x00000010FFFFFFFD, 0x0000000300000000, 0x0000000000000005, 0x00000001FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x0000000300000001, 0x0000000000000005, 0x00000001FFFFFFF8}, + [_]u64{0x00000010FFFFFFFD, 0x0000000300000002, 0x0000000000000005, 0x00000001FFFFFFF3}, + [_]u64{0x00000010FFFFFFFD, 0x0000000300000003, 0x0000000000000005, 0x00000001FFFFFFEE}, + [_]u64{0x00000010FFFFFFFD, 0x0000000300000010, 0x0000000000000005, 0x00000001FFFFFFAD}, + [_]u64{0x00000010FFFFFFFD, 0x00000003078644FA, 0x0000000000000005, 0x00000001DA60A71B}, + [_]u64{0x00000010FFFFFFFD, 0x000000030747AE14, 0x0000000000000005, 0x00000001DB999999}, + [_]u64{0x00000010FFFFFFFD, 0x000000037FFFFFFF, 0x0000000000000004, 0x0000000300000001}, + [_]u64{0x00000010FFFFFFFD, 0x0000000380000000, 0x0000000000000004, 0x00000002FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x00000003FFFFFFFD, 0x0000000000000004, 0x0000000100000009}, + [_]u64{0x00000010FFFFFFFD, 0x00000003FFFFFFFE, 0x0000000000000004, 0x0000000100000005}, + [_]u64{0x00000010FFFFFFFD, 0x00000003FFFFFFFF, 0x0000000000000004, 0x0000000100000001}, + [_]u64{0x00000010FFFFFFFD, 0x0000001000000000, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x0000001000000001, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0x00000010FFFFFFFD, 0x0000001000000002, 0x0000000000000001, 0x00000000FFFFFFFB}, + [_]u64{0x00000010FFFFFFFD, 0x0000001000000003, 0x0000000000000001, 0x00000000FFFFFFFA}, + [_]u64{0x00000010FFFFFFFD, 0x0000001000000010, 0x0000000000000001, 0x00000000FFFFFFED}, + [_]u64{0x00000010FFFFFFFD, 0x00000010078644FA, 0x0000000000000001, 0x00000000F879BB03}, + [_]u64{0x00000010FFFFFFFD, 0x000000100747AE14, 0x0000000000000001, 0x00000000F8B851E9}, + [_]u64{0x00000010FFFFFFFD, 0x000000107FFFFFFF, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x00000010FFFFFFFD, 0x0000001080000000, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x00000010FFFFFFFD, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x00000010FFFFFFFD, 0x00000010FFFFFFFE, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x00000010FFFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x078644FA00000000, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x078644FA00000001, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x078644FA00000002, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x078644FA00000003, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x078644FA00000010, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x078644FA078644FA, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x078644FA0747AE14, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x078644FA80000000, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x0747AE1400000000, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x0747AE1400000001, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x0747AE1400000002, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x0747AE1400000003, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x0747AE1400000010, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x0747AE14078644FA, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x0747AE140747AE14, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x0747AE1480000000, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x7FFFFFFF00000000, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x7FFFFFFF00000001, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x7FFFFFFF00000002, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x7FFFFFFF00000003, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x7FFFFFFF00000010, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x7FFFFFFF80000000, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x8000000000000000, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x8000000000000001, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x8000000000000002, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x8000000000000003, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x8000000000000010, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x80000000078644FA, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x800000000747AE14, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x800000007FFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x8000000080000000, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x80000000FFFFFFFD, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x80000000FFFFFFFE, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0x80000000FFFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFD00000000, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFD00000001, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFD00000002, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFD00000003, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFD00000010, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFD80000000, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFE00000000, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFE00000001, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFE00000002, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFE00000003, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFE00000010, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFE80000000, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFF00000000, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFF00000001, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFF00000002, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFF00000003, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFF00000010, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFF80000000, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFD, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFD}, + [_]u64{0x00000010FFFFFFFE, 0x0000000000000001, 0x00000010FFFFFFFE, 0x0000000000000000}, + [_]u64{0x00000010FFFFFFFE, 0x0000000000000002, 0x000000087FFFFFFF, 0x0000000000000000}, + [_]u64{0x00000010FFFFFFFE, 0x0000000000000003, 0x00000005AAAAAAAA, 0x0000000000000000}, + [_]u64{0x00000010FFFFFFFE, 0x0000000000000010, 0x000000010FFFFFFF, 0x000000000000000E}, + [_]u64{0x00000010FFFFFFFE, 0x00000000078644FA, 0x0000000000000242, 0x0000000002D8438A}, + [_]u64{0x00000010FFFFFFFE, 0x000000000747AE14, 0x0000000000000255, 0x0000000005D70B5A}, + [_]u64{0x00000010FFFFFFFE, 0x000000007FFFFFFF, 0x0000000000000022, 0x0000000000000020}, + [_]u64{0x00000010FFFFFFFE, 0x0000000080000000, 0x0000000000000021, 0x000000007FFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x00000000FFFFFFFD, 0x0000000000000011, 0x0000000000000031}, + [_]u64{0x00000010FFFFFFFE, 0x00000000FFFFFFFE, 0x0000000000000011, 0x0000000000000020}, + [_]u64{0x00000010FFFFFFFE, 0x00000000FFFFFFFF, 0x0000000000000011, 0x000000000000000F}, + [_]u64{0x00000010FFFFFFFE, 0x0000000100000000, 0x0000000000000010, 0x00000000FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x0000000100000001, 0x0000000000000010, 0x00000000FFFFFFEE}, + [_]u64{0x00000010FFFFFFFE, 0x0000000100000002, 0x0000000000000010, 0x00000000FFFFFFDE}, + [_]u64{0x00000010FFFFFFFE, 0x0000000100000003, 0x0000000000000010, 0x00000000FFFFFFCE}, + [_]u64{0x00000010FFFFFFFE, 0x0000000100000010, 0x0000000000000010, 0x00000000FFFFFEFE}, + [_]u64{0x00000010FFFFFFFE, 0x00000001078644FA, 0x0000000000000010, 0x00000000879BB05E}, + [_]u64{0x00000010FFFFFFFE, 0x000000010747AE14, 0x0000000000000010, 0x000000008B851EBE}, + [_]u64{0x00000010FFFFFFFE, 0x000000017FFFFFFF, 0x000000000000000B, 0x0000000080000009}, + [_]u64{0x00000010FFFFFFFE, 0x0000000180000000, 0x000000000000000B, 0x000000007FFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x00000001FFFFFFFD, 0x0000000000000008, 0x0000000100000016}, + [_]u64{0x00000010FFFFFFFE, 0x00000001FFFFFFFE, 0x0000000000000008, 0x000000010000000E}, + [_]u64{0x00000010FFFFFFFE, 0x00000001FFFFFFFF, 0x0000000000000008, 0x0000000100000006}, + [_]u64{0x00000010FFFFFFFE, 0x0000000200000000, 0x0000000000000008, 0x00000000FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x0000000200000001, 0x0000000000000008, 0x00000000FFFFFFF6}, + [_]u64{0x00000010FFFFFFFE, 0x0000000200000002, 0x0000000000000008, 0x00000000FFFFFFEE}, + [_]u64{0x00000010FFFFFFFE, 0x0000000200000003, 0x0000000000000008, 0x00000000FFFFFFE6}, + [_]u64{0x00000010FFFFFFFE, 0x0000000200000010, 0x0000000000000008, 0x00000000FFFFFF7E}, + [_]u64{0x00000010FFFFFFFE, 0x00000002078644FA, 0x0000000000000008, 0x00000000C3CDD82E}, + [_]u64{0x00000010FFFFFFFE, 0x000000020747AE14, 0x0000000000000008, 0x00000000C5C28F5E}, + [_]u64{0x00000010FFFFFFFE, 0x000000027FFFFFFF, 0x0000000000000006, 0x0000000200000004}, + [_]u64{0x00000010FFFFFFFE, 0x0000000280000000, 0x0000000000000006, 0x00000001FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x00000002FFFFFFFD, 0x0000000000000005, 0x000000020000000D}, + [_]u64{0x00000010FFFFFFFE, 0x00000002FFFFFFFE, 0x0000000000000005, 0x0000000200000008}, + [_]u64{0x00000010FFFFFFFE, 0x00000002FFFFFFFF, 0x0000000000000005, 0x0000000200000003}, + [_]u64{0x00000010FFFFFFFE, 0x0000000300000000, 0x0000000000000005, 0x00000001FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x0000000300000001, 0x0000000000000005, 0x00000001FFFFFFF9}, + [_]u64{0x00000010FFFFFFFE, 0x0000000300000002, 0x0000000000000005, 0x00000001FFFFFFF4}, + [_]u64{0x00000010FFFFFFFE, 0x0000000300000003, 0x0000000000000005, 0x00000001FFFFFFEF}, + [_]u64{0x00000010FFFFFFFE, 0x0000000300000010, 0x0000000000000005, 0x00000001FFFFFFAE}, + [_]u64{0x00000010FFFFFFFE, 0x00000003078644FA, 0x0000000000000005, 0x00000001DA60A71C}, + [_]u64{0x00000010FFFFFFFE, 0x000000030747AE14, 0x0000000000000005, 0x00000001DB99999A}, + [_]u64{0x00000010FFFFFFFE, 0x000000037FFFFFFF, 0x0000000000000004, 0x0000000300000002}, + [_]u64{0x00000010FFFFFFFE, 0x0000000380000000, 0x0000000000000004, 0x00000002FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x00000003FFFFFFFD, 0x0000000000000004, 0x000000010000000A}, + [_]u64{0x00000010FFFFFFFE, 0x00000003FFFFFFFE, 0x0000000000000004, 0x0000000100000006}, + [_]u64{0x00000010FFFFFFFE, 0x00000003FFFFFFFF, 0x0000000000000004, 0x0000000100000002}, + [_]u64{0x00000010FFFFFFFE, 0x0000001000000000, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x0000001000000001, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0x00000010FFFFFFFE, 0x0000001000000002, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0x00000010FFFFFFFE, 0x0000001000000003, 0x0000000000000001, 0x00000000FFFFFFFB}, + [_]u64{0x00000010FFFFFFFE, 0x0000001000000010, 0x0000000000000001, 0x00000000FFFFFFEE}, + [_]u64{0x00000010FFFFFFFE, 0x00000010078644FA, 0x0000000000000001, 0x00000000F879BB04}, + [_]u64{0x00000010FFFFFFFE, 0x000000100747AE14, 0x0000000000000001, 0x00000000F8B851EA}, + [_]u64{0x00000010FFFFFFFE, 0x000000107FFFFFFF, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x00000010FFFFFFFE, 0x0000001080000000, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x00000010FFFFFFFD, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x00000010FFFFFFFE, 0x00000010FFFFFFFE, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x00000010FFFFFFFE, 0x00000010FFFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x078644FA00000000, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x078644FA00000001, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x078644FA00000002, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x078644FA00000003, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x078644FA00000010, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x078644FA078644FA, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x078644FA0747AE14, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x078644FA80000000, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x0747AE1400000000, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x0747AE1400000001, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x0747AE1400000002, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x0747AE1400000003, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x0747AE1400000010, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x0747AE14078644FA, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x0747AE140747AE14, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x0747AE1480000000, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x7FFFFFFF00000000, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x7FFFFFFF00000001, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x7FFFFFFF00000002, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x7FFFFFFF00000003, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x7FFFFFFF00000010, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x7FFFFFFF80000000, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x8000000000000000, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x8000000000000001, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x8000000000000002, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x8000000000000003, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x8000000000000010, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x80000000078644FA, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x800000000747AE14, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x800000007FFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x8000000080000000, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x80000000FFFFFFFD, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x80000000FFFFFFFE, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0x80000000FFFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFD00000000, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFD00000001, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFD00000002, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFD00000003, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFD00000010, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFD80000000, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFE00000000, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFE00000001, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFE00000002, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFE00000003, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFE00000010, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFE80000000, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFF00000000, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFF00000001, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFF00000002, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFF00000003, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFF00000010, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFF80000000, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFE, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFE}, + [_]u64{0x00000010FFFFFFFF, 0x0000000000000001, 0x00000010FFFFFFFF, 0x0000000000000000}, + [_]u64{0x00000010FFFFFFFF, 0x0000000000000002, 0x000000087FFFFFFF, 0x0000000000000001}, + [_]u64{0x00000010FFFFFFFF, 0x0000000000000003, 0x00000005AAAAAAAA, 0x0000000000000001}, + [_]u64{0x00000010FFFFFFFF, 0x0000000000000010, 0x000000010FFFFFFF, 0x000000000000000F}, + [_]u64{0x00000010FFFFFFFF, 0x00000000078644FA, 0x0000000000000242, 0x0000000002D8438B}, + [_]u64{0x00000010FFFFFFFF, 0x000000000747AE14, 0x0000000000000255, 0x0000000005D70B5B}, + [_]u64{0x00000010FFFFFFFF, 0x000000007FFFFFFF, 0x0000000000000022, 0x0000000000000021}, + [_]u64{0x00000010FFFFFFFF, 0x0000000080000000, 0x0000000000000021, 0x000000007FFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x00000000FFFFFFFD, 0x0000000000000011, 0x0000000000000032}, + [_]u64{0x00000010FFFFFFFF, 0x00000000FFFFFFFE, 0x0000000000000011, 0x0000000000000021}, + [_]u64{0x00000010FFFFFFFF, 0x00000000FFFFFFFF, 0x0000000000000011, 0x0000000000000010}, + [_]u64{0x00000010FFFFFFFF, 0x0000000100000000, 0x0000000000000010, 0x00000000FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x0000000100000001, 0x0000000000000010, 0x00000000FFFFFFEF}, + [_]u64{0x00000010FFFFFFFF, 0x0000000100000002, 0x0000000000000010, 0x00000000FFFFFFDF}, + [_]u64{0x00000010FFFFFFFF, 0x0000000100000003, 0x0000000000000010, 0x00000000FFFFFFCF}, + [_]u64{0x00000010FFFFFFFF, 0x0000000100000010, 0x0000000000000010, 0x00000000FFFFFEFF}, + [_]u64{0x00000010FFFFFFFF, 0x00000001078644FA, 0x0000000000000010, 0x00000000879BB05F}, + [_]u64{0x00000010FFFFFFFF, 0x000000010747AE14, 0x0000000000000010, 0x000000008B851EBF}, + [_]u64{0x00000010FFFFFFFF, 0x000000017FFFFFFF, 0x000000000000000B, 0x000000008000000A}, + [_]u64{0x00000010FFFFFFFF, 0x0000000180000000, 0x000000000000000B, 0x000000007FFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x00000001FFFFFFFD, 0x0000000000000008, 0x0000000100000017}, + [_]u64{0x00000010FFFFFFFF, 0x00000001FFFFFFFE, 0x0000000000000008, 0x000000010000000F}, + [_]u64{0x00000010FFFFFFFF, 0x00000001FFFFFFFF, 0x0000000000000008, 0x0000000100000007}, + [_]u64{0x00000010FFFFFFFF, 0x0000000200000000, 0x0000000000000008, 0x00000000FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x0000000200000001, 0x0000000000000008, 0x00000000FFFFFFF7}, + [_]u64{0x00000010FFFFFFFF, 0x0000000200000002, 0x0000000000000008, 0x00000000FFFFFFEF}, + [_]u64{0x00000010FFFFFFFF, 0x0000000200000003, 0x0000000000000008, 0x00000000FFFFFFE7}, + [_]u64{0x00000010FFFFFFFF, 0x0000000200000010, 0x0000000000000008, 0x00000000FFFFFF7F}, + [_]u64{0x00000010FFFFFFFF, 0x00000002078644FA, 0x0000000000000008, 0x00000000C3CDD82F}, + [_]u64{0x00000010FFFFFFFF, 0x000000020747AE14, 0x0000000000000008, 0x00000000C5C28F5F}, + [_]u64{0x00000010FFFFFFFF, 0x000000027FFFFFFF, 0x0000000000000006, 0x0000000200000005}, + [_]u64{0x00000010FFFFFFFF, 0x0000000280000000, 0x0000000000000006, 0x00000001FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x00000002FFFFFFFD, 0x0000000000000005, 0x000000020000000E}, + [_]u64{0x00000010FFFFFFFF, 0x00000002FFFFFFFE, 0x0000000000000005, 0x0000000200000009}, + [_]u64{0x00000010FFFFFFFF, 0x00000002FFFFFFFF, 0x0000000000000005, 0x0000000200000004}, + [_]u64{0x00000010FFFFFFFF, 0x0000000300000000, 0x0000000000000005, 0x00000001FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x0000000300000001, 0x0000000000000005, 0x00000001FFFFFFFA}, + [_]u64{0x00000010FFFFFFFF, 0x0000000300000002, 0x0000000000000005, 0x00000001FFFFFFF5}, + [_]u64{0x00000010FFFFFFFF, 0x0000000300000003, 0x0000000000000005, 0x00000001FFFFFFF0}, + [_]u64{0x00000010FFFFFFFF, 0x0000000300000010, 0x0000000000000005, 0x00000001FFFFFFAF}, + [_]u64{0x00000010FFFFFFFF, 0x00000003078644FA, 0x0000000000000005, 0x00000001DA60A71D}, + [_]u64{0x00000010FFFFFFFF, 0x000000030747AE14, 0x0000000000000005, 0x00000001DB99999B}, + [_]u64{0x00000010FFFFFFFF, 0x000000037FFFFFFF, 0x0000000000000004, 0x0000000300000003}, + [_]u64{0x00000010FFFFFFFF, 0x0000000380000000, 0x0000000000000004, 0x00000002FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x00000003FFFFFFFD, 0x0000000000000004, 0x000000010000000B}, + [_]u64{0x00000010FFFFFFFF, 0x00000003FFFFFFFE, 0x0000000000000004, 0x0000000100000007}, + [_]u64{0x00000010FFFFFFFF, 0x00000003FFFFFFFF, 0x0000000000000004, 0x0000000100000003}, + [_]u64{0x00000010FFFFFFFF, 0x0000001000000000, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x0000001000000001, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0x00000010FFFFFFFF, 0x0000001000000002, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0x00000010FFFFFFFF, 0x0000001000000003, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0x00000010FFFFFFFF, 0x0000001000000010, 0x0000000000000001, 0x00000000FFFFFFEF}, + [_]u64{0x00000010FFFFFFFF, 0x00000010078644FA, 0x0000000000000001, 0x00000000F879BB05}, + [_]u64{0x00000010FFFFFFFF, 0x000000100747AE14, 0x0000000000000001, 0x00000000F8B851EB}, + [_]u64{0x00000010FFFFFFFF, 0x000000107FFFFFFF, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0x00000010FFFFFFFF, 0x0000001080000000, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x00000010FFFFFFFD, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x00000010FFFFFFFF, 0x00000010FFFFFFFE, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x00000010FFFFFFFF, 0x00000010FFFFFFFF, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x00000010FFFFFFFF, 0x078644FA00000000, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x078644FA00000001, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x078644FA00000002, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x078644FA00000003, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x078644FA00000010, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x078644FA078644FA, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x078644FA0747AE14, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x078644FA80000000, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x0747AE1400000000, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x0747AE1400000001, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x0747AE1400000002, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x0747AE1400000003, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x0747AE1400000010, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x0747AE14078644FA, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x0747AE140747AE14, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x0747AE1480000000, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x7FFFFFFF00000000, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x7FFFFFFF00000001, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x7FFFFFFF00000002, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x7FFFFFFF00000003, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x7FFFFFFF00000010, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x7FFFFFFF80000000, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x8000000000000000, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x8000000000000001, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x8000000000000002, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x8000000000000003, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x8000000000000010, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x80000000078644FA, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x800000000747AE14, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x800000007FFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x8000000080000000, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x80000000FFFFFFFD, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x80000000FFFFFFFE, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0x80000000FFFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFD00000000, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFD00000001, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFD00000002, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFD00000003, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFD00000010, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFD80000000, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFE00000000, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFE00000001, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFE00000002, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFE00000003, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFE00000010, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFE80000000, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFF00000000, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFF00000001, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFF00000002, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFF00000003, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFF00000010, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFF80000000, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x00000010FFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x00000010FFFFFFFF}, + [_]u64{0x078644FA00000000, 0x0000000000000001, 0x078644FA00000000, 0x0000000000000000}, + [_]u64{0x078644FA00000000, 0x0000000000000002, 0x03C3227D00000000, 0x0000000000000000}, + [_]u64{0x078644FA00000000, 0x0000000000000003, 0x028216FE00000000, 0x0000000000000000}, + [_]u64{0x078644FA00000000, 0x0000000000000010, 0x0078644FA0000000, 0x0000000000000000}, + [_]u64{0x078644FA00000000, 0x00000000078644FA, 0x0000000100000000, 0x0000000000000000}, + [_]u64{0x078644FA00000000, 0x000000000747AE14, 0x000000010898F295, 0x0000000004D8C65C}, + [_]u64{0x078644FA00000000, 0x000000007FFFFFFF, 0x000000000F0C89F4, 0x000000000F0C89F4}, + [_]u64{0x078644FA00000000, 0x0000000080000000, 0x000000000F0C89F4, 0x0000000000000000}, + [_]u64{0x078644FA00000000, 0x00000000FFFFFFFD, 0x00000000078644FA, 0x000000001692CEEE}, + [_]u64{0x078644FA00000000, 0x00000000FFFFFFFE, 0x00000000078644FA, 0x000000000F0C89F4}, + [_]u64{0x078644FA00000000, 0x00000000FFFFFFFF, 0x00000000078644FA, 0x00000000078644FA}, + [_]u64{0x078644FA00000000, 0x0000000100000000, 0x00000000078644FA, 0x0000000000000000}, + [_]u64{0x078644FA00000000, 0x0000000100000001, 0x00000000078644F9, 0x00000000F879BB07}, + [_]u64{0x078644FA00000000, 0x0000000100000002, 0x00000000078644F9, 0x00000000F0F3760E}, + [_]u64{0x078644FA00000000, 0x0000000100000003, 0x00000000078644F9, 0x00000000E96D3115}, + [_]u64{0x078644FA00000000, 0x0000000100000010, 0x00000000078644F9, 0x00000000879BB070}, + [_]u64{0x078644FA00000000, 0x00000001078644FA, 0x00000000074F44A3, 0x000000006C09ACD2}, + [_]u64{0x078644FA00000000, 0x000000010747AE14, 0x000000000751017E, 0x0000000082B63E28}, + [_]u64{0x078644FA00000000, 0x000000017FFFFFFF, 0x0000000005042DFC, 0x0000000005042DFC}, + [_]u64{0x078644FA00000000, 0x0000000180000000, 0x0000000005042DFC, 0x0000000000000000}, + [_]u64{0x078644FA00000000, 0x00000001FFFFFFFD, 0x0000000003C3227D, 0x000000000B496777}, + [_]u64{0x078644FA00000000, 0x00000001FFFFFFFE, 0x0000000003C3227D, 0x00000000078644FA}, + [_]u64{0x078644FA00000000, 0x00000001FFFFFFFF, 0x0000000003C3227D, 0x0000000003C3227D}, + [_]u64{0x078644FA00000000, 0x0000000200000000, 0x0000000003C3227D, 0x0000000000000000}, + [_]u64{0x078644FA00000000, 0x0000000200000001, 0x0000000003C3227C, 0x00000001FC3CDD84}, + [_]u64{0x078644FA00000000, 0x0000000200000002, 0x0000000003C3227C, 0x00000001F879BB08}, + [_]u64{0x078644FA00000000, 0x0000000200000003, 0x0000000003C3227C, 0x00000001F4B6988C}, + [_]u64{0x078644FA00000000, 0x0000000200000010, 0x0000000003C3227C, 0x00000001C3CDD840}, + [_]u64{0x078644FA00000000, 0x00000002078644FA, 0x0000000003B52F6B, 0x0000000181754582}, + [_]u64{0x078644FA00000000, 0x000000020747AE14, 0x0000000003B5A1D3, 0x000000019B4CF184}, + [_]u64{0x078644FA00000000, 0x000000027FFFFFFF, 0x00000000030281FD, 0x00000001830281FD}, + [_]u64{0x078644FA00000000, 0x0000000280000000, 0x00000000030281FD, 0x0000000180000000}, + [_]u64{0x078644FA00000000, 0x00000002FFFFFFFD, 0x00000000028216FE, 0x00000000078644FA}, + [_]u64{0x078644FA00000000, 0x00000002FFFFFFFE, 0x00000000028216FE, 0x0000000005042DFC}, + [_]u64{0x078644FA00000000, 0x00000002FFFFFFFF, 0x00000000028216FE, 0x00000000028216FE}, + [_]u64{0x078644FA00000000, 0x0000000300000000, 0x00000000028216FE, 0x0000000000000000}, + [_]u64{0x078644FA00000000, 0x0000000300000001, 0x00000000028216FD, 0x00000002FD7DE903}, + [_]u64{0x078644FA00000000, 0x0000000300000002, 0x00000000028216FD, 0x00000002FAFBD206}, + [_]u64{0x078644FA00000000, 0x0000000300000003, 0x00000000028216FD, 0x00000002F879BB09}, + [_]u64{0x078644FA00000000, 0x0000000300000010, 0x00000000028216FD, 0x00000002D7DE9030}, + [_]u64{0x078644FA00000000, 0x00000003078644FA, 0x00000000027BDC26, 0x0000000266ACEAE4}, + [_]u64{0x078644FA00000000, 0x000000030747AE14, 0x00000000027C0F7C, 0x00000000CC648250}, + [_]u64{0x078644FA00000000, 0x000000037FFFFFFF, 0x0000000002265CD9, 0x0000000282265CD9}, + [_]u64{0x078644FA00000000, 0x0000000380000000, 0x0000000002265CD9, 0x0000000280000000}, + [_]u64{0x078644FA00000000, 0x00000003FFFFFFFD, 0x0000000001E1913E, 0x0000000205A4B3BA}, + [_]u64{0x078644FA00000000, 0x00000003FFFFFFFE, 0x0000000001E1913E, 0x0000000203C3227C}, + [_]u64{0x078644FA00000000, 0x00000003FFFFFFFF, 0x0000000001E1913E, 0x0000000201E1913E}, + [_]u64{0x078644FA00000000, 0x0000001000000000, 0x000000000078644F, 0x0000000A00000000}, + [_]u64{0x078644FA00000000, 0x0000001000000001, 0x000000000078644F, 0x00000009FF879BB1}, + [_]u64{0x078644FA00000000, 0x0000001000000002, 0x000000000078644F, 0x00000009FF0F3762}, + [_]u64{0x078644FA00000000, 0x0000001000000003, 0x000000000078644F, 0x00000009FE96D313}, + [_]u64{0x078644FA00000000, 0x0000001000000010, 0x000000000078644F, 0x00000009F879BB10}, + [_]u64{0x078644FA00000000, 0x00000010078644FA, 0x0000000000782BCC, 0x000000001E3B0AC8}, + [_]u64{0x078644FA00000000, 0x000000100747AE14, 0x0000000000782DA1, 0x0000000438F2016C}, + [_]u64{0x078644FA00000000, 0x000000107FFFFFFF, 0x000000000074BE5C, 0x0000000C0074BE5C}, + [_]u64{0x078644FA00000000, 0x0000001080000000, 0x000000000074BE5C, 0x0000000C00000000}, + [_]u64{0x078644FA00000000, 0x00000010FFFFFFFD, 0x0000000000714F5A, 0x000000000153EE0E}, + [_]u64{0x078644FA00000000, 0x00000010FFFFFFFE, 0x0000000000714F5A, 0x0000000000E29EB4}, + [_]u64{0x078644FA00000000, 0x00000010FFFFFFFF, 0x0000000000714F5A, 0x0000000000714F5A}, + [_]u64{0x078644FA00000000, 0x078644FA00000000, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x078644FA00000000, 0x078644FA00000001, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x078644FA00000002, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x078644FA00000003, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x078644FA00000010, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x078644FA078644FA, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x078644FA0747AE14, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x078644FA80000000, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x0747AE1400000000, 0x0000000000000001, 0x003E96E600000000}, + [_]u64{0x078644FA00000000, 0x0747AE1400000001, 0x0000000000000001, 0x003E96E5FFFFFFFF}, + [_]u64{0x078644FA00000000, 0x0747AE1400000002, 0x0000000000000001, 0x003E96E5FFFFFFFE}, + [_]u64{0x078644FA00000000, 0x0747AE1400000003, 0x0000000000000001, 0x003E96E5FFFFFFFD}, + [_]u64{0x078644FA00000000, 0x0747AE1400000010, 0x0000000000000001, 0x003E96E5FFFFFFF0}, + [_]u64{0x078644FA00000000, 0x0747AE14078644FA, 0x0000000000000001, 0x003E96E5F879BB06}, + [_]u64{0x078644FA00000000, 0x0747AE140747AE14, 0x0000000000000001, 0x003E96E5F8B851EC}, + [_]u64{0x078644FA00000000, 0x0747AE147FFFFFFF, 0x0000000000000001, 0x003E96E580000001}, + [_]u64{0x078644FA00000000, 0x0747AE1480000000, 0x0000000000000001, 0x003E96E580000000}, + [_]u64{0x078644FA00000000, 0x0747AE14FFFFFFFD, 0x0000000000000001, 0x003E96E500000003}, + [_]u64{0x078644FA00000000, 0x0747AE14FFFFFFFE, 0x0000000000000001, 0x003E96E500000002}, + [_]u64{0x078644FA00000000, 0x0747AE14FFFFFFFF, 0x0000000000000001, 0x003E96E500000001}, + [_]u64{0x078644FA00000000, 0x7FFFFFFF00000000, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x7FFFFFFF00000001, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x7FFFFFFF00000002, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x7FFFFFFF00000003, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x7FFFFFFF00000010, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x7FFFFFFF80000000, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x8000000000000000, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x8000000000000001, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x8000000000000002, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x8000000000000003, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x8000000000000010, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x80000000078644FA, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x800000000747AE14, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x800000007FFFFFFF, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x8000000080000000, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x80000000FFFFFFFD, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x80000000FFFFFFFE, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0x80000000FFFFFFFF, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFD00000000, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFD00000001, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFD00000002, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFD00000003, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFD00000010, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFD80000000, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFE00000000, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFE00000001, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFE00000002, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFE00000003, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFE00000010, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFE80000000, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFF00000000, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFF00000001, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFF00000002, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFF00000003, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFF00000010, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFF80000000, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000000, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x078644FA00000000}, + [_]u64{0x078644FA00000001, 0x0000000000000001, 0x078644FA00000001, 0x0000000000000000}, + [_]u64{0x078644FA00000001, 0x0000000000000002, 0x03C3227D00000000, 0x0000000000000001}, + [_]u64{0x078644FA00000001, 0x0000000000000003, 0x028216FE00000000, 0x0000000000000001}, + [_]u64{0x078644FA00000001, 0x0000000000000010, 0x0078644FA0000000, 0x0000000000000001}, + [_]u64{0x078644FA00000001, 0x00000000078644FA, 0x0000000100000000, 0x0000000000000001}, + [_]u64{0x078644FA00000001, 0x000000000747AE14, 0x000000010898F295, 0x0000000004D8C65D}, + [_]u64{0x078644FA00000001, 0x000000007FFFFFFF, 0x000000000F0C89F4, 0x000000000F0C89F5}, + [_]u64{0x078644FA00000001, 0x0000000080000000, 0x000000000F0C89F4, 0x0000000000000001}, + [_]u64{0x078644FA00000001, 0x00000000FFFFFFFD, 0x00000000078644FA, 0x000000001692CEEF}, + [_]u64{0x078644FA00000001, 0x00000000FFFFFFFE, 0x00000000078644FA, 0x000000000F0C89F5}, + [_]u64{0x078644FA00000001, 0x00000000FFFFFFFF, 0x00000000078644FA, 0x00000000078644FB}, + [_]u64{0x078644FA00000001, 0x0000000100000000, 0x00000000078644FA, 0x0000000000000001}, + [_]u64{0x078644FA00000001, 0x0000000100000001, 0x00000000078644F9, 0x00000000F879BB08}, + [_]u64{0x078644FA00000001, 0x0000000100000002, 0x00000000078644F9, 0x00000000F0F3760F}, + [_]u64{0x078644FA00000001, 0x0000000100000003, 0x00000000078644F9, 0x00000000E96D3116}, + [_]u64{0x078644FA00000001, 0x0000000100000010, 0x00000000078644F9, 0x00000000879BB071}, + [_]u64{0x078644FA00000001, 0x00000001078644FA, 0x00000000074F44A3, 0x000000006C09ACD3}, + [_]u64{0x078644FA00000001, 0x000000010747AE14, 0x000000000751017E, 0x0000000082B63E29}, + [_]u64{0x078644FA00000001, 0x000000017FFFFFFF, 0x0000000005042DFC, 0x0000000005042DFD}, + [_]u64{0x078644FA00000001, 0x0000000180000000, 0x0000000005042DFC, 0x0000000000000001}, + [_]u64{0x078644FA00000001, 0x00000001FFFFFFFD, 0x0000000003C3227D, 0x000000000B496778}, + [_]u64{0x078644FA00000001, 0x00000001FFFFFFFE, 0x0000000003C3227D, 0x00000000078644FB}, + [_]u64{0x078644FA00000001, 0x00000001FFFFFFFF, 0x0000000003C3227D, 0x0000000003C3227E}, + [_]u64{0x078644FA00000001, 0x0000000200000000, 0x0000000003C3227D, 0x0000000000000001}, + [_]u64{0x078644FA00000001, 0x0000000200000001, 0x0000000003C3227C, 0x00000001FC3CDD85}, + [_]u64{0x078644FA00000001, 0x0000000200000002, 0x0000000003C3227C, 0x00000001F879BB09}, + [_]u64{0x078644FA00000001, 0x0000000200000003, 0x0000000003C3227C, 0x00000001F4B6988D}, + [_]u64{0x078644FA00000001, 0x0000000200000010, 0x0000000003C3227C, 0x00000001C3CDD841}, + [_]u64{0x078644FA00000001, 0x00000002078644FA, 0x0000000003B52F6B, 0x0000000181754583}, + [_]u64{0x078644FA00000001, 0x000000020747AE14, 0x0000000003B5A1D3, 0x000000019B4CF185}, + [_]u64{0x078644FA00000001, 0x000000027FFFFFFF, 0x00000000030281FD, 0x00000001830281FE}, + [_]u64{0x078644FA00000001, 0x0000000280000000, 0x00000000030281FD, 0x0000000180000001}, + [_]u64{0x078644FA00000001, 0x00000002FFFFFFFD, 0x00000000028216FE, 0x00000000078644FB}, + [_]u64{0x078644FA00000001, 0x00000002FFFFFFFE, 0x00000000028216FE, 0x0000000005042DFD}, + [_]u64{0x078644FA00000001, 0x00000002FFFFFFFF, 0x00000000028216FE, 0x00000000028216FF}, + [_]u64{0x078644FA00000001, 0x0000000300000000, 0x00000000028216FE, 0x0000000000000001}, + [_]u64{0x078644FA00000001, 0x0000000300000001, 0x00000000028216FD, 0x00000002FD7DE904}, + [_]u64{0x078644FA00000001, 0x0000000300000002, 0x00000000028216FD, 0x00000002FAFBD207}, + [_]u64{0x078644FA00000001, 0x0000000300000003, 0x00000000028216FD, 0x00000002F879BB0A}, + [_]u64{0x078644FA00000001, 0x0000000300000010, 0x00000000028216FD, 0x00000002D7DE9031}, + [_]u64{0x078644FA00000001, 0x00000003078644FA, 0x00000000027BDC26, 0x0000000266ACEAE5}, + [_]u64{0x078644FA00000001, 0x000000030747AE14, 0x00000000027C0F7C, 0x00000000CC648251}, + [_]u64{0x078644FA00000001, 0x000000037FFFFFFF, 0x0000000002265CD9, 0x0000000282265CDA}, + [_]u64{0x078644FA00000001, 0x0000000380000000, 0x0000000002265CD9, 0x0000000280000001}, + [_]u64{0x078644FA00000001, 0x00000003FFFFFFFD, 0x0000000001E1913E, 0x0000000205A4B3BB}, + [_]u64{0x078644FA00000001, 0x00000003FFFFFFFE, 0x0000000001E1913E, 0x0000000203C3227D}, + [_]u64{0x078644FA00000001, 0x00000003FFFFFFFF, 0x0000000001E1913E, 0x0000000201E1913F}, + [_]u64{0x078644FA00000001, 0x0000001000000000, 0x000000000078644F, 0x0000000A00000001}, + [_]u64{0x078644FA00000001, 0x0000001000000001, 0x000000000078644F, 0x00000009FF879BB2}, + [_]u64{0x078644FA00000001, 0x0000001000000002, 0x000000000078644F, 0x00000009FF0F3763}, + [_]u64{0x078644FA00000001, 0x0000001000000003, 0x000000000078644F, 0x00000009FE96D314}, + [_]u64{0x078644FA00000001, 0x0000001000000010, 0x000000000078644F, 0x00000009F879BB11}, + [_]u64{0x078644FA00000001, 0x00000010078644FA, 0x0000000000782BCC, 0x000000001E3B0AC9}, + [_]u64{0x078644FA00000001, 0x000000100747AE14, 0x0000000000782DA1, 0x0000000438F2016D}, + [_]u64{0x078644FA00000001, 0x000000107FFFFFFF, 0x000000000074BE5C, 0x0000000C0074BE5D}, + [_]u64{0x078644FA00000001, 0x0000001080000000, 0x000000000074BE5C, 0x0000000C00000001}, + [_]u64{0x078644FA00000001, 0x00000010FFFFFFFD, 0x0000000000714F5A, 0x000000000153EE0F}, + [_]u64{0x078644FA00000001, 0x00000010FFFFFFFE, 0x0000000000714F5A, 0x0000000000E29EB5}, + [_]u64{0x078644FA00000001, 0x00000010FFFFFFFF, 0x0000000000714F5A, 0x0000000000714F5B}, + [_]u64{0x078644FA00000001, 0x078644FA00000000, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x078644FA00000001, 0x078644FA00000001, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x078644FA00000001, 0x078644FA00000002, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x078644FA00000003, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x078644FA00000010, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x078644FA078644FA, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x078644FA0747AE14, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x078644FA80000000, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x0747AE1400000000, 0x0000000000000001, 0x003E96E600000001}, + [_]u64{0x078644FA00000001, 0x0747AE1400000001, 0x0000000000000001, 0x003E96E600000000}, + [_]u64{0x078644FA00000001, 0x0747AE1400000002, 0x0000000000000001, 0x003E96E5FFFFFFFF}, + [_]u64{0x078644FA00000001, 0x0747AE1400000003, 0x0000000000000001, 0x003E96E5FFFFFFFE}, + [_]u64{0x078644FA00000001, 0x0747AE1400000010, 0x0000000000000001, 0x003E96E5FFFFFFF1}, + [_]u64{0x078644FA00000001, 0x0747AE14078644FA, 0x0000000000000001, 0x003E96E5F879BB07}, + [_]u64{0x078644FA00000001, 0x0747AE140747AE14, 0x0000000000000001, 0x003E96E5F8B851ED}, + [_]u64{0x078644FA00000001, 0x0747AE147FFFFFFF, 0x0000000000000001, 0x003E96E580000002}, + [_]u64{0x078644FA00000001, 0x0747AE1480000000, 0x0000000000000001, 0x003E96E580000001}, + [_]u64{0x078644FA00000001, 0x0747AE14FFFFFFFD, 0x0000000000000001, 0x003E96E500000004}, + [_]u64{0x078644FA00000001, 0x0747AE14FFFFFFFE, 0x0000000000000001, 0x003E96E500000003}, + [_]u64{0x078644FA00000001, 0x0747AE14FFFFFFFF, 0x0000000000000001, 0x003E96E500000002}, + [_]u64{0x078644FA00000001, 0x7FFFFFFF00000000, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x7FFFFFFF00000001, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x7FFFFFFF00000002, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x7FFFFFFF00000003, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x7FFFFFFF00000010, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x7FFFFFFF80000000, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x8000000000000000, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x8000000000000001, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x8000000000000002, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x8000000000000003, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x8000000000000010, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x80000000078644FA, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x800000000747AE14, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x800000007FFFFFFF, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x8000000080000000, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x80000000FFFFFFFD, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x80000000FFFFFFFE, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0x80000000FFFFFFFF, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFD00000000, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFD00000001, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFD00000002, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFD00000003, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFD00000010, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFD80000000, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFE00000000, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFE00000001, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFE00000002, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFE00000003, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFE00000010, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFE80000000, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFF00000000, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFF00000001, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFF00000002, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFF00000003, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFF00000010, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFF80000000, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000001, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x078644FA00000001}, + [_]u64{0x078644FA00000002, 0x0000000000000001, 0x078644FA00000002, 0x0000000000000000}, + [_]u64{0x078644FA00000002, 0x0000000000000002, 0x03C3227D00000001, 0x0000000000000000}, + [_]u64{0x078644FA00000002, 0x0000000000000003, 0x028216FE00000000, 0x0000000000000002}, + [_]u64{0x078644FA00000002, 0x0000000000000010, 0x0078644FA0000000, 0x0000000000000002}, + [_]u64{0x078644FA00000002, 0x00000000078644FA, 0x0000000100000000, 0x0000000000000002}, + [_]u64{0x078644FA00000002, 0x000000000747AE14, 0x000000010898F295, 0x0000000004D8C65E}, + [_]u64{0x078644FA00000002, 0x000000007FFFFFFF, 0x000000000F0C89F4, 0x000000000F0C89F6}, + [_]u64{0x078644FA00000002, 0x0000000080000000, 0x000000000F0C89F4, 0x0000000000000002}, + [_]u64{0x078644FA00000002, 0x00000000FFFFFFFD, 0x00000000078644FA, 0x000000001692CEF0}, + [_]u64{0x078644FA00000002, 0x00000000FFFFFFFE, 0x00000000078644FA, 0x000000000F0C89F6}, + [_]u64{0x078644FA00000002, 0x00000000FFFFFFFF, 0x00000000078644FA, 0x00000000078644FC}, + [_]u64{0x078644FA00000002, 0x0000000100000000, 0x00000000078644FA, 0x0000000000000002}, + [_]u64{0x078644FA00000002, 0x0000000100000001, 0x00000000078644F9, 0x00000000F879BB09}, + [_]u64{0x078644FA00000002, 0x0000000100000002, 0x00000000078644F9, 0x00000000F0F37610}, + [_]u64{0x078644FA00000002, 0x0000000100000003, 0x00000000078644F9, 0x00000000E96D3117}, + [_]u64{0x078644FA00000002, 0x0000000100000010, 0x00000000078644F9, 0x00000000879BB072}, + [_]u64{0x078644FA00000002, 0x00000001078644FA, 0x00000000074F44A3, 0x000000006C09ACD4}, + [_]u64{0x078644FA00000002, 0x000000010747AE14, 0x000000000751017E, 0x0000000082B63E2A}, + [_]u64{0x078644FA00000002, 0x000000017FFFFFFF, 0x0000000005042DFC, 0x0000000005042DFE}, + [_]u64{0x078644FA00000002, 0x0000000180000000, 0x0000000005042DFC, 0x0000000000000002}, + [_]u64{0x078644FA00000002, 0x00000001FFFFFFFD, 0x0000000003C3227D, 0x000000000B496779}, + [_]u64{0x078644FA00000002, 0x00000001FFFFFFFE, 0x0000000003C3227D, 0x00000000078644FC}, + [_]u64{0x078644FA00000002, 0x00000001FFFFFFFF, 0x0000000003C3227D, 0x0000000003C3227F}, + [_]u64{0x078644FA00000002, 0x0000000200000000, 0x0000000003C3227D, 0x0000000000000002}, + [_]u64{0x078644FA00000002, 0x0000000200000001, 0x0000000003C3227C, 0x00000001FC3CDD86}, + [_]u64{0x078644FA00000002, 0x0000000200000002, 0x0000000003C3227C, 0x00000001F879BB0A}, + [_]u64{0x078644FA00000002, 0x0000000200000003, 0x0000000003C3227C, 0x00000001F4B6988E}, + [_]u64{0x078644FA00000002, 0x0000000200000010, 0x0000000003C3227C, 0x00000001C3CDD842}, + [_]u64{0x078644FA00000002, 0x00000002078644FA, 0x0000000003B52F6B, 0x0000000181754584}, + [_]u64{0x078644FA00000002, 0x000000020747AE14, 0x0000000003B5A1D3, 0x000000019B4CF186}, + [_]u64{0x078644FA00000002, 0x000000027FFFFFFF, 0x00000000030281FD, 0x00000001830281FF}, + [_]u64{0x078644FA00000002, 0x0000000280000000, 0x00000000030281FD, 0x0000000180000002}, + [_]u64{0x078644FA00000002, 0x00000002FFFFFFFD, 0x00000000028216FE, 0x00000000078644FC}, + [_]u64{0x078644FA00000002, 0x00000002FFFFFFFE, 0x00000000028216FE, 0x0000000005042DFE}, + [_]u64{0x078644FA00000002, 0x00000002FFFFFFFF, 0x00000000028216FE, 0x0000000002821700}, + [_]u64{0x078644FA00000002, 0x0000000300000000, 0x00000000028216FE, 0x0000000000000002}, + [_]u64{0x078644FA00000002, 0x0000000300000001, 0x00000000028216FD, 0x00000002FD7DE905}, + [_]u64{0x078644FA00000002, 0x0000000300000002, 0x00000000028216FD, 0x00000002FAFBD208}, + [_]u64{0x078644FA00000002, 0x0000000300000003, 0x00000000028216FD, 0x00000002F879BB0B}, + [_]u64{0x078644FA00000002, 0x0000000300000010, 0x00000000028216FD, 0x00000002D7DE9032}, + [_]u64{0x078644FA00000002, 0x00000003078644FA, 0x00000000027BDC26, 0x0000000266ACEAE6}, + [_]u64{0x078644FA00000002, 0x000000030747AE14, 0x00000000027C0F7C, 0x00000000CC648252}, + [_]u64{0x078644FA00000002, 0x000000037FFFFFFF, 0x0000000002265CD9, 0x0000000282265CDB}, + [_]u64{0x078644FA00000002, 0x0000000380000000, 0x0000000002265CD9, 0x0000000280000002}, + [_]u64{0x078644FA00000002, 0x00000003FFFFFFFD, 0x0000000001E1913E, 0x0000000205A4B3BC}, + [_]u64{0x078644FA00000002, 0x00000003FFFFFFFE, 0x0000000001E1913E, 0x0000000203C3227E}, + [_]u64{0x078644FA00000002, 0x00000003FFFFFFFF, 0x0000000001E1913E, 0x0000000201E19140}, + [_]u64{0x078644FA00000002, 0x0000001000000000, 0x000000000078644F, 0x0000000A00000002}, + [_]u64{0x078644FA00000002, 0x0000001000000001, 0x000000000078644F, 0x00000009FF879BB3}, + [_]u64{0x078644FA00000002, 0x0000001000000002, 0x000000000078644F, 0x00000009FF0F3764}, + [_]u64{0x078644FA00000002, 0x0000001000000003, 0x000000000078644F, 0x00000009FE96D315}, + [_]u64{0x078644FA00000002, 0x0000001000000010, 0x000000000078644F, 0x00000009F879BB12}, + [_]u64{0x078644FA00000002, 0x00000010078644FA, 0x0000000000782BCC, 0x000000001E3B0ACA}, + [_]u64{0x078644FA00000002, 0x000000100747AE14, 0x0000000000782DA1, 0x0000000438F2016E}, + [_]u64{0x078644FA00000002, 0x000000107FFFFFFF, 0x000000000074BE5C, 0x0000000C0074BE5E}, + [_]u64{0x078644FA00000002, 0x0000001080000000, 0x000000000074BE5C, 0x0000000C00000002}, + [_]u64{0x078644FA00000002, 0x00000010FFFFFFFD, 0x0000000000714F5A, 0x000000000153EE10}, + [_]u64{0x078644FA00000002, 0x00000010FFFFFFFE, 0x0000000000714F5A, 0x0000000000E29EB6}, + [_]u64{0x078644FA00000002, 0x00000010FFFFFFFF, 0x0000000000714F5A, 0x0000000000714F5C}, + [_]u64{0x078644FA00000002, 0x078644FA00000000, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x078644FA00000002, 0x078644FA00000001, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x078644FA00000002, 0x078644FA00000002, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x078644FA00000002, 0x078644FA00000003, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x078644FA00000010, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x078644FA078644FA, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x078644FA0747AE14, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x078644FA80000000, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x0747AE1400000000, 0x0000000000000001, 0x003E96E600000002}, + [_]u64{0x078644FA00000002, 0x0747AE1400000001, 0x0000000000000001, 0x003E96E600000001}, + [_]u64{0x078644FA00000002, 0x0747AE1400000002, 0x0000000000000001, 0x003E96E600000000}, + [_]u64{0x078644FA00000002, 0x0747AE1400000003, 0x0000000000000001, 0x003E96E5FFFFFFFF}, + [_]u64{0x078644FA00000002, 0x0747AE1400000010, 0x0000000000000001, 0x003E96E5FFFFFFF2}, + [_]u64{0x078644FA00000002, 0x0747AE14078644FA, 0x0000000000000001, 0x003E96E5F879BB08}, + [_]u64{0x078644FA00000002, 0x0747AE140747AE14, 0x0000000000000001, 0x003E96E5F8B851EE}, + [_]u64{0x078644FA00000002, 0x0747AE147FFFFFFF, 0x0000000000000001, 0x003E96E580000003}, + [_]u64{0x078644FA00000002, 0x0747AE1480000000, 0x0000000000000001, 0x003E96E580000002}, + [_]u64{0x078644FA00000002, 0x0747AE14FFFFFFFD, 0x0000000000000001, 0x003E96E500000005}, + [_]u64{0x078644FA00000002, 0x0747AE14FFFFFFFE, 0x0000000000000001, 0x003E96E500000004}, + [_]u64{0x078644FA00000002, 0x0747AE14FFFFFFFF, 0x0000000000000001, 0x003E96E500000003}, + [_]u64{0x078644FA00000002, 0x7FFFFFFF00000000, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x7FFFFFFF00000001, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x7FFFFFFF00000002, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x7FFFFFFF00000003, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x7FFFFFFF00000010, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x7FFFFFFF80000000, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x8000000000000000, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x8000000000000001, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x8000000000000002, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x8000000000000003, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x8000000000000010, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x80000000078644FA, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x800000000747AE14, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x800000007FFFFFFF, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x8000000080000000, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x80000000FFFFFFFD, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x80000000FFFFFFFE, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0x80000000FFFFFFFF, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFD00000000, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFD00000001, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFD00000002, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFD00000003, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFD00000010, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFD80000000, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFE00000000, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFE00000001, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFE00000002, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFE00000003, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFE00000010, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFE80000000, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFF00000000, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFF00000001, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFF00000002, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFF00000003, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFF00000010, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFF80000000, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000002, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x078644FA00000002}, + [_]u64{0x078644FA00000003, 0x0000000000000001, 0x078644FA00000003, 0x0000000000000000}, + [_]u64{0x078644FA00000003, 0x0000000000000002, 0x03C3227D00000001, 0x0000000000000001}, + [_]u64{0x078644FA00000003, 0x0000000000000003, 0x028216FE00000001, 0x0000000000000000}, + [_]u64{0x078644FA00000003, 0x0000000000000010, 0x0078644FA0000000, 0x0000000000000003}, + [_]u64{0x078644FA00000003, 0x00000000078644FA, 0x0000000100000000, 0x0000000000000003}, + [_]u64{0x078644FA00000003, 0x000000000747AE14, 0x000000010898F295, 0x0000000004D8C65F}, + [_]u64{0x078644FA00000003, 0x000000007FFFFFFF, 0x000000000F0C89F4, 0x000000000F0C89F7}, + [_]u64{0x078644FA00000003, 0x0000000080000000, 0x000000000F0C89F4, 0x0000000000000003}, + [_]u64{0x078644FA00000003, 0x00000000FFFFFFFD, 0x00000000078644FA, 0x000000001692CEF1}, + [_]u64{0x078644FA00000003, 0x00000000FFFFFFFE, 0x00000000078644FA, 0x000000000F0C89F7}, + [_]u64{0x078644FA00000003, 0x00000000FFFFFFFF, 0x00000000078644FA, 0x00000000078644FD}, + [_]u64{0x078644FA00000003, 0x0000000100000000, 0x00000000078644FA, 0x0000000000000003}, + [_]u64{0x078644FA00000003, 0x0000000100000001, 0x00000000078644F9, 0x00000000F879BB0A}, + [_]u64{0x078644FA00000003, 0x0000000100000002, 0x00000000078644F9, 0x00000000F0F37611}, + [_]u64{0x078644FA00000003, 0x0000000100000003, 0x00000000078644F9, 0x00000000E96D3118}, + [_]u64{0x078644FA00000003, 0x0000000100000010, 0x00000000078644F9, 0x00000000879BB073}, + [_]u64{0x078644FA00000003, 0x00000001078644FA, 0x00000000074F44A3, 0x000000006C09ACD5}, + [_]u64{0x078644FA00000003, 0x000000010747AE14, 0x000000000751017E, 0x0000000082B63E2B}, + [_]u64{0x078644FA00000003, 0x000000017FFFFFFF, 0x0000000005042DFC, 0x0000000005042DFF}, + [_]u64{0x078644FA00000003, 0x0000000180000000, 0x0000000005042DFC, 0x0000000000000003}, + [_]u64{0x078644FA00000003, 0x00000001FFFFFFFD, 0x0000000003C3227D, 0x000000000B49677A}, + [_]u64{0x078644FA00000003, 0x00000001FFFFFFFE, 0x0000000003C3227D, 0x00000000078644FD}, + [_]u64{0x078644FA00000003, 0x00000001FFFFFFFF, 0x0000000003C3227D, 0x0000000003C32280}, + [_]u64{0x078644FA00000003, 0x0000000200000000, 0x0000000003C3227D, 0x0000000000000003}, + [_]u64{0x078644FA00000003, 0x0000000200000001, 0x0000000003C3227C, 0x00000001FC3CDD87}, + [_]u64{0x078644FA00000003, 0x0000000200000002, 0x0000000003C3227C, 0x00000001F879BB0B}, + [_]u64{0x078644FA00000003, 0x0000000200000003, 0x0000000003C3227C, 0x00000001F4B6988F}, + [_]u64{0x078644FA00000003, 0x0000000200000010, 0x0000000003C3227C, 0x00000001C3CDD843}, + [_]u64{0x078644FA00000003, 0x00000002078644FA, 0x0000000003B52F6B, 0x0000000181754585}, + [_]u64{0x078644FA00000003, 0x000000020747AE14, 0x0000000003B5A1D3, 0x000000019B4CF187}, + [_]u64{0x078644FA00000003, 0x000000027FFFFFFF, 0x00000000030281FD, 0x0000000183028200}, + [_]u64{0x078644FA00000003, 0x0000000280000000, 0x00000000030281FD, 0x0000000180000003}, + [_]u64{0x078644FA00000003, 0x00000002FFFFFFFD, 0x00000000028216FE, 0x00000000078644FD}, + [_]u64{0x078644FA00000003, 0x00000002FFFFFFFE, 0x00000000028216FE, 0x0000000005042DFF}, + [_]u64{0x078644FA00000003, 0x00000002FFFFFFFF, 0x00000000028216FE, 0x0000000002821701}, + [_]u64{0x078644FA00000003, 0x0000000300000000, 0x00000000028216FE, 0x0000000000000003}, + [_]u64{0x078644FA00000003, 0x0000000300000001, 0x00000000028216FD, 0x00000002FD7DE906}, + [_]u64{0x078644FA00000003, 0x0000000300000002, 0x00000000028216FD, 0x00000002FAFBD209}, + [_]u64{0x078644FA00000003, 0x0000000300000003, 0x00000000028216FD, 0x00000002F879BB0C}, + [_]u64{0x078644FA00000003, 0x0000000300000010, 0x00000000028216FD, 0x00000002D7DE9033}, + [_]u64{0x078644FA00000003, 0x00000003078644FA, 0x00000000027BDC26, 0x0000000266ACEAE7}, + [_]u64{0x078644FA00000003, 0x000000030747AE14, 0x00000000027C0F7C, 0x00000000CC648253}, + [_]u64{0x078644FA00000003, 0x000000037FFFFFFF, 0x0000000002265CD9, 0x0000000282265CDC}, + [_]u64{0x078644FA00000003, 0x0000000380000000, 0x0000000002265CD9, 0x0000000280000003}, + [_]u64{0x078644FA00000003, 0x00000003FFFFFFFD, 0x0000000001E1913E, 0x0000000205A4B3BD}, + [_]u64{0x078644FA00000003, 0x00000003FFFFFFFE, 0x0000000001E1913E, 0x0000000203C3227F}, + [_]u64{0x078644FA00000003, 0x00000003FFFFFFFF, 0x0000000001E1913E, 0x0000000201E19141}, + [_]u64{0x078644FA00000003, 0x0000001000000000, 0x000000000078644F, 0x0000000A00000003}, + [_]u64{0x078644FA00000003, 0x0000001000000001, 0x000000000078644F, 0x00000009FF879BB4}, + [_]u64{0x078644FA00000003, 0x0000001000000002, 0x000000000078644F, 0x00000009FF0F3765}, + [_]u64{0x078644FA00000003, 0x0000001000000003, 0x000000000078644F, 0x00000009FE96D316}, + [_]u64{0x078644FA00000003, 0x0000001000000010, 0x000000000078644F, 0x00000009F879BB13}, + [_]u64{0x078644FA00000003, 0x00000010078644FA, 0x0000000000782BCC, 0x000000001E3B0ACB}, + [_]u64{0x078644FA00000003, 0x000000100747AE14, 0x0000000000782DA1, 0x0000000438F2016F}, + [_]u64{0x078644FA00000003, 0x000000107FFFFFFF, 0x000000000074BE5C, 0x0000000C0074BE5F}, + [_]u64{0x078644FA00000003, 0x0000001080000000, 0x000000000074BE5C, 0x0000000C00000003}, + [_]u64{0x078644FA00000003, 0x00000010FFFFFFFD, 0x0000000000714F5A, 0x000000000153EE11}, + [_]u64{0x078644FA00000003, 0x00000010FFFFFFFE, 0x0000000000714F5A, 0x0000000000E29EB7}, + [_]u64{0x078644FA00000003, 0x00000010FFFFFFFF, 0x0000000000714F5A, 0x0000000000714F5D}, + [_]u64{0x078644FA00000003, 0x078644FA00000000, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0x078644FA00000003, 0x078644FA00000001, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x078644FA00000003, 0x078644FA00000002, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x078644FA00000003, 0x078644FA00000003, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x078644FA00000003, 0x078644FA00000010, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x078644FA078644FA, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x078644FA0747AE14, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x078644FA80000000, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x0747AE1400000000, 0x0000000000000001, 0x003E96E600000003}, + [_]u64{0x078644FA00000003, 0x0747AE1400000001, 0x0000000000000001, 0x003E96E600000002}, + [_]u64{0x078644FA00000003, 0x0747AE1400000002, 0x0000000000000001, 0x003E96E600000001}, + [_]u64{0x078644FA00000003, 0x0747AE1400000003, 0x0000000000000001, 0x003E96E600000000}, + [_]u64{0x078644FA00000003, 0x0747AE1400000010, 0x0000000000000001, 0x003E96E5FFFFFFF3}, + [_]u64{0x078644FA00000003, 0x0747AE14078644FA, 0x0000000000000001, 0x003E96E5F879BB09}, + [_]u64{0x078644FA00000003, 0x0747AE140747AE14, 0x0000000000000001, 0x003E96E5F8B851EF}, + [_]u64{0x078644FA00000003, 0x0747AE147FFFFFFF, 0x0000000000000001, 0x003E96E580000004}, + [_]u64{0x078644FA00000003, 0x0747AE1480000000, 0x0000000000000001, 0x003E96E580000003}, + [_]u64{0x078644FA00000003, 0x0747AE14FFFFFFFD, 0x0000000000000001, 0x003E96E500000006}, + [_]u64{0x078644FA00000003, 0x0747AE14FFFFFFFE, 0x0000000000000001, 0x003E96E500000005}, + [_]u64{0x078644FA00000003, 0x0747AE14FFFFFFFF, 0x0000000000000001, 0x003E96E500000004}, + [_]u64{0x078644FA00000003, 0x7FFFFFFF00000000, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x7FFFFFFF00000001, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x7FFFFFFF00000002, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x7FFFFFFF00000003, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x7FFFFFFF00000010, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x7FFFFFFF80000000, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x8000000000000000, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x8000000000000001, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x8000000000000002, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x8000000000000003, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x8000000000000010, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x80000000078644FA, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x800000000747AE14, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x800000007FFFFFFF, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x8000000080000000, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x80000000FFFFFFFD, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x80000000FFFFFFFE, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0x80000000FFFFFFFF, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFD00000000, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFD00000001, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFD00000002, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFD00000003, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFD00000010, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFD80000000, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFE00000000, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFE00000001, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFE00000002, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFE00000003, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFE00000010, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFE80000000, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFF00000000, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFF00000001, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFF00000002, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFF00000003, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFF00000010, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFF80000000, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000003, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x078644FA00000003}, + [_]u64{0x078644FA00000010, 0x0000000000000001, 0x078644FA00000010, 0x0000000000000000}, + [_]u64{0x078644FA00000010, 0x0000000000000002, 0x03C3227D00000008, 0x0000000000000000}, + [_]u64{0x078644FA00000010, 0x0000000000000003, 0x028216FE00000005, 0x0000000000000001}, + [_]u64{0x078644FA00000010, 0x0000000000000010, 0x0078644FA0000001, 0x0000000000000000}, + [_]u64{0x078644FA00000010, 0x00000000078644FA, 0x0000000100000000, 0x0000000000000010}, + [_]u64{0x078644FA00000010, 0x000000000747AE14, 0x000000010898F295, 0x0000000004D8C66C}, + [_]u64{0x078644FA00000010, 0x000000007FFFFFFF, 0x000000000F0C89F4, 0x000000000F0C8A04}, + [_]u64{0x078644FA00000010, 0x0000000080000000, 0x000000000F0C89F4, 0x0000000000000010}, + [_]u64{0x078644FA00000010, 0x00000000FFFFFFFD, 0x00000000078644FA, 0x000000001692CEFE}, + [_]u64{0x078644FA00000010, 0x00000000FFFFFFFE, 0x00000000078644FA, 0x000000000F0C8A04}, + [_]u64{0x078644FA00000010, 0x00000000FFFFFFFF, 0x00000000078644FA, 0x000000000786450A}, + [_]u64{0x078644FA00000010, 0x0000000100000000, 0x00000000078644FA, 0x0000000000000010}, + [_]u64{0x078644FA00000010, 0x0000000100000001, 0x00000000078644F9, 0x00000000F879BB17}, + [_]u64{0x078644FA00000010, 0x0000000100000002, 0x00000000078644F9, 0x00000000F0F3761E}, + [_]u64{0x078644FA00000010, 0x0000000100000003, 0x00000000078644F9, 0x00000000E96D3125}, + [_]u64{0x078644FA00000010, 0x0000000100000010, 0x00000000078644F9, 0x00000000879BB080}, + [_]u64{0x078644FA00000010, 0x00000001078644FA, 0x00000000074F44A3, 0x000000006C09ACE2}, + [_]u64{0x078644FA00000010, 0x000000010747AE14, 0x000000000751017E, 0x0000000082B63E38}, + [_]u64{0x078644FA00000010, 0x000000017FFFFFFF, 0x0000000005042DFC, 0x0000000005042E0C}, + [_]u64{0x078644FA00000010, 0x0000000180000000, 0x0000000005042DFC, 0x0000000000000010}, + [_]u64{0x078644FA00000010, 0x00000001FFFFFFFD, 0x0000000003C3227D, 0x000000000B496787}, + [_]u64{0x078644FA00000010, 0x00000001FFFFFFFE, 0x0000000003C3227D, 0x000000000786450A}, + [_]u64{0x078644FA00000010, 0x00000001FFFFFFFF, 0x0000000003C3227D, 0x0000000003C3228D}, + [_]u64{0x078644FA00000010, 0x0000000200000000, 0x0000000003C3227D, 0x0000000000000010}, + [_]u64{0x078644FA00000010, 0x0000000200000001, 0x0000000003C3227C, 0x00000001FC3CDD94}, + [_]u64{0x078644FA00000010, 0x0000000200000002, 0x0000000003C3227C, 0x00000001F879BB18}, + [_]u64{0x078644FA00000010, 0x0000000200000003, 0x0000000003C3227C, 0x00000001F4B6989C}, + [_]u64{0x078644FA00000010, 0x0000000200000010, 0x0000000003C3227C, 0x00000001C3CDD850}, + [_]u64{0x078644FA00000010, 0x00000002078644FA, 0x0000000003B52F6B, 0x0000000181754592}, + [_]u64{0x078644FA00000010, 0x000000020747AE14, 0x0000000003B5A1D3, 0x000000019B4CF194}, + [_]u64{0x078644FA00000010, 0x000000027FFFFFFF, 0x00000000030281FD, 0x000000018302820D}, + [_]u64{0x078644FA00000010, 0x0000000280000000, 0x00000000030281FD, 0x0000000180000010}, + [_]u64{0x078644FA00000010, 0x00000002FFFFFFFD, 0x00000000028216FE, 0x000000000786450A}, + [_]u64{0x078644FA00000010, 0x00000002FFFFFFFE, 0x00000000028216FE, 0x0000000005042E0C}, + [_]u64{0x078644FA00000010, 0x00000002FFFFFFFF, 0x00000000028216FE, 0x000000000282170E}, + [_]u64{0x078644FA00000010, 0x0000000300000000, 0x00000000028216FE, 0x0000000000000010}, + [_]u64{0x078644FA00000010, 0x0000000300000001, 0x00000000028216FD, 0x00000002FD7DE913}, + [_]u64{0x078644FA00000010, 0x0000000300000002, 0x00000000028216FD, 0x00000002FAFBD216}, + [_]u64{0x078644FA00000010, 0x0000000300000003, 0x00000000028216FD, 0x00000002F879BB19}, + [_]u64{0x078644FA00000010, 0x0000000300000010, 0x00000000028216FD, 0x00000002D7DE9040}, + [_]u64{0x078644FA00000010, 0x00000003078644FA, 0x00000000027BDC26, 0x0000000266ACEAF4}, + [_]u64{0x078644FA00000010, 0x000000030747AE14, 0x00000000027C0F7C, 0x00000000CC648260}, + [_]u64{0x078644FA00000010, 0x000000037FFFFFFF, 0x0000000002265CD9, 0x0000000282265CE9}, + [_]u64{0x078644FA00000010, 0x0000000380000000, 0x0000000002265CD9, 0x0000000280000010}, + [_]u64{0x078644FA00000010, 0x00000003FFFFFFFD, 0x0000000001E1913E, 0x0000000205A4B3CA}, + [_]u64{0x078644FA00000010, 0x00000003FFFFFFFE, 0x0000000001E1913E, 0x0000000203C3228C}, + [_]u64{0x078644FA00000010, 0x00000003FFFFFFFF, 0x0000000001E1913E, 0x0000000201E1914E}, + [_]u64{0x078644FA00000010, 0x0000001000000000, 0x000000000078644F, 0x0000000A00000010}, + [_]u64{0x078644FA00000010, 0x0000001000000001, 0x000000000078644F, 0x00000009FF879BC1}, + [_]u64{0x078644FA00000010, 0x0000001000000002, 0x000000000078644F, 0x00000009FF0F3772}, + [_]u64{0x078644FA00000010, 0x0000001000000003, 0x000000000078644F, 0x00000009FE96D323}, + [_]u64{0x078644FA00000010, 0x0000001000000010, 0x000000000078644F, 0x00000009F879BB20}, + [_]u64{0x078644FA00000010, 0x00000010078644FA, 0x0000000000782BCC, 0x000000001E3B0AD8}, + [_]u64{0x078644FA00000010, 0x000000100747AE14, 0x0000000000782DA1, 0x0000000438F2017C}, + [_]u64{0x078644FA00000010, 0x000000107FFFFFFF, 0x000000000074BE5C, 0x0000000C0074BE6C}, + [_]u64{0x078644FA00000010, 0x0000001080000000, 0x000000000074BE5C, 0x0000000C00000010}, + [_]u64{0x078644FA00000010, 0x00000010FFFFFFFD, 0x0000000000714F5A, 0x000000000153EE1E}, + [_]u64{0x078644FA00000010, 0x00000010FFFFFFFE, 0x0000000000714F5A, 0x0000000000E29EC4}, + [_]u64{0x078644FA00000010, 0x00000010FFFFFFFF, 0x0000000000714F5A, 0x0000000000714F6A}, + [_]u64{0x078644FA00000010, 0x078644FA00000000, 0x0000000000000001, 0x0000000000000010}, + [_]u64{0x078644FA00000010, 0x078644FA00000001, 0x0000000000000001, 0x000000000000000F}, + [_]u64{0x078644FA00000010, 0x078644FA00000002, 0x0000000000000001, 0x000000000000000E}, + [_]u64{0x078644FA00000010, 0x078644FA00000003, 0x0000000000000001, 0x000000000000000D}, + [_]u64{0x078644FA00000010, 0x078644FA00000010, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x078644FA00000010, 0x078644FA078644FA, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x078644FA0747AE14, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x078644FA80000000, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x0747AE1400000000, 0x0000000000000001, 0x003E96E600000010}, + [_]u64{0x078644FA00000010, 0x0747AE1400000001, 0x0000000000000001, 0x003E96E60000000F}, + [_]u64{0x078644FA00000010, 0x0747AE1400000002, 0x0000000000000001, 0x003E96E60000000E}, + [_]u64{0x078644FA00000010, 0x0747AE1400000003, 0x0000000000000001, 0x003E96E60000000D}, + [_]u64{0x078644FA00000010, 0x0747AE1400000010, 0x0000000000000001, 0x003E96E600000000}, + [_]u64{0x078644FA00000010, 0x0747AE14078644FA, 0x0000000000000001, 0x003E96E5F879BB16}, + [_]u64{0x078644FA00000010, 0x0747AE140747AE14, 0x0000000000000001, 0x003E96E5F8B851FC}, + [_]u64{0x078644FA00000010, 0x0747AE147FFFFFFF, 0x0000000000000001, 0x003E96E580000011}, + [_]u64{0x078644FA00000010, 0x0747AE1480000000, 0x0000000000000001, 0x003E96E580000010}, + [_]u64{0x078644FA00000010, 0x0747AE14FFFFFFFD, 0x0000000000000001, 0x003E96E500000013}, + [_]u64{0x078644FA00000010, 0x0747AE14FFFFFFFE, 0x0000000000000001, 0x003E96E500000012}, + [_]u64{0x078644FA00000010, 0x0747AE14FFFFFFFF, 0x0000000000000001, 0x003E96E500000011}, + [_]u64{0x078644FA00000010, 0x7FFFFFFF00000000, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x7FFFFFFF00000001, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x7FFFFFFF00000002, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x7FFFFFFF00000003, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x7FFFFFFF00000010, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x7FFFFFFF80000000, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x8000000000000000, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x8000000000000001, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x8000000000000002, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x8000000000000003, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x8000000000000010, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x80000000078644FA, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x800000000747AE14, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x800000007FFFFFFF, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x8000000080000000, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x80000000FFFFFFFD, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x80000000FFFFFFFE, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0x80000000FFFFFFFF, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFD00000000, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFD00000001, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFD00000002, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFD00000003, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFD00000010, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFD80000000, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFE00000000, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFE00000001, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFE00000002, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFE00000003, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFE00000010, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFE80000000, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFF00000000, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFF00000001, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFF00000002, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFF00000003, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFF00000010, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFF80000000, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA00000010, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x078644FA00000010}, + [_]u64{0x078644FA078644FA, 0x0000000000000001, 0x078644FA078644FA, 0x0000000000000000}, + [_]u64{0x078644FA078644FA, 0x0000000000000002, 0x03C3227D03C3227D, 0x0000000000000000}, + [_]u64{0x078644FA078644FA, 0x0000000000000003, 0x028216FE028216FE, 0x0000000000000000}, + [_]u64{0x078644FA078644FA, 0x0000000000000010, 0x0078644FA078644F, 0x000000000000000A}, + [_]u64{0x078644FA078644FA, 0x00000000078644FA, 0x0000000100000001, 0x0000000000000000}, + [_]u64{0x078644FA078644FA, 0x000000000747AE14, 0x000000010898F296, 0x0000000005175D42}, + [_]u64{0x078644FA078644FA, 0x000000007FFFFFFF, 0x000000000F0C89F4, 0x000000001692CEEE}, + [_]u64{0x078644FA078644FA, 0x0000000080000000, 0x000000000F0C89F4, 0x00000000078644FA}, + [_]u64{0x078644FA078644FA, 0x00000000FFFFFFFD, 0x00000000078644FA, 0x000000001E1913E8}, + [_]u64{0x078644FA078644FA, 0x00000000FFFFFFFE, 0x00000000078644FA, 0x000000001692CEEE}, + [_]u64{0x078644FA078644FA, 0x00000000FFFFFFFF, 0x00000000078644FA, 0x000000000F0C89F4}, + [_]u64{0x078644FA078644FA, 0x0000000100000000, 0x00000000078644FA, 0x00000000078644FA}, + [_]u64{0x078644FA078644FA, 0x0000000100000001, 0x00000000078644FA, 0x0000000000000000}, + [_]u64{0x078644FA078644FA, 0x0000000100000002, 0x00000000078644F9, 0x00000000F879BB08}, + [_]u64{0x078644FA078644FA, 0x0000000100000003, 0x00000000078644F9, 0x00000000F0F3760F}, + [_]u64{0x078644FA078644FA, 0x0000000100000010, 0x00000000078644F9, 0x000000008F21F56A}, + [_]u64{0x078644FA078644FA, 0x00000001078644FA, 0x00000000074F44A3, 0x00000000738FF1CC}, + [_]u64{0x078644FA078644FA, 0x000000010747AE14, 0x000000000751017E, 0x000000008A3C8322}, + [_]u64{0x078644FA078644FA, 0x000000017FFFFFFF, 0x0000000005042DFC, 0x000000000C8A72F6}, + [_]u64{0x078644FA078644FA, 0x0000000180000000, 0x0000000005042DFC, 0x00000000078644FA}, + [_]u64{0x078644FA078644FA, 0x00000001FFFFFFFD, 0x0000000003C3227D, 0x0000000012CFAC71}, + [_]u64{0x078644FA078644FA, 0x00000001FFFFFFFE, 0x0000000003C3227D, 0x000000000F0C89F4}, + [_]u64{0x078644FA078644FA, 0x00000001FFFFFFFF, 0x0000000003C3227D, 0x000000000B496777}, + [_]u64{0x078644FA078644FA, 0x0000000200000000, 0x0000000003C3227D, 0x00000000078644FA}, + [_]u64{0x078644FA078644FA, 0x0000000200000001, 0x0000000003C3227D, 0x0000000003C3227D}, + [_]u64{0x078644FA078644FA, 0x0000000200000002, 0x0000000003C3227D, 0x0000000000000000}, + [_]u64{0x078644FA078644FA, 0x0000000200000003, 0x0000000003C3227C, 0x00000001FC3CDD86}, + [_]u64{0x078644FA078644FA, 0x0000000200000010, 0x0000000003C3227C, 0x00000001CB541D3A}, + [_]u64{0x078644FA078644FA, 0x00000002078644FA, 0x0000000003B52F6B, 0x0000000188FB8A7C}, + [_]u64{0x078644FA078644FA, 0x000000020747AE14, 0x0000000003B5A1D3, 0x00000001A2D3367E}, + [_]u64{0x078644FA078644FA, 0x000000027FFFFFFF, 0x00000000030281FD, 0x000000018A88C6F7}, + [_]u64{0x078644FA078644FA, 0x0000000280000000, 0x00000000030281FD, 0x00000001878644FA}, + [_]u64{0x078644FA078644FA, 0x00000002FFFFFFFD, 0x00000000028216FE, 0x000000000F0C89F4}, + [_]u64{0x078644FA078644FA, 0x00000002FFFFFFFE, 0x00000000028216FE, 0x000000000C8A72F6}, + [_]u64{0x078644FA078644FA, 0x00000002FFFFFFFF, 0x00000000028216FE, 0x000000000A085BF8}, + [_]u64{0x078644FA078644FA, 0x0000000300000000, 0x00000000028216FE, 0x00000000078644FA}, + [_]u64{0x078644FA078644FA, 0x0000000300000001, 0x00000000028216FE, 0x0000000005042DFC}, + [_]u64{0x078644FA078644FA, 0x0000000300000002, 0x00000000028216FE, 0x00000000028216FE}, + [_]u64{0x078644FA078644FA, 0x0000000300000003, 0x00000000028216FE, 0x0000000000000000}, + [_]u64{0x078644FA078644FA, 0x0000000300000010, 0x00000000028216FD, 0x00000002DF64D52A}, + [_]u64{0x078644FA078644FA, 0x00000003078644FA, 0x00000000027BDC26, 0x000000026E332FDE}, + [_]u64{0x078644FA078644FA, 0x000000030747AE14, 0x00000000027C0F7C, 0x00000000D3EAC74A}, + [_]u64{0x078644FA078644FA, 0x000000037FFFFFFF, 0x0000000002265CD9, 0x0000000289ACA1D3}, + [_]u64{0x078644FA078644FA, 0x0000000380000000, 0x0000000002265CD9, 0x00000002878644FA}, + [_]u64{0x078644FA078644FA, 0x00000003FFFFFFFD, 0x0000000001E1913E, 0x000000020D2AF8B4}, + [_]u64{0x078644FA078644FA, 0x00000003FFFFFFFE, 0x0000000001E1913E, 0x000000020B496776}, + [_]u64{0x078644FA078644FA, 0x00000003FFFFFFFF, 0x0000000001E1913E, 0x000000020967D638}, + [_]u64{0x078644FA078644FA, 0x0000001000000000, 0x000000000078644F, 0x0000000A078644FA}, + [_]u64{0x078644FA078644FA, 0x0000001000000001, 0x000000000078644F, 0x0000000A070DE0AB}, + [_]u64{0x078644FA078644FA, 0x0000001000000002, 0x000000000078644F, 0x0000000A06957C5C}, + [_]u64{0x078644FA078644FA, 0x0000001000000003, 0x000000000078644F, 0x0000000A061D180D}, + [_]u64{0x078644FA078644FA, 0x0000001000000010, 0x000000000078644F, 0x0000000A0000000A}, + [_]u64{0x078644FA078644FA, 0x00000010078644FA, 0x0000000000782BCC, 0x0000000025C14FC2}, + [_]u64{0x078644FA078644FA, 0x000000100747AE14, 0x0000000000782DA1, 0x0000000440784666}, + [_]u64{0x078644FA078644FA, 0x000000107FFFFFFF, 0x000000000074BE5C, 0x0000000C07FB0356}, + [_]u64{0x078644FA078644FA, 0x0000001080000000, 0x000000000074BE5C, 0x0000000C078644FA}, + [_]u64{0x078644FA078644FA, 0x00000010FFFFFFFD, 0x0000000000714F5A, 0x0000000008DA3308}, + [_]u64{0x078644FA078644FA, 0x00000010FFFFFFFE, 0x0000000000714F5A, 0x000000000868E3AE}, + [_]u64{0x078644FA078644FA, 0x00000010FFFFFFFF, 0x0000000000714F5A, 0x0000000007F79454}, + [_]u64{0x078644FA078644FA, 0x078644FA00000000, 0x0000000000000001, 0x00000000078644FA}, + [_]u64{0x078644FA078644FA, 0x078644FA00000001, 0x0000000000000001, 0x00000000078644F9}, + [_]u64{0x078644FA078644FA, 0x078644FA00000002, 0x0000000000000001, 0x00000000078644F8}, + [_]u64{0x078644FA078644FA, 0x078644FA00000003, 0x0000000000000001, 0x00000000078644F7}, + [_]u64{0x078644FA078644FA, 0x078644FA00000010, 0x0000000000000001, 0x00000000078644EA}, + [_]u64{0x078644FA078644FA, 0x078644FA078644FA, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x078644FA078644FA, 0x078644FA0747AE14, 0x0000000000000001, 0x00000000003E96E6}, + [_]u64{0x078644FA078644FA, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0x078644FA80000000, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0x0747AE1400000000, 0x0000000000000001, 0x003E96E6078644FA}, + [_]u64{0x078644FA078644FA, 0x0747AE1400000001, 0x0000000000000001, 0x003E96E6078644F9}, + [_]u64{0x078644FA078644FA, 0x0747AE1400000002, 0x0000000000000001, 0x003E96E6078644F8}, + [_]u64{0x078644FA078644FA, 0x0747AE1400000003, 0x0000000000000001, 0x003E96E6078644F7}, + [_]u64{0x078644FA078644FA, 0x0747AE1400000010, 0x0000000000000001, 0x003E96E6078644EA}, + [_]u64{0x078644FA078644FA, 0x0747AE14078644FA, 0x0000000000000001, 0x003E96E600000000}, + [_]u64{0x078644FA078644FA, 0x0747AE140747AE14, 0x0000000000000001, 0x003E96E6003E96E6}, + [_]u64{0x078644FA078644FA, 0x0747AE147FFFFFFF, 0x0000000000000001, 0x003E96E5878644FB}, + [_]u64{0x078644FA078644FA, 0x0747AE1480000000, 0x0000000000000001, 0x003E96E5878644FA}, + [_]u64{0x078644FA078644FA, 0x0747AE14FFFFFFFD, 0x0000000000000001, 0x003E96E5078644FD}, + [_]u64{0x078644FA078644FA, 0x0747AE14FFFFFFFE, 0x0000000000000001, 0x003E96E5078644FC}, + [_]u64{0x078644FA078644FA, 0x0747AE14FFFFFFFF, 0x0000000000000001, 0x003E96E5078644FB}, + [_]u64{0x078644FA078644FA, 0x7FFFFFFF00000000, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0x7FFFFFFF00000001, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0x7FFFFFFF00000002, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0x7FFFFFFF00000003, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0x7FFFFFFF00000010, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0x7FFFFFFF80000000, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0x8000000000000000, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0x8000000000000001, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0x8000000000000002, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0x8000000000000003, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0x8000000000000010, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0x80000000078644FA, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0x800000000747AE14, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0x800000007FFFFFFF, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0x8000000080000000, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0x80000000FFFFFFFD, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0x80000000FFFFFFFE, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0x80000000FFFFFFFF, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFD00000000, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFD00000001, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFD00000002, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFD00000003, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFD00000010, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFD80000000, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFE00000000, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFE00000001, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFE00000002, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFE00000003, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFE00000010, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFE80000000, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFF00000000, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFF00000001, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFF00000002, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFF00000003, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFF00000010, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFF80000000, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA078644FA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x078644FA078644FA}, + [_]u64{0x078644FA0747AE14, 0x0000000000000001, 0x078644FA0747AE14, 0x0000000000000000}, + [_]u64{0x078644FA0747AE14, 0x0000000000000002, 0x03C3227D03A3D70A, 0x0000000000000000}, + [_]u64{0x078644FA0747AE14, 0x0000000000000003, 0x028216FE026D3A06, 0x0000000000000002}, + [_]u64{0x078644FA0747AE14, 0x0000000000000010, 0x0078644FA0747AE1, 0x0000000000000004}, + [_]u64{0x078644FA0747AE14, 0x00000000078644FA, 0x0000000100000000, 0x000000000747AE14}, + [_]u64{0x078644FA0747AE14, 0x000000000747AE14, 0x000000010898F296, 0x0000000004D8C65C}, + [_]u64{0x078644FA0747AE14, 0x000000007FFFFFFF, 0x000000000F0C89F4, 0x0000000016543808}, + [_]u64{0x078644FA0747AE14, 0x0000000080000000, 0x000000000F0C89F4, 0x000000000747AE14}, + [_]u64{0x078644FA0747AE14, 0x00000000FFFFFFFD, 0x00000000078644FA, 0x000000001DDA7D02}, + [_]u64{0x078644FA0747AE14, 0x00000000FFFFFFFE, 0x00000000078644FA, 0x0000000016543808}, + [_]u64{0x078644FA0747AE14, 0x00000000FFFFFFFF, 0x00000000078644FA, 0x000000000ECDF30E}, + [_]u64{0x078644FA0747AE14, 0x0000000100000000, 0x00000000078644FA, 0x000000000747AE14}, + [_]u64{0x078644FA0747AE14, 0x0000000100000001, 0x00000000078644F9, 0x00000000FFC1691B}, + [_]u64{0x078644FA0747AE14, 0x0000000100000002, 0x00000000078644F9, 0x00000000F83B2422}, + [_]u64{0x078644FA0747AE14, 0x0000000100000003, 0x00000000078644F9, 0x00000000F0B4DF29}, + [_]u64{0x078644FA0747AE14, 0x0000000100000010, 0x00000000078644F9, 0x000000008EE35E84}, + [_]u64{0x078644FA0747AE14, 0x00000001078644FA, 0x00000000074F44A3, 0x0000000073515AE6}, + [_]u64{0x078644FA0747AE14, 0x000000010747AE14, 0x000000000751017E, 0x0000000089FDEC3C}, + [_]u64{0x078644FA0747AE14, 0x000000017FFFFFFF, 0x0000000005042DFC, 0x000000000C4BDC10}, + [_]u64{0x078644FA0747AE14, 0x0000000180000000, 0x0000000005042DFC, 0x000000000747AE14}, + [_]u64{0x078644FA0747AE14, 0x00000001FFFFFFFD, 0x0000000003C3227D, 0x000000001291158B}, + [_]u64{0x078644FA0747AE14, 0x00000001FFFFFFFE, 0x0000000003C3227D, 0x000000000ECDF30E}, + [_]u64{0x078644FA0747AE14, 0x00000001FFFFFFFF, 0x0000000003C3227D, 0x000000000B0AD091}, + [_]u64{0x078644FA0747AE14, 0x0000000200000000, 0x0000000003C3227D, 0x000000000747AE14}, + [_]u64{0x078644FA0747AE14, 0x0000000200000001, 0x0000000003C3227D, 0x0000000003848B97}, + [_]u64{0x078644FA0747AE14, 0x0000000200000002, 0x0000000003C3227C, 0x00000001FFC1691C}, + [_]u64{0x078644FA0747AE14, 0x0000000200000003, 0x0000000003C3227C, 0x00000001FBFE46A0}, + [_]u64{0x078644FA0747AE14, 0x0000000200000010, 0x0000000003C3227C, 0x00000001CB158654}, + [_]u64{0x078644FA0747AE14, 0x00000002078644FA, 0x0000000003B52F6B, 0x0000000188BCF396}, + [_]u64{0x078644FA0747AE14, 0x000000020747AE14, 0x0000000003B5A1D3, 0x00000001A2949F98}, + [_]u64{0x078644FA0747AE14, 0x000000027FFFFFFF, 0x00000000030281FD, 0x000000018A4A3011}, + [_]u64{0x078644FA0747AE14, 0x0000000280000000, 0x00000000030281FD, 0x000000018747AE14}, + [_]u64{0x078644FA0747AE14, 0x00000002FFFFFFFD, 0x00000000028216FE, 0x000000000ECDF30E}, + [_]u64{0x078644FA0747AE14, 0x00000002FFFFFFFE, 0x00000000028216FE, 0x000000000C4BDC10}, + [_]u64{0x078644FA0747AE14, 0x00000002FFFFFFFF, 0x00000000028216FE, 0x0000000009C9C512}, + [_]u64{0x078644FA0747AE14, 0x0000000300000000, 0x00000000028216FE, 0x000000000747AE14}, + [_]u64{0x078644FA0747AE14, 0x0000000300000001, 0x00000000028216FE, 0x0000000004C59716}, + [_]u64{0x078644FA0747AE14, 0x0000000300000002, 0x00000000028216FE, 0x0000000002438018}, + [_]u64{0x078644FA0747AE14, 0x0000000300000003, 0x00000000028216FD, 0x00000002FFC1691D}, + [_]u64{0x078644FA0747AE14, 0x0000000300000010, 0x00000000028216FD, 0x00000002DF263E44}, + [_]u64{0x078644FA0747AE14, 0x00000003078644FA, 0x00000000027BDC26, 0x000000026DF498F8}, + [_]u64{0x078644FA0747AE14, 0x000000030747AE14, 0x00000000027C0F7C, 0x00000000D3AC3064}, + [_]u64{0x078644FA0747AE14, 0x000000037FFFFFFF, 0x0000000002265CD9, 0x00000002896E0AED}, + [_]u64{0x078644FA0747AE14, 0x0000000380000000, 0x0000000002265CD9, 0x000000028747AE14}, + [_]u64{0x078644FA0747AE14, 0x00000003FFFFFFFD, 0x0000000001E1913E, 0x000000020CEC61CE}, + [_]u64{0x078644FA0747AE14, 0x00000003FFFFFFFE, 0x0000000001E1913E, 0x000000020B0AD090}, + [_]u64{0x078644FA0747AE14, 0x00000003FFFFFFFF, 0x0000000001E1913E, 0x0000000209293F52}, + [_]u64{0x078644FA0747AE14, 0x0000001000000000, 0x000000000078644F, 0x0000000A0747AE14}, + [_]u64{0x078644FA0747AE14, 0x0000001000000001, 0x000000000078644F, 0x0000000A06CF49C5}, + [_]u64{0x078644FA0747AE14, 0x0000001000000002, 0x000000000078644F, 0x0000000A0656E576}, + [_]u64{0x078644FA0747AE14, 0x0000001000000003, 0x000000000078644F, 0x0000000A05DE8127}, + [_]u64{0x078644FA0747AE14, 0x0000001000000010, 0x000000000078644F, 0x00000009FFC16924}, + [_]u64{0x078644FA0747AE14, 0x00000010078644FA, 0x0000000000782BCC, 0x000000002582B8DC}, + [_]u64{0x078644FA0747AE14, 0x000000100747AE14, 0x0000000000782DA1, 0x000000044039AF80}, + [_]u64{0x078644FA0747AE14, 0x000000107FFFFFFF, 0x000000000074BE5C, 0x0000000C07BC6C70}, + [_]u64{0x078644FA0747AE14, 0x0000001080000000, 0x000000000074BE5C, 0x0000000C0747AE14}, + [_]u64{0x078644FA0747AE14, 0x00000010FFFFFFFD, 0x0000000000714F5A, 0x00000000089B9C22}, + [_]u64{0x078644FA0747AE14, 0x00000010FFFFFFFE, 0x0000000000714F5A, 0x00000000082A4CC8}, + [_]u64{0x078644FA0747AE14, 0x00000010FFFFFFFF, 0x0000000000714F5A, 0x0000000007B8FD6E}, + [_]u64{0x078644FA0747AE14, 0x078644FA00000000, 0x0000000000000001, 0x000000000747AE14}, + [_]u64{0x078644FA0747AE14, 0x078644FA00000001, 0x0000000000000001, 0x000000000747AE13}, + [_]u64{0x078644FA0747AE14, 0x078644FA00000002, 0x0000000000000001, 0x000000000747AE12}, + [_]u64{0x078644FA0747AE14, 0x078644FA00000003, 0x0000000000000001, 0x000000000747AE11}, + [_]u64{0x078644FA0747AE14, 0x078644FA00000010, 0x0000000000000001, 0x000000000747AE04}, + [_]u64{0x078644FA0747AE14, 0x078644FA078644FA, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x078644FA0747AE14, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x078644FA0747AE14, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x078644FA80000000, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x0747AE1400000000, 0x0000000000000001, 0x003E96E60747AE14}, + [_]u64{0x078644FA0747AE14, 0x0747AE1400000001, 0x0000000000000001, 0x003E96E60747AE13}, + [_]u64{0x078644FA0747AE14, 0x0747AE1400000002, 0x0000000000000001, 0x003E96E60747AE12}, + [_]u64{0x078644FA0747AE14, 0x0747AE1400000003, 0x0000000000000001, 0x003E96E60747AE11}, + [_]u64{0x078644FA0747AE14, 0x0747AE1400000010, 0x0000000000000001, 0x003E96E60747AE04}, + [_]u64{0x078644FA0747AE14, 0x0747AE14078644FA, 0x0000000000000001, 0x003E96E5FFC1691A}, + [_]u64{0x078644FA0747AE14, 0x0747AE140747AE14, 0x0000000000000001, 0x003E96E600000000}, + [_]u64{0x078644FA0747AE14, 0x0747AE147FFFFFFF, 0x0000000000000001, 0x003E96E58747AE15}, + [_]u64{0x078644FA0747AE14, 0x0747AE1480000000, 0x0000000000000001, 0x003E96E58747AE14}, + [_]u64{0x078644FA0747AE14, 0x0747AE14FFFFFFFD, 0x0000000000000001, 0x003E96E50747AE17}, + [_]u64{0x078644FA0747AE14, 0x0747AE14FFFFFFFE, 0x0000000000000001, 0x003E96E50747AE16}, + [_]u64{0x078644FA0747AE14, 0x0747AE14FFFFFFFF, 0x0000000000000001, 0x003E96E50747AE15}, + [_]u64{0x078644FA0747AE14, 0x7FFFFFFF00000000, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x7FFFFFFF00000001, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x7FFFFFFF00000002, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x7FFFFFFF00000003, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x7FFFFFFF00000010, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x7FFFFFFF80000000, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x8000000000000000, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x8000000000000001, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x8000000000000002, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x8000000000000003, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x8000000000000010, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x80000000078644FA, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x800000000747AE14, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x800000007FFFFFFF, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x8000000080000000, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x80000000FFFFFFFD, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x80000000FFFFFFFE, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0x80000000FFFFFFFF, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFD00000000, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFD00000001, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFD00000002, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFD00000003, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFD00000010, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFD80000000, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFE00000000, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFE00000001, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFE00000002, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFE00000003, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFE00000010, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFE80000000, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFF00000000, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFF00000001, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFF00000002, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFF00000003, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFF00000010, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFF80000000, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA0747AE14, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x078644FA0747AE14}, + [_]u64{0x078644FA7FFFFFFF, 0x0000000000000001, 0x078644FA7FFFFFFF, 0x0000000000000000}, + [_]u64{0x078644FA7FFFFFFF, 0x0000000000000002, 0x03C3227D3FFFFFFF, 0x0000000000000001}, + [_]u64{0x078644FA7FFFFFFF, 0x0000000000000003, 0x028216FE2AAAAAAA, 0x0000000000000001}, + [_]u64{0x078644FA7FFFFFFF, 0x0000000000000010, 0x0078644FA7FFFFFF, 0x000000000000000F}, + [_]u64{0x078644FA7FFFFFFF, 0x00000000078644FA, 0x0000000100000011, 0x0000000000156B65}, + [_]u64{0x078644FA7FFFFFFF, 0x000000000747AE14, 0x000000010898F2A7, 0x0000000001CE88F3}, + [_]u64{0x078644FA7FFFFFFF, 0x000000007FFFFFFF, 0x000000000F0C89F5, 0x000000000F0C89F4}, + [_]u64{0x078644FA7FFFFFFF, 0x0000000080000000, 0x000000000F0C89F4, 0x000000007FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x00000000FFFFFFFD, 0x00000000078644FA, 0x000000009692CEED}, + [_]u64{0x078644FA7FFFFFFF, 0x00000000FFFFFFFE, 0x00000000078644FA, 0x000000008F0C89F3}, + [_]u64{0x078644FA7FFFFFFF, 0x00000000FFFFFFFF, 0x00000000078644FA, 0x00000000878644F9}, + [_]u64{0x078644FA7FFFFFFF, 0x0000000100000000, 0x00000000078644FA, 0x000000007FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x0000000100000001, 0x00000000078644FA, 0x000000007879BB05}, + [_]u64{0x078644FA7FFFFFFF, 0x0000000100000002, 0x00000000078644FA, 0x0000000070F3760B}, + [_]u64{0x078644FA7FFFFFFF, 0x0000000100000003, 0x00000000078644FA, 0x00000000696D3111}, + [_]u64{0x078644FA7FFFFFFF, 0x0000000100000010, 0x00000000078644FA, 0x00000000079BB05F}, + [_]u64{0x078644FA7FFFFFFF, 0x00000001078644FA, 0x00000000074F44A3, 0x00000000EC09ACD1}, + [_]u64{0x078644FA7FFFFFFF, 0x000000010747AE14, 0x000000000751017E, 0x0000000102B63E27}, + [_]u64{0x078644FA7FFFFFFF, 0x000000017FFFFFFF, 0x0000000005042DFC, 0x0000000085042DFB}, + [_]u64{0x078644FA7FFFFFFF, 0x0000000180000000, 0x0000000005042DFC, 0x000000007FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x00000001FFFFFFFD, 0x0000000003C3227D, 0x000000008B496776}, + [_]u64{0x078644FA7FFFFFFF, 0x00000001FFFFFFFE, 0x0000000003C3227D, 0x00000000878644F9}, + [_]u64{0x078644FA7FFFFFFF, 0x00000001FFFFFFFF, 0x0000000003C3227D, 0x0000000083C3227C}, + [_]u64{0x078644FA7FFFFFFF, 0x0000000200000000, 0x0000000003C3227D, 0x000000007FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x0000000200000001, 0x0000000003C3227D, 0x000000007C3CDD82}, + [_]u64{0x078644FA7FFFFFFF, 0x0000000200000002, 0x0000000003C3227D, 0x000000007879BB05}, + [_]u64{0x078644FA7FFFFFFF, 0x0000000200000003, 0x0000000003C3227D, 0x0000000074B69888}, + [_]u64{0x078644FA7FFFFFFF, 0x0000000200000010, 0x0000000003C3227D, 0x0000000043CDD82F}, + [_]u64{0x078644FA7FFFFFFF, 0x00000002078644FA, 0x0000000003B52F6B, 0x0000000201754581}, + [_]u64{0x078644FA7FFFFFFF, 0x000000020747AE14, 0x0000000003B5A1D4, 0x000000001405436F}, + [_]u64{0x078644FA7FFFFFFF, 0x000000027FFFFFFF, 0x00000000030281FD, 0x00000002030281FC}, + [_]u64{0x078644FA7FFFFFFF, 0x0000000280000000, 0x00000000030281FD, 0x00000001FFFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x00000002FFFFFFFD, 0x00000000028216FE, 0x00000000878644F9}, + [_]u64{0x078644FA7FFFFFFF, 0x00000002FFFFFFFE, 0x00000000028216FE, 0x0000000085042DFB}, + [_]u64{0x078644FA7FFFFFFF, 0x00000002FFFFFFFF, 0x00000000028216FE, 0x00000000828216FD}, + [_]u64{0x078644FA7FFFFFFF, 0x0000000300000000, 0x00000000028216FE, 0x000000007FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x0000000300000001, 0x00000000028216FE, 0x000000007D7DE901}, + [_]u64{0x078644FA7FFFFFFF, 0x0000000300000002, 0x00000000028216FE, 0x000000007AFBD203}, + [_]u64{0x078644FA7FFFFFFF, 0x0000000300000003, 0x00000000028216FE, 0x000000007879BB05}, + [_]u64{0x078644FA7FFFFFFF, 0x0000000300000010, 0x00000000028216FE, 0x0000000057DE901F}, + [_]u64{0x078644FA7FFFFFFF, 0x00000003078644FA, 0x00000000027BDC26, 0x00000002E6ACEAE3}, + [_]u64{0x078644FA7FFFFFFF, 0x000000030747AE14, 0x00000000027C0F7C, 0x000000014C64824F}, + [_]u64{0x078644FA7FFFFFFF, 0x000000037FFFFFFF, 0x0000000002265CD9, 0x0000000302265CD8}, + [_]u64{0x078644FA7FFFFFFF, 0x0000000380000000, 0x0000000002265CD9, 0x00000002FFFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x00000003FFFFFFFD, 0x0000000001E1913E, 0x0000000285A4B3B9}, + [_]u64{0x078644FA7FFFFFFF, 0x00000003FFFFFFFE, 0x0000000001E1913E, 0x0000000283C3227B}, + [_]u64{0x078644FA7FFFFFFF, 0x00000003FFFFFFFF, 0x0000000001E1913E, 0x0000000281E1913D}, + [_]u64{0x078644FA7FFFFFFF, 0x0000001000000000, 0x000000000078644F, 0x0000000A7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x0000001000000001, 0x000000000078644F, 0x0000000A7F879BB0}, + [_]u64{0x078644FA7FFFFFFF, 0x0000001000000002, 0x000000000078644F, 0x0000000A7F0F3761}, + [_]u64{0x078644FA7FFFFFFF, 0x0000001000000003, 0x000000000078644F, 0x0000000A7E96D312}, + [_]u64{0x078644FA7FFFFFFF, 0x0000001000000010, 0x000000000078644F, 0x0000000A7879BB0F}, + [_]u64{0x078644FA7FFFFFFF, 0x00000010078644FA, 0x0000000000782BCC, 0x000000009E3B0AC7}, + [_]u64{0x078644FA7FFFFFFF, 0x000000100747AE14, 0x0000000000782DA1, 0x00000004B8F2016B}, + [_]u64{0x078644FA7FFFFFFF, 0x000000107FFFFFFF, 0x000000000074BE5C, 0x0000000C8074BE5B}, + [_]u64{0x078644FA7FFFFFFF, 0x0000001080000000, 0x000000000074BE5C, 0x0000000C7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x00000010FFFFFFFD, 0x0000000000714F5A, 0x000000008153EE0D}, + [_]u64{0x078644FA7FFFFFFF, 0x00000010FFFFFFFE, 0x0000000000714F5A, 0x0000000080E29EB3}, + [_]u64{0x078644FA7FFFFFFF, 0x00000010FFFFFFFF, 0x0000000000714F5A, 0x0000000080714F59}, + [_]u64{0x078644FA7FFFFFFF, 0x078644FA00000000, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x078644FA00000001, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x078644FA7FFFFFFF, 0x078644FA00000002, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0x078644FA7FFFFFFF, 0x078644FA00000003, 0x0000000000000001, 0x000000007FFFFFFC}, + [_]u64{0x078644FA7FFFFFFF, 0x078644FA00000010, 0x0000000000000001, 0x000000007FFFFFEF}, + [_]u64{0x078644FA7FFFFFFF, 0x078644FA078644FA, 0x0000000000000001, 0x000000007879BB05}, + [_]u64{0x078644FA7FFFFFFF, 0x078644FA0747AE14, 0x0000000000000001, 0x0000000078B851EB}, + [_]u64{0x078644FA7FFFFFFF, 0x078644FA7FFFFFFF, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x078644FA7FFFFFFF, 0x078644FA80000000, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x0747AE1400000000, 0x0000000000000001, 0x003E96E67FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x0747AE1400000001, 0x0000000000000001, 0x003E96E67FFFFFFE}, + [_]u64{0x078644FA7FFFFFFF, 0x0747AE1400000002, 0x0000000000000001, 0x003E96E67FFFFFFD}, + [_]u64{0x078644FA7FFFFFFF, 0x0747AE1400000003, 0x0000000000000001, 0x003E96E67FFFFFFC}, + [_]u64{0x078644FA7FFFFFFF, 0x0747AE1400000010, 0x0000000000000001, 0x003E96E67FFFFFEF}, + [_]u64{0x078644FA7FFFFFFF, 0x0747AE14078644FA, 0x0000000000000001, 0x003E96E67879BB05}, + [_]u64{0x078644FA7FFFFFFF, 0x0747AE140747AE14, 0x0000000000000001, 0x003E96E678B851EB}, + [_]u64{0x078644FA7FFFFFFF, 0x0747AE147FFFFFFF, 0x0000000000000001, 0x003E96E600000000}, + [_]u64{0x078644FA7FFFFFFF, 0x0747AE1480000000, 0x0000000000000001, 0x003E96E5FFFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x0747AE14FFFFFFFD, 0x0000000000000001, 0x003E96E580000002}, + [_]u64{0x078644FA7FFFFFFF, 0x0747AE14FFFFFFFE, 0x0000000000000001, 0x003E96E580000001}, + [_]u64{0x078644FA7FFFFFFF, 0x0747AE14FFFFFFFF, 0x0000000000000001, 0x003E96E580000000}, + [_]u64{0x078644FA7FFFFFFF, 0x7FFFFFFF00000000, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x7FFFFFFF00000001, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x7FFFFFFF00000002, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x7FFFFFFF00000003, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x7FFFFFFF00000010, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x7FFFFFFF80000000, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x8000000000000000, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x8000000000000001, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x8000000000000002, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x8000000000000003, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x8000000000000010, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x80000000078644FA, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x800000000747AE14, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x800000007FFFFFFF, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x8000000080000000, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x80000000FFFFFFFD, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x80000000FFFFFFFE, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0x80000000FFFFFFFF, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFD00000000, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFD00000001, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFD00000002, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFD00000003, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFD00000010, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFD80000000, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFE00000000, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFE00000001, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFE00000002, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFE00000003, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFE00000010, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFE80000000, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFF00000000, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFF00000001, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFF00000002, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFF00000003, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFF00000010, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFF80000000, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA7FFFFFFF, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x078644FA7FFFFFFF}, + [_]u64{0x078644FA80000000, 0x0000000000000001, 0x078644FA80000000, 0x0000000000000000}, + [_]u64{0x078644FA80000000, 0x0000000000000002, 0x03C3227D40000000, 0x0000000000000000}, + [_]u64{0x078644FA80000000, 0x0000000000000003, 0x028216FE2AAAAAAA, 0x0000000000000002}, + [_]u64{0x078644FA80000000, 0x0000000000000010, 0x0078644FA8000000, 0x0000000000000000}, + [_]u64{0x078644FA80000000, 0x00000000078644FA, 0x0000000100000011, 0x0000000000156B66}, + [_]u64{0x078644FA80000000, 0x000000000747AE14, 0x000000010898F2A7, 0x0000000001CE88F4}, + [_]u64{0x078644FA80000000, 0x000000007FFFFFFF, 0x000000000F0C89F5, 0x000000000F0C89F5}, + [_]u64{0x078644FA80000000, 0x0000000080000000, 0x000000000F0C89F5, 0x0000000000000000}, + [_]u64{0x078644FA80000000, 0x00000000FFFFFFFD, 0x00000000078644FA, 0x000000009692CEEE}, + [_]u64{0x078644FA80000000, 0x00000000FFFFFFFE, 0x00000000078644FA, 0x000000008F0C89F4}, + [_]u64{0x078644FA80000000, 0x00000000FFFFFFFF, 0x00000000078644FA, 0x00000000878644FA}, + [_]u64{0x078644FA80000000, 0x0000000100000000, 0x00000000078644FA, 0x0000000080000000}, + [_]u64{0x078644FA80000000, 0x0000000100000001, 0x00000000078644FA, 0x000000007879BB06}, + [_]u64{0x078644FA80000000, 0x0000000100000002, 0x00000000078644FA, 0x0000000070F3760C}, + [_]u64{0x078644FA80000000, 0x0000000100000003, 0x00000000078644FA, 0x00000000696D3112}, + [_]u64{0x078644FA80000000, 0x0000000100000010, 0x00000000078644FA, 0x00000000079BB060}, + [_]u64{0x078644FA80000000, 0x00000001078644FA, 0x00000000074F44A3, 0x00000000EC09ACD2}, + [_]u64{0x078644FA80000000, 0x000000010747AE14, 0x000000000751017E, 0x0000000102B63E28}, + [_]u64{0x078644FA80000000, 0x000000017FFFFFFF, 0x0000000005042DFC, 0x0000000085042DFC}, + [_]u64{0x078644FA80000000, 0x0000000180000000, 0x0000000005042DFC, 0x0000000080000000}, + [_]u64{0x078644FA80000000, 0x00000001FFFFFFFD, 0x0000000003C3227D, 0x000000008B496777}, + [_]u64{0x078644FA80000000, 0x00000001FFFFFFFE, 0x0000000003C3227D, 0x00000000878644FA}, + [_]u64{0x078644FA80000000, 0x00000001FFFFFFFF, 0x0000000003C3227D, 0x0000000083C3227D}, + [_]u64{0x078644FA80000000, 0x0000000200000000, 0x0000000003C3227D, 0x0000000080000000}, + [_]u64{0x078644FA80000000, 0x0000000200000001, 0x0000000003C3227D, 0x000000007C3CDD83}, + [_]u64{0x078644FA80000000, 0x0000000200000002, 0x0000000003C3227D, 0x000000007879BB06}, + [_]u64{0x078644FA80000000, 0x0000000200000003, 0x0000000003C3227D, 0x0000000074B69889}, + [_]u64{0x078644FA80000000, 0x0000000200000010, 0x0000000003C3227D, 0x0000000043CDD830}, + [_]u64{0x078644FA80000000, 0x00000002078644FA, 0x0000000003B52F6B, 0x0000000201754582}, + [_]u64{0x078644FA80000000, 0x000000020747AE14, 0x0000000003B5A1D4, 0x0000000014054370}, + [_]u64{0x078644FA80000000, 0x000000027FFFFFFF, 0x00000000030281FD, 0x00000002030281FD}, + [_]u64{0x078644FA80000000, 0x0000000280000000, 0x00000000030281FD, 0x0000000200000000}, + [_]u64{0x078644FA80000000, 0x00000002FFFFFFFD, 0x00000000028216FE, 0x00000000878644FA}, + [_]u64{0x078644FA80000000, 0x00000002FFFFFFFE, 0x00000000028216FE, 0x0000000085042DFC}, + [_]u64{0x078644FA80000000, 0x00000002FFFFFFFF, 0x00000000028216FE, 0x00000000828216FE}, + [_]u64{0x078644FA80000000, 0x0000000300000000, 0x00000000028216FE, 0x0000000080000000}, + [_]u64{0x078644FA80000000, 0x0000000300000001, 0x00000000028216FE, 0x000000007D7DE902}, + [_]u64{0x078644FA80000000, 0x0000000300000002, 0x00000000028216FE, 0x000000007AFBD204}, + [_]u64{0x078644FA80000000, 0x0000000300000003, 0x00000000028216FE, 0x000000007879BB06}, + [_]u64{0x078644FA80000000, 0x0000000300000010, 0x00000000028216FE, 0x0000000057DE9020}, + [_]u64{0x078644FA80000000, 0x00000003078644FA, 0x00000000027BDC26, 0x00000002E6ACEAE4}, + [_]u64{0x078644FA80000000, 0x000000030747AE14, 0x00000000027C0F7C, 0x000000014C648250}, + [_]u64{0x078644FA80000000, 0x000000037FFFFFFF, 0x0000000002265CD9, 0x0000000302265CD9}, + [_]u64{0x078644FA80000000, 0x0000000380000000, 0x0000000002265CD9, 0x0000000300000000}, + [_]u64{0x078644FA80000000, 0x00000003FFFFFFFD, 0x0000000001E1913E, 0x0000000285A4B3BA}, + [_]u64{0x078644FA80000000, 0x00000003FFFFFFFE, 0x0000000001E1913E, 0x0000000283C3227C}, + [_]u64{0x078644FA80000000, 0x00000003FFFFFFFF, 0x0000000001E1913E, 0x0000000281E1913E}, + [_]u64{0x078644FA80000000, 0x0000001000000000, 0x000000000078644F, 0x0000000A80000000}, + [_]u64{0x078644FA80000000, 0x0000001000000001, 0x000000000078644F, 0x0000000A7F879BB1}, + [_]u64{0x078644FA80000000, 0x0000001000000002, 0x000000000078644F, 0x0000000A7F0F3762}, + [_]u64{0x078644FA80000000, 0x0000001000000003, 0x000000000078644F, 0x0000000A7E96D313}, + [_]u64{0x078644FA80000000, 0x0000001000000010, 0x000000000078644F, 0x0000000A7879BB10}, + [_]u64{0x078644FA80000000, 0x00000010078644FA, 0x0000000000782BCC, 0x000000009E3B0AC8}, + [_]u64{0x078644FA80000000, 0x000000100747AE14, 0x0000000000782DA1, 0x00000004B8F2016C}, + [_]u64{0x078644FA80000000, 0x000000107FFFFFFF, 0x000000000074BE5C, 0x0000000C8074BE5C}, + [_]u64{0x078644FA80000000, 0x0000001080000000, 0x000000000074BE5C, 0x0000000C80000000}, + [_]u64{0x078644FA80000000, 0x00000010FFFFFFFD, 0x0000000000714F5A, 0x000000008153EE0E}, + [_]u64{0x078644FA80000000, 0x00000010FFFFFFFE, 0x0000000000714F5A, 0x0000000080E29EB4}, + [_]u64{0x078644FA80000000, 0x00000010FFFFFFFF, 0x0000000000714F5A, 0x0000000080714F5A}, + [_]u64{0x078644FA80000000, 0x078644FA00000000, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0x078644FA80000000, 0x078644FA00000001, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x078644FA80000000, 0x078644FA00000002, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x078644FA80000000, 0x078644FA00000003, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0x078644FA80000000, 0x078644FA00000010, 0x0000000000000001, 0x000000007FFFFFF0}, + [_]u64{0x078644FA80000000, 0x078644FA078644FA, 0x0000000000000001, 0x000000007879BB06}, + [_]u64{0x078644FA80000000, 0x078644FA0747AE14, 0x0000000000000001, 0x0000000078B851EC}, + [_]u64{0x078644FA80000000, 0x078644FA7FFFFFFF, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x078644FA80000000, 0x078644FA80000000, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x078644FA80000000, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0x0747AE1400000000, 0x0000000000000001, 0x003E96E680000000}, + [_]u64{0x078644FA80000000, 0x0747AE1400000001, 0x0000000000000001, 0x003E96E67FFFFFFF}, + [_]u64{0x078644FA80000000, 0x0747AE1400000002, 0x0000000000000001, 0x003E96E67FFFFFFE}, + [_]u64{0x078644FA80000000, 0x0747AE1400000003, 0x0000000000000001, 0x003E96E67FFFFFFD}, + [_]u64{0x078644FA80000000, 0x0747AE1400000010, 0x0000000000000001, 0x003E96E67FFFFFF0}, + [_]u64{0x078644FA80000000, 0x0747AE14078644FA, 0x0000000000000001, 0x003E96E67879BB06}, + [_]u64{0x078644FA80000000, 0x0747AE140747AE14, 0x0000000000000001, 0x003E96E678B851EC}, + [_]u64{0x078644FA80000000, 0x0747AE147FFFFFFF, 0x0000000000000001, 0x003E96E600000001}, + [_]u64{0x078644FA80000000, 0x0747AE1480000000, 0x0000000000000001, 0x003E96E600000000}, + [_]u64{0x078644FA80000000, 0x0747AE14FFFFFFFD, 0x0000000000000001, 0x003E96E580000003}, + [_]u64{0x078644FA80000000, 0x0747AE14FFFFFFFE, 0x0000000000000001, 0x003E96E580000002}, + [_]u64{0x078644FA80000000, 0x0747AE14FFFFFFFF, 0x0000000000000001, 0x003E96E580000001}, + [_]u64{0x078644FA80000000, 0x7FFFFFFF00000000, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0x7FFFFFFF00000001, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0x7FFFFFFF00000002, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0x7FFFFFFF00000003, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0x7FFFFFFF00000010, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0x7FFFFFFF80000000, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0x8000000000000000, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0x8000000000000001, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0x8000000000000002, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0x8000000000000003, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0x8000000000000010, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0x80000000078644FA, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0x800000000747AE14, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0x800000007FFFFFFF, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0x8000000080000000, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0x80000000FFFFFFFD, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0x80000000FFFFFFFE, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0x80000000FFFFFFFF, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFD00000000, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFD00000001, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFD00000002, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFD00000003, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFD00000010, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFD80000000, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFE00000000, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFE00000001, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFE00000002, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFE00000003, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFE00000010, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFE80000000, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFF00000000, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFF00000001, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFF00000002, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFF00000003, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFF00000010, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFF80000000, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FA80000000, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x078644FA80000000}, + [_]u64{0x078644FAFFFFFFFD, 0x0000000000000001, 0x078644FAFFFFFFFD, 0x0000000000000000}, + [_]u64{0x078644FAFFFFFFFD, 0x0000000000000002, 0x03C3227D7FFFFFFE, 0x0000000000000001}, + [_]u64{0x078644FAFFFFFFFD, 0x0000000000000003, 0x028216FE55555554, 0x0000000000000001}, + [_]u64{0x078644FAFFFFFFFD, 0x0000000000000010, 0x0078644FAFFFFFFF, 0x000000000000000D}, + [_]u64{0x078644FAFFFFFFFD, 0x00000000078644FA, 0x0000000100000022, 0x00000000002AD6C9}, + [_]u64{0x078644FAFFFFFFFD, 0x000000000747AE14, 0x000000010898F2B8, 0x00000000060BF99D}, + [_]u64{0x078644FAFFFFFFFD, 0x000000007FFFFFFF, 0x000000000F0C89F6, 0x000000000F0C89F3}, + [_]u64{0x078644FAFFFFFFFD, 0x0000000080000000, 0x000000000F0C89F5, 0x000000007FFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x00000000FFFFFFFD, 0x00000000078644FB, 0x000000001692CEEE}, + [_]u64{0x078644FAFFFFFFFD, 0x00000000FFFFFFFE, 0x00000000078644FB, 0x000000000F0C89F3}, + [_]u64{0x078644FAFFFFFFFD, 0x00000000FFFFFFFF, 0x00000000078644FB, 0x00000000078644F8}, + [_]u64{0x078644FAFFFFFFFD, 0x0000000100000000, 0x00000000078644FA, 0x00000000FFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x0000000100000001, 0x00000000078644FA, 0x00000000F879BB03}, + [_]u64{0x078644FAFFFFFFFD, 0x0000000100000002, 0x00000000078644FA, 0x00000000F0F37609}, + [_]u64{0x078644FAFFFFFFFD, 0x0000000100000003, 0x00000000078644FA, 0x00000000E96D310F}, + [_]u64{0x078644FAFFFFFFFD, 0x0000000100000010, 0x00000000078644FA, 0x00000000879BB05D}, + [_]u64{0x078644FAFFFFFFFD, 0x00000001078644FA, 0x00000000074F44A4, 0x00000000648367D5}, + [_]u64{0x078644FAFFFFFFFD, 0x000000010747AE14, 0x000000000751017F, 0x000000007B6E9011}, + [_]u64{0x078644FAFFFFFFFD, 0x000000017FFFFFFF, 0x0000000005042DFC, 0x0000000105042DF9}, + [_]u64{0x078644FAFFFFFFFD, 0x0000000180000000, 0x0000000005042DFC, 0x00000000FFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x00000001FFFFFFFD, 0x0000000003C3227D, 0x000000010B496774}, + [_]u64{0x078644FAFFFFFFFD, 0x00000001FFFFFFFE, 0x0000000003C3227D, 0x00000001078644F7}, + [_]u64{0x078644FAFFFFFFFD, 0x00000001FFFFFFFF, 0x0000000003C3227D, 0x0000000103C3227A}, + [_]u64{0x078644FAFFFFFFFD, 0x0000000200000000, 0x0000000003C3227D, 0x00000000FFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x0000000200000001, 0x0000000003C3227D, 0x00000000FC3CDD80}, + [_]u64{0x078644FAFFFFFFFD, 0x0000000200000002, 0x0000000003C3227D, 0x00000000F879BB03}, + [_]u64{0x078644FAFFFFFFFD, 0x0000000200000003, 0x0000000003C3227D, 0x00000000F4B69886}, + [_]u64{0x078644FAFFFFFFFD, 0x0000000200000010, 0x0000000003C3227D, 0x00000000C3CDD82D}, + [_]u64{0x078644FAFFFFFFFD, 0x00000002078644FA, 0x0000000003B52F6C, 0x0000000079EF0085}, + [_]u64{0x078644FAFFFFFFFD, 0x000000020747AE14, 0x0000000003B5A1D4, 0x000000009405436D}, + [_]u64{0x078644FAFFFFFFFD, 0x000000027FFFFFFF, 0x00000000030281FE, 0x00000000030281FB}, + [_]u64{0x078644FAFFFFFFFD, 0x0000000280000000, 0x00000000030281FD, 0x000000027FFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x00000002FFFFFFFD, 0x00000000028216FE, 0x00000001078644F7}, + [_]u64{0x078644FAFFFFFFFD, 0x00000002FFFFFFFE, 0x00000000028216FE, 0x0000000105042DF9}, + [_]u64{0x078644FAFFFFFFFD, 0x00000002FFFFFFFF, 0x00000000028216FE, 0x00000001028216FB}, + [_]u64{0x078644FAFFFFFFFD, 0x0000000300000000, 0x00000000028216FE, 0x00000000FFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x0000000300000001, 0x00000000028216FE, 0x00000000FD7DE8FF}, + [_]u64{0x078644FAFFFFFFFD, 0x0000000300000002, 0x00000000028216FE, 0x00000000FAFBD201}, + [_]u64{0x078644FAFFFFFFFD, 0x0000000300000003, 0x00000000028216FE, 0x00000000F879BB03}, + [_]u64{0x078644FAFFFFFFFD, 0x0000000300000010, 0x00000000028216FE, 0x00000000D7DE901D}, + [_]u64{0x078644FAFFFFFFFD, 0x00000003078644FA, 0x00000000027BDC27, 0x000000005F26A5E7}, + [_]u64{0x078644FAFFFFFFFD, 0x000000030747AE14, 0x00000000027C0F7C, 0x00000001CC64824D}, + [_]u64{0x078644FAFFFFFFFD, 0x000000037FFFFFFF, 0x0000000002265CDA, 0x0000000002265CD7}, + [_]u64{0x078644FAFFFFFFFD, 0x0000000380000000, 0x0000000002265CD9, 0x000000037FFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x00000003FFFFFFFD, 0x0000000001E1913E, 0x0000000305A4B3B7}, + [_]u64{0x078644FAFFFFFFFD, 0x00000003FFFFFFFE, 0x0000000001E1913E, 0x0000000303C32279}, + [_]u64{0x078644FAFFFFFFFD, 0x00000003FFFFFFFF, 0x0000000001E1913E, 0x0000000301E1913B}, + [_]u64{0x078644FAFFFFFFFD, 0x0000001000000000, 0x000000000078644F, 0x0000000AFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x0000001000000001, 0x000000000078644F, 0x0000000AFF879BAE}, + [_]u64{0x078644FAFFFFFFFD, 0x0000001000000002, 0x000000000078644F, 0x0000000AFF0F375F}, + [_]u64{0x078644FAFFFFFFFD, 0x0000001000000003, 0x000000000078644F, 0x0000000AFE96D310}, + [_]u64{0x078644FAFFFFFFFD, 0x0000001000000010, 0x000000000078644F, 0x0000000AF879BB0D}, + [_]u64{0x078644FAFFFFFFFD, 0x00000010078644FA, 0x0000000000782BCC, 0x000000011E3B0AC5}, + [_]u64{0x078644FAFFFFFFFD, 0x000000100747AE14, 0x0000000000782DA1, 0x0000000538F20169}, + [_]u64{0x078644FAFFFFFFFD, 0x000000107FFFFFFF, 0x000000000074BE5C, 0x0000000D0074BE59}, + [_]u64{0x078644FAFFFFFFFD, 0x0000001080000000, 0x000000000074BE5C, 0x0000000CFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x00000010FFFFFFFD, 0x0000000000714F5A, 0x000000010153EE0B}, + [_]u64{0x078644FAFFFFFFFD, 0x00000010FFFFFFFE, 0x0000000000714F5A, 0x0000000100E29EB1}, + [_]u64{0x078644FAFFFFFFFD, 0x00000010FFFFFFFF, 0x0000000000714F5A, 0x0000000100714F57}, + [_]u64{0x078644FAFFFFFFFD, 0x078644FA00000000, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x078644FA00000001, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0x078644FAFFFFFFFD, 0x078644FA00000002, 0x0000000000000001, 0x00000000FFFFFFFB}, + [_]u64{0x078644FAFFFFFFFD, 0x078644FA00000003, 0x0000000000000001, 0x00000000FFFFFFFA}, + [_]u64{0x078644FAFFFFFFFD, 0x078644FA00000010, 0x0000000000000001, 0x00000000FFFFFFED}, + [_]u64{0x078644FAFFFFFFFD, 0x078644FA078644FA, 0x0000000000000001, 0x00000000F879BB03}, + [_]u64{0x078644FAFFFFFFFD, 0x078644FA0747AE14, 0x0000000000000001, 0x00000000F8B851E9}, + [_]u64{0x078644FAFFFFFFFD, 0x078644FA7FFFFFFF, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x078644FAFFFFFFFD, 0x078644FA80000000, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x078644FAFFFFFFFD, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x078644FAFFFFFFFD, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x0747AE1400000000, 0x0000000000000001, 0x003E96E6FFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x0747AE1400000001, 0x0000000000000001, 0x003E96E6FFFFFFFC}, + [_]u64{0x078644FAFFFFFFFD, 0x0747AE1400000002, 0x0000000000000001, 0x003E96E6FFFFFFFB}, + [_]u64{0x078644FAFFFFFFFD, 0x0747AE1400000003, 0x0000000000000001, 0x003E96E6FFFFFFFA}, + [_]u64{0x078644FAFFFFFFFD, 0x0747AE1400000010, 0x0000000000000001, 0x003E96E6FFFFFFED}, + [_]u64{0x078644FAFFFFFFFD, 0x0747AE14078644FA, 0x0000000000000001, 0x003E96E6F879BB03}, + [_]u64{0x078644FAFFFFFFFD, 0x0747AE140747AE14, 0x0000000000000001, 0x003E96E6F8B851E9}, + [_]u64{0x078644FAFFFFFFFD, 0x0747AE147FFFFFFF, 0x0000000000000001, 0x003E96E67FFFFFFE}, + [_]u64{0x078644FAFFFFFFFD, 0x0747AE1480000000, 0x0000000000000001, 0x003E96E67FFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x0747AE14FFFFFFFD, 0x0000000000000001, 0x003E96E600000000}, + [_]u64{0x078644FAFFFFFFFD, 0x0747AE14FFFFFFFE, 0x0000000000000001, 0x003E96E5FFFFFFFF}, + [_]u64{0x078644FAFFFFFFFD, 0x0747AE14FFFFFFFF, 0x0000000000000001, 0x003E96E5FFFFFFFE}, + [_]u64{0x078644FAFFFFFFFD, 0x7FFFFFFF00000000, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x7FFFFFFF00000001, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x7FFFFFFF00000002, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x7FFFFFFF00000003, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x7FFFFFFF00000010, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x7FFFFFFF80000000, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x8000000000000000, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x8000000000000001, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x8000000000000002, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x8000000000000003, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x8000000000000010, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x80000000078644FA, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x800000000747AE14, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x800000007FFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x8000000080000000, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x80000000FFFFFFFD, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x80000000FFFFFFFE, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0x80000000FFFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFD00000000, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFD00000001, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFD00000002, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFD00000003, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFD00000010, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFD80000000, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFE00000000, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFE00000001, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFE00000002, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFE00000003, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFE00000010, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFE80000000, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFF00000000, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFF00000001, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFF00000002, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFF00000003, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFF00000010, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFF80000000, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFD, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFD}, + [_]u64{0x078644FAFFFFFFFE, 0x0000000000000001, 0x078644FAFFFFFFFE, 0x0000000000000000}, + [_]u64{0x078644FAFFFFFFFE, 0x0000000000000002, 0x03C3227D7FFFFFFF, 0x0000000000000000}, + [_]u64{0x078644FAFFFFFFFE, 0x0000000000000003, 0x028216FE55555554, 0x0000000000000002}, + [_]u64{0x078644FAFFFFFFFE, 0x0000000000000010, 0x0078644FAFFFFFFF, 0x000000000000000E}, + [_]u64{0x078644FAFFFFFFFE, 0x00000000078644FA, 0x0000000100000022, 0x00000000002AD6CA}, + [_]u64{0x078644FAFFFFFFFE, 0x000000000747AE14, 0x000000010898F2B8, 0x00000000060BF99E}, + [_]u64{0x078644FAFFFFFFFE, 0x000000007FFFFFFF, 0x000000000F0C89F6, 0x000000000F0C89F4}, + [_]u64{0x078644FAFFFFFFFE, 0x0000000080000000, 0x000000000F0C89F5, 0x000000007FFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x00000000FFFFFFFD, 0x00000000078644FB, 0x000000001692CEEF}, + [_]u64{0x078644FAFFFFFFFE, 0x00000000FFFFFFFE, 0x00000000078644FB, 0x000000000F0C89F4}, + [_]u64{0x078644FAFFFFFFFE, 0x00000000FFFFFFFF, 0x00000000078644FB, 0x00000000078644F9}, + [_]u64{0x078644FAFFFFFFFE, 0x0000000100000000, 0x00000000078644FA, 0x00000000FFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x0000000100000001, 0x00000000078644FA, 0x00000000F879BB04}, + [_]u64{0x078644FAFFFFFFFE, 0x0000000100000002, 0x00000000078644FA, 0x00000000F0F3760A}, + [_]u64{0x078644FAFFFFFFFE, 0x0000000100000003, 0x00000000078644FA, 0x00000000E96D3110}, + [_]u64{0x078644FAFFFFFFFE, 0x0000000100000010, 0x00000000078644FA, 0x00000000879BB05E}, + [_]u64{0x078644FAFFFFFFFE, 0x00000001078644FA, 0x00000000074F44A4, 0x00000000648367D6}, + [_]u64{0x078644FAFFFFFFFE, 0x000000010747AE14, 0x000000000751017F, 0x000000007B6E9012}, + [_]u64{0x078644FAFFFFFFFE, 0x000000017FFFFFFF, 0x0000000005042DFC, 0x0000000105042DFA}, + [_]u64{0x078644FAFFFFFFFE, 0x0000000180000000, 0x0000000005042DFC, 0x00000000FFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x00000001FFFFFFFD, 0x0000000003C3227D, 0x000000010B496775}, + [_]u64{0x078644FAFFFFFFFE, 0x00000001FFFFFFFE, 0x0000000003C3227D, 0x00000001078644F8}, + [_]u64{0x078644FAFFFFFFFE, 0x00000001FFFFFFFF, 0x0000000003C3227D, 0x0000000103C3227B}, + [_]u64{0x078644FAFFFFFFFE, 0x0000000200000000, 0x0000000003C3227D, 0x00000000FFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x0000000200000001, 0x0000000003C3227D, 0x00000000FC3CDD81}, + [_]u64{0x078644FAFFFFFFFE, 0x0000000200000002, 0x0000000003C3227D, 0x00000000F879BB04}, + [_]u64{0x078644FAFFFFFFFE, 0x0000000200000003, 0x0000000003C3227D, 0x00000000F4B69887}, + [_]u64{0x078644FAFFFFFFFE, 0x0000000200000010, 0x0000000003C3227D, 0x00000000C3CDD82E}, + [_]u64{0x078644FAFFFFFFFE, 0x00000002078644FA, 0x0000000003B52F6C, 0x0000000079EF0086}, + [_]u64{0x078644FAFFFFFFFE, 0x000000020747AE14, 0x0000000003B5A1D4, 0x000000009405436E}, + [_]u64{0x078644FAFFFFFFFE, 0x000000027FFFFFFF, 0x00000000030281FE, 0x00000000030281FC}, + [_]u64{0x078644FAFFFFFFFE, 0x0000000280000000, 0x00000000030281FD, 0x000000027FFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x00000002FFFFFFFD, 0x00000000028216FE, 0x00000001078644F8}, + [_]u64{0x078644FAFFFFFFFE, 0x00000002FFFFFFFE, 0x00000000028216FE, 0x0000000105042DFA}, + [_]u64{0x078644FAFFFFFFFE, 0x00000002FFFFFFFF, 0x00000000028216FE, 0x00000001028216FC}, + [_]u64{0x078644FAFFFFFFFE, 0x0000000300000000, 0x00000000028216FE, 0x00000000FFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x0000000300000001, 0x00000000028216FE, 0x00000000FD7DE900}, + [_]u64{0x078644FAFFFFFFFE, 0x0000000300000002, 0x00000000028216FE, 0x00000000FAFBD202}, + [_]u64{0x078644FAFFFFFFFE, 0x0000000300000003, 0x00000000028216FE, 0x00000000F879BB04}, + [_]u64{0x078644FAFFFFFFFE, 0x0000000300000010, 0x00000000028216FE, 0x00000000D7DE901E}, + [_]u64{0x078644FAFFFFFFFE, 0x00000003078644FA, 0x00000000027BDC27, 0x000000005F26A5E8}, + [_]u64{0x078644FAFFFFFFFE, 0x000000030747AE14, 0x00000000027C0F7C, 0x00000001CC64824E}, + [_]u64{0x078644FAFFFFFFFE, 0x000000037FFFFFFF, 0x0000000002265CDA, 0x0000000002265CD8}, + [_]u64{0x078644FAFFFFFFFE, 0x0000000380000000, 0x0000000002265CD9, 0x000000037FFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x00000003FFFFFFFD, 0x0000000001E1913E, 0x0000000305A4B3B8}, + [_]u64{0x078644FAFFFFFFFE, 0x00000003FFFFFFFE, 0x0000000001E1913E, 0x0000000303C3227A}, + [_]u64{0x078644FAFFFFFFFE, 0x00000003FFFFFFFF, 0x0000000001E1913E, 0x0000000301E1913C}, + [_]u64{0x078644FAFFFFFFFE, 0x0000001000000000, 0x000000000078644F, 0x0000000AFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x0000001000000001, 0x000000000078644F, 0x0000000AFF879BAF}, + [_]u64{0x078644FAFFFFFFFE, 0x0000001000000002, 0x000000000078644F, 0x0000000AFF0F3760}, + [_]u64{0x078644FAFFFFFFFE, 0x0000001000000003, 0x000000000078644F, 0x0000000AFE96D311}, + [_]u64{0x078644FAFFFFFFFE, 0x0000001000000010, 0x000000000078644F, 0x0000000AF879BB0E}, + [_]u64{0x078644FAFFFFFFFE, 0x00000010078644FA, 0x0000000000782BCC, 0x000000011E3B0AC6}, + [_]u64{0x078644FAFFFFFFFE, 0x000000100747AE14, 0x0000000000782DA1, 0x0000000538F2016A}, + [_]u64{0x078644FAFFFFFFFE, 0x000000107FFFFFFF, 0x000000000074BE5C, 0x0000000D0074BE5A}, + [_]u64{0x078644FAFFFFFFFE, 0x0000001080000000, 0x000000000074BE5C, 0x0000000CFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x00000010FFFFFFFD, 0x0000000000714F5A, 0x000000010153EE0C}, + [_]u64{0x078644FAFFFFFFFE, 0x00000010FFFFFFFE, 0x0000000000714F5A, 0x0000000100E29EB2}, + [_]u64{0x078644FAFFFFFFFE, 0x00000010FFFFFFFF, 0x0000000000714F5A, 0x0000000100714F58}, + [_]u64{0x078644FAFFFFFFFE, 0x078644FA00000000, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x078644FA00000001, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0x078644FAFFFFFFFE, 0x078644FA00000002, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0x078644FAFFFFFFFE, 0x078644FA00000003, 0x0000000000000001, 0x00000000FFFFFFFB}, + [_]u64{0x078644FAFFFFFFFE, 0x078644FA00000010, 0x0000000000000001, 0x00000000FFFFFFEE}, + [_]u64{0x078644FAFFFFFFFE, 0x078644FA078644FA, 0x0000000000000001, 0x00000000F879BB04}, + [_]u64{0x078644FAFFFFFFFE, 0x078644FA0747AE14, 0x0000000000000001, 0x00000000F8B851EA}, + [_]u64{0x078644FAFFFFFFFE, 0x078644FA7FFFFFFF, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x078644FAFFFFFFFE, 0x078644FA80000000, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x078644FAFFFFFFFD, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x078644FAFFFFFFFE, 0x078644FAFFFFFFFE, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x078644FAFFFFFFFE, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x0747AE1400000000, 0x0000000000000001, 0x003E96E6FFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x0747AE1400000001, 0x0000000000000001, 0x003E96E6FFFFFFFD}, + [_]u64{0x078644FAFFFFFFFE, 0x0747AE1400000002, 0x0000000000000001, 0x003E96E6FFFFFFFC}, + [_]u64{0x078644FAFFFFFFFE, 0x0747AE1400000003, 0x0000000000000001, 0x003E96E6FFFFFFFB}, + [_]u64{0x078644FAFFFFFFFE, 0x0747AE1400000010, 0x0000000000000001, 0x003E96E6FFFFFFEE}, + [_]u64{0x078644FAFFFFFFFE, 0x0747AE14078644FA, 0x0000000000000001, 0x003E96E6F879BB04}, + [_]u64{0x078644FAFFFFFFFE, 0x0747AE140747AE14, 0x0000000000000001, 0x003E96E6F8B851EA}, + [_]u64{0x078644FAFFFFFFFE, 0x0747AE147FFFFFFF, 0x0000000000000001, 0x003E96E67FFFFFFF}, + [_]u64{0x078644FAFFFFFFFE, 0x0747AE1480000000, 0x0000000000000001, 0x003E96E67FFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x0747AE14FFFFFFFD, 0x0000000000000001, 0x003E96E600000001}, + [_]u64{0x078644FAFFFFFFFE, 0x0747AE14FFFFFFFE, 0x0000000000000001, 0x003E96E600000000}, + [_]u64{0x078644FAFFFFFFFE, 0x0747AE14FFFFFFFF, 0x0000000000000001, 0x003E96E5FFFFFFFF}, + [_]u64{0x078644FAFFFFFFFE, 0x7FFFFFFF00000000, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x7FFFFFFF00000001, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x7FFFFFFF00000002, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x7FFFFFFF00000003, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x7FFFFFFF00000010, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x7FFFFFFF80000000, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x8000000000000000, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x8000000000000001, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x8000000000000002, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x8000000000000003, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x8000000000000010, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x80000000078644FA, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x800000000747AE14, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x800000007FFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x8000000080000000, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x80000000FFFFFFFD, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x80000000FFFFFFFE, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0x80000000FFFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFD00000000, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFD00000001, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFD00000002, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFD00000003, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFD00000010, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFD80000000, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFE00000000, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFE00000001, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFE00000002, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFE00000003, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFE00000010, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFE80000000, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFF00000000, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFF00000001, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFF00000002, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFF00000003, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFF00000010, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFF80000000, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFE, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFE}, + [_]u64{0x078644FAFFFFFFFF, 0x0000000000000001, 0x078644FAFFFFFFFF, 0x0000000000000000}, + [_]u64{0x078644FAFFFFFFFF, 0x0000000000000002, 0x03C3227D7FFFFFFF, 0x0000000000000001}, + [_]u64{0x078644FAFFFFFFFF, 0x0000000000000003, 0x028216FE55555555, 0x0000000000000000}, + [_]u64{0x078644FAFFFFFFFF, 0x0000000000000010, 0x0078644FAFFFFFFF, 0x000000000000000F}, + [_]u64{0x078644FAFFFFFFFF, 0x00000000078644FA, 0x0000000100000022, 0x00000000002AD6CB}, + [_]u64{0x078644FAFFFFFFFF, 0x000000000747AE14, 0x000000010898F2B8, 0x00000000060BF99F}, + [_]u64{0x078644FAFFFFFFFF, 0x000000007FFFFFFF, 0x000000000F0C89F6, 0x000000000F0C89F5}, + [_]u64{0x078644FAFFFFFFFF, 0x0000000080000000, 0x000000000F0C89F5, 0x000000007FFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x00000000FFFFFFFD, 0x00000000078644FB, 0x000000001692CEF0}, + [_]u64{0x078644FAFFFFFFFF, 0x00000000FFFFFFFE, 0x00000000078644FB, 0x000000000F0C89F5}, + [_]u64{0x078644FAFFFFFFFF, 0x00000000FFFFFFFF, 0x00000000078644FB, 0x00000000078644FA}, + [_]u64{0x078644FAFFFFFFFF, 0x0000000100000000, 0x00000000078644FA, 0x00000000FFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x0000000100000001, 0x00000000078644FA, 0x00000000F879BB05}, + [_]u64{0x078644FAFFFFFFFF, 0x0000000100000002, 0x00000000078644FA, 0x00000000F0F3760B}, + [_]u64{0x078644FAFFFFFFFF, 0x0000000100000003, 0x00000000078644FA, 0x00000000E96D3111}, + [_]u64{0x078644FAFFFFFFFF, 0x0000000100000010, 0x00000000078644FA, 0x00000000879BB05F}, + [_]u64{0x078644FAFFFFFFFF, 0x00000001078644FA, 0x00000000074F44A4, 0x00000000648367D7}, + [_]u64{0x078644FAFFFFFFFF, 0x000000010747AE14, 0x000000000751017F, 0x000000007B6E9013}, + [_]u64{0x078644FAFFFFFFFF, 0x000000017FFFFFFF, 0x0000000005042DFC, 0x0000000105042DFB}, + [_]u64{0x078644FAFFFFFFFF, 0x0000000180000000, 0x0000000005042DFC, 0x00000000FFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x00000001FFFFFFFD, 0x0000000003C3227D, 0x000000010B496776}, + [_]u64{0x078644FAFFFFFFFF, 0x00000001FFFFFFFE, 0x0000000003C3227D, 0x00000001078644F9}, + [_]u64{0x078644FAFFFFFFFF, 0x00000001FFFFFFFF, 0x0000000003C3227D, 0x0000000103C3227C}, + [_]u64{0x078644FAFFFFFFFF, 0x0000000200000000, 0x0000000003C3227D, 0x00000000FFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x0000000200000001, 0x0000000003C3227D, 0x00000000FC3CDD82}, + [_]u64{0x078644FAFFFFFFFF, 0x0000000200000002, 0x0000000003C3227D, 0x00000000F879BB05}, + [_]u64{0x078644FAFFFFFFFF, 0x0000000200000003, 0x0000000003C3227D, 0x00000000F4B69888}, + [_]u64{0x078644FAFFFFFFFF, 0x0000000200000010, 0x0000000003C3227D, 0x00000000C3CDD82F}, + [_]u64{0x078644FAFFFFFFFF, 0x00000002078644FA, 0x0000000003B52F6C, 0x0000000079EF0087}, + [_]u64{0x078644FAFFFFFFFF, 0x000000020747AE14, 0x0000000003B5A1D4, 0x000000009405436F}, + [_]u64{0x078644FAFFFFFFFF, 0x000000027FFFFFFF, 0x00000000030281FE, 0x00000000030281FD}, + [_]u64{0x078644FAFFFFFFFF, 0x0000000280000000, 0x00000000030281FD, 0x000000027FFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x00000002FFFFFFFD, 0x00000000028216FE, 0x00000001078644F9}, + [_]u64{0x078644FAFFFFFFFF, 0x00000002FFFFFFFE, 0x00000000028216FE, 0x0000000105042DFB}, + [_]u64{0x078644FAFFFFFFFF, 0x00000002FFFFFFFF, 0x00000000028216FE, 0x00000001028216FD}, + [_]u64{0x078644FAFFFFFFFF, 0x0000000300000000, 0x00000000028216FE, 0x00000000FFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x0000000300000001, 0x00000000028216FE, 0x00000000FD7DE901}, + [_]u64{0x078644FAFFFFFFFF, 0x0000000300000002, 0x00000000028216FE, 0x00000000FAFBD203}, + [_]u64{0x078644FAFFFFFFFF, 0x0000000300000003, 0x00000000028216FE, 0x00000000F879BB05}, + [_]u64{0x078644FAFFFFFFFF, 0x0000000300000010, 0x00000000028216FE, 0x00000000D7DE901F}, + [_]u64{0x078644FAFFFFFFFF, 0x00000003078644FA, 0x00000000027BDC27, 0x000000005F26A5E9}, + [_]u64{0x078644FAFFFFFFFF, 0x000000030747AE14, 0x00000000027C0F7C, 0x00000001CC64824F}, + [_]u64{0x078644FAFFFFFFFF, 0x000000037FFFFFFF, 0x0000000002265CDA, 0x0000000002265CD9}, + [_]u64{0x078644FAFFFFFFFF, 0x0000000380000000, 0x0000000002265CD9, 0x000000037FFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x00000003FFFFFFFD, 0x0000000001E1913E, 0x0000000305A4B3B9}, + [_]u64{0x078644FAFFFFFFFF, 0x00000003FFFFFFFE, 0x0000000001E1913E, 0x0000000303C3227B}, + [_]u64{0x078644FAFFFFFFFF, 0x00000003FFFFFFFF, 0x0000000001E1913E, 0x0000000301E1913D}, + [_]u64{0x078644FAFFFFFFFF, 0x0000001000000000, 0x000000000078644F, 0x0000000AFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x0000001000000001, 0x000000000078644F, 0x0000000AFF879BB0}, + [_]u64{0x078644FAFFFFFFFF, 0x0000001000000002, 0x000000000078644F, 0x0000000AFF0F3761}, + [_]u64{0x078644FAFFFFFFFF, 0x0000001000000003, 0x000000000078644F, 0x0000000AFE96D312}, + [_]u64{0x078644FAFFFFFFFF, 0x0000001000000010, 0x000000000078644F, 0x0000000AF879BB0F}, + [_]u64{0x078644FAFFFFFFFF, 0x00000010078644FA, 0x0000000000782BCC, 0x000000011E3B0AC7}, + [_]u64{0x078644FAFFFFFFFF, 0x000000100747AE14, 0x0000000000782DA1, 0x0000000538F2016B}, + [_]u64{0x078644FAFFFFFFFF, 0x000000107FFFFFFF, 0x000000000074BE5C, 0x0000000D0074BE5B}, + [_]u64{0x078644FAFFFFFFFF, 0x0000001080000000, 0x000000000074BE5C, 0x0000000CFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x00000010FFFFFFFD, 0x0000000000714F5A, 0x000000010153EE0D}, + [_]u64{0x078644FAFFFFFFFF, 0x00000010FFFFFFFE, 0x0000000000714F5A, 0x0000000100E29EB3}, + [_]u64{0x078644FAFFFFFFFF, 0x00000010FFFFFFFF, 0x0000000000714F5A, 0x0000000100714F59}, + [_]u64{0x078644FAFFFFFFFF, 0x078644FA00000000, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x078644FA00000001, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0x078644FAFFFFFFFF, 0x078644FA00000002, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0x078644FAFFFFFFFF, 0x078644FA00000003, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0x078644FAFFFFFFFF, 0x078644FA00000010, 0x0000000000000001, 0x00000000FFFFFFEF}, + [_]u64{0x078644FAFFFFFFFF, 0x078644FA078644FA, 0x0000000000000001, 0x00000000F879BB05}, + [_]u64{0x078644FAFFFFFFFF, 0x078644FA0747AE14, 0x0000000000000001, 0x00000000F8B851EB}, + [_]u64{0x078644FAFFFFFFFF, 0x078644FA7FFFFFFF, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0x078644FAFFFFFFFF, 0x078644FA80000000, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x078644FAFFFFFFFD, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x078644FAFFFFFFFF, 0x078644FAFFFFFFFE, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x078644FAFFFFFFFF, 0x078644FAFFFFFFFF, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x078644FAFFFFFFFF, 0x0747AE1400000000, 0x0000000000000001, 0x003E96E6FFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x0747AE1400000001, 0x0000000000000001, 0x003E96E6FFFFFFFE}, + [_]u64{0x078644FAFFFFFFFF, 0x0747AE1400000002, 0x0000000000000001, 0x003E96E6FFFFFFFD}, + [_]u64{0x078644FAFFFFFFFF, 0x0747AE1400000003, 0x0000000000000001, 0x003E96E6FFFFFFFC}, + [_]u64{0x078644FAFFFFFFFF, 0x0747AE1400000010, 0x0000000000000001, 0x003E96E6FFFFFFEF}, + [_]u64{0x078644FAFFFFFFFF, 0x0747AE14078644FA, 0x0000000000000001, 0x003E96E6F879BB05}, + [_]u64{0x078644FAFFFFFFFF, 0x0747AE140747AE14, 0x0000000000000001, 0x003E96E6F8B851EB}, + [_]u64{0x078644FAFFFFFFFF, 0x0747AE147FFFFFFF, 0x0000000000000001, 0x003E96E680000000}, + [_]u64{0x078644FAFFFFFFFF, 0x0747AE1480000000, 0x0000000000000001, 0x003E96E67FFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x0747AE14FFFFFFFD, 0x0000000000000001, 0x003E96E600000002}, + [_]u64{0x078644FAFFFFFFFF, 0x0747AE14FFFFFFFE, 0x0000000000000001, 0x003E96E600000001}, + [_]u64{0x078644FAFFFFFFFF, 0x0747AE14FFFFFFFF, 0x0000000000000001, 0x003E96E600000000}, + [_]u64{0x078644FAFFFFFFFF, 0x7FFFFFFF00000000, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x7FFFFFFF00000001, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x7FFFFFFF00000002, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x7FFFFFFF00000003, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x7FFFFFFF00000010, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x7FFFFFFF80000000, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x8000000000000000, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x8000000000000001, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x8000000000000002, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x8000000000000003, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x8000000000000010, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x80000000078644FA, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x800000000747AE14, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x800000007FFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x8000000080000000, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x80000000FFFFFFFD, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x80000000FFFFFFFE, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0x80000000FFFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFD00000000, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFD00000001, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFD00000002, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFD00000003, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFD00000010, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFD80000000, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFE00000000, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFE00000001, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFE00000002, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFE00000003, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFE00000010, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFE80000000, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFF00000000, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFF00000001, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFF00000002, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFF00000003, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFF00000010, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFF80000000, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x078644FAFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x078644FAFFFFFFFF}, + [_]u64{0x0747AE1400000000, 0x0000000000000001, 0x0747AE1400000000, 0x0000000000000000}, + [_]u64{0x0747AE1400000000, 0x0000000000000002, 0x03A3D70A00000000, 0x0000000000000000}, + [_]u64{0x0747AE1400000000, 0x0000000000000003, 0x026D3A06AAAAAAAA, 0x0000000000000002}, + [_]u64{0x0747AE1400000000, 0x0000000000000010, 0x00747AE140000000, 0x0000000000000000}, + [_]u64{0x0747AE1400000000, 0x00000000078644FA, 0x00000000F7AE911D, 0x0000000000CC95AE}, + [_]u64{0x0747AE1400000000, 0x000000000747AE14, 0x0000000100000000, 0x0000000000000000}, + [_]u64{0x0747AE1400000000, 0x000000007FFFFFFF, 0x000000000E8F5C28, 0x000000000E8F5C28}, + [_]u64{0x0747AE1400000000, 0x0000000080000000, 0x000000000E8F5C28, 0x0000000000000000}, + [_]u64{0x0747AE1400000000, 0x00000000FFFFFFFD, 0x000000000747AE14, 0x0000000015D70A3C}, + [_]u64{0x0747AE1400000000, 0x00000000FFFFFFFE, 0x000000000747AE14, 0x000000000E8F5C28}, + [_]u64{0x0747AE1400000000, 0x00000000FFFFFFFF, 0x000000000747AE14, 0x000000000747AE14}, + [_]u64{0x0747AE1400000000, 0x0000000100000000, 0x000000000747AE14, 0x0000000000000000}, + [_]u64{0x0747AE1400000000, 0x0000000100000001, 0x000000000747AE13, 0x00000000F8B851ED}, + [_]u64{0x0747AE1400000000, 0x0000000100000002, 0x000000000747AE13, 0x00000000F170A3DA}, + [_]u64{0x0747AE1400000000, 0x0000000100000003, 0x000000000747AE13, 0x00000000EA28F5C7}, + [_]u64{0x0747AE1400000000, 0x0000000100000010, 0x000000000747AE13, 0x000000008B851ED0}, + [_]u64{0x0747AE1400000000, 0x00000001078644FA, 0x000000000712773F, 0x000000000C50D07A}, + [_]u64{0x0747AE1400000000, 0x000000010747AE14, 0x00000000071425A5, 0x00000000CD13E91C}, + [_]u64{0x0747AE1400000000, 0x000000017FFFFFFF, 0x0000000004DA740D, 0x0000000084DA740D}, + [_]u64{0x0747AE1400000000, 0x0000000180000000, 0x0000000004DA740D, 0x0000000080000000}, + [_]u64{0x0747AE1400000000, 0x00000001FFFFFFFD, 0x0000000003A3D70A, 0x000000000AEB851E}, + [_]u64{0x0747AE1400000000, 0x00000001FFFFFFFE, 0x0000000003A3D70A, 0x000000000747AE14}, + [_]u64{0x0747AE1400000000, 0x00000001FFFFFFFF, 0x0000000003A3D70A, 0x0000000003A3D70A}, + [_]u64{0x0747AE1400000000, 0x0000000200000000, 0x0000000003A3D70A, 0x0000000000000000}, + [_]u64{0x0747AE1400000000, 0x0000000200000001, 0x0000000003A3D709, 0x00000001FC5C28F7}, + [_]u64{0x0747AE1400000000, 0x0000000200000002, 0x0000000003A3D709, 0x00000001F8B851EE}, + [_]u64{0x0747AE1400000000, 0x0000000200000003, 0x0000000003A3D709, 0x00000001F5147AE5}, + [_]u64{0x0747AE1400000000, 0x0000000200000010, 0x0000000003A3D709, 0x00000001C5C28F70}, + [_]u64{0x0747AE1400000000, 0x00000002078644FA, 0x0000000003965801, 0x000000007847CB06}, + [_]u64{0x0747AE1400000000, 0x000000020747AE14, 0x000000000396C6B1, 0x000000014B152C2C}, + [_]u64{0x0747AE1400000000, 0x000000027FFFFFFF, 0x0000000002E978D4, 0x0000000202E978D4}, + [_]u64{0x0747AE1400000000, 0x0000000280000000, 0x0000000002E978D4, 0x0000000200000000}, + [_]u64{0x0747AE1400000000, 0x00000002FFFFFFFD, 0x00000000026D3A06, 0x000000020747AE12}, + [_]u64{0x0747AE1400000000, 0x00000002FFFFFFFE, 0x00000000026D3A06, 0x0000000204DA740C}, + [_]u64{0x0747AE1400000000, 0x00000002FFFFFFFF, 0x00000000026D3A06, 0x00000002026D3A06}, + [_]u64{0x0747AE1400000000, 0x0000000300000000, 0x00000000026D3A06, 0x0000000200000000}, + [_]u64{0x0747AE1400000000, 0x0000000300000001, 0x00000000026D3A06, 0x00000001FD92C5FA}, + [_]u64{0x0747AE1400000000, 0x0000000300000002, 0x00000000026D3A06, 0x00000001FB258BF4}, + [_]u64{0x0747AE1400000000, 0x0000000300000003, 0x00000000026D3A06, 0x00000001F8B851EE}, + [_]u64{0x0747AE1400000000, 0x0000000300000010, 0x00000000026D3A06, 0x00000001D92C5FA0}, + [_]u64{0x0747AE1400000000, 0x00000003078644FA, 0x0000000002673301, 0x000000018425ED06}, + [_]u64{0x0747AE1400000000, 0x000000030747AE14, 0x00000000026764AB, 0x00000002F112E8A4}, + [_]u64{0x0747AE1400000000, 0x000000037FFFFFFF, 0x0000000002147AE1, 0x0000000082147AE1}, + [_]u64{0x0747AE1400000000, 0x0000000380000000, 0x0000000002147AE1, 0x0000000080000000}, + [_]u64{0x0747AE1400000000, 0x00000003FFFFFFFD, 0x0000000001D1EB85, 0x000000000575C28F}, + [_]u64{0x0747AE1400000000, 0x00000003FFFFFFFE, 0x0000000001D1EB85, 0x0000000003A3D70A}, + [_]u64{0x0747AE1400000000, 0x00000003FFFFFFFF, 0x0000000001D1EB85, 0x0000000001D1EB85}, + [_]u64{0x0747AE1400000000, 0x0000001000000000, 0x0000000000747AE1, 0x0000000400000000}, + [_]u64{0x0747AE1400000000, 0x0000001000000001, 0x0000000000747AE1, 0x00000003FF8B851F}, + [_]u64{0x0747AE1400000000, 0x0000001000000002, 0x0000000000747AE1, 0x00000003FF170A3E}, + [_]u64{0x0747AE1400000000, 0x0000001000000003, 0x0000000000747AE1, 0x00000003FEA28F5D}, + [_]u64{0x0747AE1400000000, 0x0000001000000010, 0x0000000000747AE1, 0x00000003F8B851F0}, + [_]u64{0x0747AE1400000000, 0x00000010078644FA, 0x0000000000744433, 0x0000000B94A5DA32}, + [_]u64{0x0747AE1400000000, 0x000000100747AE14, 0x00000000007445F9, 0x0000000BB84C4A8C}, + [_]u64{0x0747AE1400000000, 0x000000107FFFFFFF, 0x000000000070F347, 0x000000008070F347}, + [_]u64{0x0747AE1400000000, 0x0000001080000000, 0x000000000070F347, 0x0000000080000000}, + [_]u64{0x0747AE1400000000, 0x00000010FFFFFFFD, 0x00000000006DA0D4, 0x000000000148E27C}, + [_]u64{0x0747AE1400000000, 0x00000010FFFFFFFE, 0x00000000006DA0D4, 0x0000000000DB41A8}, + [_]u64{0x0747AE1400000000, 0x00000010FFFFFFFF, 0x00000000006DA0D4, 0x00000000006DA0D4}, + [_]u64{0x0747AE1400000000, 0x078644FA00000000, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x078644FA00000001, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x078644FA00000002, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x078644FA00000003, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x078644FA00000010, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x078644FA078644FA, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x078644FA0747AE14, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x078644FA80000000, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x0747AE1400000000, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0747AE1400000000, 0x0747AE1400000001, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x0747AE1400000002, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x0747AE1400000003, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x0747AE1400000010, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x0747AE14078644FA, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x0747AE140747AE14, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x0747AE1480000000, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x8000000000000000, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x8000000000000001, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x8000000000000002, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x8000000000000003, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x8000000000000010, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x80000000078644FA, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x800000000747AE14, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x800000007FFFFFFF, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x8000000080000000, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000000, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0747AE1400000000}, + [_]u64{0x0747AE1400000001, 0x0000000000000001, 0x0747AE1400000001, 0x0000000000000000}, + [_]u64{0x0747AE1400000001, 0x0000000000000002, 0x03A3D70A00000000, 0x0000000000000001}, + [_]u64{0x0747AE1400000001, 0x0000000000000003, 0x026D3A06AAAAAAAB, 0x0000000000000000}, + [_]u64{0x0747AE1400000001, 0x0000000000000010, 0x00747AE140000000, 0x0000000000000001}, + [_]u64{0x0747AE1400000001, 0x00000000078644FA, 0x00000000F7AE911D, 0x0000000000CC95AF}, + [_]u64{0x0747AE1400000001, 0x000000000747AE14, 0x0000000100000000, 0x0000000000000001}, + [_]u64{0x0747AE1400000001, 0x000000007FFFFFFF, 0x000000000E8F5C28, 0x000000000E8F5C29}, + [_]u64{0x0747AE1400000001, 0x0000000080000000, 0x000000000E8F5C28, 0x0000000000000001}, + [_]u64{0x0747AE1400000001, 0x00000000FFFFFFFD, 0x000000000747AE14, 0x0000000015D70A3D}, + [_]u64{0x0747AE1400000001, 0x00000000FFFFFFFE, 0x000000000747AE14, 0x000000000E8F5C29}, + [_]u64{0x0747AE1400000001, 0x00000000FFFFFFFF, 0x000000000747AE14, 0x000000000747AE15}, + [_]u64{0x0747AE1400000001, 0x0000000100000000, 0x000000000747AE14, 0x0000000000000001}, + [_]u64{0x0747AE1400000001, 0x0000000100000001, 0x000000000747AE13, 0x00000000F8B851EE}, + [_]u64{0x0747AE1400000001, 0x0000000100000002, 0x000000000747AE13, 0x00000000F170A3DB}, + [_]u64{0x0747AE1400000001, 0x0000000100000003, 0x000000000747AE13, 0x00000000EA28F5C8}, + [_]u64{0x0747AE1400000001, 0x0000000100000010, 0x000000000747AE13, 0x000000008B851ED1}, + [_]u64{0x0747AE1400000001, 0x00000001078644FA, 0x000000000712773F, 0x000000000C50D07B}, + [_]u64{0x0747AE1400000001, 0x000000010747AE14, 0x00000000071425A5, 0x00000000CD13E91D}, + [_]u64{0x0747AE1400000001, 0x000000017FFFFFFF, 0x0000000004DA740D, 0x0000000084DA740E}, + [_]u64{0x0747AE1400000001, 0x0000000180000000, 0x0000000004DA740D, 0x0000000080000001}, + [_]u64{0x0747AE1400000001, 0x00000001FFFFFFFD, 0x0000000003A3D70A, 0x000000000AEB851F}, + [_]u64{0x0747AE1400000001, 0x00000001FFFFFFFE, 0x0000000003A3D70A, 0x000000000747AE15}, + [_]u64{0x0747AE1400000001, 0x00000001FFFFFFFF, 0x0000000003A3D70A, 0x0000000003A3D70B}, + [_]u64{0x0747AE1400000001, 0x0000000200000000, 0x0000000003A3D70A, 0x0000000000000001}, + [_]u64{0x0747AE1400000001, 0x0000000200000001, 0x0000000003A3D709, 0x00000001FC5C28F8}, + [_]u64{0x0747AE1400000001, 0x0000000200000002, 0x0000000003A3D709, 0x00000001F8B851EF}, + [_]u64{0x0747AE1400000001, 0x0000000200000003, 0x0000000003A3D709, 0x00000001F5147AE6}, + [_]u64{0x0747AE1400000001, 0x0000000200000010, 0x0000000003A3D709, 0x00000001C5C28F71}, + [_]u64{0x0747AE1400000001, 0x00000002078644FA, 0x0000000003965801, 0x000000007847CB07}, + [_]u64{0x0747AE1400000001, 0x000000020747AE14, 0x000000000396C6B1, 0x000000014B152C2D}, + [_]u64{0x0747AE1400000001, 0x000000027FFFFFFF, 0x0000000002E978D4, 0x0000000202E978D5}, + [_]u64{0x0747AE1400000001, 0x0000000280000000, 0x0000000002E978D4, 0x0000000200000001}, + [_]u64{0x0747AE1400000001, 0x00000002FFFFFFFD, 0x00000000026D3A06, 0x000000020747AE13}, + [_]u64{0x0747AE1400000001, 0x00000002FFFFFFFE, 0x00000000026D3A06, 0x0000000204DA740D}, + [_]u64{0x0747AE1400000001, 0x00000002FFFFFFFF, 0x00000000026D3A06, 0x00000002026D3A07}, + [_]u64{0x0747AE1400000001, 0x0000000300000000, 0x00000000026D3A06, 0x0000000200000001}, + [_]u64{0x0747AE1400000001, 0x0000000300000001, 0x00000000026D3A06, 0x00000001FD92C5FB}, + [_]u64{0x0747AE1400000001, 0x0000000300000002, 0x00000000026D3A06, 0x00000001FB258BF5}, + [_]u64{0x0747AE1400000001, 0x0000000300000003, 0x00000000026D3A06, 0x00000001F8B851EF}, + [_]u64{0x0747AE1400000001, 0x0000000300000010, 0x00000000026D3A06, 0x00000001D92C5FA1}, + [_]u64{0x0747AE1400000001, 0x00000003078644FA, 0x0000000002673301, 0x000000018425ED07}, + [_]u64{0x0747AE1400000001, 0x000000030747AE14, 0x00000000026764AB, 0x00000002F112E8A5}, + [_]u64{0x0747AE1400000001, 0x000000037FFFFFFF, 0x0000000002147AE1, 0x0000000082147AE2}, + [_]u64{0x0747AE1400000001, 0x0000000380000000, 0x0000000002147AE1, 0x0000000080000001}, + [_]u64{0x0747AE1400000001, 0x00000003FFFFFFFD, 0x0000000001D1EB85, 0x000000000575C290}, + [_]u64{0x0747AE1400000001, 0x00000003FFFFFFFE, 0x0000000001D1EB85, 0x0000000003A3D70B}, + [_]u64{0x0747AE1400000001, 0x00000003FFFFFFFF, 0x0000000001D1EB85, 0x0000000001D1EB86}, + [_]u64{0x0747AE1400000001, 0x0000001000000000, 0x0000000000747AE1, 0x0000000400000001}, + [_]u64{0x0747AE1400000001, 0x0000001000000001, 0x0000000000747AE1, 0x00000003FF8B8520}, + [_]u64{0x0747AE1400000001, 0x0000001000000002, 0x0000000000747AE1, 0x00000003FF170A3F}, + [_]u64{0x0747AE1400000001, 0x0000001000000003, 0x0000000000747AE1, 0x00000003FEA28F5E}, + [_]u64{0x0747AE1400000001, 0x0000001000000010, 0x0000000000747AE1, 0x00000003F8B851F1}, + [_]u64{0x0747AE1400000001, 0x00000010078644FA, 0x0000000000744433, 0x0000000B94A5DA33}, + [_]u64{0x0747AE1400000001, 0x000000100747AE14, 0x00000000007445F9, 0x0000000BB84C4A8D}, + [_]u64{0x0747AE1400000001, 0x000000107FFFFFFF, 0x000000000070F347, 0x000000008070F348}, + [_]u64{0x0747AE1400000001, 0x0000001080000000, 0x000000000070F347, 0x0000000080000001}, + [_]u64{0x0747AE1400000001, 0x00000010FFFFFFFD, 0x00000000006DA0D4, 0x000000000148E27D}, + [_]u64{0x0747AE1400000001, 0x00000010FFFFFFFE, 0x00000000006DA0D4, 0x0000000000DB41A9}, + [_]u64{0x0747AE1400000001, 0x00000010FFFFFFFF, 0x00000000006DA0D4, 0x00000000006DA0D5}, + [_]u64{0x0747AE1400000001, 0x078644FA00000000, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x078644FA00000001, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x078644FA00000002, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x078644FA00000003, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x078644FA00000010, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x078644FA078644FA, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x078644FA0747AE14, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x078644FA80000000, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x0747AE1400000000, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x0747AE1400000001, 0x0747AE1400000001, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0747AE1400000001, 0x0747AE1400000002, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x0747AE1400000003, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x0747AE1400000010, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x0747AE14078644FA, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x0747AE140747AE14, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x0747AE1480000000, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x8000000000000000, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x8000000000000001, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x8000000000000002, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x8000000000000003, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x8000000000000010, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x80000000078644FA, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x800000000747AE14, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x800000007FFFFFFF, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x8000000080000000, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000001, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0747AE1400000001}, + [_]u64{0x0747AE1400000002, 0x0000000000000001, 0x0747AE1400000002, 0x0000000000000000}, + [_]u64{0x0747AE1400000002, 0x0000000000000002, 0x03A3D70A00000001, 0x0000000000000000}, + [_]u64{0x0747AE1400000002, 0x0000000000000003, 0x026D3A06AAAAAAAB, 0x0000000000000001}, + [_]u64{0x0747AE1400000002, 0x0000000000000010, 0x00747AE140000000, 0x0000000000000002}, + [_]u64{0x0747AE1400000002, 0x00000000078644FA, 0x00000000F7AE911D, 0x0000000000CC95B0}, + [_]u64{0x0747AE1400000002, 0x000000000747AE14, 0x0000000100000000, 0x0000000000000002}, + [_]u64{0x0747AE1400000002, 0x000000007FFFFFFF, 0x000000000E8F5C28, 0x000000000E8F5C2A}, + [_]u64{0x0747AE1400000002, 0x0000000080000000, 0x000000000E8F5C28, 0x0000000000000002}, + [_]u64{0x0747AE1400000002, 0x00000000FFFFFFFD, 0x000000000747AE14, 0x0000000015D70A3E}, + [_]u64{0x0747AE1400000002, 0x00000000FFFFFFFE, 0x000000000747AE14, 0x000000000E8F5C2A}, + [_]u64{0x0747AE1400000002, 0x00000000FFFFFFFF, 0x000000000747AE14, 0x000000000747AE16}, + [_]u64{0x0747AE1400000002, 0x0000000100000000, 0x000000000747AE14, 0x0000000000000002}, + [_]u64{0x0747AE1400000002, 0x0000000100000001, 0x000000000747AE13, 0x00000000F8B851EF}, + [_]u64{0x0747AE1400000002, 0x0000000100000002, 0x000000000747AE13, 0x00000000F170A3DC}, + [_]u64{0x0747AE1400000002, 0x0000000100000003, 0x000000000747AE13, 0x00000000EA28F5C9}, + [_]u64{0x0747AE1400000002, 0x0000000100000010, 0x000000000747AE13, 0x000000008B851ED2}, + [_]u64{0x0747AE1400000002, 0x00000001078644FA, 0x000000000712773F, 0x000000000C50D07C}, + [_]u64{0x0747AE1400000002, 0x000000010747AE14, 0x00000000071425A5, 0x00000000CD13E91E}, + [_]u64{0x0747AE1400000002, 0x000000017FFFFFFF, 0x0000000004DA740D, 0x0000000084DA740F}, + [_]u64{0x0747AE1400000002, 0x0000000180000000, 0x0000000004DA740D, 0x0000000080000002}, + [_]u64{0x0747AE1400000002, 0x00000001FFFFFFFD, 0x0000000003A3D70A, 0x000000000AEB8520}, + [_]u64{0x0747AE1400000002, 0x00000001FFFFFFFE, 0x0000000003A3D70A, 0x000000000747AE16}, + [_]u64{0x0747AE1400000002, 0x00000001FFFFFFFF, 0x0000000003A3D70A, 0x0000000003A3D70C}, + [_]u64{0x0747AE1400000002, 0x0000000200000000, 0x0000000003A3D70A, 0x0000000000000002}, + [_]u64{0x0747AE1400000002, 0x0000000200000001, 0x0000000003A3D709, 0x00000001FC5C28F9}, + [_]u64{0x0747AE1400000002, 0x0000000200000002, 0x0000000003A3D709, 0x00000001F8B851F0}, + [_]u64{0x0747AE1400000002, 0x0000000200000003, 0x0000000003A3D709, 0x00000001F5147AE7}, + [_]u64{0x0747AE1400000002, 0x0000000200000010, 0x0000000003A3D709, 0x00000001C5C28F72}, + [_]u64{0x0747AE1400000002, 0x00000002078644FA, 0x0000000003965801, 0x000000007847CB08}, + [_]u64{0x0747AE1400000002, 0x000000020747AE14, 0x000000000396C6B1, 0x000000014B152C2E}, + [_]u64{0x0747AE1400000002, 0x000000027FFFFFFF, 0x0000000002E978D4, 0x0000000202E978D6}, + [_]u64{0x0747AE1400000002, 0x0000000280000000, 0x0000000002E978D4, 0x0000000200000002}, + [_]u64{0x0747AE1400000002, 0x00000002FFFFFFFD, 0x00000000026D3A06, 0x000000020747AE14}, + [_]u64{0x0747AE1400000002, 0x00000002FFFFFFFE, 0x00000000026D3A06, 0x0000000204DA740E}, + [_]u64{0x0747AE1400000002, 0x00000002FFFFFFFF, 0x00000000026D3A06, 0x00000002026D3A08}, + [_]u64{0x0747AE1400000002, 0x0000000300000000, 0x00000000026D3A06, 0x0000000200000002}, + [_]u64{0x0747AE1400000002, 0x0000000300000001, 0x00000000026D3A06, 0x00000001FD92C5FC}, + [_]u64{0x0747AE1400000002, 0x0000000300000002, 0x00000000026D3A06, 0x00000001FB258BF6}, + [_]u64{0x0747AE1400000002, 0x0000000300000003, 0x00000000026D3A06, 0x00000001F8B851F0}, + [_]u64{0x0747AE1400000002, 0x0000000300000010, 0x00000000026D3A06, 0x00000001D92C5FA2}, + [_]u64{0x0747AE1400000002, 0x00000003078644FA, 0x0000000002673301, 0x000000018425ED08}, + [_]u64{0x0747AE1400000002, 0x000000030747AE14, 0x00000000026764AB, 0x00000002F112E8A6}, + [_]u64{0x0747AE1400000002, 0x000000037FFFFFFF, 0x0000000002147AE1, 0x0000000082147AE3}, + [_]u64{0x0747AE1400000002, 0x0000000380000000, 0x0000000002147AE1, 0x0000000080000002}, + [_]u64{0x0747AE1400000002, 0x00000003FFFFFFFD, 0x0000000001D1EB85, 0x000000000575C291}, + [_]u64{0x0747AE1400000002, 0x00000003FFFFFFFE, 0x0000000001D1EB85, 0x0000000003A3D70C}, + [_]u64{0x0747AE1400000002, 0x00000003FFFFFFFF, 0x0000000001D1EB85, 0x0000000001D1EB87}, + [_]u64{0x0747AE1400000002, 0x0000001000000000, 0x0000000000747AE1, 0x0000000400000002}, + [_]u64{0x0747AE1400000002, 0x0000001000000001, 0x0000000000747AE1, 0x00000003FF8B8521}, + [_]u64{0x0747AE1400000002, 0x0000001000000002, 0x0000000000747AE1, 0x00000003FF170A40}, + [_]u64{0x0747AE1400000002, 0x0000001000000003, 0x0000000000747AE1, 0x00000003FEA28F5F}, + [_]u64{0x0747AE1400000002, 0x0000001000000010, 0x0000000000747AE1, 0x00000003F8B851F2}, + [_]u64{0x0747AE1400000002, 0x00000010078644FA, 0x0000000000744433, 0x0000000B94A5DA34}, + [_]u64{0x0747AE1400000002, 0x000000100747AE14, 0x00000000007445F9, 0x0000000BB84C4A8E}, + [_]u64{0x0747AE1400000002, 0x000000107FFFFFFF, 0x000000000070F347, 0x000000008070F349}, + [_]u64{0x0747AE1400000002, 0x0000001080000000, 0x000000000070F347, 0x0000000080000002}, + [_]u64{0x0747AE1400000002, 0x00000010FFFFFFFD, 0x00000000006DA0D4, 0x000000000148E27E}, + [_]u64{0x0747AE1400000002, 0x00000010FFFFFFFE, 0x00000000006DA0D4, 0x0000000000DB41AA}, + [_]u64{0x0747AE1400000002, 0x00000010FFFFFFFF, 0x00000000006DA0D4, 0x00000000006DA0D6}, + [_]u64{0x0747AE1400000002, 0x078644FA00000000, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x078644FA00000001, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x078644FA00000002, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x078644FA00000003, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x078644FA00000010, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x078644FA078644FA, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x078644FA0747AE14, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x078644FA80000000, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x0747AE1400000000, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x0747AE1400000002, 0x0747AE1400000001, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x0747AE1400000002, 0x0747AE1400000002, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0747AE1400000002, 0x0747AE1400000003, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x0747AE1400000010, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x0747AE14078644FA, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x0747AE140747AE14, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x0747AE1480000000, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x8000000000000000, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x8000000000000001, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x8000000000000002, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x8000000000000003, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x8000000000000010, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x80000000078644FA, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x800000000747AE14, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x800000007FFFFFFF, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x8000000080000000, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000002, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0747AE1400000002}, + [_]u64{0x0747AE1400000003, 0x0000000000000001, 0x0747AE1400000003, 0x0000000000000000}, + [_]u64{0x0747AE1400000003, 0x0000000000000002, 0x03A3D70A00000001, 0x0000000000000001}, + [_]u64{0x0747AE1400000003, 0x0000000000000003, 0x026D3A06AAAAAAAB, 0x0000000000000002}, + [_]u64{0x0747AE1400000003, 0x0000000000000010, 0x00747AE140000000, 0x0000000000000003}, + [_]u64{0x0747AE1400000003, 0x00000000078644FA, 0x00000000F7AE911D, 0x0000000000CC95B1}, + [_]u64{0x0747AE1400000003, 0x000000000747AE14, 0x0000000100000000, 0x0000000000000003}, + [_]u64{0x0747AE1400000003, 0x000000007FFFFFFF, 0x000000000E8F5C28, 0x000000000E8F5C2B}, + [_]u64{0x0747AE1400000003, 0x0000000080000000, 0x000000000E8F5C28, 0x0000000000000003}, + [_]u64{0x0747AE1400000003, 0x00000000FFFFFFFD, 0x000000000747AE14, 0x0000000015D70A3F}, + [_]u64{0x0747AE1400000003, 0x00000000FFFFFFFE, 0x000000000747AE14, 0x000000000E8F5C2B}, + [_]u64{0x0747AE1400000003, 0x00000000FFFFFFFF, 0x000000000747AE14, 0x000000000747AE17}, + [_]u64{0x0747AE1400000003, 0x0000000100000000, 0x000000000747AE14, 0x0000000000000003}, + [_]u64{0x0747AE1400000003, 0x0000000100000001, 0x000000000747AE13, 0x00000000F8B851F0}, + [_]u64{0x0747AE1400000003, 0x0000000100000002, 0x000000000747AE13, 0x00000000F170A3DD}, + [_]u64{0x0747AE1400000003, 0x0000000100000003, 0x000000000747AE13, 0x00000000EA28F5CA}, + [_]u64{0x0747AE1400000003, 0x0000000100000010, 0x000000000747AE13, 0x000000008B851ED3}, + [_]u64{0x0747AE1400000003, 0x00000001078644FA, 0x000000000712773F, 0x000000000C50D07D}, + [_]u64{0x0747AE1400000003, 0x000000010747AE14, 0x00000000071425A5, 0x00000000CD13E91F}, + [_]u64{0x0747AE1400000003, 0x000000017FFFFFFF, 0x0000000004DA740D, 0x0000000084DA7410}, + [_]u64{0x0747AE1400000003, 0x0000000180000000, 0x0000000004DA740D, 0x0000000080000003}, + [_]u64{0x0747AE1400000003, 0x00000001FFFFFFFD, 0x0000000003A3D70A, 0x000000000AEB8521}, + [_]u64{0x0747AE1400000003, 0x00000001FFFFFFFE, 0x0000000003A3D70A, 0x000000000747AE17}, + [_]u64{0x0747AE1400000003, 0x00000001FFFFFFFF, 0x0000000003A3D70A, 0x0000000003A3D70D}, + [_]u64{0x0747AE1400000003, 0x0000000200000000, 0x0000000003A3D70A, 0x0000000000000003}, + [_]u64{0x0747AE1400000003, 0x0000000200000001, 0x0000000003A3D709, 0x00000001FC5C28FA}, + [_]u64{0x0747AE1400000003, 0x0000000200000002, 0x0000000003A3D709, 0x00000001F8B851F1}, + [_]u64{0x0747AE1400000003, 0x0000000200000003, 0x0000000003A3D709, 0x00000001F5147AE8}, + [_]u64{0x0747AE1400000003, 0x0000000200000010, 0x0000000003A3D709, 0x00000001C5C28F73}, + [_]u64{0x0747AE1400000003, 0x00000002078644FA, 0x0000000003965801, 0x000000007847CB09}, + [_]u64{0x0747AE1400000003, 0x000000020747AE14, 0x000000000396C6B1, 0x000000014B152C2F}, + [_]u64{0x0747AE1400000003, 0x000000027FFFFFFF, 0x0000000002E978D4, 0x0000000202E978D7}, + [_]u64{0x0747AE1400000003, 0x0000000280000000, 0x0000000002E978D4, 0x0000000200000003}, + [_]u64{0x0747AE1400000003, 0x00000002FFFFFFFD, 0x00000000026D3A06, 0x000000020747AE15}, + [_]u64{0x0747AE1400000003, 0x00000002FFFFFFFE, 0x00000000026D3A06, 0x0000000204DA740F}, + [_]u64{0x0747AE1400000003, 0x00000002FFFFFFFF, 0x00000000026D3A06, 0x00000002026D3A09}, + [_]u64{0x0747AE1400000003, 0x0000000300000000, 0x00000000026D3A06, 0x0000000200000003}, + [_]u64{0x0747AE1400000003, 0x0000000300000001, 0x00000000026D3A06, 0x00000001FD92C5FD}, + [_]u64{0x0747AE1400000003, 0x0000000300000002, 0x00000000026D3A06, 0x00000001FB258BF7}, + [_]u64{0x0747AE1400000003, 0x0000000300000003, 0x00000000026D3A06, 0x00000001F8B851F1}, + [_]u64{0x0747AE1400000003, 0x0000000300000010, 0x00000000026D3A06, 0x00000001D92C5FA3}, + [_]u64{0x0747AE1400000003, 0x00000003078644FA, 0x0000000002673301, 0x000000018425ED09}, + [_]u64{0x0747AE1400000003, 0x000000030747AE14, 0x00000000026764AB, 0x00000002F112E8A7}, + [_]u64{0x0747AE1400000003, 0x000000037FFFFFFF, 0x0000000002147AE1, 0x0000000082147AE4}, + [_]u64{0x0747AE1400000003, 0x0000000380000000, 0x0000000002147AE1, 0x0000000080000003}, + [_]u64{0x0747AE1400000003, 0x00000003FFFFFFFD, 0x0000000001D1EB85, 0x000000000575C292}, + [_]u64{0x0747AE1400000003, 0x00000003FFFFFFFE, 0x0000000001D1EB85, 0x0000000003A3D70D}, + [_]u64{0x0747AE1400000003, 0x00000003FFFFFFFF, 0x0000000001D1EB85, 0x0000000001D1EB88}, + [_]u64{0x0747AE1400000003, 0x0000001000000000, 0x0000000000747AE1, 0x0000000400000003}, + [_]u64{0x0747AE1400000003, 0x0000001000000001, 0x0000000000747AE1, 0x00000003FF8B8522}, + [_]u64{0x0747AE1400000003, 0x0000001000000002, 0x0000000000747AE1, 0x00000003FF170A41}, + [_]u64{0x0747AE1400000003, 0x0000001000000003, 0x0000000000747AE1, 0x00000003FEA28F60}, + [_]u64{0x0747AE1400000003, 0x0000001000000010, 0x0000000000747AE1, 0x00000003F8B851F3}, + [_]u64{0x0747AE1400000003, 0x00000010078644FA, 0x0000000000744433, 0x0000000B94A5DA35}, + [_]u64{0x0747AE1400000003, 0x000000100747AE14, 0x00000000007445F9, 0x0000000BB84C4A8F}, + [_]u64{0x0747AE1400000003, 0x000000107FFFFFFF, 0x000000000070F347, 0x000000008070F34A}, + [_]u64{0x0747AE1400000003, 0x0000001080000000, 0x000000000070F347, 0x0000000080000003}, + [_]u64{0x0747AE1400000003, 0x00000010FFFFFFFD, 0x00000000006DA0D4, 0x000000000148E27F}, + [_]u64{0x0747AE1400000003, 0x00000010FFFFFFFE, 0x00000000006DA0D4, 0x0000000000DB41AB}, + [_]u64{0x0747AE1400000003, 0x00000010FFFFFFFF, 0x00000000006DA0D4, 0x00000000006DA0D7}, + [_]u64{0x0747AE1400000003, 0x078644FA00000000, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x078644FA00000001, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x078644FA00000002, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x078644FA00000003, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x078644FA00000010, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x078644FA078644FA, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x078644FA0747AE14, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x078644FA80000000, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x0747AE1400000000, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0x0747AE1400000003, 0x0747AE1400000001, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x0747AE1400000003, 0x0747AE1400000002, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x0747AE1400000003, 0x0747AE1400000003, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0747AE1400000003, 0x0747AE1400000010, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x0747AE14078644FA, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x0747AE140747AE14, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x0747AE1480000000, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x8000000000000000, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x8000000000000001, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x8000000000000002, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x8000000000000003, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x8000000000000010, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x80000000078644FA, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x800000000747AE14, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x800000007FFFFFFF, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x8000000080000000, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000003, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0747AE1400000003}, + [_]u64{0x0747AE1400000010, 0x0000000000000001, 0x0747AE1400000010, 0x0000000000000000}, + [_]u64{0x0747AE1400000010, 0x0000000000000002, 0x03A3D70A00000008, 0x0000000000000000}, + [_]u64{0x0747AE1400000010, 0x0000000000000003, 0x026D3A06AAAAAAB0, 0x0000000000000000}, + [_]u64{0x0747AE1400000010, 0x0000000000000010, 0x00747AE140000001, 0x0000000000000000}, + [_]u64{0x0747AE1400000010, 0x00000000078644FA, 0x00000000F7AE911D, 0x0000000000CC95BE}, + [_]u64{0x0747AE1400000010, 0x000000000747AE14, 0x0000000100000000, 0x0000000000000010}, + [_]u64{0x0747AE1400000010, 0x000000007FFFFFFF, 0x000000000E8F5C28, 0x000000000E8F5C38}, + [_]u64{0x0747AE1400000010, 0x0000000080000000, 0x000000000E8F5C28, 0x0000000000000010}, + [_]u64{0x0747AE1400000010, 0x00000000FFFFFFFD, 0x000000000747AE14, 0x0000000015D70A4C}, + [_]u64{0x0747AE1400000010, 0x00000000FFFFFFFE, 0x000000000747AE14, 0x000000000E8F5C38}, + [_]u64{0x0747AE1400000010, 0x00000000FFFFFFFF, 0x000000000747AE14, 0x000000000747AE24}, + [_]u64{0x0747AE1400000010, 0x0000000100000000, 0x000000000747AE14, 0x0000000000000010}, + [_]u64{0x0747AE1400000010, 0x0000000100000001, 0x000000000747AE13, 0x00000000F8B851FD}, + [_]u64{0x0747AE1400000010, 0x0000000100000002, 0x000000000747AE13, 0x00000000F170A3EA}, + [_]u64{0x0747AE1400000010, 0x0000000100000003, 0x000000000747AE13, 0x00000000EA28F5D7}, + [_]u64{0x0747AE1400000010, 0x0000000100000010, 0x000000000747AE13, 0x000000008B851EE0}, + [_]u64{0x0747AE1400000010, 0x00000001078644FA, 0x000000000712773F, 0x000000000C50D08A}, + [_]u64{0x0747AE1400000010, 0x000000010747AE14, 0x00000000071425A5, 0x00000000CD13E92C}, + [_]u64{0x0747AE1400000010, 0x000000017FFFFFFF, 0x0000000004DA740D, 0x0000000084DA741D}, + [_]u64{0x0747AE1400000010, 0x0000000180000000, 0x0000000004DA740D, 0x0000000080000010}, + [_]u64{0x0747AE1400000010, 0x00000001FFFFFFFD, 0x0000000003A3D70A, 0x000000000AEB852E}, + [_]u64{0x0747AE1400000010, 0x00000001FFFFFFFE, 0x0000000003A3D70A, 0x000000000747AE24}, + [_]u64{0x0747AE1400000010, 0x00000001FFFFFFFF, 0x0000000003A3D70A, 0x0000000003A3D71A}, + [_]u64{0x0747AE1400000010, 0x0000000200000000, 0x0000000003A3D70A, 0x0000000000000010}, + [_]u64{0x0747AE1400000010, 0x0000000200000001, 0x0000000003A3D709, 0x00000001FC5C2907}, + [_]u64{0x0747AE1400000010, 0x0000000200000002, 0x0000000003A3D709, 0x00000001F8B851FE}, + [_]u64{0x0747AE1400000010, 0x0000000200000003, 0x0000000003A3D709, 0x00000001F5147AF5}, + [_]u64{0x0747AE1400000010, 0x0000000200000010, 0x0000000003A3D709, 0x00000001C5C28F80}, + [_]u64{0x0747AE1400000010, 0x00000002078644FA, 0x0000000003965801, 0x000000007847CB16}, + [_]u64{0x0747AE1400000010, 0x000000020747AE14, 0x000000000396C6B1, 0x000000014B152C3C}, + [_]u64{0x0747AE1400000010, 0x000000027FFFFFFF, 0x0000000002E978D4, 0x0000000202E978E4}, + [_]u64{0x0747AE1400000010, 0x0000000280000000, 0x0000000002E978D4, 0x0000000200000010}, + [_]u64{0x0747AE1400000010, 0x00000002FFFFFFFD, 0x00000000026D3A06, 0x000000020747AE22}, + [_]u64{0x0747AE1400000010, 0x00000002FFFFFFFE, 0x00000000026D3A06, 0x0000000204DA741C}, + [_]u64{0x0747AE1400000010, 0x00000002FFFFFFFF, 0x00000000026D3A06, 0x00000002026D3A16}, + [_]u64{0x0747AE1400000010, 0x0000000300000000, 0x00000000026D3A06, 0x0000000200000010}, + [_]u64{0x0747AE1400000010, 0x0000000300000001, 0x00000000026D3A06, 0x00000001FD92C60A}, + [_]u64{0x0747AE1400000010, 0x0000000300000002, 0x00000000026D3A06, 0x00000001FB258C04}, + [_]u64{0x0747AE1400000010, 0x0000000300000003, 0x00000000026D3A06, 0x00000001F8B851FE}, + [_]u64{0x0747AE1400000010, 0x0000000300000010, 0x00000000026D3A06, 0x00000001D92C5FB0}, + [_]u64{0x0747AE1400000010, 0x00000003078644FA, 0x0000000002673301, 0x000000018425ED16}, + [_]u64{0x0747AE1400000010, 0x000000030747AE14, 0x00000000026764AB, 0x00000002F112E8B4}, + [_]u64{0x0747AE1400000010, 0x000000037FFFFFFF, 0x0000000002147AE1, 0x0000000082147AF1}, + [_]u64{0x0747AE1400000010, 0x0000000380000000, 0x0000000002147AE1, 0x0000000080000010}, + [_]u64{0x0747AE1400000010, 0x00000003FFFFFFFD, 0x0000000001D1EB85, 0x000000000575C29F}, + [_]u64{0x0747AE1400000010, 0x00000003FFFFFFFE, 0x0000000001D1EB85, 0x0000000003A3D71A}, + [_]u64{0x0747AE1400000010, 0x00000003FFFFFFFF, 0x0000000001D1EB85, 0x0000000001D1EB95}, + [_]u64{0x0747AE1400000010, 0x0000001000000000, 0x0000000000747AE1, 0x0000000400000010}, + [_]u64{0x0747AE1400000010, 0x0000001000000001, 0x0000000000747AE1, 0x00000003FF8B852F}, + [_]u64{0x0747AE1400000010, 0x0000001000000002, 0x0000000000747AE1, 0x00000003FF170A4E}, + [_]u64{0x0747AE1400000010, 0x0000001000000003, 0x0000000000747AE1, 0x00000003FEA28F6D}, + [_]u64{0x0747AE1400000010, 0x0000001000000010, 0x0000000000747AE1, 0x00000003F8B85200}, + [_]u64{0x0747AE1400000010, 0x00000010078644FA, 0x0000000000744433, 0x0000000B94A5DA42}, + [_]u64{0x0747AE1400000010, 0x000000100747AE14, 0x00000000007445F9, 0x0000000BB84C4A9C}, + [_]u64{0x0747AE1400000010, 0x000000107FFFFFFF, 0x000000000070F347, 0x000000008070F357}, + [_]u64{0x0747AE1400000010, 0x0000001080000000, 0x000000000070F347, 0x0000000080000010}, + [_]u64{0x0747AE1400000010, 0x00000010FFFFFFFD, 0x00000000006DA0D4, 0x000000000148E28C}, + [_]u64{0x0747AE1400000010, 0x00000010FFFFFFFE, 0x00000000006DA0D4, 0x0000000000DB41B8}, + [_]u64{0x0747AE1400000010, 0x00000010FFFFFFFF, 0x00000000006DA0D4, 0x00000000006DA0E4}, + [_]u64{0x0747AE1400000010, 0x078644FA00000000, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x078644FA00000001, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x078644FA00000002, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x078644FA00000003, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x078644FA00000010, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x078644FA078644FA, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x078644FA0747AE14, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x078644FA80000000, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x0747AE1400000000, 0x0000000000000001, 0x0000000000000010}, + [_]u64{0x0747AE1400000010, 0x0747AE1400000001, 0x0000000000000001, 0x000000000000000F}, + [_]u64{0x0747AE1400000010, 0x0747AE1400000002, 0x0000000000000001, 0x000000000000000E}, + [_]u64{0x0747AE1400000010, 0x0747AE1400000003, 0x0000000000000001, 0x000000000000000D}, + [_]u64{0x0747AE1400000010, 0x0747AE1400000010, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0747AE1400000010, 0x0747AE14078644FA, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x0747AE140747AE14, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x0747AE1480000000, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x8000000000000000, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x8000000000000001, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x8000000000000002, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x8000000000000003, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x8000000000000010, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x80000000078644FA, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x800000000747AE14, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x800000007FFFFFFF, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x8000000080000000, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE1400000010, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0747AE1400000010}, + [_]u64{0x0747AE14078644FA, 0x0000000000000001, 0x0747AE14078644FA, 0x0000000000000000}, + [_]u64{0x0747AE14078644FA, 0x0000000000000002, 0x03A3D70A03C3227D, 0x0000000000000000}, + [_]u64{0x0747AE14078644FA, 0x0000000000000003, 0x026D3A06AD2CC1A8, 0x0000000000000002}, + [_]u64{0x0747AE14078644FA, 0x0000000000000010, 0x00747AE14078644F, 0x000000000000000A}, + [_]u64{0x0747AE14078644FA, 0x00000000078644FA, 0x00000000F7AE911E, 0x0000000000CC95AE}, + [_]u64{0x0747AE14078644FA, 0x000000000747AE14, 0x0000000100000001, 0x00000000003E96E6}, + [_]u64{0x0747AE14078644FA, 0x000000007FFFFFFF, 0x000000000E8F5C28, 0x000000001615A122}, + [_]u64{0x0747AE14078644FA, 0x0000000080000000, 0x000000000E8F5C28, 0x00000000078644FA}, + [_]u64{0x0747AE14078644FA, 0x00000000FFFFFFFD, 0x000000000747AE14, 0x000000001D5D4F36}, + [_]u64{0x0747AE14078644FA, 0x00000000FFFFFFFE, 0x000000000747AE14, 0x000000001615A122}, + [_]u64{0x0747AE14078644FA, 0x00000000FFFFFFFF, 0x000000000747AE14, 0x000000000ECDF30E}, + [_]u64{0x0747AE14078644FA, 0x0000000100000000, 0x000000000747AE14, 0x00000000078644FA}, + [_]u64{0x0747AE14078644FA, 0x0000000100000001, 0x000000000747AE14, 0x00000000003E96E6}, + [_]u64{0x0747AE14078644FA, 0x0000000100000002, 0x000000000747AE13, 0x00000000F8F6E8D4}, + [_]u64{0x0747AE14078644FA, 0x0000000100000003, 0x000000000747AE13, 0x00000000F1AF3AC1}, + [_]u64{0x0747AE14078644FA, 0x0000000100000010, 0x000000000747AE13, 0x00000000930B63CA}, + [_]u64{0x0747AE14078644FA, 0x00000001078644FA, 0x000000000712773F, 0x0000000013D71574}, + [_]u64{0x0747AE14078644FA, 0x000000010747AE14, 0x00000000071425A5, 0x00000000D49A2E16}, + [_]u64{0x0747AE14078644FA, 0x000000017FFFFFFF, 0x0000000004DA740D, 0x000000008C60B907}, + [_]u64{0x0747AE14078644FA, 0x0000000180000000, 0x0000000004DA740D, 0x00000000878644FA}, + [_]u64{0x0747AE14078644FA, 0x00000001FFFFFFFD, 0x0000000003A3D70A, 0x000000001271CA18}, + [_]u64{0x0747AE14078644FA, 0x00000001FFFFFFFE, 0x0000000003A3D70A, 0x000000000ECDF30E}, + [_]u64{0x0747AE14078644FA, 0x00000001FFFFFFFF, 0x0000000003A3D70A, 0x000000000B2A1C04}, + [_]u64{0x0747AE14078644FA, 0x0000000200000000, 0x0000000003A3D70A, 0x00000000078644FA}, + [_]u64{0x0747AE14078644FA, 0x0000000200000001, 0x0000000003A3D70A, 0x0000000003E26DF0}, + [_]u64{0x0747AE14078644FA, 0x0000000200000002, 0x0000000003A3D70A, 0x00000000003E96E6}, + [_]u64{0x0747AE14078644FA, 0x0000000200000003, 0x0000000003A3D709, 0x00000001FC9ABFDF}, + [_]u64{0x0747AE14078644FA, 0x0000000200000010, 0x0000000003A3D709, 0x00000001CD48D46A}, + [_]u64{0x0747AE14078644FA, 0x00000002078644FA, 0x0000000003965801, 0x000000007FCE1000}, + [_]u64{0x0747AE14078644FA, 0x000000020747AE14, 0x000000000396C6B1, 0x00000001529B7126}, + [_]u64{0x0747AE14078644FA, 0x000000027FFFFFFF, 0x0000000002E978D4, 0x000000020A6FBDCE}, + [_]u64{0x0747AE14078644FA, 0x0000000280000000, 0x0000000002E978D4, 0x00000002078644FA}, + [_]u64{0x0747AE14078644FA, 0x00000002FFFFFFFD, 0x00000000026D3A06, 0x000000020ECDF30C}, + [_]u64{0x0747AE14078644FA, 0x00000002FFFFFFFE, 0x00000000026D3A06, 0x000000020C60B906}, + [_]u64{0x0747AE14078644FA, 0x00000002FFFFFFFF, 0x00000000026D3A06, 0x0000000209F37F00}, + [_]u64{0x0747AE14078644FA, 0x0000000300000000, 0x00000000026D3A06, 0x00000002078644FA}, + [_]u64{0x0747AE14078644FA, 0x0000000300000001, 0x00000000026D3A06, 0x0000000205190AF4}, + [_]u64{0x0747AE14078644FA, 0x0000000300000002, 0x00000000026D3A06, 0x0000000202ABD0EE}, + [_]u64{0x0747AE14078644FA, 0x0000000300000003, 0x00000000026D3A06, 0x00000002003E96E8}, + [_]u64{0x0747AE14078644FA, 0x0000000300000010, 0x00000000026D3A06, 0x00000001E0B2A49A}, + [_]u64{0x0747AE14078644FA, 0x00000003078644FA, 0x0000000002673301, 0x000000018BAC3200}, + [_]u64{0x0747AE14078644FA, 0x000000030747AE14, 0x00000000026764AB, 0x00000002F8992D9E}, + [_]u64{0x0747AE14078644FA, 0x000000037FFFFFFF, 0x0000000002147AE1, 0x00000000899ABFDB}, + [_]u64{0x0747AE14078644FA, 0x0000000380000000, 0x0000000002147AE1, 0x00000000878644FA}, + [_]u64{0x0747AE14078644FA, 0x00000003FFFFFFFD, 0x0000000001D1EB85, 0x000000000CFC0789}, + [_]u64{0x0747AE14078644FA, 0x00000003FFFFFFFE, 0x0000000001D1EB85, 0x000000000B2A1C04}, + [_]u64{0x0747AE14078644FA, 0x00000003FFFFFFFF, 0x0000000001D1EB85, 0x000000000958307F}, + [_]u64{0x0747AE14078644FA, 0x0000001000000000, 0x0000000000747AE1, 0x00000004078644FA}, + [_]u64{0x0747AE14078644FA, 0x0000001000000001, 0x0000000000747AE1, 0x000000040711CA19}, + [_]u64{0x0747AE14078644FA, 0x0000001000000002, 0x0000000000747AE1, 0x00000004069D4F38}, + [_]u64{0x0747AE14078644FA, 0x0000001000000003, 0x0000000000747AE1, 0x000000040628D457}, + [_]u64{0x0747AE14078644FA, 0x0000001000000010, 0x0000000000747AE1, 0x00000004003E96EA}, + [_]u64{0x0747AE14078644FA, 0x00000010078644FA, 0x0000000000744433, 0x0000000B9C2C1F2C}, + [_]u64{0x0747AE14078644FA, 0x000000100747AE14, 0x00000000007445F9, 0x0000000BBFD28F86}, + [_]u64{0x0747AE14078644FA, 0x000000107FFFFFFF, 0x000000000070F347, 0x0000000087F73841}, + [_]u64{0x0747AE14078644FA, 0x0000001080000000, 0x000000000070F347, 0x00000000878644FA}, + [_]u64{0x0747AE14078644FA, 0x00000010FFFFFFFD, 0x00000000006DA0D4, 0x0000000008CF2776}, + [_]u64{0x0747AE14078644FA, 0x00000010FFFFFFFE, 0x00000000006DA0D4, 0x00000000086186A2}, + [_]u64{0x0747AE14078644FA, 0x00000010FFFFFFFF, 0x00000000006DA0D4, 0x0000000007F3E5CE}, + [_]u64{0x0747AE14078644FA, 0x078644FA00000000, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x078644FA00000001, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x078644FA00000002, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x078644FA00000003, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x078644FA00000010, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x078644FA078644FA, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x078644FA0747AE14, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x078644FA80000000, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x0747AE1400000000, 0x0000000000000001, 0x00000000078644FA}, + [_]u64{0x0747AE14078644FA, 0x0747AE1400000001, 0x0000000000000001, 0x00000000078644F9}, + [_]u64{0x0747AE14078644FA, 0x0747AE1400000002, 0x0000000000000001, 0x00000000078644F8}, + [_]u64{0x0747AE14078644FA, 0x0747AE1400000003, 0x0000000000000001, 0x00000000078644F7}, + [_]u64{0x0747AE14078644FA, 0x0747AE1400000010, 0x0000000000000001, 0x00000000078644EA}, + [_]u64{0x0747AE14078644FA, 0x0747AE14078644FA, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0747AE14078644FA, 0x0747AE140747AE14, 0x0000000000000001, 0x00000000003E96E6}, + [_]u64{0x0747AE14078644FA, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x0747AE1480000000, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x8000000000000000, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x8000000000000001, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x8000000000000002, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x8000000000000003, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x8000000000000010, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x80000000078644FA, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x800000000747AE14, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x800000007FFFFFFF, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x8000000080000000, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE14078644FA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0747AE14078644FA}, + [_]u64{0x0747AE140747AE14, 0x0000000000000001, 0x0747AE140747AE14, 0x0000000000000000}, + [_]u64{0x0747AE140747AE14, 0x0000000000000002, 0x03A3D70A03A3D70A, 0x0000000000000000}, + [_]u64{0x0747AE140747AE14, 0x0000000000000003, 0x026D3A06AD17E4B1, 0x0000000000000001}, + [_]u64{0x0747AE140747AE14, 0x0000000000000010, 0x00747AE140747AE1, 0x0000000000000004}, + [_]u64{0x0747AE140747AE14, 0x00000000078644FA, 0x00000000F7AE911E, 0x00000000008DFEC8}, + [_]u64{0x0747AE140747AE14, 0x000000000747AE14, 0x0000000100000001, 0x0000000000000000}, + [_]u64{0x0747AE140747AE14, 0x000000007FFFFFFF, 0x000000000E8F5C28, 0x0000000015D70A3C}, + [_]u64{0x0747AE140747AE14, 0x0000000080000000, 0x000000000E8F5C28, 0x000000000747AE14}, + [_]u64{0x0747AE140747AE14, 0x00000000FFFFFFFD, 0x000000000747AE14, 0x000000001D1EB850}, + [_]u64{0x0747AE140747AE14, 0x00000000FFFFFFFE, 0x000000000747AE14, 0x0000000015D70A3C}, + [_]u64{0x0747AE140747AE14, 0x00000000FFFFFFFF, 0x000000000747AE14, 0x000000000E8F5C28}, + [_]u64{0x0747AE140747AE14, 0x0000000100000000, 0x000000000747AE14, 0x000000000747AE14}, + [_]u64{0x0747AE140747AE14, 0x0000000100000001, 0x000000000747AE14, 0x0000000000000000}, + [_]u64{0x0747AE140747AE14, 0x0000000100000002, 0x000000000747AE13, 0x00000000F8B851EE}, + [_]u64{0x0747AE140747AE14, 0x0000000100000003, 0x000000000747AE13, 0x00000000F170A3DB}, + [_]u64{0x0747AE140747AE14, 0x0000000100000010, 0x000000000747AE13, 0x0000000092CCCCE4}, + [_]u64{0x0747AE140747AE14, 0x00000001078644FA, 0x000000000712773F, 0x0000000013987E8E}, + [_]u64{0x0747AE140747AE14, 0x000000010747AE14, 0x00000000071425A5, 0x00000000D45B9730}, + [_]u64{0x0747AE140747AE14, 0x000000017FFFFFFF, 0x0000000004DA740D, 0x000000008C222221}, + [_]u64{0x0747AE140747AE14, 0x0000000180000000, 0x0000000004DA740D, 0x000000008747AE14}, + [_]u64{0x0747AE140747AE14, 0x00000001FFFFFFFD, 0x0000000003A3D70A, 0x0000000012333332}, + [_]u64{0x0747AE140747AE14, 0x00000001FFFFFFFE, 0x0000000003A3D70A, 0x000000000E8F5C28}, + [_]u64{0x0747AE140747AE14, 0x00000001FFFFFFFF, 0x0000000003A3D70A, 0x000000000AEB851E}, + [_]u64{0x0747AE140747AE14, 0x0000000200000000, 0x0000000003A3D70A, 0x000000000747AE14}, + [_]u64{0x0747AE140747AE14, 0x0000000200000001, 0x0000000003A3D70A, 0x0000000003A3D70A}, + [_]u64{0x0747AE140747AE14, 0x0000000200000002, 0x0000000003A3D70A, 0x0000000000000000}, + [_]u64{0x0747AE140747AE14, 0x0000000200000003, 0x0000000003A3D709, 0x00000001FC5C28F9}, + [_]u64{0x0747AE140747AE14, 0x0000000200000010, 0x0000000003A3D709, 0x00000001CD0A3D84}, + [_]u64{0x0747AE140747AE14, 0x00000002078644FA, 0x0000000003965801, 0x000000007F8F791A}, + [_]u64{0x0747AE140747AE14, 0x000000020747AE14, 0x000000000396C6B1, 0x00000001525CDA40}, + [_]u64{0x0747AE140747AE14, 0x000000027FFFFFFF, 0x0000000002E978D4, 0x000000020A3126E8}, + [_]u64{0x0747AE140747AE14, 0x0000000280000000, 0x0000000002E978D4, 0x000000020747AE14}, + [_]u64{0x0747AE140747AE14, 0x00000002FFFFFFFD, 0x00000000026D3A06, 0x000000020E8F5C26}, + [_]u64{0x0747AE140747AE14, 0x00000002FFFFFFFE, 0x00000000026D3A06, 0x000000020C222220}, + [_]u64{0x0747AE140747AE14, 0x00000002FFFFFFFF, 0x00000000026D3A06, 0x0000000209B4E81A}, + [_]u64{0x0747AE140747AE14, 0x0000000300000000, 0x00000000026D3A06, 0x000000020747AE14}, + [_]u64{0x0747AE140747AE14, 0x0000000300000001, 0x00000000026D3A06, 0x0000000204DA740E}, + [_]u64{0x0747AE140747AE14, 0x0000000300000002, 0x00000000026D3A06, 0x00000002026D3A08}, + [_]u64{0x0747AE140747AE14, 0x0000000300000003, 0x00000000026D3A06, 0x0000000200000002}, + [_]u64{0x0747AE140747AE14, 0x0000000300000010, 0x00000000026D3A06, 0x00000001E0740DB4}, + [_]u64{0x0747AE140747AE14, 0x00000003078644FA, 0x0000000002673301, 0x000000018B6D9B1A}, + [_]u64{0x0747AE140747AE14, 0x000000030747AE14, 0x00000000026764AB, 0x00000002F85A96B8}, + [_]u64{0x0747AE140747AE14, 0x000000037FFFFFFF, 0x0000000002147AE1, 0x00000000895C28F5}, + [_]u64{0x0747AE140747AE14, 0x0000000380000000, 0x0000000002147AE1, 0x000000008747AE14}, + [_]u64{0x0747AE140747AE14, 0x00000003FFFFFFFD, 0x0000000001D1EB85, 0x000000000CBD70A3}, + [_]u64{0x0747AE140747AE14, 0x00000003FFFFFFFE, 0x0000000001D1EB85, 0x000000000AEB851E}, + [_]u64{0x0747AE140747AE14, 0x00000003FFFFFFFF, 0x0000000001D1EB85, 0x0000000009199999}, + [_]u64{0x0747AE140747AE14, 0x0000001000000000, 0x0000000000747AE1, 0x000000040747AE14}, + [_]u64{0x0747AE140747AE14, 0x0000001000000001, 0x0000000000747AE1, 0x0000000406D33333}, + [_]u64{0x0747AE140747AE14, 0x0000001000000002, 0x0000000000747AE1, 0x00000004065EB852}, + [_]u64{0x0747AE140747AE14, 0x0000001000000003, 0x0000000000747AE1, 0x0000000405EA3D71}, + [_]u64{0x0747AE140747AE14, 0x0000001000000010, 0x0000000000747AE1, 0x0000000400000004}, + [_]u64{0x0747AE140747AE14, 0x00000010078644FA, 0x0000000000744433, 0x0000000B9BED8846}, + [_]u64{0x0747AE140747AE14, 0x000000100747AE14, 0x00000000007445F9, 0x0000000BBF93F8A0}, + [_]u64{0x0747AE140747AE14, 0x000000107FFFFFFF, 0x000000000070F347, 0x0000000087B8A15B}, + [_]u64{0x0747AE140747AE14, 0x0000001080000000, 0x000000000070F347, 0x000000008747AE14}, + [_]u64{0x0747AE140747AE14, 0x00000010FFFFFFFD, 0x00000000006DA0D4, 0x0000000008909090}, + [_]u64{0x0747AE140747AE14, 0x00000010FFFFFFFE, 0x00000000006DA0D4, 0x000000000822EFBC}, + [_]u64{0x0747AE140747AE14, 0x00000010FFFFFFFF, 0x00000000006DA0D4, 0x0000000007B54EE8}, + [_]u64{0x0747AE140747AE14, 0x078644FA00000000, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x078644FA00000001, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x078644FA00000002, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x078644FA00000003, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x078644FA00000010, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x078644FA078644FA, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x078644FA0747AE14, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x078644FA80000000, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x0747AE1400000000, 0x0000000000000001, 0x000000000747AE14}, + [_]u64{0x0747AE140747AE14, 0x0747AE1400000001, 0x0000000000000001, 0x000000000747AE13}, + [_]u64{0x0747AE140747AE14, 0x0747AE1400000002, 0x0000000000000001, 0x000000000747AE12}, + [_]u64{0x0747AE140747AE14, 0x0747AE1400000003, 0x0000000000000001, 0x000000000747AE11}, + [_]u64{0x0747AE140747AE14, 0x0747AE1400000010, 0x0000000000000001, 0x000000000747AE04}, + [_]u64{0x0747AE140747AE14, 0x0747AE14078644FA, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x0747AE140747AE14, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0747AE140747AE14, 0x0747AE147FFFFFFF, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x0747AE1480000000, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x8000000000000000, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x8000000000000001, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x8000000000000002, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x8000000000000003, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x8000000000000010, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x80000000078644FA, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x800000000747AE14, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x800000007FFFFFFF, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x8000000080000000, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE140747AE14, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0747AE140747AE14}, + [_]u64{0x0747AE147FFFFFFF, 0x0000000000000001, 0x0747AE147FFFFFFF, 0x0000000000000000}, + [_]u64{0x0747AE147FFFFFFF, 0x0000000000000002, 0x03A3D70A3FFFFFFF, 0x0000000000000001}, + [_]u64{0x0747AE147FFFFFFF, 0x0000000000000003, 0x026D3A06D5555555, 0x0000000000000000}, + [_]u64{0x0747AE147FFFFFFF, 0x0000000000000010, 0x00747AE147FFFFFF, 0x000000000000000F}, + [_]u64{0x0747AE147FFFFFFF, 0x00000000078644FA, 0x00000000F7AE912E, 0x0000000000E20113}, + [_]u64{0x0747AE147FFFFFFF, 0x000000000747AE14, 0x0000000100000011, 0x00000000043D70AB}, + [_]u64{0x0747AE147FFFFFFF, 0x000000007FFFFFFF, 0x000000000E8F5C29, 0x000000000E8F5C28}, + [_]u64{0x0747AE147FFFFFFF, 0x0000000080000000, 0x000000000E8F5C28, 0x000000007FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x00000000FFFFFFFD, 0x000000000747AE14, 0x0000000095D70A3B}, + [_]u64{0x0747AE147FFFFFFF, 0x00000000FFFFFFFE, 0x000000000747AE14, 0x000000008E8F5C27}, + [_]u64{0x0747AE147FFFFFFF, 0x00000000FFFFFFFF, 0x000000000747AE14, 0x000000008747AE13}, + [_]u64{0x0747AE147FFFFFFF, 0x0000000100000000, 0x000000000747AE14, 0x000000007FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x0000000100000001, 0x000000000747AE14, 0x0000000078B851EB}, + [_]u64{0x0747AE147FFFFFFF, 0x0000000100000002, 0x000000000747AE14, 0x000000007170A3D7}, + [_]u64{0x0747AE147FFFFFFF, 0x0000000100000003, 0x000000000747AE14, 0x000000006A28F5C3}, + [_]u64{0x0747AE147FFFFFFF, 0x0000000100000010, 0x000000000747AE14, 0x000000000B851EBF}, + [_]u64{0x0747AE147FFFFFFF, 0x00000001078644FA, 0x000000000712773F, 0x000000008C50D079}, + [_]u64{0x0747AE147FFFFFFF, 0x000000010747AE14, 0x00000000071425A6, 0x0000000045CC3B07}, + [_]u64{0x0747AE147FFFFFFF, 0x000000017FFFFFFF, 0x0000000004DA740D, 0x0000000104DA740C}, + [_]u64{0x0747AE147FFFFFFF, 0x0000000180000000, 0x0000000004DA740D, 0x00000000FFFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x00000001FFFFFFFD, 0x0000000003A3D70A, 0x000000008AEB851D}, + [_]u64{0x0747AE147FFFFFFF, 0x00000001FFFFFFFE, 0x0000000003A3D70A, 0x000000008747AE13}, + [_]u64{0x0747AE147FFFFFFF, 0x00000001FFFFFFFF, 0x0000000003A3D70A, 0x0000000083A3D709}, + [_]u64{0x0747AE147FFFFFFF, 0x0000000200000000, 0x0000000003A3D70A, 0x000000007FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x0000000200000001, 0x0000000003A3D70A, 0x000000007C5C28F5}, + [_]u64{0x0747AE147FFFFFFF, 0x0000000200000002, 0x0000000003A3D70A, 0x0000000078B851EB}, + [_]u64{0x0747AE147FFFFFFF, 0x0000000200000003, 0x0000000003A3D70A, 0x0000000075147AE1}, + [_]u64{0x0747AE147FFFFFFF, 0x0000000200000010, 0x0000000003A3D70A, 0x0000000045C28F5F}, + [_]u64{0x0747AE147FFFFFFF, 0x00000002078644FA, 0x0000000003965801, 0x00000000F847CB05}, + [_]u64{0x0747AE147FFFFFFF, 0x000000020747AE14, 0x000000000396C6B1, 0x00000001CB152C2B}, + [_]u64{0x0747AE147FFFFFFF, 0x000000027FFFFFFF, 0x0000000002E978D5, 0x0000000002E978D4}, + [_]u64{0x0747AE147FFFFFFF, 0x0000000280000000, 0x0000000002E978D4, 0x000000027FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x00000002FFFFFFFD, 0x00000000026D3A06, 0x000000028747AE11}, + [_]u64{0x0747AE147FFFFFFF, 0x00000002FFFFFFFE, 0x00000000026D3A06, 0x0000000284DA740B}, + [_]u64{0x0747AE147FFFFFFF, 0x00000002FFFFFFFF, 0x00000000026D3A06, 0x00000002826D3A05}, + [_]u64{0x0747AE147FFFFFFF, 0x0000000300000000, 0x00000000026D3A06, 0x000000027FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x0000000300000001, 0x00000000026D3A06, 0x000000027D92C5F9}, + [_]u64{0x0747AE147FFFFFFF, 0x0000000300000002, 0x00000000026D3A06, 0x000000027B258BF3}, + [_]u64{0x0747AE147FFFFFFF, 0x0000000300000003, 0x00000000026D3A06, 0x0000000278B851ED}, + [_]u64{0x0747AE147FFFFFFF, 0x0000000300000010, 0x00000000026D3A06, 0x00000002592C5F9F}, + [_]u64{0x0747AE147FFFFFFF, 0x00000003078644FA, 0x0000000002673301, 0x000000020425ED05}, + [_]u64{0x0747AE147FFFFFFF, 0x000000030747AE14, 0x00000000026764AC, 0x0000000069CB3A8F}, + [_]u64{0x0747AE147FFFFFFF, 0x000000037FFFFFFF, 0x0000000002147AE1, 0x0000000102147AE0}, + [_]u64{0x0747AE147FFFFFFF, 0x0000000380000000, 0x0000000002147AE1, 0x00000000FFFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x00000003FFFFFFFD, 0x0000000001D1EB85, 0x000000008575C28E}, + [_]u64{0x0747AE147FFFFFFF, 0x00000003FFFFFFFE, 0x0000000001D1EB85, 0x0000000083A3D709}, + [_]u64{0x0747AE147FFFFFFF, 0x00000003FFFFFFFF, 0x0000000001D1EB85, 0x0000000081D1EB84}, + [_]u64{0x0747AE147FFFFFFF, 0x0000001000000000, 0x0000000000747AE1, 0x000000047FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x0000001000000001, 0x0000000000747AE1, 0x000000047F8B851E}, + [_]u64{0x0747AE147FFFFFFF, 0x0000001000000002, 0x0000000000747AE1, 0x000000047F170A3D}, + [_]u64{0x0747AE147FFFFFFF, 0x0000001000000003, 0x0000000000747AE1, 0x000000047EA28F5C}, + [_]u64{0x0747AE147FFFFFFF, 0x0000001000000010, 0x0000000000747AE1, 0x0000000478B851EF}, + [_]u64{0x0747AE147FFFFFFF, 0x00000010078644FA, 0x0000000000744433, 0x0000000C14A5DA31}, + [_]u64{0x0747AE147FFFFFFF, 0x000000100747AE14, 0x00000000007445F9, 0x0000000C384C4A8B}, + [_]u64{0x0747AE147FFFFFFF, 0x000000107FFFFFFF, 0x000000000070F347, 0x000000010070F346}, + [_]u64{0x0747AE147FFFFFFF, 0x0000001080000000, 0x000000000070F347, 0x00000000FFFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x00000010FFFFFFFD, 0x00000000006DA0D4, 0x000000008148E27B}, + [_]u64{0x0747AE147FFFFFFF, 0x00000010FFFFFFFE, 0x00000000006DA0D4, 0x0000000080DB41A7}, + [_]u64{0x0747AE147FFFFFFF, 0x00000010FFFFFFFF, 0x00000000006DA0D4, 0x00000000806DA0D3}, + [_]u64{0x0747AE147FFFFFFF, 0x078644FA00000000, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x078644FA00000001, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x078644FA00000002, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x078644FA00000003, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x078644FA00000010, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x078644FA078644FA, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x078644FA0747AE14, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x078644FA80000000, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x0747AE1400000000, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x0747AE1400000001, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x0747AE147FFFFFFF, 0x0747AE1400000002, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0x0747AE147FFFFFFF, 0x0747AE1400000003, 0x0000000000000001, 0x000000007FFFFFFC}, + [_]u64{0x0747AE147FFFFFFF, 0x0747AE1400000010, 0x0000000000000001, 0x000000007FFFFFEF}, + [_]u64{0x0747AE147FFFFFFF, 0x0747AE14078644FA, 0x0000000000000001, 0x000000007879BB05}, + [_]u64{0x0747AE147FFFFFFF, 0x0747AE140747AE14, 0x0000000000000001, 0x0000000078B851EB}, + [_]u64{0x0747AE147FFFFFFF, 0x0747AE147FFFFFFF, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0747AE147FFFFFFF, 0x0747AE1480000000, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x8000000000000000, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x8000000000000001, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x8000000000000002, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x8000000000000003, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x8000000000000010, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x80000000078644FA, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x800000000747AE14, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x800000007FFFFFFF, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x8000000080000000, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE147FFFFFFF, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0747AE147FFFFFFF}, + [_]u64{0x0747AE1480000000, 0x0000000000000001, 0x0747AE1480000000, 0x0000000000000000}, + [_]u64{0x0747AE1480000000, 0x0000000000000002, 0x03A3D70A40000000, 0x0000000000000000}, + [_]u64{0x0747AE1480000000, 0x0000000000000003, 0x026D3A06D5555555, 0x0000000000000001}, + [_]u64{0x0747AE1480000000, 0x0000000000000010, 0x00747AE148000000, 0x0000000000000000}, + [_]u64{0x0747AE1480000000, 0x00000000078644FA, 0x00000000F7AE912E, 0x0000000000E20114}, + [_]u64{0x0747AE1480000000, 0x000000000747AE14, 0x0000000100000011, 0x00000000043D70AC}, + [_]u64{0x0747AE1480000000, 0x000000007FFFFFFF, 0x000000000E8F5C29, 0x000000000E8F5C29}, + [_]u64{0x0747AE1480000000, 0x0000000080000000, 0x000000000E8F5C29, 0x0000000000000000}, + [_]u64{0x0747AE1480000000, 0x00000000FFFFFFFD, 0x000000000747AE14, 0x0000000095D70A3C}, + [_]u64{0x0747AE1480000000, 0x00000000FFFFFFFE, 0x000000000747AE14, 0x000000008E8F5C28}, + [_]u64{0x0747AE1480000000, 0x00000000FFFFFFFF, 0x000000000747AE14, 0x000000008747AE14}, + [_]u64{0x0747AE1480000000, 0x0000000100000000, 0x000000000747AE14, 0x0000000080000000}, + [_]u64{0x0747AE1480000000, 0x0000000100000001, 0x000000000747AE14, 0x0000000078B851EC}, + [_]u64{0x0747AE1480000000, 0x0000000100000002, 0x000000000747AE14, 0x000000007170A3D8}, + [_]u64{0x0747AE1480000000, 0x0000000100000003, 0x000000000747AE14, 0x000000006A28F5C4}, + [_]u64{0x0747AE1480000000, 0x0000000100000010, 0x000000000747AE14, 0x000000000B851EC0}, + [_]u64{0x0747AE1480000000, 0x00000001078644FA, 0x000000000712773F, 0x000000008C50D07A}, + [_]u64{0x0747AE1480000000, 0x000000010747AE14, 0x00000000071425A6, 0x0000000045CC3B08}, + [_]u64{0x0747AE1480000000, 0x000000017FFFFFFF, 0x0000000004DA740D, 0x0000000104DA740D}, + [_]u64{0x0747AE1480000000, 0x0000000180000000, 0x0000000004DA740D, 0x0000000100000000}, + [_]u64{0x0747AE1480000000, 0x00000001FFFFFFFD, 0x0000000003A3D70A, 0x000000008AEB851E}, + [_]u64{0x0747AE1480000000, 0x00000001FFFFFFFE, 0x0000000003A3D70A, 0x000000008747AE14}, + [_]u64{0x0747AE1480000000, 0x00000001FFFFFFFF, 0x0000000003A3D70A, 0x0000000083A3D70A}, + [_]u64{0x0747AE1480000000, 0x0000000200000000, 0x0000000003A3D70A, 0x0000000080000000}, + [_]u64{0x0747AE1480000000, 0x0000000200000001, 0x0000000003A3D70A, 0x000000007C5C28F6}, + [_]u64{0x0747AE1480000000, 0x0000000200000002, 0x0000000003A3D70A, 0x0000000078B851EC}, + [_]u64{0x0747AE1480000000, 0x0000000200000003, 0x0000000003A3D70A, 0x0000000075147AE2}, + [_]u64{0x0747AE1480000000, 0x0000000200000010, 0x0000000003A3D70A, 0x0000000045C28F60}, + [_]u64{0x0747AE1480000000, 0x00000002078644FA, 0x0000000003965801, 0x00000000F847CB06}, + [_]u64{0x0747AE1480000000, 0x000000020747AE14, 0x000000000396C6B1, 0x00000001CB152C2C}, + [_]u64{0x0747AE1480000000, 0x000000027FFFFFFF, 0x0000000002E978D5, 0x0000000002E978D5}, + [_]u64{0x0747AE1480000000, 0x0000000280000000, 0x0000000002E978D5, 0x0000000000000000}, + [_]u64{0x0747AE1480000000, 0x00000002FFFFFFFD, 0x00000000026D3A06, 0x000000028747AE12}, + [_]u64{0x0747AE1480000000, 0x00000002FFFFFFFE, 0x00000000026D3A06, 0x0000000284DA740C}, + [_]u64{0x0747AE1480000000, 0x00000002FFFFFFFF, 0x00000000026D3A06, 0x00000002826D3A06}, + [_]u64{0x0747AE1480000000, 0x0000000300000000, 0x00000000026D3A06, 0x0000000280000000}, + [_]u64{0x0747AE1480000000, 0x0000000300000001, 0x00000000026D3A06, 0x000000027D92C5FA}, + [_]u64{0x0747AE1480000000, 0x0000000300000002, 0x00000000026D3A06, 0x000000027B258BF4}, + [_]u64{0x0747AE1480000000, 0x0000000300000003, 0x00000000026D3A06, 0x0000000278B851EE}, + [_]u64{0x0747AE1480000000, 0x0000000300000010, 0x00000000026D3A06, 0x00000002592C5FA0}, + [_]u64{0x0747AE1480000000, 0x00000003078644FA, 0x0000000002673301, 0x000000020425ED06}, + [_]u64{0x0747AE1480000000, 0x000000030747AE14, 0x00000000026764AC, 0x0000000069CB3A90}, + [_]u64{0x0747AE1480000000, 0x000000037FFFFFFF, 0x0000000002147AE1, 0x0000000102147AE1}, + [_]u64{0x0747AE1480000000, 0x0000000380000000, 0x0000000002147AE1, 0x0000000100000000}, + [_]u64{0x0747AE1480000000, 0x00000003FFFFFFFD, 0x0000000001D1EB85, 0x000000008575C28F}, + [_]u64{0x0747AE1480000000, 0x00000003FFFFFFFE, 0x0000000001D1EB85, 0x0000000083A3D70A}, + [_]u64{0x0747AE1480000000, 0x00000003FFFFFFFF, 0x0000000001D1EB85, 0x0000000081D1EB85}, + [_]u64{0x0747AE1480000000, 0x0000001000000000, 0x0000000000747AE1, 0x0000000480000000}, + [_]u64{0x0747AE1480000000, 0x0000001000000001, 0x0000000000747AE1, 0x000000047F8B851F}, + [_]u64{0x0747AE1480000000, 0x0000001000000002, 0x0000000000747AE1, 0x000000047F170A3E}, + [_]u64{0x0747AE1480000000, 0x0000001000000003, 0x0000000000747AE1, 0x000000047EA28F5D}, + [_]u64{0x0747AE1480000000, 0x0000001000000010, 0x0000000000747AE1, 0x0000000478B851F0}, + [_]u64{0x0747AE1480000000, 0x00000010078644FA, 0x0000000000744433, 0x0000000C14A5DA32}, + [_]u64{0x0747AE1480000000, 0x000000100747AE14, 0x00000000007445F9, 0x0000000C384C4A8C}, + [_]u64{0x0747AE1480000000, 0x000000107FFFFFFF, 0x000000000070F347, 0x000000010070F347}, + [_]u64{0x0747AE1480000000, 0x0000001080000000, 0x000000000070F347, 0x0000000100000000}, + [_]u64{0x0747AE1480000000, 0x00000010FFFFFFFD, 0x00000000006DA0D4, 0x000000008148E27C}, + [_]u64{0x0747AE1480000000, 0x00000010FFFFFFFE, 0x00000000006DA0D4, 0x0000000080DB41A8}, + [_]u64{0x0747AE1480000000, 0x00000010FFFFFFFF, 0x00000000006DA0D4, 0x00000000806DA0D4}, + [_]u64{0x0747AE1480000000, 0x078644FA00000000, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x078644FA00000001, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x078644FA00000002, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x078644FA00000003, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x078644FA00000010, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x078644FA078644FA, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x078644FA0747AE14, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x078644FA80000000, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x0747AE1400000000, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0x0747AE1480000000, 0x0747AE1400000001, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x0747AE1480000000, 0x0747AE1400000002, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x0747AE1480000000, 0x0747AE1400000003, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0x0747AE1480000000, 0x0747AE1400000010, 0x0000000000000001, 0x000000007FFFFFF0}, + [_]u64{0x0747AE1480000000, 0x0747AE14078644FA, 0x0000000000000001, 0x000000007879BB06}, + [_]u64{0x0747AE1480000000, 0x0747AE140747AE14, 0x0000000000000001, 0x0000000078B851EC}, + [_]u64{0x0747AE1480000000, 0x0747AE147FFFFFFF, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x0747AE1480000000, 0x0747AE1480000000, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0747AE1480000000, 0x0747AE14FFFFFFFD, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x8000000000000000, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x8000000000000001, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x8000000000000002, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x8000000000000003, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x8000000000000010, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x80000000078644FA, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x800000000747AE14, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x800000007FFFFFFF, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x8000000080000000, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE1480000000, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0747AE1480000000}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000000000000001, 0x0747AE14FFFFFFFD, 0x0000000000000000}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000000000000002, 0x03A3D70A7FFFFFFE, 0x0000000000000001}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000000000000003, 0x026D3A06FFFFFFFF, 0x0000000000000000}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000000000000010, 0x00747AE14FFFFFFF, 0x000000000000000D}, + [_]u64{0x0747AE14FFFFFFFD, 0x00000000078644FA, 0x00000000F7AE913F, 0x0000000000F76C77}, + [_]u64{0x0747AE14FFFFFFFD, 0x000000000747AE14, 0x0000000100000023, 0x0000000001333341}, + [_]u64{0x0747AE14FFFFFFFD, 0x000000007FFFFFFF, 0x000000000E8F5C2A, 0x000000000E8F5C27}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000000080000000, 0x000000000E8F5C29, 0x000000007FFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x00000000FFFFFFFD, 0x000000000747AE15, 0x0000000015D70A3C}, + [_]u64{0x0747AE14FFFFFFFD, 0x00000000FFFFFFFE, 0x000000000747AE15, 0x000000000E8F5C27}, + [_]u64{0x0747AE14FFFFFFFD, 0x00000000FFFFFFFF, 0x000000000747AE15, 0x000000000747AE12}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000000100000000, 0x000000000747AE14, 0x00000000FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000000100000001, 0x000000000747AE14, 0x00000000F8B851E9}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000000100000002, 0x000000000747AE14, 0x00000000F170A3D5}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000000100000003, 0x000000000747AE14, 0x00000000EA28F5C1}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000000100000010, 0x000000000747AE14, 0x000000008B851EBD}, + [_]u64{0x0747AE14FFFFFFFD, 0x00000001078644FA, 0x0000000007127740, 0x0000000004CA8B7D}, + [_]u64{0x0747AE14FFFFFFFD, 0x000000010747AE14, 0x00000000071425A6, 0x00000000C5CC3B05}, + [_]u64{0x0747AE14FFFFFFFD, 0x000000017FFFFFFF, 0x0000000004DA740E, 0x0000000004DA740B}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000000180000000, 0x0000000004DA740D, 0x000000017FFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x00000001FFFFFFFD, 0x0000000003A3D70A, 0x000000010AEB851B}, + [_]u64{0x0747AE14FFFFFFFD, 0x00000001FFFFFFFE, 0x0000000003A3D70A, 0x000000010747AE11}, + [_]u64{0x0747AE14FFFFFFFD, 0x00000001FFFFFFFF, 0x0000000003A3D70A, 0x0000000103A3D707}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000000200000000, 0x0000000003A3D70A, 0x00000000FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000000200000001, 0x0000000003A3D70A, 0x00000000FC5C28F3}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000000200000002, 0x0000000003A3D70A, 0x00000000F8B851E9}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000000200000003, 0x0000000003A3D70A, 0x00000000F5147ADF}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000000200000010, 0x0000000003A3D70A, 0x00000000C5C28F5D}, + [_]u64{0x0747AE14FFFFFFFD, 0x00000002078644FA, 0x0000000003965801, 0x000000017847CB03}, + [_]u64{0x0747AE14FFFFFFFD, 0x000000020747AE14, 0x000000000396C6B2, 0x0000000043CD7E15}, + [_]u64{0x0747AE14FFFFFFFD, 0x000000027FFFFFFF, 0x0000000002E978D5, 0x0000000082E978D2}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000000280000000, 0x0000000002E978D5, 0x000000007FFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x00000002FFFFFFFD, 0x00000000026D3A07, 0x000000000747AE12}, + [_]u64{0x0747AE14FFFFFFFD, 0x00000002FFFFFFFE, 0x00000000026D3A07, 0x0000000004DA740B}, + [_]u64{0x0747AE14FFFFFFFD, 0x00000002FFFFFFFF, 0x00000000026D3A07, 0x00000000026D3A04}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000000300000000, 0x00000000026D3A06, 0x00000002FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000000300000001, 0x00000000026D3A06, 0x00000002FD92C5F7}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000000300000002, 0x00000000026D3A06, 0x00000002FB258BF1}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000000300000003, 0x00000000026D3A06, 0x00000002F8B851EB}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000000300000010, 0x00000000026D3A06, 0x00000002D92C5F9D}, + [_]u64{0x0747AE14FFFFFFFD, 0x00000003078644FA, 0x0000000002673301, 0x000000028425ED03}, + [_]u64{0x0747AE14FFFFFFFD, 0x000000030747AE14, 0x00000000026764AC, 0x00000000E9CB3A8D}, + [_]u64{0x0747AE14FFFFFFFD, 0x000000037FFFFFFF, 0x0000000002147AE1, 0x0000000182147ADE}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000000380000000, 0x0000000002147AE1, 0x000000017FFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x00000003FFFFFFFD, 0x0000000001D1EB85, 0x000000010575C28C}, + [_]u64{0x0747AE14FFFFFFFD, 0x00000003FFFFFFFE, 0x0000000001D1EB85, 0x0000000103A3D707}, + [_]u64{0x0747AE14FFFFFFFD, 0x00000003FFFFFFFF, 0x0000000001D1EB85, 0x0000000101D1EB82}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000001000000000, 0x0000000000747AE1, 0x00000004FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000001000000001, 0x0000000000747AE1, 0x00000004FF8B851C}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000001000000002, 0x0000000000747AE1, 0x00000004FF170A3B}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000001000000003, 0x0000000000747AE1, 0x00000004FEA28F5A}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000001000000010, 0x0000000000747AE1, 0x00000004F8B851ED}, + [_]u64{0x0747AE14FFFFFFFD, 0x00000010078644FA, 0x0000000000744433, 0x0000000C94A5DA2F}, + [_]u64{0x0747AE14FFFFFFFD, 0x000000100747AE14, 0x00000000007445F9, 0x0000000CB84C4A89}, + [_]u64{0x0747AE14FFFFFFFD, 0x000000107FFFFFFF, 0x000000000070F347, 0x000000018070F344}, + [_]u64{0x0747AE14FFFFFFFD, 0x0000001080000000, 0x000000000070F347, 0x000000017FFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x00000010FFFFFFFD, 0x00000000006DA0D4, 0x000000010148E279}, + [_]u64{0x0747AE14FFFFFFFD, 0x00000010FFFFFFFE, 0x00000000006DA0D4, 0x0000000100DB41A5}, + [_]u64{0x0747AE14FFFFFFFD, 0x00000010FFFFFFFF, 0x00000000006DA0D4, 0x00000001006DA0D1}, + [_]u64{0x0747AE14FFFFFFFD, 0x078644FA00000000, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x078644FA00000001, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x078644FA00000002, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x078644FA00000003, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x078644FA00000010, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x078644FA078644FA, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x078644FA0747AE14, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x078644FA80000000, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x0747AE1400000000, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x0747AE1400000001, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0x0747AE14FFFFFFFD, 0x0747AE1400000002, 0x0000000000000001, 0x00000000FFFFFFFB}, + [_]u64{0x0747AE14FFFFFFFD, 0x0747AE1400000003, 0x0000000000000001, 0x00000000FFFFFFFA}, + [_]u64{0x0747AE14FFFFFFFD, 0x0747AE1400000010, 0x0000000000000001, 0x00000000FFFFFFED}, + [_]u64{0x0747AE14FFFFFFFD, 0x0747AE14078644FA, 0x0000000000000001, 0x00000000F879BB03}, + [_]u64{0x0747AE14FFFFFFFD, 0x0747AE140747AE14, 0x0000000000000001, 0x00000000F8B851E9}, + [_]u64{0x0747AE14FFFFFFFD, 0x0747AE147FFFFFFF, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x0747AE14FFFFFFFD, 0x0747AE1480000000, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x0747AE14FFFFFFFD, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0747AE14FFFFFFFD, 0x0747AE14FFFFFFFE, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x8000000000000000, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x8000000000000001, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x8000000000000002, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x8000000000000003, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x8000000000000010, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x80000000078644FA, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x800000000747AE14, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x800000007FFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x8000000080000000, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFD, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000000000000001, 0x0747AE14FFFFFFFE, 0x0000000000000000}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000000000000002, 0x03A3D70A7FFFFFFF, 0x0000000000000000}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000000000000003, 0x026D3A06FFFFFFFF, 0x0000000000000001}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000000000000010, 0x00747AE14FFFFFFF, 0x000000000000000E}, + [_]u64{0x0747AE14FFFFFFFE, 0x00000000078644FA, 0x00000000F7AE913F, 0x0000000000F76C78}, + [_]u64{0x0747AE14FFFFFFFE, 0x000000000747AE14, 0x0000000100000023, 0x0000000001333342}, + [_]u64{0x0747AE14FFFFFFFE, 0x000000007FFFFFFF, 0x000000000E8F5C2A, 0x000000000E8F5C28}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000000080000000, 0x000000000E8F5C29, 0x000000007FFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x00000000FFFFFFFD, 0x000000000747AE15, 0x0000000015D70A3D}, + [_]u64{0x0747AE14FFFFFFFE, 0x00000000FFFFFFFE, 0x000000000747AE15, 0x000000000E8F5C28}, + [_]u64{0x0747AE14FFFFFFFE, 0x00000000FFFFFFFF, 0x000000000747AE15, 0x000000000747AE13}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000000100000000, 0x000000000747AE14, 0x00000000FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000000100000001, 0x000000000747AE14, 0x00000000F8B851EA}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000000100000002, 0x000000000747AE14, 0x00000000F170A3D6}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000000100000003, 0x000000000747AE14, 0x00000000EA28F5C2}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000000100000010, 0x000000000747AE14, 0x000000008B851EBE}, + [_]u64{0x0747AE14FFFFFFFE, 0x00000001078644FA, 0x0000000007127740, 0x0000000004CA8B7E}, + [_]u64{0x0747AE14FFFFFFFE, 0x000000010747AE14, 0x00000000071425A6, 0x00000000C5CC3B06}, + [_]u64{0x0747AE14FFFFFFFE, 0x000000017FFFFFFF, 0x0000000004DA740E, 0x0000000004DA740C}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000000180000000, 0x0000000004DA740D, 0x000000017FFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x00000001FFFFFFFD, 0x0000000003A3D70A, 0x000000010AEB851C}, + [_]u64{0x0747AE14FFFFFFFE, 0x00000001FFFFFFFE, 0x0000000003A3D70A, 0x000000010747AE12}, + [_]u64{0x0747AE14FFFFFFFE, 0x00000001FFFFFFFF, 0x0000000003A3D70A, 0x0000000103A3D708}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000000200000000, 0x0000000003A3D70A, 0x00000000FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000000200000001, 0x0000000003A3D70A, 0x00000000FC5C28F4}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000000200000002, 0x0000000003A3D70A, 0x00000000F8B851EA}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000000200000003, 0x0000000003A3D70A, 0x00000000F5147AE0}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000000200000010, 0x0000000003A3D70A, 0x00000000C5C28F5E}, + [_]u64{0x0747AE14FFFFFFFE, 0x00000002078644FA, 0x0000000003965801, 0x000000017847CB04}, + [_]u64{0x0747AE14FFFFFFFE, 0x000000020747AE14, 0x000000000396C6B2, 0x0000000043CD7E16}, + [_]u64{0x0747AE14FFFFFFFE, 0x000000027FFFFFFF, 0x0000000002E978D5, 0x0000000082E978D3}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000000280000000, 0x0000000002E978D5, 0x000000007FFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x00000002FFFFFFFD, 0x00000000026D3A07, 0x000000000747AE13}, + [_]u64{0x0747AE14FFFFFFFE, 0x00000002FFFFFFFE, 0x00000000026D3A07, 0x0000000004DA740C}, + [_]u64{0x0747AE14FFFFFFFE, 0x00000002FFFFFFFF, 0x00000000026D3A07, 0x00000000026D3A05}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000000300000000, 0x00000000026D3A06, 0x00000002FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000000300000001, 0x00000000026D3A06, 0x00000002FD92C5F8}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000000300000002, 0x00000000026D3A06, 0x00000002FB258BF2}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000000300000003, 0x00000000026D3A06, 0x00000002F8B851EC}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000000300000010, 0x00000000026D3A06, 0x00000002D92C5F9E}, + [_]u64{0x0747AE14FFFFFFFE, 0x00000003078644FA, 0x0000000002673301, 0x000000028425ED04}, + [_]u64{0x0747AE14FFFFFFFE, 0x000000030747AE14, 0x00000000026764AC, 0x00000000E9CB3A8E}, + [_]u64{0x0747AE14FFFFFFFE, 0x000000037FFFFFFF, 0x0000000002147AE1, 0x0000000182147ADF}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000000380000000, 0x0000000002147AE1, 0x000000017FFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x00000003FFFFFFFD, 0x0000000001D1EB85, 0x000000010575C28D}, + [_]u64{0x0747AE14FFFFFFFE, 0x00000003FFFFFFFE, 0x0000000001D1EB85, 0x0000000103A3D708}, + [_]u64{0x0747AE14FFFFFFFE, 0x00000003FFFFFFFF, 0x0000000001D1EB85, 0x0000000101D1EB83}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000001000000000, 0x0000000000747AE1, 0x00000004FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000001000000001, 0x0000000000747AE1, 0x00000004FF8B851D}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000001000000002, 0x0000000000747AE1, 0x00000004FF170A3C}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000001000000003, 0x0000000000747AE1, 0x00000004FEA28F5B}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000001000000010, 0x0000000000747AE1, 0x00000004F8B851EE}, + [_]u64{0x0747AE14FFFFFFFE, 0x00000010078644FA, 0x0000000000744433, 0x0000000C94A5DA30}, + [_]u64{0x0747AE14FFFFFFFE, 0x000000100747AE14, 0x00000000007445F9, 0x0000000CB84C4A8A}, + [_]u64{0x0747AE14FFFFFFFE, 0x000000107FFFFFFF, 0x000000000070F347, 0x000000018070F345}, + [_]u64{0x0747AE14FFFFFFFE, 0x0000001080000000, 0x000000000070F347, 0x000000017FFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x00000010FFFFFFFD, 0x00000000006DA0D4, 0x000000010148E27A}, + [_]u64{0x0747AE14FFFFFFFE, 0x00000010FFFFFFFE, 0x00000000006DA0D4, 0x0000000100DB41A6}, + [_]u64{0x0747AE14FFFFFFFE, 0x00000010FFFFFFFF, 0x00000000006DA0D4, 0x00000001006DA0D2}, + [_]u64{0x0747AE14FFFFFFFE, 0x078644FA00000000, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x078644FA00000001, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x078644FA00000002, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x078644FA00000003, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x078644FA00000010, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x078644FA078644FA, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x078644FA0747AE14, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x078644FA80000000, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x0747AE1400000000, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x0747AE1400000001, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFE, 0x0747AE1400000002, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0x0747AE14FFFFFFFE, 0x0747AE1400000003, 0x0000000000000001, 0x00000000FFFFFFFB}, + [_]u64{0x0747AE14FFFFFFFE, 0x0747AE1400000010, 0x0000000000000001, 0x00000000FFFFFFEE}, + [_]u64{0x0747AE14FFFFFFFE, 0x0747AE14078644FA, 0x0000000000000001, 0x00000000F879BB04}, + [_]u64{0x0747AE14FFFFFFFE, 0x0747AE140747AE14, 0x0000000000000001, 0x00000000F8B851EA}, + [_]u64{0x0747AE14FFFFFFFE, 0x0747AE147FFFFFFF, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x0747AE14FFFFFFFE, 0x0747AE1480000000, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x0747AE14FFFFFFFD, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x0747AE14FFFFFFFE, 0x0747AE14FFFFFFFE, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0747AE14FFFFFFFE, 0x0747AE14FFFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x8000000000000000, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x8000000000000001, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x8000000000000002, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x8000000000000003, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x8000000000000010, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x80000000078644FA, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x800000000747AE14, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x800000007FFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x8000000080000000, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFE, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000000000000001, 0x0747AE14FFFFFFFF, 0x0000000000000000}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000000000000002, 0x03A3D70A7FFFFFFF, 0x0000000000000001}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000000000000003, 0x026D3A06FFFFFFFF, 0x0000000000000002}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000000000000010, 0x00747AE14FFFFFFF, 0x000000000000000F}, + [_]u64{0x0747AE14FFFFFFFF, 0x00000000078644FA, 0x00000000F7AE913F, 0x0000000000F76C79}, + [_]u64{0x0747AE14FFFFFFFF, 0x000000000747AE14, 0x0000000100000023, 0x0000000001333343}, + [_]u64{0x0747AE14FFFFFFFF, 0x000000007FFFFFFF, 0x000000000E8F5C2A, 0x000000000E8F5C29}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000000080000000, 0x000000000E8F5C29, 0x000000007FFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x00000000FFFFFFFD, 0x000000000747AE15, 0x0000000015D70A3E}, + [_]u64{0x0747AE14FFFFFFFF, 0x00000000FFFFFFFE, 0x000000000747AE15, 0x000000000E8F5C29}, + [_]u64{0x0747AE14FFFFFFFF, 0x00000000FFFFFFFF, 0x000000000747AE15, 0x000000000747AE14}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000000100000000, 0x000000000747AE14, 0x00000000FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000000100000001, 0x000000000747AE14, 0x00000000F8B851EB}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000000100000002, 0x000000000747AE14, 0x00000000F170A3D7}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000000100000003, 0x000000000747AE14, 0x00000000EA28F5C3}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000000100000010, 0x000000000747AE14, 0x000000008B851EBF}, + [_]u64{0x0747AE14FFFFFFFF, 0x00000001078644FA, 0x0000000007127740, 0x0000000004CA8B7F}, + [_]u64{0x0747AE14FFFFFFFF, 0x000000010747AE14, 0x00000000071425A6, 0x00000000C5CC3B07}, + [_]u64{0x0747AE14FFFFFFFF, 0x000000017FFFFFFF, 0x0000000004DA740E, 0x0000000004DA740D}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000000180000000, 0x0000000004DA740D, 0x000000017FFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x00000001FFFFFFFD, 0x0000000003A3D70A, 0x000000010AEB851D}, + [_]u64{0x0747AE14FFFFFFFF, 0x00000001FFFFFFFE, 0x0000000003A3D70A, 0x000000010747AE13}, + [_]u64{0x0747AE14FFFFFFFF, 0x00000001FFFFFFFF, 0x0000000003A3D70A, 0x0000000103A3D709}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000000200000000, 0x0000000003A3D70A, 0x00000000FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000000200000001, 0x0000000003A3D70A, 0x00000000FC5C28F5}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000000200000002, 0x0000000003A3D70A, 0x00000000F8B851EB}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000000200000003, 0x0000000003A3D70A, 0x00000000F5147AE1}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000000200000010, 0x0000000003A3D70A, 0x00000000C5C28F5F}, + [_]u64{0x0747AE14FFFFFFFF, 0x00000002078644FA, 0x0000000003965801, 0x000000017847CB05}, + [_]u64{0x0747AE14FFFFFFFF, 0x000000020747AE14, 0x000000000396C6B2, 0x0000000043CD7E17}, + [_]u64{0x0747AE14FFFFFFFF, 0x000000027FFFFFFF, 0x0000000002E978D5, 0x0000000082E978D4}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000000280000000, 0x0000000002E978D5, 0x000000007FFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x00000002FFFFFFFD, 0x00000000026D3A07, 0x000000000747AE14}, + [_]u64{0x0747AE14FFFFFFFF, 0x00000002FFFFFFFE, 0x00000000026D3A07, 0x0000000004DA740D}, + [_]u64{0x0747AE14FFFFFFFF, 0x00000002FFFFFFFF, 0x00000000026D3A07, 0x00000000026D3A06}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000000300000000, 0x00000000026D3A06, 0x00000002FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000000300000001, 0x00000000026D3A06, 0x00000002FD92C5F9}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000000300000002, 0x00000000026D3A06, 0x00000002FB258BF3}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000000300000003, 0x00000000026D3A06, 0x00000002F8B851ED}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000000300000010, 0x00000000026D3A06, 0x00000002D92C5F9F}, + [_]u64{0x0747AE14FFFFFFFF, 0x00000003078644FA, 0x0000000002673301, 0x000000028425ED05}, + [_]u64{0x0747AE14FFFFFFFF, 0x000000030747AE14, 0x00000000026764AC, 0x00000000E9CB3A8F}, + [_]u64{0x0747AE14FFFFFFFF, 0x000000037FFFFFFF, 0x0000000002147AE1, 0x0000000182147AE0}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000000380000000, 0x0000000002147AE1, 0x000000017FFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x00000003FFFFFFFD, 0x0000000001D1EB85, 0x000000010575C28E}, + [_]u64{0x0747AE14FFFFFFFF, 0x00000003FFFFFFFE, 0x0000000001D1EB85, 0x0000000103A3D709}, + [_]u64{0x0747AE14FFFFFFFF, 0x00000003FFFFFFFF, 0x0000000001D1EB85, 0x0000000101D1EB84}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000001000000000, 0x0000000000747AE1, 0x00000004FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000001000000001, 0x0000000000747AE1, 0x00000004FF8B851E}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000001000000002, 0x0000000000747AE1, 0x00000004FF170A3D}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000001000000003, 0x0000000000747AE1, 0x00000004FEA28F5C}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000001000000010, 0x0000000000747AE1, 0x00000004F8B851EF}, + [_]u64{0x0747AE14FFFFFFFF, 0x00000010078644FA, 0x0000000000744433, 0x0000000C94A5DA31}, + [_]u64{0x0747AE14FFFFFFFF, 0x000000100747AE14, 0x00000000007445F9, 0x0000000CB84C4A8B}, + [_]u64{0x0747AE14FFFFFFFF, 0x000000107FFFFFFF, 0x000000000070F347, 0x000000018070F346}, + [_]u64{0x0747AE14FFFFFFFF, 0x0000001080000000, 0x000000000070F347, 0x000000017FFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x00000010FFFFFFFD, 0x00000000006DA0D4, 0x000000010148E27B}, + [_]u64{0x0747AE14FFFFFFFF, 0x00000010FFFFFFFE, 0x00000000006DA0D4, 0x0000000100DB41A7}, + [_]u64{0x0747AE14FFFFFFFF, 0x00000010FFFFFFFF, 0x00000000006DA0D4, 0x00000001006DA0D3}, + [_]u64{0x0747AE14FFFFFFFF, 0x078644FA00000000, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x078644FA00000001, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x078644FA00000002, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x078644FA00000003, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x078644FA00000010, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x078644FA078644FA, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x078644FA0747AE14, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x078644FA7FFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x078644FA80000000, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x078644FAFFFFFFFD, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x078644FAFFFFFFFE, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x078644FAFFFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x0747AE1400000000, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x0747AE1400000001, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0x0747AE14FFFFFFFF, 0x0747AE1400000002, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0x0747AE14FFFFFFFF, 0x0747AE1400000003, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0x0747AE14FFFFFFFF, 0x0747AE1400000010, 0x0000000000000001, 0x00000000FFFFFFEF}, + [_]u64{0x0747AE14FFFFFFFF, 0x0747AE14078644FA, 0x0000000000000001, 0x00000000F879BB05}, + [_]u64{0x0747AE14FFFFFFFF, 0x0747AE140747AE14, 0x0000000000000001, 0x00000000F8B851EB}, + [_]u64{0x0747AE14FFFFFFFF, 0x0747AE147FFFFFFF, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0x0747AE14FFFFFFFF, 0x0747AE1480000000, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x0747AE14FFFFFFFD, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x0747AE14FFFFFFFF, 0x0747AE14FFFFFFFE, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x0747AE14FFFFFFFF, 0x0747AE14FFFFFFFF, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x0747AE14FFFFFFFF, 0x7FFFFFFF00000000, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x7FFFFFFF00000001, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x7FFFFFFF00000002, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x7FFFFFFF00000003, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x7FFFFFFF00000010, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x7FFFFFFF80000000, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x8000000000000000, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x8000000000000001, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x8000000000000002, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x8000000000000003, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x8000000000000010, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x80000000078644FA, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x800000000747AE14, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x800000007FFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x8000000080000000, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x80000000FFFFFFFD, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x80000000FFFFFFFE, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0x80000000FFFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFD00000000, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFD00000001, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFD00000002, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFD00000003, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFD00000010, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFD80000000, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFE00000000, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFE00000001, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFE00000002, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFE00000003, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFE00000010, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFE80000000, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFF00000000, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFF00000001, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFF00000002, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFF00000003, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFF00000010, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFF80000000, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x0747AE14FFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x0747AE14FFFFFFFF}, + [_]u64{0x7FFFFFFF00000000, 0x0000000000000001, 0x7FFFFFFF00000000, 0x0000000000000000}, + [_]u64{0x7FFFFFFF00000000, 0x0000000000000002, 0x3FFFFFFF80000000, 0x0000000000000000}, + [_]u64{0x7FFFFFFF00000000, 0x0000000000000003, 0x2AAAAAAA55555555, 0x0000000000000001}, + [_]u64{0x7FFFFFFF00000000, 0x0000000000000010, 0x07FFFFFFF0000000, 0x0000000000000000}, + [_]u64{0x7FFFFFFF00000000, 0x00000000078644FA, 0x0000001102D8BD5C, 0x0000000003E2A428}, + [_]u64{0x7FFFFFFF00000000, 0x000000000747AE14, 0x000000119519529A, 0x00000000052ADFF8}, + [_]u64{0x7FFFFFFF00000000, 0x000000007FFFFFFF, 0x0000000100000000, 0x0000000000000000}, + [_]u64{0x7FFFFFFF00000000, 0x0000000080000000, 0x00000000FFFFFFFE, 0x0000000000000000}, + [_]u64{0x7FFFFFFF00000000, 0x00000000FFFFFFFD, 0x0000000080000000, 0x0000000080000000}, + [_]u64{0x7FFFFFFF00000000, 0x00000000FFFFFFFE, 0x0000000080000000, 0x0000000000000000}, + [_]u64{0x7FFFFFFF00000000, 0x00000000FFFFFFFF, 0x000000007FFFFFFF, 0x000000007FFFFFFF}, + [_]u64{0x7FFFFFFF00000000, 0x0000000100000000, 0x000000007FFFFFFF, 0x0000000000000000}, + [_]u64{0x7FFFFFFF00000000, 0x0000000100000001, 0x000000007FFFFFFE, 0x0000000080000002}, + [_]u64{0x7FFFFFFF00000000, 0x0000000100000002, 0x000000007FFFFFFE, 0x0000000000000004}, + [_]u64{0x7FFFFFFF00000000, 0x0000000100000003, 0x000000007FFFFFFD, 0x0000000080000009}, + [_]u64{0x7FFFFFFF00000000, 0x0000000100000010, 0x000000007FFFFFF7, 0x0000000000000090}, + [_]u64{0x7FFFFFFF00000000, 0x00000001078644FA, 0x000000007C585DAD, 0x000000005544910E}, + [_]u64{0x7FFFFFFF00000000, 0x000000010747AE14, 0x000000007C75ED2C, 0x0000000024619090}, + [_]u64{0x7FFFFFFF00000000, 0x000000017FFFFFFF, 0x0000000055555554, 0x0000000155555554}, + [_]u64{0x7FFFFFFF00000000, 0x0000000180000000, 0x0000000055555554, 0x0000000100000000}, + [_]u64{0x7FFFFFFF00000000, 0x00000001FFFFFFFD, 0x000000003FFFFFFF, 0x00000001BFFFFFFD}, + [_]u64{0x7FFFFFFF00000000, 0x00000001FFFFFFFE, 0x000000003FFFFFFF, 0x000000017FFFFFFE}, + [_]u64{0x7FFFFFFF00000000, 0x00000001FFFFFFFF, 0x000000003FFFFFFF, 0x000000013FFFFFFF}, + [_]u64{0x7FFFFFFF00000000, 0x0000000200000000, 0x000000003FFFFFFF, 0x0000000100000000}, + [_]u64{0x7FFFFFFF00000000, 0x0000000200000001, 0x000000003FFFFFFF, 0x00000000C0000001}, + [_]u64{0x7FFFFFFF00000000, 0x0000000200000002, 0x000000003FFFFFFF, 0x0000000080000002}, + [_]u64{0x7FFFFFFF00000000, 0x0000000200000003, 0x000000003FFFFFFF, 0x0000000040000003}, + [_]u64{0x7FFFFFFF00000000, 0x0000000200000010, 0x000000003FFFFFFD, 0x0000000100000030}, + [_]u64{0x7FFFFFFF00000000, 0x00000002078644FA, 0x000000003F12B424, 0x00000001290A84D8}, + [_]u64{0x7FFFFFFF00000000, 0x000000020747AE14, 0x000000003F1A4E53, 0x0000000032B07784}, + [_]u64{0x7FFFFFFF00000000, 0x000000027FFFFFFF, 0x0000000033333332, 0x0000000233333332}, + [_]u64{0x7FFFFFFF00000000, 0x0000000280000000, 0x0000000033333332, 0x0000000200000000}, + [_]u64{0x7FFFFFFF00000000, 0x00000002FFFFFFFD, 0x000000002AAAAAAA, 0x000000017FFFFFFE}, + [_]u64{0x7FFFFFFF00000000, 0x00000002FFFFFFFE, 0x000000002AAAAAAA, 0x0000000155555554}, + [_]u64{0x7FFFFFFF00000000, 0x00000002FFFFFFFF, 0x000000002AAAAAAA, 0x000000012AAAAAAA}, + [_]u64{0x7FFFFFFF00000000, 0x0000000300000000, 0x000000002AAAAAAA, 0x0000000100000000}, + [_]u64{0x7FFFFFFF00000000, 0x0000000300000001, 0x000000002AAAAAAA, 0x00000000D5555556}, + [_]u64{0x7FFFFFFF00000000, 0x0000000300000002, 0x000000002AAAAAAA, 0x00000000AAAAAAAC}, + [_]u64{0x7FFFFFFF00000000, 0x0000000300000003, 0x000000002AAAAAAA, 0x0000000080000002}, + [_]u64{0x7FFFFFFF00000000, 0x0000000300000010, 0x000000002AAAAAA9, 0x0000000155555570}, + [_]u64{0x7FFFFFFF00000000, 0x00000003078644FA, 0x000000002A40B0A3, 0x00000002A39634D2}, + [_]u64{0x7FFFFFFF00000000, 0x000000030747AE14, 0x000000002A4419E3, 0x000000000620B044}, + [_]u64{0x7FFFFFFF00000000, 0x000000037FFFFFFF, 0x0000000024924924, 0x0000000124924924}, + [_]u64{0x7FFFFFFF00000000, 0x0000000380000000, 0x0000000024924924, 0x0000000100000000}, + [_]u64{0x7FFFFFFF00000000, 0x00000003FFFFFFFD, 0x000000001FFFFFFF, 0x000000035FFFFFFD}, + [_]u64{0x7FFFFFFF00000000, 0x00000003FFFFFFFE, 0x000000001FFFFFFF, 0x000000033FFFFFFE}, + [_]u64{0x7FFFFFFF00000000, 0x00000003FFFFFFFF, 0x000000001FFFFFFF, 0x000000031FFFFFFF}, + [_]u64{0x7FFFFFFF00000000, 0x0000001000000000, 0x0000000007FFFFFF, 0x0000000F00000000}, + [_]u64{0x7FFFFFFF00000000, 0x0000001000000001, 0x0000000007FFFFFF, 0x0000000EF8000001}, + [_]u64{0x7FFFFFFF00000000, 0x0000001000000002, 0x0000000007FFFFFF, 0x0000000EF0000002}, + [_]u64{0x7FFFFFFF00000000, 0x0000001000000003, 0x0000000007FFFFFF, 0x0000000EE8000003}, + [_]u64{0x7FFFFFFF00000000, 0x0000001000000010, 0x0000000007FFFFFF, 0x0000000E80000010}, + [_]u64{0x7FFFFFFF00000000, 0x00000010078644FA, 0x0000000007FC3EA1, 0x0000000903C212C6}, + [_]u64{0x7FFFFFFF00000000, 0x000000100747AE14, 0x0000000007FC5DD0, 0x0000000223D54BC0}, + [_]u64{0x7FFFFFFF00000000, 0x000000107FFFFFFF, 0x0000000007C1F07C, 0x0000000107C1F07C}, + [_]u64{0x7FFFFFFF00000000, 0x0000001080000000, 0x0000000007C1F07C, 0x0000000100000000}, + [_]u64{0x7FFFFFFF00000000, 0x00000010FFFFFFFD, 0x0000000007878787, 0x0000000816969695}, + [_]u64{0x7FFFFFFF00000000, 0x00000010FFFFFFFE, 0x0000000007878787, 0x000000080F0F0F0E}, + [_]u64{0x7FFFFFFF00000000, 0x00000010FFFFFFFF, 0x0000000007878787, 0x0000000807878787}, + [_]u64{0x7FFFFFFF00000000, 0x078644FA00000000, 0x0000000000000011, 0x00156B6500000000}, + [_]u64{0x7FFFFFFF00000000, 0x078644FA00000001, 0x0000000000000011, 0x00156B64FFFFFFEF}, + [_]u64{0x7FFFFFFF00000000, 0x078644FA00000002, 0x0000000000000011, 0x00156B64FFFFFFDE}, + [_]u64{0x7FFFFFFF00000000, 0x078644FA00000003, 0x0000000000000011, 0x00156B64FFFFFFCD}, + [_]u64{0x7FFFFFFF00000000, 0x078644FA00000010, 0x0000000000000011, 0x00156B64FFFFFEF0}, + [_]u64{0x7FFFFFFF00000000, 0x078644FA078644FA, 0x0000000000000011, 0x00156B6480156B66}, + [_]u64{0x7FFFFFFF00000000, 0x078644FA0747AE14, 0x0000000000000011, 0x00156B64843D70AC}, + [_]u64{0x7FFFFFFF00000000, 0x078644FA7FFFFFFF, 0x0000000000000011, 0x00156B5C80000011}, + [_]u64{0x7FFFFFFF00000000, 0x078644FA80000000, 0x0000000000000011, 0x00156B5C80000000}, + [_]u64{0x7FFFFFFF00000000, 0x078644FAFFFFFFFD, 0x0000000000000011, 0x00156B5400000033}, + [_]u64{0x7FFFFFFF00000000, 0x078644FAFFFFFFFE, 0x0000000000000011, 0x00156B5400000022}, + [_]u64{0x7FFFFFFF00000000, 0x078644FAFFFFFFFF, 0x0000000000000011, 0x00156B5400000011}, + [_]u64{0x7FFFFFFF00000000, 0x0747AE1400000000, 0x0000000000000011, 0x043D70AB00000000}, + [_]u64{0x7FFFFFFF00000000, 0x0747AE1400000001, 0x0000000000000011, 0x043D70AAFFFFFFEF}, + [_]u64{0x7FFFFFFF00000000, 0x0747AE1400000002, 0x0000000000000011, 0x043D70AAFFFFFFDE}, + [_]u64{0x7FFFFFFF00000000, 0x0747AE1400000003, 0x0000000000000011, 0x043D70AAFFFFFFCD}, + [_]u64{0x7FFFFFFF00000000, 0x0747AE1400000010, 0x0000000000000011, 0x043D70AAFFFFFEF0}, + [_]u64{0x7FFFFFFF00000000, 0x0747AE14078644FA, 0x0000000000000011, 0x043D70AA80156B66}, + [_]u64{0x7FFFFFFF00000000, 0x0747AE140747AE14, 0x0000000000000011, 0x043D70AA843D70AC}, + [_]u64{0x7FFFFFFF00000000, 0x0747AE147FFFFFFF, 0x0000000000000011, 0x043D70A280000011}, + [_]u64{0x7FFFFFFF00000000, 0x0747AE1480000000, 0x0000000000000011, 0x043D70A280000000}, + [_]u64{0x7FFFFFFF00000000, 0x0747AE14FFFFFFFD, 0x0000000000000011, 0x043D709A00000033}, + [_]u64{0x7FFFFFFF00000000, 0x0747AE14FFFFFFFE, 0x0000000000000011, 0x043D709A00000022}, + [_]u64{0x7FFFFFFF00000000, 0x0747AE14FFFFFFFF, 0x0000000000000011, 0x043D709A00000011}, + [_]u64{0x7FFFFFFF00000000, 0x7FFFFFFF00000000, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x7FFFFFFF00000000, 0x7FFFFFFF00000001, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0x7FFFFFFF00000002, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0x7FFFFFFF00000003, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0x7FFFFFFF00000010, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0x7FFFFFFF80000000, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0x8000000000000000, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0x8000000000000001, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0x8000000000000002, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0x8000000000000003, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0x8000000000000010, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0x80000000078644FA, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0x800000000747AE14, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0x800000007FFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0x8000000080000000, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0x80000000FFFFFFFD, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0x80000000FFFFFFFE, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0x80000000FFFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFD00000000, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFD00000001, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFD00000002, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFD00000003, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFD00000010, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFD80000000, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFE00000000, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFE00000001, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFE00000002, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFE00000003, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFE00000010, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFE80000000, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFF00000000, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFF00000001, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFF00000002, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFF00000003, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFF00000010, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFF80000000, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000000, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000000}, + [_]u64{0x7FFFFFFF00000001, 0x0000000000000001, 0x7FFFFFFF00000001, 0x0000000000000000}, + [_]u64{0x7FFFFFFF00000001, 0x0000000000000002, 0x3FFFFFFF80000000, 0x0000000000000001}, + [_]u64{0x7FFFFFFF00000001, 0x0000000000000003, 0x2AAAAAAA55555555, 0x0000000000000002}, + [_]u64{0x7FFFFFFF00000001, 0x0000000000000010, 0x07FFFFFFF0000000, 0x0000000000000001}, + [_]u64{0x7FFFFFFF00000001, 0x00000000078644FA, 0x0000001102D8BD5C, 0x0000000003E2A429}, + [_]u64{0x7FFFFFFF00000001, 0x000000000747AE14, 0x000000119519529A, 0x00000000052ADFF9}, + [_]u64{0x7FFFFFFF00000001, 0x000000007FFFFFFF, 0x0000000100000000, 0x0000000000000001}, + [_]u64{0x7FFFFFFF00000001, 0x0000000080000000, 0x00000000FFFFFFFE, 0x0000000000000001}, + [_]u64{0x7FFFFFFF00000001, 0x00000000FFFFFFFD, 0x0000000080000000, 0x0000000080000001}, + [_]u64{0x7FFFFFFF00000001, 0x00000000FFFFFFFE, 0x0000000080000000, 0x0000000000000001}, + [_]u64{0x7FFFFFFF00000001, 0x00000000FFFFFFFF, 0x000000007FFFFFFF, 0x0000000080000000}, + [_]u64{0x7FFFFFFF00000001, 0x0000000100000000, 0x000000007FFFFFFF, 0x0000000000000001}, + [_]u64{0x7FFFFFFF00000001, 0x0000000100000001, 0x000000007FFFFFFE, 0x0000000080000003}, + [_]u64{0x7FFFFFFF00000001, 0x0000000100000002, 0x000000007FFFFFFE, 0x0000000000000005}, + [_]u64{0x7FFFFFFF00000001, 0x0000000100000003, 0x000000007FFFFFFD, 0x000000008000000A}, + [_]u64{0x7FFFFFFF00000001, 0x0000000100000010, 0x000000007FFFFFF7, 0x0000000000000091}, + [_]u64{0x7FFFFFFF00000001, 0x00000001078644FA, 0x000000007C585DAD, 0x000000005544910F}, + [_]u64{0x7FFFFFFF00000001, 0x000000010747AE14, 0x000000007C75ED2C, 0x0000000024619091}, + [_]u64{0x7FFFFFFF00000001, 0x000000017FFFFFFF, 0x0000000055555554, 0x0000000155555555}, + [_]u64{0x7FFFFFFF00000001, 0x0000000180000000, 0x0000000055555554, 0x0000000100000001}, + [_]u64{0x7FFFFFFF00000001, 0x00000001FFFFFFFD, 0x000000003FFFFFFF, 0x00000001BFFFFFFE}, + [_]u64{0x7FFFFFFF00000001, 0x00000001FFFFFFFE, 0x000000003FFFFFFF, 0x000000017FFFFFFF}, + [_]u64{0x7FFFFFFF00000001, 0x00000001FFFFFFFF, 0x000000003FFFFFFF, 0x0000000140000000}, + [_]u64{0x7FFFFFFF00000001, 0x0000000200000000, 0x000000003FFFFFFF, 0x0000000100000001}, + [_]u64{0x7FFFFFFF00000001, 0x0000000200000001, 0x000000003FFFFFFF, 0x00000000C0000002}, + [_]u64{0x7FFFFFFF00000001, 0x0000000200000002, 0x000000003FFFFFFF, 0x0000000080000003}, + [_]u64{0x7FFFFFFF00000001, 0x0000000200000003, 0x000000003FFFFFFF, 0x0000000040000004}, + [_]u64{0x7FFFFFFF00000001, 0x0000000200000010, 0x000000003FFFFFFD, 0x0000000100000031}, + [_]u64{0x7FFFFFFF00000001, 0x00000002078644FA, 0x000000003F12B424, 0x00000001290A84D9}, + [_]u64{0x7FFFFFFF00000001, 0x000000020747AE14, 0x000000003F1A4E53, 0x0000000032B07785}, + [_]u64{0x7FFFFFFF00000001, 0x000000027FFFFFFF, 0x0000000033333332, 0x0000000233333333}, + [_]u64{0x7FFFFFFF00000001, 0x0000000280000000, 0x0000000033333332, 0x0000000200000001}, + [_]u64{0x7FFFFFFF00000001, 0x00000002FFFFFFFD, 0x000000002AAAAAAA, 0x000000017FFFFFFF}, + [_]u64{0x7FFFFFFF00000001, 0x00000002FFFFFFFE, 0x000000002AAAAAAA, 0x0000000155555555}, + [_]u64{0x7FFFFFFF00000001, 0x00000002FFFFFFFF, 0x000000002AAAAAAA, 0x000000012AAAAAAB}, + [_]u64{0x7FFFFFFF00000001, 0x0000000300000000, 0x000000002AAAAAAA, 0x0000000100000001}, + [_]u64{0x7FFFFFFF00000001, 0x0000000300000001, 0x000000002AAAAAAA, 0x00000000D5555557}, + [_]u64{0x7FFFFFFF00000001, 0x0000000300000002, 0x000000002AAAAAAA, 0x00000000AAAAAAAD}, + [_]u64{0x7FFFFFFF00000001, 0x0000000300000003, 0x000000002AAAAAAA, 0x0000000080000003}, + [_]u64{0x7FFFFFFF00000001, 0x0000000300000010, 0x000000002AAAAAA9, 0x0000000155555571}, + [_]u64{0x7FFFFFFF00000001, 0x00000003078644FA, 0x000000002A40B0A3, 0x00000002A39634D3}, + [_]u64{0x7FFFFFFF00000001, 0x000000030747AE14, 0x000000002A4419E3, 0x000000000620B045}, + [_]u64{0x7FFFFFFF00000001, 0x000000037FFFFFFF, 0x0000000024924924, 0x0000000124924925}, + [_]u64{0x7FFFFFFF00000001, 0x0000000380000000, 0x0000000024924924, 0x0000000100000001}, + [_]u64{0x7FFFFFFF00000001, 0x00000003FFFFFFFD, 0x000000001FFFFFFF, 0x000000035FFFFFFE}, + [_]u64{0x7FFFFFFF00000001, 0x00000003FFFFFFFE, 0x000000001FFFFFFF, 0x000000033FFFFFFF}, + [_]u64{0x7FFFFFFF00000001, 0x00000003FFFFFFFF, 0x000000001FFFFFFF, 0x0000000320000000}, + [_]u64{0x7FFFFFFF00000001, 0x0000001000000000, 0x0000000007FFFFFF, 0x0000000F00000001}, + [_]u64{0x7FFFFFFF00000001, 0x0000001000000001, 0x0000000007FFFFFF, 0x0000000EF8000002}, + [_]u64{0x7FFFFFFF00000001, 0x0000001000000002, 0x0000000007FFFFFF, 0x0000000EF0000003}, + [_]u64{0x7FFFFFFF00000001, 0x0000001000000003, 0x0000000007FFFFFF, 0x0000000EE8000004}, + [_]u64{0x7FFFFFFF00000001, 0x0000001000000010, 0x0000000007FFFFFF, 0x0000000E80000011}, + [_]u64{0x7FFFFFFF00000001, 0x00000010078644FA, 0x0000000007FC3EA1, 0x0000000903C212C7}, + [_]u64{0x7FFFFFFF00000001, 0x000000100747AE14, 0x0000000007FC5DD0, 0x0000000223D54BC1}, + [_]u64{0x7FFFFFFF00000001, 0x000000107FFFFFFF, 0x0000000007C1F07C, 0x0000000107C1F07D}, + [_]u64{0x7FFFFFFF00000001, 0x0000001080000000, 0x0000000007C1F07C, 0x0000000100000001}, + [_]u64{0x7FFFFFFF00000001, 0x00000010FFFFFFFD, 0x0000000007878787, 0x0000000816969696}, + [_]u64{0x7FFFFFFF00000001, 0x00000010FFFFFFFE, 0x0000000007878787, 0x000000080F0F0F0F}, + [_]u64{0x7FFFFFFF00000001, 0x00000010FFFFFFFF, 0x0000000007878787, 0x0000000807878788}, + [_]u64{0x7FFFFFFF00000001, 0x078644FA00000000, 0x0000000000000011, 0x00156B6500000001}, + [_]u64{0x7FFFFFFF00000001, 0x078644FA00000001, 0x0000000000000011, 0x00156B64FFFFFFF0}, + [_]u64{0x7FFFFFFF00000001, 0x078644FA00000002, 0x0000000000000011, 0x00156B64FFFFFFDF}, + [_]u64{0x7FFFFFFF00000001, 0x078644FA00000003, 0x0000000000000011, 0x00156B64FFFFFFCE}, + [_]u64{0x7FFFFFFF00000001, 0x078644FA00000010, 0x0000000000000011, 0x00156B64FFFFFEF1}, + [_]u64{0x7FFFFFFF00000001, 0x078644FA078644FA, 0x0000000000000011, 0x00156B6480156B67}, + [_]u64{0x7FFFFFFF00000001, 0x078644FA0747AE14, 0x0000000000000011, 0x00156B64843D70AD}, + [_]u64{0x7FFFFFFF00000001, 0x078644FA7FFFFFFF, 0x0000000000000011, 0x00156B5C80000012}, + [_]u64{0x7FFFFFFF00000001, 0x078644FA80000000, 0x0000000000000011, 0x00156B5C80000001}, + [_]u64{0x7FFFFFFF00000001, 0x078644FAFFFFFFFD, 0x0000000000000011, 0x00156B5400000034}, + [_]u64{0x7FFFFFFF00000001, 0x078644FAFFFFFFFE, 0x0000000000000011, 0x00156B5400000023}, + [_]u64{0x7FFFFFFF00000001, 0x078644FAFFFFFFFF, 0x0000000000000011, 0x00156B5400000012}, + [_]u64{0x7FFFFFFF00000001, 0x0747AE1400000000, 0x0000000000000011, 0x043D70AB00000001}, + [_]u64{0x7FFFFFFF00000001, 0x0747AE1400000001, 0x0000000000000011, 0x043D70AAFFFFFFF0}, + [_]u64{0x7FFFFFFF00000001, 0x0747AE1400000002, 0x0000000000000011, 0x043D70AAFFFFFFDF}, + [_]u64{0x7FFFFFFF00000001, 0x0747AE1400000003, 0x0000000000000011, 0x043D70AAFFFFFFCE}, + [_]u64{0x7FFFFFFF00000001, 0x0747AE1400000010, 0x0000000000000011, 0x043D70AAFFFFFEF1}, + [_]u64{0x7FFFFFFF00000001, 0x0747AE14078644FA, 0x0000000000000011, 0x043D70AA80156B67}, + [_]u64{0x7FFFFFFF00000001, 0x0747AE140747AE14, 0x0000000000000011, 0x043D70AA843D70AD}, + [_]u64{0x7FFFFFFF00000001, 0x0747AE147FFFFFFF, 0x0000000000000011, 0x043D70A280000012}, + [_]u64{0x7FFFFFFF00000001, 0x0747AE1480000000, 0x0000000000000011, 0x043D70A280000001}, + [_]u64{0x7FFFFFFF00000001, 0x0747AE14FFFFFFFD, 0x0000000000000011, 0x043D709A00000034}, + [_]u64{0x7FFFFFFF00000001, 0x0747AE14FFFFFFFE, 0x0000000000000011, 0x043D709A00000023}, + [_]u64{0x7FFFFFFF00000001, 0x0747AE14FFFFFFFF, 0x0000000000000011, 0x043D709A00000012}, + [_]u64{0x7FFFFFFF00000001, 0x7FFFFFFF00000000, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x7FFFFFFF00000001, 0x7FFFFFFF00000001, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x7FFFFFFF00000001, 0x7FFFFFFF00000002, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0x7FFFFFFF00000003, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0x7FFFFFFF00000010, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0x7FFFFFFF80000000, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0x8000000000000000, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0x8000000000000001, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0x8000000000000002, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0x8000000000000003, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0x8000000000000010, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0x80000000078644FA, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0x800000000747AE14, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0x800000007FFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0x8000000080000000, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0x80000000FFFFFFFD, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0x80000000FFFFFFFE, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0x80000000FFFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFD00000000, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFD00000001, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFD00000002, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFD00000003, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFD00000010, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFD80000000, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFE00000000, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFE00000001, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFE00000002, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFE00000003, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFE00000010, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFE80000000, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFF00000000, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFF00000001, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFF00000002, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFF00000003, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFF00000010, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFF80000000, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000001, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000001}, + [_]u64{0x7FFFFFFF00000002, 0x0000000000000001, 0x7FFFFFFF00000002, 0x0000000000000000}, + [_]u64{0x7FFFFFFF00000002, 0x0000000000000002, 0x3FFFFFFF80000001, 0x0000000000000000}, + [_]u64{0x7FFFFFFF00000002, 0x0000000000000003, 0x2AAAAAAA55555556, 0x0000000000000000}, + [_]u64{0x7FFFFFFF00000002, 0x0000000000000010, 0x07FFFFFFF0000000, 0x0000000000000002}, + [_]u64{0x7FFFFFFF00000002, 0x00000000078644FA, 0x0000001102D8BD5C, 0x0000000003E2A42A}, + [_]u64{0x7FFFFFFF00000002, 0x000000000747AE14, 0x000000119519529A, 0x00000000052ADFFA}, + [_]u64{0x7FFFFFFF00000002, 0x000000007FFFFFFF, 0x0000000100000000, 0x0000000000000002}, + [_]u64{0x7FFFFFFF00000002, 0x0000000080000000, 0x00000000FFFFFFFE, 0x0000000000000002}, + [_]u64{0x7FFFFFFF00000002, 0x00000000FFFFFFFD, 0x0000000080000000, 0x0000000080000002}, + [_]u64{0x7FFFFFFF00000002, 0x00000000FFFFFFFE, 0x0000000080000000, 0x0000000000000002}, + [_]u64{0x7FFFFFFF00000002, 0x00000000FFFFFFFF, 0x000000007FFFFFFF, 0x0000000080000001}, + [_]u64{0x7FFFFFFF00000002, 0x0000000100000000, 0x000000007FFFFFFF, 0x0000000000000002}, + [_]u64{0x7FFFFFFF00000002, 0x0000000100000001, 0x000000007FFFFFFE, 0x0000000080000004}, + [_]u64{0x7FFFFFFF00000002, 0x0000000100000002, 0x000000007FFFFFFE, 0x0000000000000006}, + [_]u64{0x7FFFFFFF00000002, 0x0000000100000003, 0x000000007FFFFFFD, 0x000000008000000B}, + [_]u64{0x7FFFFFFF00000002, 0x0000000100000010, 0x000000007FFFFFF7, 0x0000000000000092}, + [_]u64{0x7FFFFFFF00000002, 0x00000001078644FA, 0x000000007C585DAD, 0x0000000055449110}, + [_]u64{0x7FFFFFFF00000002, 0x000000010747AE14, 0x000000007C75ED2C, 0x0000000024619092}, + [_]u64{0x7FFFFFFF00000002, 0x000000017FFFFFFF, 0x0000000055555554, 0x0000000155555556}, + [_]u64{0x7FFFFFFF00000002, 0x0000000180000000, 0x0000000055555554, 0x0000000100000002}, + [_]u64{0x7FFFFFFF00000002, 0x00000001FFFFFFFD, 0x000000003FFFFFFF, 0x00000001BFFFFFFF}, + [_]u64{0x7FFFFFFF00000002, 0x00000001FFFFFFFE, 0x000000003FFFFFFF, 0x0000000180000000}, + [_]u64{0x7FFFFFFF00000002, 0x00000001FFFFFFFF, 0x000000003FFFFFFF, 0x0000000140000001}, + [_]u64{0x7FFFFFFF00000002, 0x0000000200000000, 0x000000003FFFFFFF, 0x0000000100000002}, + [_]u64{0x7FFFFFFF00000002, 0x0000000200000001, 0x000000003FFFFFFF, 0x00000000C0000003}, + [_]u64{0x7FFFFFFF00000002, 0x0000000200000002, 0x000000003FFFFFFF, 0x0000000080000004}, + [_]u64{0x7FFFFFFF00000002, 0x0000000200000003, 0x000000003FFFFFFF, 0x0000000040000005}, + [_]u64{0x7FFFFFFF00000002, 0x0000000200000010, 0x000000003FFFFFFD, 0x0000000100000032}, + [_]u64{0x7FFFFFFF00000002, 0x00000002078644FA, 0x000000003F12B424, 0x00000001290A84DA}, + [_]u64{0x7FFFFFFF00000002, 0x000000020747AE14, 0x000000003F1A4E53, 0x0000000032B07786}, + [_]u64{0x7FFFFFFF00000002, 0x000000027FFFFFFF, 0x0000000033333332, 0x0000000233333334}, + [_]u64{0x7FFFFFFF00000002, 0x0000000280000000, 0x0000000033333332, 0x0000000200000002}, + [_]u64{0x7FFFFFFF00000002, 0x00000002FFFFFFFD, 0x000000002AAAAAAA, 0x0000000180000000}, + [_]u64{0x7FFFFFFF00000002, 0x00000002FFFFFFFE, 0x000000002AAAAAAA, 0x0000000155555556}, + [_]u64{0x7FFFFFFF00000002, 0x00000002FFFFFFFF, 0x000000002AAAAAAA, 0x000000012AAAAAAC}, + [_]u64{0x7FFFFFFF00000002, 0x0000000300000000, 0x000000002AAAAAAA, 0x0000000100000002}, + [_]u64{0x7FFFFFFF00000002, 0x0000000300000001, 0x000000002AAAAAAA, 0x00000000D5555558}, + [_]u64{0x7FFFFFFF00000002, 0x0000000300000002, 0x000000002AAAAAAA, 0x00000000AAAAAAAE}, + [_]u64{0x7FFFFFFF00000002, 0x0000000300000003, 0x000000002AAAAAAA, 0x0000000080000004}, + [_]u64{0x7FFFFFFF00000002, 0x0000000300000010, 0x000000002AAAAAA9, 0x0000000155555572}, + [_]u64{0x7FFFFFFF00000002, 0x00000003078644FA, 0x000000002A40B0A3, 0x00000002A39634D4}, + [_]u64{0x7FFFFFFF00000002, 0x000000030747AE14, 0x000000002A4419E3, 0x000000000620B046}, + [_]u64{0x7FFFFFFF00000002, 0x000000037FFFFFFF, 0x0000000024924924, 0x0000000124924926}, + [_]u64{0x7FFFFFFF00000002, 0x0000000380000000, 0x0000000024924924, 0x0000000100000002}, + [_]u64{0x7FFFFFFF00000002, 0x00000003FFFFFFFD, 0x000000001FFFFFFF, 0x000000035FFFFFFF}, + [_]u64{0x7FFFFFFF00000002, 0x00000003FFFFFFFE, 0x000000001FFFFFFF, 0x0000000340000000}, + [_]u64{0x7FFFFFFF00000002, 0x00000003FFFFFFFF, 0x000000001FFFFFFF, 0x0000000320000001}, + [_]u64{0x7FFFFFFF00000002, 0x0000001000000000, 0x0000000007FFFFFF, 0x0000000F00000002}, + [_]u64{0x7FFFFFFF00000002, 0x0000001000000001, 0x0000000007FFFFFF, 0x0000000EF8000003}, + [_]u64{0x7FFFFFFF00000002, 0x0000001000000002, 0x0000000007FFFFFF, 0x0000000EF0000004}, + [_]u64{0x7FFFFFFF00000002, 0x0000001000000003, 0x0000000007FFFFFF, 0x0000000EE8000005}, + [_]u64{0x7FFFFFFF00000002, 0x0000001000000010, 0x0000000007FFFFFF, 0x0000000E80000012}, + [_]u64{0x7FFFFFFF00000002, 0x00000010078644FA, 0x0000000007FC3EA1, 0x0000000903C212C8}, + [_]u64{0x7FFFFFFF00000002, 0x000000100747AE14, 0x0000000007FC5DD0, 0x0000000223D54BC2}, + [_]u64{0x7FFFFFFF00000002, 0x000000107FFFFFFF, 0x0000000007C1F07C, 0x0000000107C1F07E}, + [_]u64{0x7FFFFFFF00000002, 0x0000001080000000, 0x0000000007C1F07C, 0x0000000100000002}, + [_]u64{0x7FFFFFFF00000002, 0x00000010FFFFFFFD, 0x0000000007878787, 0x0000000816969697}, + [_]u64{0x7FFFFFFF00000002, 0x00000010FFFFFFFE, 0x0000000007878787, 0x000000080F0F0F10}, + [_]u64{0x7FFFFFFF00000002, 0x00000010FFFFFFFF, 0x0000000007878787, 0x0000000807878789}, + [_]u64{0x7FFFFFFF00000002, 0x078644FA00000000, 0x0000000000000011, 0x00156B6500000002}, + [_]u64{0x7FFFFFFF00000002, 0x078644FA00000001, 0x0000000000000011, 0x00156B64FFFFFFF1}, + [_]u64{0x7FFFFFFF00000002, 0x078644FA00000002, 0x0000000000000011, 0x00156B64FFFFFFE0}, + [_]u64{0x7FFFFFFF00000002, 0x078644FA00000003, 0x0000000000000011, 0x00156B64FFFFFFCF}, + [_]u64{0x7FFFFFFF00000002, 0x078644FA00000010, 0x0000000000000011, 0x00156B64FFFFFEF2}, + [_]u64{0x7FFFFFFF00000002, 0x078644FA078644FA, 0x0000000000000011, 0x00156B6480156B68}, + [_]u64{0x7FFFFFFF00000002, 0x078644FA0747AE14, 0x0000000000000011, 0x00156B64843D70AE}, + [_]u64{0x7FFFFFFF00000002, 0x078644FA7FFFFFFF, 0x0000000000000011, 0x00156B5C80000013}, + [_]u64{0x7FFFFFFF00000002, 0x078644FA80000000, 0x0000000000000011, 0x00156B5C80000002}, + [_]u64{0x7FFFFFFF00000002, 0x078644FAFFFFFFFD, 0x0000000000000011, 0x00156B5400000035}, + [_]u64{0x7FFFFFFF00000002, 0x078644FAFFFFFFFE, 0x0000000000000011, 0x00156B5400000024}, + [_]u64{0x7FFFFFFF00000002, 0x078644FAFFFFFFFF, 0x0000000000000011, 0x00156B5400000013}, + [_]u64{0x7FFFFFFF00000002, 0x0747AE1400000000, 0x0000000000000011, 0x043D70AB00000002}, + [_]u64{0x7FFFFFFF00000002, 0x0747AE1400000001, 0x0000000000000011, 0x043D70AAFFFFFFF1}, + [_]u64{0x7FFFFFFF00000002, 0x0747AE1400000002, 0x0000000000000011, 0x043D70AAFFFFFFE0}, + [_]u64{0x7FFFFFFF00000002, 0x0747AE1400000003, 0x0000000000000011, 0x043D70AAFFFFFFCF}, + [_]u64{0x7FFFFFFF00000002, 0x0747AE1400000010, 0x0000000000000011, 0x043D70AAFFFFFEF2}, + [_]u64{0x7FFFFFFF00000002, 0x0747AE14078644FA, 0x0000000000000011, 0x043D70AA80156B68}, + [_]u64{0x7FFFFFFF00000002, 0x0747AE140747AE14, 0x0000000000000011, 0x043D70AA843D70AE}, + [_]u64{0x7FFFFFFF00000002, 0x0747AE147FFFFFFF, 0x0000000000000011, 0x043D70A280000013}, + [_]u64{0x7FFFFFFF00000002, 0x0747AE1480000000, 0x0000000000000011, 0x043D70A280000002}, + [_]u64{0x7FFFFFFF00000002, 0x0747AE14FFFFFFFD, 0x0000000000000011, 0x043D709A00000035}, + [_]u64{0x7FFFFFFF00000002, 0x0747AE14FFFFFFFE, 0x0000000000000011, 0x043D709A00000024}, + [_]u64{0x7FFFFFFF00000002, 0x0747AE14FFFFFFFF, 0x0000000000000011, 0x043D709A00000013}, + [_]u64{0x7FFFFFFF00000002, 0x7FFFFFFF00000000, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x7FFFFFFF00000002, 0x7FFFFFFF00000001, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x7FFFFFFF00000002, 0x7FFFFFFF00000002, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x7FFFFFFF00000002, 0x7FFFFFFF00000003, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0x7FFFFFFF00000010, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0x7FFFFFFF80000000, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0x8000000000000000, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0x8000000000000001, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0x8000000000000002, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0x8000000000000003, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0x8000000000000010, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0x80000000078644FA, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0x800000000747AE14, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0x800000007FFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0x8000000080000000, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0x80000000FFFFFFFD, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0x80000000FFFFFFFE, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0x80000000FFFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFD00000000, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFD00000001, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFD00000002, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFD00000003, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFD00000010, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFD80000000, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFE00000000, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFE00000001, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFE00000002, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFE00000003, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFE00000010, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFE80000000, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFF00000000, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFF00000001, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFF00000002, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFF00000003, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFF00000010, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFF80000000, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000002, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000002}, + [_]u64{0x7FFFFFFF00000003, 0x0000000000000001, 0x7FFFFFFF00000003, 0x0000000000000000}, + [_]u64{0x7FFFFFFF00000003, 0x0000000000000002, 0x3FFFFFFF80000001, 0x0000000000000001}, + [_]u64{0x7FFFFFFF00000003, 0x0000000000000003, 0x2AAAAAAA55555556, 0x0000000000000001}, + [_]u64{0x7FFFFFFF00000003, 0x0000000000000010, 0x07FFFFFFF0000000, 0x0000000000000003}, + [_]u64{0x7FFFFFFF00000003, 0x00000000078644FA, 0x0000001102D8BD5C, 0x0000000003E2A42B}, + [_]u64{0x7FFFFFFF00000003, 0x000000000747AE14, 0x000000119519529A, 0x00000000052ADFFB}, + [_]u64{0x7FFFFFFF00000003, 0x000000007FFFFFFF, 0x0000000100000000, 0x0000000000000003}, + [_]u64{0x7FFFFFFF00000003, 0x0000000080000000, 0x00000000FFFFFFFE, 0x0000000000000003}, + [_]u64{0x7FFFFFFF00000003, 0x00000000FFFFFFFD, 0x0000000080000000, 0x0000000080000003}, + [_]u64{0x7FFFFFFF00000003, 0x00000000FFFFFFFE, 0x0000000080000000, 0x0000000000000003}, + [_]u64{0x7FFFFFFF00000003, 0x00000000FFFFFFFF, 0x000000007FFFFFFF, 0x0000000080000002}, + [_]u64{0x7FFFFFFF00000003, 0x0000000100000000, 0x000000007FFFFFFF, 0x0000000000000003}, + [_]u64{0x7FFFFFFF00000003, 0x0000000100000001, 0x000000007FFFFFFE, 0x0000000080000005}, + [_]u64{0x7FFFFFFF00000003, 0x0000000100000002, 0x000000007FFFFFFE, 0x0000000000000007}, + [_]u64{0x7FFFFFFF00000003, 0x0000000100000003, 0x000000007FFFFFFD, 0x000000008000000C}, + [_]u64{0x7FFFFFFF00000003, 0x0000000100000010, 0x000000007FFFFFF7, 0x0000000000000093}, + [_]u64{0x7FFFFFFF00000003, 0x00000001078644FA, 0x000000007C585DAD, 0x0000000055449111}, + [_]u64{0x7FFFFFFF00000003, 0x000000010747AE14, 0x000000007C75ED2C, 0x0000000024619093}, + [_]u64{0x7FFFFFFF00000003, 0x000000017FFFFFFF, 0x0000000055555554, 0x0000000155555557}, + [_]u64{0x7FFFFFFF00000003, 0x0000000180000000, 0x0000000055555554, 0x0000000100000003}, + [_]u64{0x7FFFFFFF00000003, 0x00000001FFFFFFFD, 0x000000003FFFFFFF, 0x00000001C0000000}, + [_]u64{0x7FFFFFFF00000003, 0x00000001FFFFFFFE, 0x000000003FFFFFFF, 0x0000000180000001}, + [_]u64{0x7FFFFFFF00000003, 0x00000001FFFFFFFF, 0x000000003FFFFFFF, 0x0000000140000002}, + [_]u64{0x7FFFFFFF00000003, 0x0000000200000000, 0x000000003FFFFFFF, 0x0000000100000003}, + [_]u64{0x7FFFFFFF00000003, 0x0000000200000001, 0x000000003FFFFFFF, 0x00000000C0000004}, + [_]u64{0x7FFFFFFF00000003, 0x0000000200000002, 0x000000003FFFFFFF, 0x0000000080000005}, + [_]u64{0x7FFFFFFF00000003, 0x0000000200000003, 0x000000003FFFFFFF, 0x0000000040000006}, + [_]u64{0x7FFFFFFF00000003, 0x0000000200000010, 0x000000003FFFFFFD, 0x0000000100000033}, + [_]u64{0x7FFFFFFF00000003, 0x00000002078644FA, 0x000000003F12B424, 0x00000001290A84DB}, + [_]u64{0x7FFFFFFF00000003, 0x000000020747AE14, 0x000000003F1A4E53, 0x0000000032B07787}, + [_]u64{0x7FFFFFFF00000003, 0x000000027FFFFFFF, 0x0000000033333332, 0x0000000233333335}, + [_]u64{0x7FFFFFFF00000003, 0x0000000280000000, 0x0000000033333332, 0x0000000200000003}, + [_]u64{0x7FFFFFFF00000003, 0x00000002FFFFFFFD, 0x000000002AAAAAAA, 0x0000000180000001}, + [_]u64{0x7FFFFFFF00000003, 0x00000002FFFFFFFE, 0x000000002AAAAAAA, 0x0000000155555557}, + [_]u64{0x7FFFFFFF00000003, 0x00000002FFFFFFFF, 0x000000002AAAAAAA, 0x000000012AAAAAAD}, + [_]u64{0x7FFFFFFF00000003, 0x0000000300000000, 0x000000002AAAAAAA, 0x0000000100000003}, + [_]u64{0x7FFFFFFF00000003, 0x0000000300000001, 0x000000002AAAAAAA, 0x00000000D5555559}, + [_]u64{0x7FFFFFFF00000003, 0x0000000300000002, 0x000000002AAAAAAA, 0x00000000AAAAAAAF}, + [_]u64{0x7FFFFFFF00000003, 0x0000000300000003, 0x000000002AAAAAAA, 0x0000000080000005}, + [_]u64{0x7FFFFFFF00000003, 0x0000000300000010, 0x000000002AAAAAA9, 0x0000000155555573}, + [_]u64{0x7FFFFFFF00000003, 0x00000003078644FA, 0x000000002A40B0A3, 0x00000002A39634D5}, + [_]u64{0x7FFFFFFF00000003, 0x000000030747AE14, 0x000000002A4419E3, 0x000000000620B047}, + [_]u64{0x7FFFFFFF00000003, 0x000000037FFFFFFF, 0x0000000024924924, 0x0000000124924927}, + [_]u64{0x7FFFFFFF00000003, 0x0000000380000000, 0x0000000024924924, 0x0000000100000003}, + [_]u64{0x7FFFFFFF00000003, 0x00000003FFFFFFFD, 0x000000001FFFFFFF, 0x0000000360000000}, + [_]u64{0x7FFFFFFF00000003, 0x00000003FFFFFFFE, 0x000000001FFFFFFF, 0x0000000340000001}, + [_]u64{0x7FFFFFFF00000003, 0x00000003FFFFFFFF, 0x000000001FFFFFFF, 0x0000000320000002}, + [_]u64{0x7FFFFFFF00000003, 0x0000001000000000, 0x0000000007FFFFFF, 0x0000000F00000003}, + [_]u64{0x7FFFFFFF00000003, 0x0000001000000001, 0x0000000007FFFFFF, 0x0000000EF8000004}, + [_]u64{0x7FFFFFFF00000003, 0x0000001000000002, 0x0000000007FFFFFF, 0x0000000EF0000005}, + [_]u64{0x7FFFFFFF00000003, 0x0000001000000003, 0x0000000007FFFFFF, 0x0000000EE8000006}, + [_]u64{0x7FFFFFFF00000003, 0x0000001000000010, 0x0000000007FFFFFF, 0x0000000E80000013}, + [_]u64{0x7FFFFFFF00000003, 0x00000010078644FA, 0x0000000007FC3EA1, 0x0000000903C212C9}, + [_]u64{0x7FFFFFFF00000003, 0x000000100747AE14, 0x0000000007FC5DD0, 0x0000000223D54BC3}, + [_]u64{0x7FFFFFFF00000003, 0x000000107FFFFFFF, 0x0000000007C1F07C, 0x0000000107C1F07F}, + [_]u64{0x7FFFFFFF00000003, 0x0000001080000000, 0x0000000007C1F07C, 0x0000000100000003}, + [_]u64{0x7FFFFFFF00000003, 0x00000010FFFFFFFD, 0x0000000007878787, 0x0000000816969698}, + [_]u64{0x7FFFFFFF00000003, 0x00000010FFFFFFFE, 0x0000000007878787, 0x000000080F0F0F11}, + [_]u64{0x7FFFFFFF00000003, 0x00000010FFFFFFFF, 0x0000000007878787, 0x000000080787878A}, + [_]u64{0x7FFFFFFF00000003, 0x078644FA00000000, 0x0000000000000011, 0x00156B6500000003}, + [_]u64{0x7FFFFFFF00000003, 0x078644FA00000001, 0x0000000000000011, 0x00156B64FFFFFFF2}, + [_]u64{0x7FFFFFFF00000003, 0x078644FA00000002, 0x0000000000000011, 0x00156B64FFFFFFE1}, + [_]u64{0x7FFFFFFF00000003, 0x078644FA00000003, 0x0000000000000011, 0x00156B64FFFFFFD0}, + [_]u64{0x7FFFFFFF00000003, 0x078644FA00000010, 0x0000000000000011, 0x00156B64FFFFFEF3}, + [_]u64{0x7FFFFFFF00000003, 0x078644FA078644FA, 0x0000000000000011, 0x00156B6480156B69}, + [_]u64{0x7FFFFFFF00000003, 0x078644FA0747AE14, 0x0000000000000011, 0x00156B64843D70AF}, + [_]u64{0x7FFFFFFF00000003, 0x078644FA7FFFFFFF, 0x0000000000000011, 0x00156B5C80000014}, + [_]u64{0x7FFFFFFF00000003, 0x078644FA80000000, 0x0000000000000011, 0x00156B5C80000003}, + [_]u64{0x7FFFFFFF00000003, 0x078644FAFFFFFFFD, 0x0000000000000011, 0x00156B5400000036}, + [_]u64{0x7FFFFFFF00000003, 0x078644FAFFFFFFFE, 0x0000000000000011, 0x00156B5400000025}, + [_]u64{0x7FFFFFFF00000003, 0x078644FAFFFFFFFF, 0x0000000000000011, 0x00156B5400000014}, + [_]u64{0x7FFFFFFF00000003, 0x0747AE1400000000, 0x0000000000000011, 0x043D70AB00000003}, + [_]u64{0x7FFFFFFF00000003, 0x0747AE1400000001, 0x0000000000000011, 0x043D70AAFFFFFFF2}, + [_]u64{0x7FFFFFFF00000003, 0x0747AE1400000002, 0x0000000000000011, 0x043D70AAFFFFFFE1}, + [_]u64{0x7FFFFFFF00000003, 0x0747AE1400000003, 0x0000000000000011, 0x043D70AAFFFFFFD0}, + [_]u64{0x7FFFFFFF00000003, 0x0747AE1400000010, 0x0000000000000011, 0x043D70AAFFFFFEF3}, + [_]u64{0x7FFFFFFF00000003, 0x0747AE14078644FA, 0x0000000000000011, 0x043D70AA80156B69}, + [_]u64{0x7FFFFFFF00000003, 0x0747AE140747AE14, 0x0000000000000011, 0x043D70AA843D70AF}, + [_]u64{0x7FFFFFFF00000003, 0x0747AE147FFFFFFF, 0x0000000000000011, 0x043D70A280000014}, + [_]u64{0x7FFFFFFF00000003, 0x0747AE1480000000, 0x0000000000000011, 0x043D70A280000003}, + [_]u64{0x7FFFFFFF00000003, 0x0747AE14FFFFFFFD, 0x0000000000000011, 0x043D709A00000036}, + [_]u64{0x7FFFFFFF00000003, 0x0747AE14FFFFFFFE, 0x0000000000000011, 0x043D709A00000025}, + [_]u64{0x7FFFFFFF00000003, 0x0747AE14FFFFFFFF, 0x0000000000000011, 0x043D709A00000014}, + [_]u64{0x7FFFFFFF00000003, 0x7FFFFFFF00000000, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0x7FFFFFFF00000003, 0x7FFFFFFF00000001, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x7FFFFFFF00000003, 0x7FFFFFFF00000002, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x7FFFFFFF00000003, 0x7FFFFFFF00000003, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x7FFFFFFF00000003, 0x7FFFFFFF00000010, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0x7FFFFFFF80000000, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0x8000000000000000, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0x8000000000000001, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0x8000000000000002, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0x8000000000000003, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0x8000000000000010, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0x80000000078644FA, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0x800000000747AE14, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0x800000007FFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0x8000000080000000, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0x80000000FFFFFFFD, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0x80000000FFFFFFFE, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0x80000000FFFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFD00000000, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFD00000001, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFD00000002, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFD00000003, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFD00000010, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFD80000000, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFE00000000, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFE00000001, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFE00000002, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFE00000003, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFE00000010, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFE80000000, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFF00000000, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFF00000001, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFF00000002, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFF00000003, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFF00000010, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFF80000000, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000003, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000003}, + [_]u64{0x7FFFFFFF00000010, 0x0000000000000001, 0x7FFFFFFF00000010, 0x0000000000000000}, + [_]u64{0x7FFFFFFF00000010, 0x0000000000000002, 0x3FFFFFFF80000008, 0x0000000000000000}, + [_]u64{0x7FFFFFFF00000010, 0x0000000000000003, 0x2AAAAAAA5555555A, 0x0000000000000002}, + [_]u64{0x7FFFFFFF00000010, 0x0000000000000010, 0x07FFFFFFF0000001, 0x0000000000000000}, + [_]u64{0x7FFFFFFF00000010, 0x00000000078644FA, 0x0000001102D8BD5C, 0x0000000003E2A438}, + [_]u64{0x7FFFFFFF00000010, 0x000000000747AE14, 0x000000119519529A, 0x00000000052AE008}, + [_]u64{0x7FFFFFFF00000010, 0x000000007FFFFFFF, 0x0000000100000000, 0x0000000000000010}, + [_]u64{0x7FFFFFFF00000010, 0x0000000080000000, 0x00000000FFFFFFFE, 0x0000000000000010}, + [_]u64{0x7FFFFFFF00000010, 0x00000000FFFFFFFD, 0x0000000080000000, 0x0000000080000010}, + [_]u64{0x7FFFFFFF00000010, 0x00000000FFFFFFFE, 0x0000000080000000, 0x0000000000000010}, + [_]u64{0x7FFFFFFF00000010, 0x00000000FFFFFFFF, 0x000000007FFFFFFF, 0x000000008000000F}, + [_]u64{0x7FFFFFFF00000010, 0x0000000100000000, 0x000000007FFFFFFF, 0x0000000000000010}, + [_]u64{0x7FFFFFFF00000010, 0x0000000100000001, 0x000000007FFFFFFE, 0x0000000080000012}, + [_]u64{0x7FFFFFFF00000010, 0x0000000100000002, 0x000000007FFFFFFE, 0x0000000000000014}, + [_]u64{0x7FFFFFFF00000010, 0x0000000100000003, 0x000000007FFFFFFD, 0x0000000080000019}, + [_]u64{0x7FFFFFFF00000010, 0x0000000100000010, 0x000000007FFFFFF7, 0x00000000000000A0}, + [_]u64{0x7FFFFFFF00000010, 0x00000001078644FA, 0x000000007C585DAD, 0x000000005544911E}, + [_]u64{0x7FFFFFFF00000010, 0x000000010747AE14, 0x000000007C75ED2C, 0x00000000246190A0}, + [_]u64{0x7FFFFFFF00000010, 0x000000017FFFFFFF, 0x0000000055555554, 0x0000000155555564}, + [_]u64{0x7FFFFFFF00000010, 0x0000000180000000, 0x0000000055555554, 0x0000000100000010}, + [_]u64{0x7FFFFFFF00000010, 0x00000001FFFFFFFD, 0x000000003FFFFFFF, 0x00000001C000000D}, + [_]u64{0x7FFFFFFF00000010, 0x00000001FFFFFFFE, 0x000000003FFFFFFF, 0x000000018000000E}, + [_]u64{0x7FFFFFFF00000010, 0x00000001FFFFFFFF, 0x000000003FFFFFFF, 0x000000014000000F}, + [_]u64{0x7FFFFFFF00000010, 0x0000000200000000, 0x000000003FFFFFFF, 0x0000000100000010}, + [_]u64{0x7FFFFFFF00000010, 0x0000000200000001, 0x000000003FFFFFFF, 0x00000000C0000011}, + [_]u64{0x7FFFFFFF00000010, 0x0000000200000002, 0x000000003FFFFFFF, 0x0000000080000012}, + [_]u64{0x7FFFFFFF00000010, 0x0000000200000003, 0x000000003FFFFFFF, 0x0000000040000013}, + [_]u64{0x7FFFFFFF00000010, 0x0000000200000010, 0x000000003FFFFFFD, 0x0000000100000040}, + [_]u64{0x7FFFFFFF00000010, 0x00000002078644FA, 0x000000003F12B424, 0x00000001290A84E8}, + [_]u64{0x7FFFFFFF00000010, 0x000000020747AE14, 0x000000003F1A4E53, 0x0000000032B07794}, + [_]u64{0x7FFFFFFF00000010, 0x000000027FFFFFFF, 0x0000000033333332, 0x0000000233333342}, + [_]u64{0x7FFFFFFF00000010, 0x0000000280000000, 0x0000000033333332, 0x0000000200000010}, + [_]u64{0x7FFFFFFF00000010, 0x00000002FFFFFFFD, 0x000000002AAAAAAA, 0x000000018000000E}, + [_]u64{0x7FFFFFFF00000010, 0x00000002FFFFFFFE, 0x000000002AAAAAAA, 0x0000000155555564}, + [_]u64{0x7FFFFFFF00000010, 0x00000002FFFFFFFF, 0x000000002AAAAAAA, 0x000000012AAAAABA}, + [_]u64{0x7FFFFFFF00000010, 0x0000000300000000, 0x000000002AAAAAAA, 0x0000000100000010}, + [_]u64{0x7FFFFFFF00000010, 0x0000000300000001, 0x000000002AAAAAAA, 0x00000000D5555566}, + [_]u64{0x7FFFFFFF00000010, 0x0000000300000002, 0x000000002AAAAAAA, 0x00000000AAAAAABC}, + [_]u64{0x7FFFFFFF00000010, 0x0000000300000003, 0x000000002AAAAAAA, 0x0000000080000012}, + [_]u64{0x7FFFFFFF00000010, 0x0000000300000010, 0x000000002AAAAAA9, 0x0000000155555580}, + [_]u64{0x7FFFFFFF00000010, 0x00000003078644FA, 0x000000002A40B0A3, 0x00000002A39634E2}, + [_]u64{0x7FFFFFFF00000010, 0x000000030747AE14, 0x000000002A4419E3, 0x000000000620B054}, + [_]u64{0x7FFFFFFF00000010, 0x000000037FFFFFFF, 0x0000000024924924, 0x0000000124924934}, + [_]u64{0x7FFFFFFF00000010, 0x0000000380000000, 0x0000000024924924, 0x0000000100000010}, + [_]u64{0x7FFFFFFF00000010, 0x00000003FFFFFFFD, 0x000000001FFFFFFF, 0x000000036000000D}, + [_]u64{0x7FFFFFFF00000010, 0x00000003FFFFFFFE, 0x000000001FFFFFFF, 0x000000034000000E}, + [_]u64{0x7FFFFFFF00000010, 0x00000003FFFFFFFF, 0x000000001FFFFFFF, 0x000000032000000F}, + [_]u64{0x7FFFFFFF00000010, 0x0000001000000000, 0x0000000007FFFFFF, 0x0000000F00000010}, + [_]u64{0x7FFFFFFF00000010, 0x0000001000000001, 0x0000000007FFFFFF, 0x0000000EF8000011}, + [_]u64{0x7FFFFFFF00000010, 0x0000001000000002, 0x0000000007FFFFFF, 0x0000000EF0000012}, + [_]u64{0x7FFFFFFF00000010, 0x0000001000000003, 0x0000000007FFFFFF, 0x0000000EE8000013}, + [_]u64{0x7FFFFFFF00000010, 0x0000001000000010, 0x0000000007FFFFFF, 0x0000000E80000020}, + [_]u64{0x7FFFFFFF00000010, 0x00000010078644FA, 0x0000000007FC3EA1, 0x0000000903C212D6}, + [_]u64{0x7FFFFFFF00000010, 0x000000100747AE14, 0x0000000007FC5DD0, 0x0000000223D54BD0}, + [_]u64{0x7FFFFFFF00000010, 0x000000107FFFFFFF, 0x0000000007C1F07C, 0x0000000107C1F08C}, + [_]u64{0x7FFFFFFF00000010, 0x0000001080000000, 0x0000000007C1F07C, 0x0000000100000010}, + [_]u64{0x7FFFFFFF00000010, 0x00000010FFFFFFFD, 0x0000000007878787, 0x00000008169696A5}, + [_]u64{0x7FFFFFFF00000010, 0x00000010FFFFFFFE, 0x0000000007878787, 0x000000080F0F0F1E}, + [_]u64{0x7FFFFFFF00000010, 0x00000010FFFFFFFF, 0x0000000007878787, 0x0000000807878797}, + [_]u64{0x7FFFFFFF00000010, 0x078644FA00000000, 0x0000000000000011, 0x00156B6500000010}, + [_]u64{0x7FFFFFFF00000010, 0x078644FA00000001, 0x0000000000000011, 0x00156B64FFFFFFFF}, + [_]u64{0x7FFFFFFF00000010, 0x078644FA00000002, 0x0000000000000011, 0x00156B64FFFFFFEE}, + [_]u64{0x7FFFFFFF00000010, 0x078644FA00000003, 0x0000000000000011, 0x00156B64FFFFFFDD}, + [_]u64{0x7FFFFFFF00000010, 0x078644FA00000010, 0x0000000000000011, 0x00156B64FFFFFF00}, + [_]u64{0x7FFFFFFF00000010, 0x078644FA078644FA, 0x0000000000000011, 0x00156B6480156B76}, + [_]u64{0x7FFFFFFF00000010, 0x078644FA0747AE14, 0x0000000000000011, 0x00156B64843D70BC}, + [_]u64{0x7FFFFFFF00000010, 0x078644FA7FFFFFFF, 0x0000000000000011, 0x00156B5C80000021}, + [_]u64{0x7FFFFFFF00000010, 0x078644FA80000000, 0x0000000000000011, 0x00156B5C80000010}, + [_]u64{0x7FFFFFFF00000010, 0x078644FAFFFFFFFD, 0x0000000000000011, 0x00156B5400000043}, + [_]u64{0x7FFFFFFF00000010, 0x078644FAFFFFFFFE, 0x0000000000000011, 0x00156B5400000032}, + [_]u64{0x7FFFFFFF00000010, 0x078644FAFFFFFFFF, 0x0000000000000011, 0x00156B5400000021}, + [_]u64{0x7FFFFFFF00000010, 0x0747AE1400000000, 0x0000000000000011, 0x043D70AB00000010}, + [_]u64{0x7FFFFFFF00000010, 0x0747AE1400000001, 0x0000000000000011, 0x043D70AAFFFFFFFF}, + [_]u64{0x7FFFFFFF00000010, 0x0747AE1400000002, 0x0000000000000011, 0x043D70AAFFFFFFEE}, + [_]u64{0x7FFFFFFF00000010, 0x0747AE1400000003, 0x0000000000000011, 0x043D70AAFFFFFFDD}, + [_]u64{0x7FFFFFFF00000010, 0x0747AE1400000010, 0x0000000000000011, 0x043D70AAFFFFFF00}, + [_]u64{0x7FFFFFFF00000010, 0x0747AE14078644FA, 0x0000000000000011, 0x043D70AA80156B76}, + [_]u64{0x7FFFFFFF00000010, 0x0747AE140747AE14, 0x0000000000000011, 0x043D70AA843D70BC}, + [_]u64{0x7FFFFFFF00000010, 0x0747AE147FFFFFFF, 0x0000000000000011, 0x043D70A280000021}, + [_]u64{0x7FFFFFFF00000010, 0x0747AE1480000000, 0x0000000000000011, 0x043D70A280000010}, + [_]u64{0x7FFFFFFF00000010, 0x0747AE14FFFFFFFD, 0x0000000000000011, 0x043D709A00000043}, + [_]u64{0x7FFFFFFF00000010, 0x0747AE14FFFFFFFE, 0x0000000000000011, 0x043D709A00000032}, + [_]u64{0x7FFFFFFF00000010, 0x0747AE14FFFFFFFF, 0x0000000000000011, 0x043D709A00000021}, + [_]u64{0x7FFFFFFF00000010, 0x7FFFFFFF00000000, 0x0000000000000001, 0x0000000000000010}, + [_]u64{0x7FFFFFFF00000010, 0x7FFFFFFF00000001, 0x0000000000000001, 0x000000000000000F}, + [_]u64{0x7FFFFFFF00000010, 0x7FFFFFFF00000002, 0x0000000000000001, 0x000000000000000E}, + [_]u64{0x7FFFFFFF00000010, 0x7FFFFFFF00000003, 0x0000000000000001, 0x000000000000000D}, + [_]u64{0x7FFFFFFF00000010, 0x7FFFFFFF00000010, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x7FFFFFFF00000010, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0x7FFFFFFF0747AE14, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0x7FFFFFFF80000000, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0x8000000000000000, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0x8000000000000001, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0x8000000000000002, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0x8000000000000003, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0x8000000000000010, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0x80000000078644FA, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0x800000000747AE14, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0x800000007FFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0x8000000080000000, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0x80000000FFFFFFFD, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0x80000000FFFFFFFE, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0x80000000FFFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFD00000000, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFD00000001, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFD00000002, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFD00000003, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFD00000010, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFD80000000, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFE00000000, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFE00000001, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFE00000002, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFE00000003, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFE00000010, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFE80000000, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFF00000000, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFF00000001, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFF00000002, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFF00000003, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFF00000010, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFF80000000, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF00000010, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF00000010}, + [_]u64{0x7FFFFFFF078644FA, 0x0000000000000001, 0x7FFFFFFF078644FA, 0x0000000000000000}, + [_]u64{0x7FFFFFFF078644FA, 0x0000000000000002, 0x3FFFFFFF83C3227D, 0x0000000000000000}, + [_]u64{0x7FFFFFFF078644FA, 0x0000000000000003, 0x2AAAAAAA57D76C53, 0x0000000000000001}, + [_]u64{0x7FFFFFFF078644FA, 0x0000000000000010, 0x07FFFFFFF078644F, 0x000000000000000A}, + [_]u64{0x7FFFFFFF078644FA, 0x00000000078644FA, 0x0000001102D8BD5D, 0x0000000003E2A428}, + [_]u64{0x7FFFFFFF078644FA, 0x000000000747AE14, 0x000000119519529B, 0x00000000056976DE}, + [_]u64{0x7FFFFFFF078644FA, 0x000000007FFFFFFF, 0x0000000100000000, 0x00000000078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x0000000080000000, 0x00000000FFFFFFFE, 0x00000000078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x00000000FFFFFFFD, 0x0000000080000000, 0x00000000878644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x00000000FFFFFFFE, 0x0000000080000000, 0x00000000078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x00000000FFFFFFFF, 0x000000007FFFFFFF, 0x00000000878644F9}, + [_]u64{0x7FFFFFFF078644FA, 0x0000000100000000, 0x000000007FFFFFFF, 0x00000000078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x0000000100000001, 0x000000007FFFFFFE, 0x00000000878644FC}, + [_]u64{0x7FFFFFFF078644FA, 0x0000000100000002, 0x000000007FFFFFFE, 0x00000000078644FE}, + [_]u64{0x7FFFFFFF078644FA, 0x0000000100000003, 0x000000007FFFFFFD, 0x0000000087864503}, + [_]u64{0x7FFFFFFF078644FA, 0x0000000100000010, 0x000000007FFFFFF7, 0x000000000786458A}, + [_]u64{0x7FFFFFFF078644FA, 0x00000001078644FA, 0x000000007C585DAD, 0x000000005CCAD608}, + [_]u64{0x7FFFFFFF078644FA, 0x000000010747AE14, 0x000000007C75ED2C, 0x000000002BE7D58A}, + [_]u64{0x7FFFFFFF078644FA, 0x000000017FFFFFFF, 0x0000000055555554, 0x000000015CDB9A4E}, + [_]u64{0x7FFFFFFF078644FA, 0x0000000180000000, 0x0000000055555554, 0x00000001078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x00000001FFFFFFFD, 0x000000003FFFFFFF, 0x00000001C78644F7}, + [_]u64{0x7FFFFFFF078644FA, 0x00000001FFFFFFFE, 0x000000003FFFFFFF, 0x00000001878644F8}, + [_]u64{0x7FFFFFFF078644FA, 0x00000001FFFFFFFF, 0x000000003FFFFFFF, 0x00000001478644F9}, + [_]u64{0x7FFFFFFF078644FA, 0x0000000200000000, 0x000000003FFFFFFF, 0x00000001078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x0000000200000001, 0x000000003FFFFFFF, 0x00000000C78644FB}, + [_]u64{0x7FFFFFFF078644FA, 0x0000000200000002, 0x000000003FFFFFFF, 0x00000000878644FC}, + [_]u64{0x7FFFFFFF078644FA, 0x0000000200000003, 0x000000003FFFFFFF, 0x00000000478644FD}, + [_]u64{0x7FFFFFFF078644FA, 0x0000000200000010, 0x000000003FFFFFFD, 0x000000010786452A}, + [_]u64{0x7FFFFFFF078644FA, 0x00000002078644FA, 0x000000003F12B424, 0x000000013090C9D2}, + [_]u64{0x7FFFFFFF078644FA, 0x000000020747AE14, 0x000000003F1A4E53, 0x000000003A36BC7E}, + [_]u64{0x7FFFFFFF078644FA, 0x000000027FFFFFFF, 0x0000000033333332, 0x000000023AB9782C}, + [_]u64{0x7FFFFFFF078644FA, 0x0000000280000000, 0x0000000033333332, 0x00000002078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x00000002FFFFFFFD, 0x000000002AAAAAAA, 0x00000001878644F8}, + [_]u64{0x7FFFFFFF078644FA, 0x00000002FFFFFFFE, 0x000000002AAAAAAA, 0x000000015CDB9A4E}, + [_]u64{0x7FFFFFFF078644FA, 0x00000002FFFFFFFF, 0x000000002AAAAAAA, 0x000000013230EFA4}, + [_]u64{0x7FFFFFFF078644FA, 0x0000000300000000, 0x000000002AAAAAAA, 0x00000001078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x0000000300000001, 0x000000002AAAAAAA, 0x00000000DCDB9A50}, + [_]u64{0x7FFFFFFF078644FA, 0x0000000300000002, 0x000000002AAAAAAA, 0x00000000B230EFA6}, + [_]u64{0x7FFFFFFF078644FA, 0x0000000300000003, 0x000000002AAAAAAA, 0x00000000878644FC}, + [_]u64{0x7FFFFFFF078644FA, 0x0000000300000010, 0x000000002AAAAAA9, 0x000000015CDB9A6A}, + [_]u64{0x7FFFFFFF078644FA, 0x00000003078644FA, 0x000000002A40B0A3, 0x00000002AB1C79CC}, + [_]u64{0x7FFFFFFF078644FA, 0x000000030747AE14, 0x000000002A4419E3, 0x000000000DA6F53E}, + [_]u64{0x7FFFFFFF078644FA, 0x000000037FFFFFFF, 0x0000000024924924, 0x000000012C188E1E}, + [_]u64{0x7FFFFFFF078644FA, 0x0000000380000000, 0x0000000024924924, 0x00000001078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x00000003FFFFFFFD, 0x000000001FFFFFFF, 0x00000003678644F7}, + [_]u64{0x7FFFFFFF078644FA, 0x00000003FFFFFFFE, 0x000000001FFFFFFF, 0x00000003478644F8}, + [_]u64{0x7FFFFFFF078644FA, 0x00000003FFFFFFFF, 0x000000001FFFFFFF, 0x00000003278644F9}, + [_]u64{0x7FFFFFFF078644FA, 0x0000001000000000, 0x0000000007FFFFFF, 0x0000000F078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x0000001000000001, 0x0000000007FFFFFF, 0x0000000EFF8644FB}, + [_]u64{0x7FFFFFFF078644FA, 0x0000001000000002, 0x0000000007FFFFFF, 0x0000000EF78644FC}, + [_]u64{0x7FFFFFFF078644FA, 0x0000001000000003, 0x0000000007FFFFFF, 0x0000000EEF8644FD}, + [_]u64{0x7FFFFFFF078644FA, 0x0000001000000010, 0x0000000007FFFFFF, 0x0000000E8786450A}, + [_]u64{0x7FFFFFFF078644FA, 0x00000010078644FA, 0x0000000007FC3EA1, 0x000000090B4857C0}, + [_]u64{0x7FFFFFFF078644FA, 0x000000100747AE14, 0x0000000007FC5DD0, 0x000000022B5B90BA}, + [_]u64{0x7FFFFFFF078644FA, 0x000000107FFFFFFF, 0x0000000007C1F07C, 0x000000010F483576}, + [_]u64{0x7FFFFFFF078644FA, 0x0000001080000000, 0x0000000007C1F07C, 0x00000001078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x00000010FFFFFFFD, 0x0000000007878787, 0x000000081E1CDB8F}, + [_]u64{0x7FFFFFFF078644FA, 0x00000010FFFFFFFE, 0x0000000007878787, 0x0000000816955408}, + [_]u64{0x7FFFFFFF078644FA, 0x00000010FFFFFFFF, 0x0000000007878787, 0x000000080F0DCC81}, + [_]u64{0x7FFFFFFF078644FA, 0x078644FA00000000, 0x0000000000000011, 0x00156B65078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x078644FA00000001, 0x0000000000000011, 0x00156B65078644E9}, + [_]u64{0x7FFFFFFF078644FA, 0x078644FA00000002, 0x0000000000000011, 0x00156B65078644D8}, + [_]u64{0x7FFFFFFF078644FA, 0x078644FA00000003, 0x0000000000000011, 0x00156B65078644C7}, + [_]u64{0x7FFFFFFF078644FA, 0x078644FA00000010, 0x0000000000000011, 0x00156B65078643EA}, + [_]u64{0x7FFFFFFF078644FA, 0x078644FA078644FA, 0x0000000000000011, 0x00156B64879BB060}, + [_]u64{0x7FFFFFFF078644FA, 0x078644FA0747AE14, 0x0000000000000011, 0x00156B648BC3B5A6}, + [_]u64{0x7FFFFFFF078644FA, 0x078644FA7FFFFFFF, 0x0000000000000011, 0x00156B5C8786450B}, + [_]u64{0x7FFFFFFF078644FA, 0x078644FA80000000, 0x0000000000000011, 0x00156B5C878644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x078644FAFFFFFFFD, 0x0000000000000011, 0x00156B540786452D}, + [_]u64{0x7FFFFFFF078644FA, 0x078644FAFFFFFFFE, 0x0000000000000011, 0x00156B540786451C}, + [_]u64{0x7FFFFFFF078644FA, 0x078644FAFFFFFFFF, 0x0000000000000011, 0x00156B540786450B}, + [_]u64{0x7FFFFFFF078644FA, 0x0747AE1400000000, 0x0000000000000011, 0x043D70AB078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x0747AE1400000001, 0x0000000000000011, 0x043D70AB078644E9}, + [_]u64{0x7FFFFFFF078644FA, 0x0747AE1400000002, 0x0000000000000011, 0x043D70AB078644D8}, + [_]u64{0x7FFFFFFF078644FA, 0x0747AE1400000003, 0x0000000000000011, 0x043D70AB078644C7}, + [_]u64{0x7FFFFFFF078644FA, 0x0747AE1400000010, 0x0000000000000011, 0x043D70AB078643EA}, + [_]u64{0x7FFFFFFF078644FA, 0x0747AE14078644FA, 0x0000000000000011, 0x043D70AA879BB060}, + [_]u64{0x7FFFFFFF078644FA, 0x0747AE140747AE14, 0x0000000000000011, 0x043D70AA8BC3B5A6}, + [_]u64{0x7FFFFFFF078644FA, 0x0747AE147FFFFFFF, 0x0000000000000011, 0x043D70A28786450B}, + [_]u64{0x7FFFFFFF078644FA, 0x0747AE1480000000, 0x0000000000000011, 0x043D70A2878644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x0747AE14FFFFFFFD, 0x0000000000000011, 0x043D709A0786452D}, + [_]u64{0x7FFFFFFF078644FA, 0x0747AE14FFFFFFFE, 0x0000000000000011, 0x043D709A0786451C}, + [_]u64{0x7FFFFFFF078644FA, 0x0747AE14FFFFFFFF, 0x0000000000000011, 0x043D709A0786450B}, + [_]u64{0x7FFFFFFF078644FA, 0x7FFFFFFF00000000, 0x0000000000000001, 0x00000000078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x7FFFFFFF00000001, 0x0000000000000001, 0x00000000078644F9}, + [_]u64{0x7FFFFFFF078644FA, 0x7FFFFFFF00000002, 0x0000000000000001, 0x00000000078644F8}, + [_]u64{0x7FFFFFFF078644FA, 0x7FFFFFFF00000003, 0x0000000000000001, 0x00000000078644F7}, + [_]u64{0x7FFFFFFF078644FA, 0x7FFFFFFF00000010, 0x0000000000000001, 0x00000000078644EA}, + [_]u64{0x7FFFFFFF078644FA, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x7FFFFFFF078644FA, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x00000000003E96E6}, + [_]u64{0x7FFFFFFF078644FA, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x7FFFFFFF80000000, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x8000000000000000, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x8000000000000001, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x8000000000000002, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x8000000000000003, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x8000000000000010, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x80000000078644FA, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x800000000747AE14, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x800000007FFFFFFF, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x8000000080000000, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x80000000FFFFFFFD, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x80000000FFFFFFFE, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0x80000000FFFFFFFF, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFD00000000, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFD00000001, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFD00000002, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFD00000003, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFD00000010, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFD80000000, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFE00000000, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFE00000001, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFE00000002, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFE00000003, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFE00000010, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFE80000000, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFF00000000, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFF00000001, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFF00000002, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFF00000003, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFF00000010, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFF80000000, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF078644FA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF078644FA}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000000000000001, 0x7FFFFFFF0747AE14, 0x0000000000000000}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000000000000002, 0x3FFFFFFF83A3D70A, 0x0000000000000000}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000000000000003, 0x2AAAAAAA57C28F5C, 0x0000000000000000}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000000000000010, 0x07FFFFFFF0747AE1, 0x0000000000000004}, + [_]u64{0x7FFFFFFF0747AE14, 0x00000000078644FA, 0x0000001102D8BD5D, 0x0000000003A40D42}, + [_]u64{0x7FFFFFFF0747AE14, 0x000000000747AE14, 0x000000119519529B, 0x00000000052ADFF8}, + [_]u64{0x7FFFFFFF0747AE14, 0x000000007FFFFFFF, 0x0000000100000000, 0x000000000747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000000080000000, 0x00000000FFFFFFFE, 0x000000000747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x00000000FFFFFFFD, 0x0000000080000000, 0x000000008747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x00000000FFFFFFFE, 0x0000000080000000, 0x000000000747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x00000000FFFFFFFF, 0x000000007FFFFFFF, 0x000000008747AE13}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000000100000000, 0x000000007FFFFFFF, 0x000000000747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000000100000001, 0x000000007FFFFFFE, 0x000000008747AE16}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000000100000002, 0x000000007FFFFFFE, 0x000000000747AE18}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000000100000003, 0x000000007FFFFFFD, 0x000000008747AE1D}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000000100000010, 0x000000007FFFFFF7, 0x000000000747AEA4}, + [_]u64{0x7FFFFFFF0747AE14, 0x00000001078644FA, 0x000000007C585DAD, 0x000000005C8C3F22}, + [_]u64{0x7FFFFFFF0747AE14, 0x000000010747AE14, 0x000000007C75ED2C, 0x000000002BA93EA4}, + [_]u64{0x7FFFFFFF0747AE14, 0x000000017FFFFFFF, 0x0000000055555554, 0x000000015C9D0368}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000000180000000, 0x0000000055555554, 0x000000010747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x00000001FFFFFFFD, 0x000000003FFFFFFF, 0x00000001C747AE11}, + [_]u64{0x7FFFFFFF0747AE14, 0x00000001FFFFFFFE, 0x000000003FFFFFFF, 0x000000018747AE12}, + [_]u64{0x7FFFFFFF0747AE14, 0x00000001FFFFFFFF, 0x000000003FFFFFFF, 0x000000014747AE13}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000000200000000, 0x000000003FFFFFFF, 0x000000010747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000000200000001, 0x000000003FFFFFFF, 0x00000000C747AE15}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000000200000002, 0x000000003FFFFFFF, 0x000000008747AE16}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000000200000003, 0x000000003FFFFFFF, 0x000000004747AE17}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000000200000010, 0x000000003FFFFFFD, 0x000000010747AE44}, + [_]u64{0x7FFFFFFF0747AE14, 0x00000002078644FA, 0x000000003F12B424, 0x00000001305232EC}, + [_]u64{0x7FFFFFFF0747AE14, 0x000000020747AE14, 0x000000003F1A4E53, 0x0000000039F82598}, + [_]u64{0x7FFFFFFF0747AE14, 0x000000027FFFFFFF, 0x0000000033333332, 0x000000023A7AE146}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000000280000000, 0x0000000033333332, 0x000000020747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x00000002FFFFFFFD, 0x000000002AAAAAAA, 0x000000018747AE12}, + [_]u64{0x7FFFFFFF0747AE14, 0x00000002FFFFFFFE, 0x000000002AAAAAAA, 0x000000015C9D0368}, + [_]u64{0x7FFFFFFF0747AE14, 0x00000002FFFFFFFF, 0x000000002AAAAAAA, 0x0000000131F258BE}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000000300000000, 0x000000002AAAAAAA, 0x000000010747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000000300000001, 0x000000002AAAAAAA, 0x00000000DC9D036A}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000000300000002, 0x000000002AAAAAAA, 0x00000000B1F258C0}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000000300000003, 0x000000002AAAAAAA, 0x000000008747AE16}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000000300000010, 0x000000002AAAAAA9, 0x000000015C9D0384}, + [_]u64{0x7FFFFFFF0747AE14, 0x00000003078644FA, 0x000000002A40B0A3, 0x00000002AADDE2E6}, + [_]u64{0x7FFFFFFF0747AE14, 0x000000030747AE14, 0x000000002A4419E3, 0x000000000D685E58}, + [_]u64{0x7FFFFFFF0747AE14, 0x000000037FFFFFFF, 0x0000000024924924, 0x000000012BD9F738}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000000380000000, 0x0000000024924924, 0x000000010747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x00000003FFFFFFFD, 0x000000001FFFFFFF, 0x000000036747AE11}, + [_]u64{0x7FFFFFFF0747AE14, 0x00000003FFFFFFFE, 0x000000001FFFFFFF, 0x000000034747AE12}, + [_]u64{0x7FFFFFFF0747AE14, 0x00000003FFFFFFFF, 0x000000001FFFFFFF, 0x000000032747AE13}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000001000000000, 0x0000000007FFFFFF, 0x0000000F0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000001000000001, 0x0000000007FFFFFF, 0x0000000EFF47AE15}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000001000000002, 0x0000000007FFFFFF, 0x0000000EF747AE16}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000001000000003, 0x0000000007FFFFFF, 0x0000000EEF47AE17}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000001000000010, 0x0000000007FFFFFF, 0x0000000E8747AE24}, + [_]u64{0x7FFFFFFF0747AE14, 0x00000010078644FA, 0x0000000007FC3EA1, 0x000000090B09C0DA}, + [_]u64{0x7FFFFFFF0747AE14, 0x000000100747AE14, 0x0000000007FC5DD0, 0x000000022B1CF9D4}, + [_]u64{0x7FFFFFFF0747AE14, 0x000000107FFFFFFF, 0x0000000007C1F07C, 0x000000010F099E90}, + [_]u64{0x7FFFFFFF0747AE14, 0x0000001080000000, 0x0000000007C1F07C, 0x000000010747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x00000010FFFFFFFD, 0x0000000007878787, 0x000000081DDE44A9}, + [_]u64{0x7FFFFFFF0747AE14, 0x00000010FFFFFFFE, 0x0000000007878787, 0x000000081656BD22}, + [_]u64{0x7FFFFFFF0747AE14, 0x00000010FFFFFFFF, 0x0000000007878787, 0x000000080ECF359B}, + [_]u64{0x7FFFFFFF0747AE14, 0x078644FA00000000, 0x0000000000000011, 0x00156B650747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x078644FA00000001, 0x0000000000000011, 0x00156B650747AE03}, + [_]u64{0x7FFFFFFF0747AE14, 0x078644FA00000002, 0x0000000000000011, 0x00156B650747ADF2}, + [_]u64{0x7FFFFFFF0747AE14, 0x078644FA00000003, 0x0000000000000011, 0x00156B650747ADE1}, + [_]u64{0x7FFFFFFF0747AE14, 0x078644FA00000010, 0x0000000000000011, 0x00156B650747AD04}, + [_]u64{0x7FFFFFFF0747AE14, 0x078644FA078644FA, 0x0000000000000011, 0x00156B64875D197A}, + [_]u64{0x7FFFFFFF0747AE14, 0x078644FA0747AE14, 0x0000000000000011, 0x00156B648B851EC0}, + [_]u64{0x7FFFFFFF0747AE14, 0x078644FA7FFFFFFF, 0x0000000000000011, 0x00156B5C8747AE25}, + [_]u64{0x7FFFFFFF0747AE14, 0x078644FA80000000, 0x0000000000000011, 0x00156B5C8747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x078644FAFFFFFFFD, 0x0000000000000011, 0x00156B540747AE47}, + [_]u64{0x7FFFFFFF0747AE14, 0x078644FAFFFFFFFE, 0x0000000000000011, 0x00156B540747AE36}, + [_]u64{0x7FFFFFFF0747AE14, 0x078644FAFFFFFFFF, 0x0000000000000011, 0x00156B540747AE25}, + [_]u64{0x7FFFFFFF0747AE14, 0x0747AE1400000000, 0x0000000000000011, 0x043D70AB0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x0747AE1400000001, 0x0000000000000011, 0x043D70AB0747AE03}, + [_]u64{0x7FFFFFFF0747AE14, 0x0747AE1400000002, 0x0000000000000011, 0x043D70AB0747ADF2}, + [_]u64{0x7FFFFFFF0747AE14, 0x0747AE1400000003, 0x0000000000000011, 0x043D70AB0747ADE1}, + [_]u64{0x7FFFFFFF0747AE14, 0x0747AE1400000010, 0x0000000000000011, 0x043D70AB0747AD04}, + [_]u64{0x7FFFFFFF0747AE14, 0x0747AE14078644FA, 0x0000000000000011, 0x043D70AA875D197A}, + [_]u64{0x7FFFFFFF0747AE14, 0x0747AE140747AE14, 0x0000000000000011, 0x043D70AA8B851EC0}, + [_]u64{0x7FFFFFFF0747AE14, 0x0747AE147FFFFFFF, 0x0000000000000011, 0x043D70A28747AE25}, + [_]u64{0x7FFFFFFF0747AE14, 0x0747AE1480000000, 0x0000000000000011, 0x043D70A28747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x0747AE14FFFFFFFD, 0x0000000000000011, 0x043D709A0747AE47}, + [_]u64{0x7FFFFFFF0747AE14, 0x0747AE14FFFFFFFE, 0x0000000000000011, 0x043D709A0747AE36}, + [_]u64{0x7FFFFFFF0747AE14, 0x0747AE14FFFFFFFF, 0x0000000000000011, 0x043D709A0747AE25}, + [_]u64{0x7FFFFFFF0747AE14, 0x7FFFFFFF00000000, 0x0000000000000001, 0x000000000747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x7FFFFFFF00000001, 0x0000000000000001, 0x000000000747AE13}, + [_]u64{0x7FFFFFFF0747AE14, 0x7FFFFFFF00000002, 0x0000000000000001, 0x000000000747AE12}, + [_]u64{0x7FFFFFFF0747AE14, 0x7FFFFFFF00000003, 0x0000000000000001, 0x000000000747AE11}, + [_]u64{0x7FFFFFFF0747AE14, 0x7FFFFFFF00000010, 0x0000000000000001, 0x000000000747AE04}, + [_]u64{0x7FFFFFFF0747AE14, 0x7FFFFFFF078644FA, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x7FFFFFFF0747AE14, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x7FFFFFFF80000000, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x8000000000000000, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x8000000000000001, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x8000000000000002, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x8000000000000003, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x8000000000000010, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x80000000078644FA, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x800000000747AE14, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x800000007FFFFFFF, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x8000000080000000, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x80000000FFFFFFFD, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x80000000FFFFFFFE, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0x80000000FFFFFFFF, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFD00000000, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFD00000001, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFD00000002, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFD00000003, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFD00000010, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFD80000000, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFE00000000, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFE00000001, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFE00000002, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFE00000003, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFE00000010, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFE80000000, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFF00000000, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFF00000001, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFF00000002, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFF00000003, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFF00000010, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFF80000000, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF0747AE14, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF0747AE14}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000000000000002, 0x3FFFFFFFBFFFFFFF, 0x0000000000000001}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000000000000003, 0x2AAAAAAA7FFFFFFF, 0x0000000000000002}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000000000000010, 0x07FFFFFFF7FFFFFF, 0x000000000000000F}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x00000000078644FA, 0x0000001102D8BD6D, 0x0000000003F80F8D}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x000000000747AE14, 0x00000011951952AC, 0x000000000220A28F}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x000000007FFFFFFF, 0x0000000100000001, 0x0000000000000000}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000000080000000, 0x00000000FFFFFFFE, 0x000000007FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x00000000FFFFFFFD, 0x0000000080000001, 0x0000000000000002}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x00000000FFFFFFFE, 0x0000000080000000, 0x000000007FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x00000000FFFFFFFF, 0x000000007FFFFFFF, 0x00000000FFFFFFFE}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000000100000000, 0x000000007FFFFFFF, 0x000000007FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000000100000001, 0x000000007FFFFFFF, 0x0000000000000000}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000000100000002, 0x000000007FFFFFFE, 0x0000000080000003}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000000100000003, 0x000000007FFFFFFE, 0x0000000000000005}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000000100000010, 0x000000007FFFFFF7, 0x000000008000008F}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x00000001078644FA, 0x000000007C585DAD, 0x00000000D544910D}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x000000010747AE14, 0x000000007C75ED2C, 0x00000000A461908F}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x000000017FFFFFFF, 0x0000000055555555, 0x0000000055555554}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000000180000000, 0x0000000055555554, 0x000000017FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x00000001FFFFFFFD, 0x0000000040000000, 0x000000003FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x00000001FFFFFFFE, 0x000000003FFFFFFF, 0x00000001FFFFFFFD}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x00000001FFFFFFFF, 0x000000003FFFFFFF, 0x00000001BFFFFFFE}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000000200000000, 0x000000003FFFFFFF, 0x000000017FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000000200000001, 0x000000003FFFFFFF, 0x0000000140000000}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000000200000002, 0x000000003FFFFFFF, 0x0000000100000001}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000000200000003, 0x000000003FFFFFFF, 0x00000000C0000002}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000000200000010, 0x000000003FFFFFFD, 0x000000018000002F}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x00000002078644FA, 0x000000003F12B424, 0x00000001A90A84D7}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x000000020747AE14, 0x000000003F1A4E53, 0x00000000B2B07783}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x000000027FFFFFFF, 0x0000000033333333, 0x0000000033333332}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000000280000000, 0x0000000033333332, 0x000000027FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x00000002FFFFFFFD, 0x000000002AAAAAAA, 0x00000001FFFFFFFD}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x00000002FFFFFFFE, 0x000000002AAAAAAA, 0x00000001D5555553}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x00000002FFFFFFFF, 0x000000002AAAAAAA, 0x00000001AAAAAAA9}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000000300000000, 0x000000002AAAAAAA, 0x000000017FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000000300000001, 0x000000002AAAAAAA, 0x0000000155555555}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000000300000002, 0x000000002AAAAAAA, 0x000000012AAAAAAB}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000000300000003, 0x000000002AAAAAAA, 0x0000000100000001}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000000300000010, 0x000000002AAAAAA9, 0x00000001D555556F}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x00000003078644FA, 0x000000002A40B0A4, 0x000000001C0FEFD7}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x000000030747AE14, 0x000000002A4419E3, 0x000000008620B043}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x000000037FFFFFFF, 0x0000000024924924, 0x00000001A4924923}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000000380000000, 0x0000000024924924, 0x000000017FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x00000003FFFFFFFD, 0x000000001FFFFFFF, 0x00000003DFFFFFFC}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x00000003FFFFFFFE, 0x000000001FFFFFFF, 0x00000003BFFFFFFD}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x00000003FFFFFFFF, 0x000000001FFFFFFF, 0x000000039FFFFFFE}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000001000000000, 0x0000000007FFFFFF, 0x0000000F7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000001000000001, 0x0000000007FFFFFF, 0x0000000F78000000}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000001000000002, 0x0000000007FFFFFF, 0x0000000F70000001}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000001000000003, 0x0000000007FFFFFF, 0x0000000F68000002}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000001000000010, 0x0000000007FFFFFF, 0x0000000F0000000F}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x00000010078644FA, 0x0000000007FC3EA1, 0x0000000983C212C5}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x000000100747AE14, 0x0000000007FC5DD0, 0x00000002A3D54BBF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x000000107FFFFFFF, 0x0000000007C1F07C, 0x0000000187C1F07B}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0000001080000000, 0x0000000007C1F07C, 0x000000017FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x00000010FFFFFFFD, 0x0000000007878787, 0x0000000896969694}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x00000010FFFFFFFE, 0x0000000007878787, 0x000000088F0F0F0D}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x00000010FFFFFFFF, 0x0000000007878787, 0x0000000887878786}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x078644FA00000000, 0x0000000000000011, 0x00156B657FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x078644FA00000001, 0x0000000000000011, 0x00156B657FFFFFEE}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x078644FA00000002, 0x0000000000000011, 0x00156B657FFFFFDD}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x078644FA00000003, 0x0000000000000011, 0x00156B657FFFFFCC}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x078644FA00000010, 0x0000000000000011, 0x00156B657FFFFEEF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x078644FA078644FA, 0x0000000000000011, 0x00156B6500156B65}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x078644FA0747AE14, 0x0000000000000011, 0x00156B65043D70AB}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x078644FA7FFFFFFF, 0x0000000000000011, 0x00156B5D00000010}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x078644FA80000000, 0x0000000000000011, 0x00156B5CFFFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x078644FAFFFFFFFD, 0x0000000000000011, 0x00156B5480000032}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x078644FAFFFFFFFE, 0x0000000000000011, 0x00156B5480000021}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x078644FAFFFFFFFF, 0x0000000000000011, 0x00156B5480000010}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0747AE1400000000, 0x0000000000000011, 0x043D70AB7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0747AE1400000001, 0x0000000000000011, 0x043D70AB7FFFFFEE}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0747AE1400000002, 0x0000000000000011, 0x043D70AB7FFFFFDD}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0747AE1400000003, 0x0000000000000011, 0x043D70AB7FFFFFCC}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0747AE1400000010, 0x0000000000000011, 0x043D70AB7FFFFEEF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0747AE14078644FA, 0x0000000000000011, 0x043D70AB00156B65}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0747AE140747AE14, 0x0000000000000011, 0x043D70AB043D70AB}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0747AE147FFFFFFF, 0x0000000000000011, 0x043D70A300000010}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0747AE1480000000, 0x0000000000000011, 0x043D70A2FFFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0747AE14FFFFFFFD, 0x0000000000000011, 0x043D709A80000032}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0747AE14FFFFFFFE, 0x0000000000000011, 0x043D709A80000021}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x0747AE14FFFFFFFF, 0x0000000000000011, 0x043D709A80000010}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x7FFFFFFF00000000, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x7FFFFFFF00000001, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x7FFFFFFF00000002, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x7FFFFFFF00000003, 0x0000000000000001, 0x000000007FFFFFFC}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x7FFFFFFF00000010, 0x0000000000000001, 0x000000007FFFFFEF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x000000007879BB05}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x0000000078B851EB}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x7FFFFFFF80000000, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x8000000000000000, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x8000000000000001, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x8000000000000002, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x8000000000000003, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x8000000000000010, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x80000000078644FA, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x800000000747AE14, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x800000007FFFFFFF, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x8000000080000000, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x80000000FFFFFFFD, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x80000000FFFFFFFE, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0x80000000FFFFFFFF, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFD00000000, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFD00000001, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFD00000002, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFD00000003, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFD00000010, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFD80000000, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFE00000000, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFE00000001, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFE00000002, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFE00000003, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFE00000010, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFE80000000, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFF00000000, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFF00000001, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFF00000002, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFF00000003, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFF00000010, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFF80000000, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF7FFFFFFF, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0x7FFFFFFF80000000, 0x0000000000000001, 0x7FFFFFFF80000000, 0x0000000000000000}, + [_]u64{0x7FFFFFFF80000000, 0x0000000000000002, 0x3FFFFFFFC0000000, 0x0000000000000000}, + [_]u64{0x7FFFFFFF80000000, 0x0000000000000003, 0x2AAAAAAA80000000, 0x0000000000000000}, + [_]u64{0x7FFFFFFF80000000, 0x0000000000000010, 0x07FFFFFFF8000000, 0x0000000000000000}, + [_]u64{0x7FFFFFFF80000000, 0x00000000078644FA, 0x0000001102D8BD6D, 0x0000000003F80F8E}, + [_]u64{0x7FFFFFFF80000000, 0x000000000747AE14, 0x00000011951952AC, 0x000000000220A290}, + [_]u64{0x7FFFFFFF80000000, 0x000000007FFFFFFF, 0x0000000100000001, 0x0000000000000001}, + [_]u64{0x7FFFFFFF80000000, 0x0000000080000000, 0x00000000FFFFFFFF, 0x0000000000000000}, + [_]u64{0x7FFFFFFF80000000, 0x00000000FFFFFFFD, 0x0000000080000001, 0x0000000000000003}, + [_]u64{0x7FFFFFFF80000000, 0x00000000FFFFFFFE, 0x0000000080000000, 0x0000000080000000}, + [_]u64{0x7FFFFFFF80000000, 0x00000000FFFFFFFF, 0x0000000080000000, 0x0000000000000000}, + [_]u64{0x7FFFFFFF80000000, 0x0000000100000000, 0x000000007FFFFFFF, 0x0000000080000000}, + [_]u64{0x7FFFFFFF80000000, 0x0000000100000001, 0x000000007FFFFFFF, 0x0000000000000001}, + [_]u64{0x7FFFFFFF80000000, 0x0000000100000002, 0x000000007FFFFFFE, 0x0000000080000004}, + [_]u64{0x7FFFFFFF80000000, 0x0000000100000003, 0x000000007FFFFFFE, 0x0000000000000006}, + [_]u64{0x7FFFFFFF80000000, 0x0000000100000010, 0x000000007FFFFFF7, 0x0000000080000090}, + [_]u64{0x7FFFFFFF80000000, 0x00000001078644FA, 0x000000007C585DAD, 0x00000000D544910E}, + [_]u64{0x7FFFFFFF80000000, 0x000000010747AE14, 0x000000007C75ED2C, 0x00000000A4619090}, + [_]u64{0x7FFFFFFF80000000, 0x000000017FFFFFFF, 0x0000000055555555, 0x0000000055555555}, + [_]u64{0x7FFFFFFF80000000, 0x0000000180000000, 0x0000000055555555, 0x0000000000000000}, + [_]u64{0x7FFFFFFF80000000, 0x00000001FFFFFFFD, 0x0000000040000000, 0x0000000040000000}, + [_]u64{0x7FFFFFFF80000000, 0x00000001FFFFFFFE, 0x0000000040000000, 0x0000000000000000}, + [_]u64{0x7FFFFFFF80000000, 0x00000001FFFFFFFF, 0x000000003FFFFFFF, 0x00000001BFFFFFFF}, + [_]u64{0x7FFFFFFF80000000, 0x0000000200000000, 0x000000003FFFFFFF, 0x0000000180000000}, + [_]u64{0x7FFFFFFF80000000, 0x0000000200000001, 0x000000003FFFFFFF, 0x0000000140000001}, + [_]u64{0x7FFFFFFF80000000, 0x0000000200000002, 0x000000003FFFFFFF, 0x0000000100000002}, + [_]u64{0x7FFFFFFF80000000, 0x0000000200000003, 0x000000003FFFFFFF, 0x00000000C0000003}, + [_]u64{0x7FFFFFFF80000000, 0x0000000200000010, 0x000000003FFFFFFD, 0x0000000180000030}, + [_]u64{0x7FFFFFFF80000000, 0x00000002078644FA, 0x000000003F12B424, 0x00000001A90A84D8}, + [_]u64{0x7FFFFFFF80000000, 0x000000020747AE14, 0x000000003F1A4E53, 0x00000000B2B07784}, + [_]u64{0x7FFFFFFF80000000, 0x000000027FFFFFFF, 0x0000000033333333, 0x0000000033333333}, + [_]u64{0x7FFFFFFF80000000, 0x0000000280000000, 0x0000000033333333, 0x0000000000000000}, + [_]u64{0x7FFFFFFF80000000, 0x00000002FFFFFFFD, 0x000000002AAAAAAA, 0x00000001FFFFFFFE}, + [_]u64{0x7FFFFFFF80000000, 0x00000002FFFFFFFE, 0x000000002AAAAAAA, 0x00000001D5555554}, + [_]u64{0x7FFFFFFF80000000, 0x00000002FFFFFFFF, 0x000000002AAAAAAA, 0x00000001AAAAAAAA}, + [_]u64{0x7FFFFFFF80000000, 0x0000000300000000, 0x000000002AAAAAAA, 0x0000000180000000}, + [_]u64{0x7FFFFFFF80000000, 0x0000000300000001, 0x000000002AAAAAAA, 0x0000000155555556}, + [_]u64{0x7FFFFFFF80000000, 0x0000000300000002, 0x000000002AAAAAAA, 0x000000012AAAAAAC}, + [_]u64{0x7FFFFFFF80000000, 0x0000000300000003, 0x000000002AAAAAAA, 0x0000000100000002}, + [_]u64{0x7FFFFFFF80000000, 0x0000000300000010, 0x000000002AAAAAA9, 0x00000001D5555570}, + [_]u64{0x7FFFFFFF80000000, 0x00000003078644FA, 0x000000002A40B0A4, 0x000000001C0FEFD8}, + [_]u64{0x7FFFFFFF80000000, 0x000000030747AE14, 0x000000002A4419E3, 0x000000008620B044}, + [_]u64{0x7FFFFFFF80000000, 0x000000037FFFFFFF, 0x0000000024924924, 0x00000001A4924924}, + [_]u64{0x7FFFFFFF80000000, 0x0000000380000000, 0x0000000024924924, 0x0000000180000000}, + [_]u64{0x7FFFFFFF80000000, 0x00000003FFFFFFFD, 0x000000001FFFFFFF, 0x00000003DFFFFFFD}, + [_]u64{0x7FFFFFFF80000000, 0x00000003FFFFFFFE, 0x000000001FFFFFFF, 0x00000003BFFFFFFE}, + [_]u64{0x7FFFFFFF80000000, 0x00000003FFFFFFFF, 0x000000001FFFFFFF, 0x000000039FFFFFFF}, + [_]u64{0x7FFFFFFF80000000, 0x0000001000000000, 0x0000000007FFFFFF, 0x0000000F80000000}, + [_]u64{0x7FFFFFFF80000000, 0x0000001000000001, 0x0000000007FFFFFF, 0x0000000F78000001}, + [_]u64{0x7FFFFFFF80000000, 0x0000001000000002, 0x0000000007FFFFFF, 0x0000000F70000002}, + [_]u64{0x7FFFFFFF80000000, 0x0000001000000003, 0x0000000007FFFFFF, 0x0000000F68000003}, + [_]u64{0x7FFFFFFF80000000, 0x0000001000000010, 0x0000000007FFFFFF, 0x0000000F00000010}, + [_]u64{0x7FFFFFFF80000000, 0x00000010078644FA, 0x0000000007FC3EA1, 0x0000000983C212C6}, + [_]u64{0x7FFFFFFF80000000, 0x000000100747AE14, 0x0000000007FC5DD0, 0x00000002A3D54BC0}, + [_]u64{0x7FFFFFFF80000000, 0x000000107FFFFFFF, 0x0000000007C1F07C, 0x0000000187C1F07C}, + [_]u64{0x7FFFFFFF80000000, 0x0000001080000000, 0x0000000007C1F07C, 0x0000000180000000}, + [_]u64{0x7FFFFFFF80000000, 0x00000010FFFFFFFD, 0x0000000007878787, 0x0000000896969695}, + [_]u64{0x7FFFFFFF80000000, 0x00000010FFFFFFFE, 0x0000000007878787, 0x000000088F0F0F0E}, + [_]u64{0x7FFFFFFF80000000, 0x00000010FFFFFFFF, 0x0000000007878787, 0x0000000887878787}, + [_]u64{0x7FFFFFFF80000000, 0x078644FA00000000, 0x0000000000000011, 0x00156B6580000000}, + [_]u64{0x7FFFFFFF80000000, 0x078644FA00000001, 0x0000000000000011, 0x00156B657FFFFFEF}, + [_]u64{0x7FFFFFFF80000000, 0x078644FA00000002, 0x0000000000000011, 0x00156B657FFFFFDE}, + [_]u64{0x7FFFFFFF80000000, 0x078644FA00000003, 0x0000000000000011, 0x00156B657FFFFFCD}, + [_]u64{0x7FFFFFFF80000000, 0x078644FA00000010, 0x0000000000000011, 0x00156B657FFFFEF0}, + [_]u64{0x7FFFFFFF80000000, 0x078644FA078644FA, 0x0000000000000011, 0x00156B6500156B66}, + [_]u64{0x7FFFFFFF80000000, 0x078644FA0747AE14, 0x0000000000000011, 0x00156B65043D70AC}, + [_]u64{0x7FFFFFFF80000000, 0x078644FA7FFFFFFF, 0x0000000000000011, 0x00156B5D00000011}, + [_]u64{0x7FFFFFFF80000000, 0x078644FA80000000, 0x0000000000000011, 0x00156B5D00000000}, + [_]u64{0x7FFFFFFF80000000, 0x078644FAFFFFFFFD, 0x0000000000000011, 0x00156B5480000033}, + [_]u64{0x7FFFFFFF80000000, 0x078644FAFFFFFFFE, 0x0000000000000011, 0x00156B5480000022}, + [_]u64{0x7FFFFFFF80000000, 0x078644FAFFFFFFFF, 0x0000000000000011, 0x00156B5480000011}, + [_]u64{0x7FFFFFFF80000000, 0x0747AE1400000000, 0x0000000000000011, 0x043D70AB80000000}, + [_]u64{0x7FFFFFFF80000000, 0x0747AE1400000001, 0x0000000000000011, 0x043D70AB7FFFFFEF}, + [_]u64{0x7FFFFFFF80000000, 0x0747AE1400000002, 0x0000000000000011, 0x043D70AB7FFFFFDE}, + [_]u64{0x7FFFFFFF80000000, 0x0747AE1400000003, 0x0000000000000011, 0x043D70AB7FFFFFCD}, + [_]u64{0x7FFFFFFF80000000, 0x0747AE1400000010, 0x0000000000000011, 0x043D70AB7FFFFEF0}, + [_]u64{0x7FFFFFFF80000000, 0x0747AE14078644FA, 0x0000000000000011, 0x043D70AB00156B66}, + [_]u64{0x7FFFFFFF80000000, 0x0747AE140747AE14, 0x0000000000000011, 0x043D70AB043D70AC}, + [_]u64{0x7FFFFFFF80000000, 0x0747AE147FFFFFFF, 0x0000000000000011, 0x043D70A300000011}, + [_]u64{0x7FFFFFFF80000000, 0x0747AE1480000000, 0x0000000000000011, 0x043D70A300000000}, + [_]u64{0x7FFFFFFF80000000, 0x0747AE14FFFFFFFD, 0x0000000000000011, 0x043D709A80000033}, + [_]u64{0x7FFFFFFF80000000, 0x0747AE14FFFFFFFE, 0x0000000000000011, 0x043D709A80000022}, + [_]u64{0x7FFFFFFF80000000, 0x0747AE14FFFFFFFF, 0x0000000000000011, 0x043D709A80000011}, + [_]u64{0x7FFFFFFF80000000, 0x7FFFFFFF00000000, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0x7FFFFFFF80000000, 0x7FFFFFFF00000001, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x7FFFFFFF80000000, 0x7FFFFFFF00000002, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x7FFFFFFF80000000, 0x7FFFFFFF00000003, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0x7FFFFFFF80000000, 0x7FFFFFFF00000010, 0x0000000000000001, 0x000000007FFFFFF0}, + [_]u64{0x7FFFFFFF80000000, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x000000007879BB06}, + [_]u64{0x7FFFFFFF80000000, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x0000000078B851EC}, + [_]u64{0x7FFFFFFF80000000, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x7FFFFFFF80000000, 0x7FFFFFFF80000000, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x7FFFFFFF80000000, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0x8000000000000000, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0x8000000000000001, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0x8000000000000002, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0x8000000000000003, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0x8000000000000010, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0x80000000078644FA, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0x800000000747AE14, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0x800000007FFFFFFF, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0x8000000080000000, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0x80000000FFFFFFFD, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0x80000000FFFFFFFE, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0x80000000FFFFFFFF, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFD00000000, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFD00000001, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFD00000002, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFD00000003, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFD00000010, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFD80000000, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFE00000000, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFE00000001, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFE00000002, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFE00000003, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFE00000010, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFE80000000, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFF00000000, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFF00000001, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFF00000002, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFF00000003, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFF00000010, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFF80000000, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFF80000000, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x7FFFFFFF80000000}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFFFFFFFFFD, 0x0000000000000000}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000000000000002, 0x3FFFFFFFFFFFFFFE, 0x0000000000000001}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000000000000003, 0x2AAAAAAAAAAAAAA9, 0x0000000000000002}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000000000000010, 0x07FFFFFFFFFFFFFF, 0x000000000000000D}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x00000000078644FA, 0x0000001102D8BD7E, 0x00000000040D7AF1}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x000000000747AE14, 0x00000011951952BD, 0x00000000065E1339}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x000000007FFFFFFF, 0x0000000100000001, 0x000000007FFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000000080000000, 0x00000000FFFFFFFF, 0x000000007FFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x00000000FFFFFFFD, 0x0000000080000001, 0x0000000080000000}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x00000000FFFFFFFE, 0x0000000080000000, 0x00000000FFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x00000000FFFFFFFF, 0x0000000080000000, 0x000000007FFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000000100000000, 0x000000007FFFFFFF, 0x00000000FFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000000100000001, 0x000000007FFFFFFF, 0x000000007FFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000000100000002, 0x000000007FFFFFFE, 0x0000000100000001}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000000100000003, 0x000000007FFFFFFE, 0x0000000080000003}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000000100000010, 0x000000007FFFFFF8, 0x000000000000007D}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x00000001078644FA, 0x000000007C585DAE, 0x000000004DBE4C11}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x000000010747AE14, 0x000000007C75ED2D, 0x000000001D19E279}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x000000017FFFFFFF, 0x0000000055555555, 0x00000000D5555552}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000000180000000, 0x0000000055555555, 0x000000007FFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x00000001FFFFFFFD, 0x0000000040000000, 0x00000000BFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x00000001FFFFFFFE, 0x0000000040000000, 0x000000007FFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x00000001FFFFFFFF, 0x0000000040000000, 0x000000003FFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000000200000000, 0x000000003FFFFFFF, 0x00000001FFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000000200000001, 0x000000003FFFFFFF, 0x00000001BFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000000200000002, 0x000000003FFFFFFF, 0x000000017FFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000000200000003, 0x000000003FFFFFFF, 0x0000000140000000}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000000200000010, 0x000000003FFFFFFE, 0x000000000000001D}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x00000002078644FA, 0x000000003F12B425, 0x0000000021843FDB}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x000000020747AE14, 0x000000003F1A4E53, 0x0000000132B07781}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x000000027FFFFFFF, 0x0000000033333333, 0x00000000B3333330}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000000280000000, 0x0000000033333333, 0x000000007FFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x00000002FFFFFFFD, 0x000000002AAAAAAA, 0x000000027FFFFFFB}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x00000002FFFFFFFE, 0x000000002AAAAAAA, 0x0000000255555551}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x00000002FFFFFFFF, 0x000000002AAAAAAA, 0x000000022AAAAAA7}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000000300000000, 0x000000002AAAAAAA, 0x00000001FFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000000300000001, 0x000000002AAAAAAA, 0x00000001D5555553}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000000300000002, 0x000000002AAAAAAA, 0x00000001AAAAAAA9}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000000300000003, 0x000000002AAAAAAA, 0x000000017FFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000000300000010, 0x000000002AAAAAA9, 0x000000025555556D}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x00000003078644FA, 0x000000002A40B0A4, 0x000000009C0FEFD5}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x000000030747AE14, 0x000000002A4419E3, 0x000000010620B041}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x000000037FFFFFFF, 0x0000000024924924, 0x0000000224924921}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000000380000000, 0x0000000024924924, 0x00000001FFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x00000003FFFFFFFD, 0x0000000020000000, 0x000000005FFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x00000003FFFFFFFE, 0x0000000020000000, 0x000000003FFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x00000003FFFFFFFF, 0x0000000020000000, 0x000000001FFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000001000000000, 0x0000000007FFFFFF, 0x0000000FFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000001000000001, 0x0000000007FFFFFF, 0x0000000FF7FFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000001000000002, 0x0000000007FFFFFF, 0x0000000FEFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000001000000003, 0x0000000007FFFFFF, 0x0000000FE8000000}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000001000000010, 0x0000000007FFFFFF, 0x0000000F8000000D}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x00000010078644FA, 0x0000000007FC3EA1, 0x0000000A03C212C3}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x000000100747AE14, 0x0000000007FC5DD0, 0x0000000323D54BBD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x000000107FFFFFFF, 0x0000000007C1F07C, 0x0000000207C1F079}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0000001080000000, 0x0000000007C1F07C, 0x00000001FFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x00000010FFFFFFFD, 0x0000000007878787, 0x0000000916969692}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x00000010FFFFFFFE, 0x0000000007878787, 0x000000090F0F0F0B}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x00000010FFFFFFFF, 0x0000000007878787, 0x0000000907878784}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x078644FA00000000, 0x0000000000000011, 0x00156B65FFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x078644FA00000001, 0x0000000000000011, 0x00156B65FFFFFFEC}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x078644FA00000002, 0x0000000000000011, 0x00156B65FFFFFFDB}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x078644FA00000003, 0x0000000000000011, 0x00156B65FFFFFFCA}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x078644FA00000010, 0x0000000000000011, 0x00156B65FFFFFEED}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x078644FA078644FA, 0x0000000000000011, 0x00156B6580156B63}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x078644FA0747AE14, 0x0000000000000011, 0x00156B65843D70A9}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x078644FA7FFFFFFF, 0x0000000000000011, 0x00156B5D8000000E}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x078644FA80000000, 0x0000000000000011, 0x00156B5D7FFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x078644FAFFFFFFFD, 0x0000000000000011, 0x00156B5500000030}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x078644FAFFFFFFFE, 0x0000000000000011, 0x00156B550000001F}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x078644FAFFFFFFFF, 0x0000000000000011, 0x00156B550000000E}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0747AE1400000000, 0x0000000000000011, 0x043D70ABFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0747AE1400000001, 0x0000000000000011, 0x043D70ABFFFFFFEC}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0747AE1400000002, 0x0000000000000011, 0x043D70ABFFFFFFDB}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0747AE1400000003, 0x0000000000000011, 0x043D70ABFFFFFFCA}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0747AE1400000010, 0x0000000000000011, 0x043D70ABFFFFFEED}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0747AE14078644FA, 0x0000000000000011, 0x043D70AB80156B63}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0747AE140747AE14, 0x0000000000000011, 0x043D70AB843D70A9}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0747AE147FFFFFFF, 0x0000000000000011, 0x043D70A38000000E}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0747AE1480000000, 0x0000000000000011, 0x043D70A37FFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0747AE14FFFFFFFD, 0x0000000000000011, 0x043D709B00000030}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0747AE14FFFFFFFE, 0x0000000000000011, 0x043D709B0000001F}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x0747AE14FFFFFFFF, 0x0000000000000011, 0x043D709B0000000E}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x7FFFFFFF00000000, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x7FFFFFFF00000001, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x7FFFFFFF00000002, 0x0000000000000001, 0x00000000FFFFFFFB}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x7FFFFFFF00000003, 0x0000000000000001, 0x00000000FFFFFFFA}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x7FFFFFFF00000010, 0x0000000000000001, 0x00000000FFFFFFED}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x00000000F879BB03}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x00000000F8B851E9}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x7FFFFFFF80000000, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x8000000000000000, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x8000000000000001, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x8000000000000002, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x8000000000000003, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x8000000000000010, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x80000000078644FA, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x800000000747AE14, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x800000007FFFFFFF, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x8000000080000000, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x80000000FFFFFFFD, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x80000000FFFFFFFE, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0x80000000FFFFFFFF, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFD00000000, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFD00000001, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFD00000002, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFD00000003, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFD00000010, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFD80000000, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFE00000000, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFE00000001, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFE00000002, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFE00000003, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFE00000010, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFE80000000, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFF00000000, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFF00000001, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFF00000002, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFF00000003, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFF00000010, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFF80000000, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFD, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFFFFFFFFFE, 0x0000000000000000}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000000000000002, 0x3FFFFFFFFFFFFFFF, 0x0000000000000000}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000000000000003, 0x2AAAAAAAAAAAAAAA, 0x0000000000000000}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000000000000010, 0x07FFFFFFFFFFFFFF, 0x000000000000000E}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x00000000078644FA, 0x0000001102D8BD7E, 0x00000000040D7AF2}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x000000000747AE14, 0x00000011951952BD, 0x00000000065E133A}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x000000007FFFFFFF, 0x0000000100000002, 0x0000000000000000}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000000080000000, 0x00000000FFFFFFFF, 0x000000007FFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x00000000FFFFFFFD, 0x0000000080000001, 0x0000000080000001}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x00000000FFFFFFFE, 0x0000000080000001, 0x0000000000000000}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x00000000FFFFFFFF, 0x0000000080000000, 0x000000007FFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000000100000000, 0x000000007FFFFFFF, 0x00000000FFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000000100000001, 0x000000007FFFFFFF, 0x000000007FFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000000100000002, 0x000000007FFFFFFF, 0x0000000000000000}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000000100000003, 0x000000007FFFFFFE, 0x0000000080000004}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000000100000010, 0x000000007FFFFFF8, 0x000000000000007E}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x00000001078644FA, 0x000000007C585DAE, 0x000000004DBE4C12}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x000000010747AE14, 0x000000007C75ED2D, 0x000000001D19E27A}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x000000017FFFFFFF, 0x0000000055555555, 0x00000000D5555553}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000000180000000, 0x0000000055555555, 0x000000007FFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x00000001FFFFFFFD, 0x0000000040000000, 0x00000000BFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x00000001FFFFFFFE, 0x0000000040000000, 0x000000007FFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x00000001FFFFFFFF, 0x0000000040000000, 0x000000003FFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000000200000000, 0x000000003FFFFFFF, 0x00000001FFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000000200000001, 0x000000003FFFFFFF, 0x00000001BFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000000200000002, 0x000000003FFFFFFF, 0x0000000180000000}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000000200000003, 0x000000003FFFFFFF, 0x0000000140000001}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000000200000010, 0x000000003FFFFFFE, 0x000000000000001E}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x00000002078644FA, 0x000000003F12B425, 0x0000000021843FDC}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x000000020747AE14, 0x000000003F1A4E53, 0x0000000132B07782}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x000000027FFFFFFF, 0x0000000033333333, 0x00000000B3333331}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000000280000000, 0x0000000033333333, 0x000000007FFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x00000002FFFFFFFD, 0x000000002AAAAAAA, 0x000000027FFFFFFC}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x00000002FFFFFFFE, 0x000000002AAAAAAA, 0x0000000255555552}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x00000002FFFFFFFF, 0x000000002AAAAAAA, 0x000000022AAAAAA8}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000000300000000, 0x000000002AAAAAAA, 0x00000001FFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000000300000001, 0x000000002AAAAAAA, 0x00000001D5555554}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000000300000002, 0x000000002AAAAAAA, 0x00000001AAAAAAAA}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000000300000003, 0x000000002AAAAAAA, 0x0000000180000000}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000000300000010, 0x000000002AAAAAA9, 0x000000025555556E}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x00000003078644FA, 0x000000002A40B0A4, 0x000000009C0FEFD6}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x000000030747AE14, 0x000000002A4419E3, 0x000000010620B042}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x000000037FFFFFFF, 0x0000000024924924, 0x0000000224924922}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000000380000000, 0x0000000024924924, 0x00000001FFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x00000003FFFFFFFD, 0x0000000020000000, 0x000000005FFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x00000003FFFFFFFE, 0x0000000020000000, 0x000000003FFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x00000003FFFFFFFF, 0x0000000020000000, 0x000000001FFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000001000000000, 0x0000000007FFFFFF, 0x0000000FFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000001000000001, 0x0000000007FFFFFF, 0x0000000FF7FFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000001000000002, 0x0000000007FFFFFF, 0x0000000FF0000000}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000001000000003, 0x0000000007FFFFFF, 0x0000000FE8000001}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000001000000010, 0x0000000007FFFFFF, 0x0000000F8000000E}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x00000010078644FA, 0x0000000007FC3EA1, 0x0000000A03C212C4}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x000000100747AE14, 0x0000000007FC5DD0, 0x0000000323D54BBE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x000000107FFFFFFF, 0x0000000007C1F07C, 0x0000000207C1F07A}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0000001080000000, 0x0000000007C1F07C, 0x00000001FFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x00000010FFFFFFFD, 0x0000000007878787, 0x0000000916969693}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x00000010FFFFFFFE, 0x0000000007878787, 0x000000090F0F0F0C}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x00000010FFFFFFFF, 0x0000000007878787, 0x0000000907878785}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x078644FA00000000, 0x0000000000000011, 0x00156B65FFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x078644FA00000001, 0x0000000000000011, 0x00156B65FFFFFFED}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x078644FA00000002, 0x0000000000000011, 0x00156B65FFFFFFDC}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x078644FA00000003, 0x0000000000000011, 0x00156B65FFFFFFCB}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x078644FA00000010, 0x0000000000000011, 0x00156B65FFFFFEEE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x078644FA078644FA, 0x0000000000000011, 0x00156B6580156B64}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x078644FA0747AE14, 0x0000000000000011, 0x00156B65843D70AA}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x078644FA7FFFFFFF, 0x0000000000000011, 0x00156B5D8000000F}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x078644FA80000000, 0x0000000000000011, 0x00156B5D7FFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x078644FAFFFFFFFD, 0x0000000000000011, 0x00156B5500000031}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x078644FAFFFFFFFE, 0x0000000000000011, 0x00156B5500000020}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x078644FAFFFFFFFF, 0x0000000000000011, 0x00156B550000000F}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0747AE1400000000, 0x0000000000000011, 0x043D70ABFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0747AE1400000001, 0x0000000000000011, 0x043D70ABFFFFFFED}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0747AE1400000002, 0x0000000000000011, 0x043D70ABFFFFFFDC}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0747AE1400000003, 0x0000000000000011, 0x043D70ABFFFFFFCB}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0747AE1400000010, 0x0000000000000011, 0x043D70ABFFFFFEEE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0747AE14078644FA, 0x0000000000000011, 0x043D70AB80156B64}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0747AE140747AE14, 0x0000000000000011, 0x043D70AB843D70AA}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0747AE147FFFFFFF, 0x0000000000000011, 0x043D70A38000000F}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0747AE1480000000, 0x0000000000000011, 0x043D70A37FFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0747AE14FFFFFFFD, 0x0000000000000011, 0x043D709B00000031}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0747AE14FFFFFFFE, 0x0000000000000011, 0x043D709B00000020}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x0747AE14FFFFFFFF, 0x0000000000000011, 0x043D709B0000000F}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x7FFFFFFF00000000, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x7FFFFFFF00000001, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x7FFFFFFF00000002, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x7FFFFFFF00000003, 0x0000000000000001, 0x00000000FFFFFFFB}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x7FFFFFFF00000010, 0x0000000000000001, 0x00000000FFFFFFEE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x00000000F879BB04}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x00000000F8B851EA}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x7FFFFFFF80000000, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x8000000000000000, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x8000000000000001, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x8000000000000002, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x8000000000000003, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x8000000000000010, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x80000000078644FA, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x800000000747AE14, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x800000007FFFFFFF, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x8000000080000000, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x80000000FFFFFFFD, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x80000000FFFFFFFE, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0x80000000FFFFFFFF, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFD00000000, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFD00000001, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFD00000002, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFD00000003, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFD00000010, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFD80000000, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFE00000000, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFE00000001, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFE00000002, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFE00000003, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFE00000010, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFE80000000, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFF00000000, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFF00000001, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFF00000002, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFF00000003, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFF00000010, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFF80000000, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFE, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000000000000002, 0x3FFFFFFFFFFFFFFF, 0x0000000000000001}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000000000000003, 0x2AAAAAAAAAAAAAAA, 0x0000000000000001}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000000000000010, 0x07FFFFFFFFFFFFFF, 0x000000000000000F}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x00000000078644FA, 0x0000001102D8BD7E, 0x00000000040D7AF3}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x000000000747AE14, 0x00000011951952BD, 0x00000000065E133B}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x000000007FFFFFFF, 0x0000000100000002, 0x0000000000000001}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000000080000000, 0x00000000FFFFFFFF, 0x000000007FFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x00000000FFFFFFFD, 0x0000000080000001, 0x0000000080000002}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x00000000FFFFFFFE, 0x0000000080000001, 0x0000000000000001}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x00000000FFFFFFFF, 0x0000000080000000, 0x000000007FFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000000100000000, 0x000000007FFFFFFF, 0x00000000FFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000000100000001, 0x000000007FFFFFFF, 0x0000000080000000}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000000100000002, 0x000000007FFFFFFF, 0x0000000000000001}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000000100000003, 0x000000007FFFFFFE, 0x0000000080000005}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000000100000010, 0x000000007FFFFFF8, 0x000000000000007F}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x00000001078644FA, 0x000000007C585DAE, 0x000000004DBE4C13}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x000000010747AE14, 0x000000007C75ED2D, 0x000000001D19E27B}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x000000017FFFFFFF, 0x0000000055555555, 0x00000000D5555554}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000000180000000, 0x0000000055555555, 0x000000007FFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x00000001FFFFFFFD, 0x0000000040000000, 0x00000000BFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x00000001FFFFFFFE, 0x0000000040000000, 0x000000007FFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x00000001FFFFFFFF, 0x0000000040000000, 0x000000003FFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000000200000000, 0x000000003FFFFFFF, 0x00000001FFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000000200000001, 0x000000003FFFFFFF, 0x00000001C0000000}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000000200000002, 0x000000003FFFFFFF, 0x0000000180000001}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000000200000003, 0x000000003FFFFFFF, 0x0000000140000002}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000000200000010, 0x000000003FFFFFFE, 0x000000000000001F}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x00000002078644FA, 0x000000003F12B425, 0x0000000021843FDD}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x000000020747AE14, 0x000000003F1A4E53, 0x0000000132B07783}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x000000027FFFFFFF, 0x0000000033333333, 0x00000000B3333332}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000000280000000, 0x0000000033333333, 0x000000007FFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x00000002FFFFFFFD, 0x000000002AAAAAAA, 0x000000027FFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x00000002FFFFFFFE, 0x000000002AAAAAAA, 0x0000000255555553}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x00000002FFFFFFFF, 0x000000002AAAAAAA, 0x000000022AAAAAA9}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000000300000000, 0x000000002AAAAAAA, 0x00000001FFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000000300000001, 0x000000002AAAAAAA, 0x00000001D5555555}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000000300000002, 0x000000002AAAAAAA, 0x00000001AAAAAAAB}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000000300000003, 0x000000002AAAAAAA, 0x0000000180000001}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000000300000010, 0x000000002AAAAAA9, 0x000000025555556F}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x00000003078644FA, 0x000000002A40B0A4, 0x000000009C0FEFD7}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x000000030747AE14, 0x000000002A4419E3, 0x000000010620B043}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x000000037FFFFFFF, 0x0000000024924924, 0x0000000224924923}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000000380000000, 0x0000000024924924, 0x00000001FFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x00000003FFFFFFFD, 0x0000000020000000, 0x000000005FFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x00000003FFFFFFFE, 0x0000000020000000, 0x000000003FFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x00000003FFFFFFFF, 0x0000000020000000, 0x000000001FFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000001000000000, 0x0000000007FFFFFF, 0x0000000FFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000001000000001, 0x0000000007FFFFFF, 0x0000000FF8000000}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000001000000002, 0x0000000007FFFFFF, 0x0000000FF0000001}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000001000000003, 0x0000000007FFFFFF, 0x0000000FE8000002}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000001000000010, 0x0000000007FFFFFF, 0x0000000F8000000F}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x00000010078644FA, 0x0000000007FC3EA1, 0x0000000A03C212C5}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x000000100747AE14, 0x0000000007FC5DD0, 0x0000000323D54BBF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x000000107FFFFFFF, 0x0000000007C1F07C, 0x0000000207C1F07B}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0000001080000000, 0x0000000007C1F07C, 0x00000001FFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x00000010FFFFFFFD, 0x0000000007878787, 0x0000000916969694}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x00000010FFFFFFFE, 0x0000000007878787, 0x000000090F0F0F0D}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x00000010FFFFFFFF, 0x0000000007878787, 0x0000000907878786}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x078644FA00000000, 0x0000000000000011, 0x00156B65FFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x078644FA00000001, 0x0000000000000011, 0x00156B65FFFFFFEE}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x078644FA00000002, 0x0000000000000011, 0x00156B65FFFFFFDD}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x078644FA00000003, 0x0000000000000011, 0x00156B65FFFFFFCC}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x078644FA00000010, 0x0000000000000011, 0x00156B65FFFFFEEF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x078644FA078644FA, 0x0000000000000011, 0x00156B6580156B65}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x078644FA0747AE14, 0x0000000000000011, 0x00156B65843D70AB}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x078644FA7FFFFFFF, 0x0000000000000011, 0x00156B5D80000010}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x078644FA80000000, 0x0000000000000011, 0x00156B5D7FFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x078644FAFFFFFFFD, 0x0000000000000011, 0x00156B5500000032}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x078644FAFFFFFFFE, 0x0000000000000011, 0x00156B5500000021}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x078644FAFFFFFFFF, 0x0000000000000011, 0x00156B5500000010}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0747AE1400000000, 0x0000000000000011, 0x043D70ABFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0747AE1400000001, 0x0000000000000011, 0x043D70ABFFFFFFEE}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0747AE1400000002, 0x0000000000000011, 0x043D70ABFFFFFFDD}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0747AE1400000003, 0x0000000000000011, 0x043D70ABFFFFFFCC}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0747AE1400000010, 0x0000000000000011, 0x043D70ABFFFFFEEF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0747AE14078644FA, 0x0000000000000011, 0x043D70AB80156B65}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0747AE140747AE14, 0x0000000000000011, 0x043D70AB843D70AB}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0747AE147FFFFFFF, 0x0000000000000011, 0x043D70A380000010}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0747AE1480000000, 0x0000000000000011, 0x043D70A37FFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0747AE14FFFFFFFD, 0x0000000000000011, 0x043D709B00000032}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0747AE14FFFFFFFE, 0x0000000000000011, 0x043D709B00000021}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x0747AE14FFFFFFFF, 0x0000000000000011, 0x043D709B00000010}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x7FFFFFFF00000000, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x7FFFFFFF00000001, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x7FFFFFFF00000002, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x7FFFFFFF00000003, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x7FFFFFFF00000010, 0x0000000000000001, 0x00000000FFFFFFEF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x00000000F879BB05}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x00000000F8B851EB}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x7FFFFFFF80000000, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x8000000000000000, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x8000000000000001, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x8000000000000002, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x8000000000000003, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x8000000000000010, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x80000000078644FA, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x800000000747AE14, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x800000007FFFFFFF, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x8000000080000000, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x80000000FFFFFFFD, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x80000000FFFFFFFE, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0x80000000FFFFFFFF, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFD00000000, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFD00000001, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFD00000002, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFD00000003, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFD00000010, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFD80000000, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFE00000000, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFE00000001, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFE00000002, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFE00000003, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFE00000010, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFE80000000, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFF00000000, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFF00000001, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFF00000002, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFF00000003, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFF00000010, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFF80000000, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x7FFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0x8000000000000000, 0x0000000000000001, 0x8000000000000000, 0x0000000000000000}, + [_]u64{0x8000000000000000, 0x0000000000000002, 0x4000000000000000, 0x0000000000000000}, + [_]u64{0x8000000000000000, 0x0000000000000003, 0x2AAAAAAAAAAAAAAA, 0x0000000000000002}, + [_]u64{0x8000000000000000, 0x0000000000000010, 0x0800000000000000, 0x0000000000000000}, + [_]u64{0x8000000000000000, 0x00000000078644FA, 0x0000001102D8BD7E, 0x00000000040D7AF4}, + [_]u64{0x8000000000000000, 0x000000000747AE14, 0x00000011951952BD, 0x00000000065E133C}, + [_]u64{0x8000000000000000, 0x000000007FFFFFFF, 0x0000000100000002, 0x0000000000000002}, + [_]u64{0x8000000000000000, 0x0000000080000000, 0x0000000100000000, 0x0000000000000000}, + [_]u64{0x8000000000000000, 0x00000000FFFFFFFD, 0x0000000080000001, 0x0000000080000003}, + [_]u64{0x8000000000000000, 0x00000000FFFFFFFE, 0x0000000080000001, 0x0000000000000002}, + [_]u64{0x8000000000000000, 0x00000000FFFFFFFF, 0x0000000080000000, 0x0000000080000000}, + [_]u64{0x8000000000000000, 0x0000000100000000, 0x0000000080000000, 0x0000000000000000}, + [_]u64{0x8000000000000000, 0x0000000100000001, 0x000000007FFFFFFF, 0x0000000080000001}, + [_]u64{0x8000000000000000, 0x0000000100000002, 0x000000007FFFFFFF, 0x0000000000000002}, + [_]u64{0x8000000000000000, 0x0000000100000003, 0x000000007FFFFFFE, 0x0000000080000006}, + [_]u64{0x8000000000000000, 0x0000000100000010, 0x000000007FFFFFF8, 0x0000000000000080}, + [_]u64{0x8000000000000000, 0x00000001078644FA, 0x000000007C585DAE, 0x000000004DBE4C14}, + [_]u64{0x8000000000000000, 0x000000010747AE14, 0x000000007C75ED2D, 0x000000001D19E27C}, + [_]u64{0x8000000000000000, 0x000000017FFFFFFF, 0x0000000055555555, 0x00000000D5555555}, + [_]u64{0x8000000000000000, 0x0000000180000000, 0x0000000055555555, 0x0000000080000000}, + [_]u64{0x8000000000000000, 0x00000001FFFFFFFD, 0x0000000040000000, 0x00000000C0000000}, + [_]u64{0x8000000000000000, 0x00000001FFFFFFFE, 0x0000000040000000, 0x0000000080000000}, + [_]u64{0x8000000000000000, 0x00000001FFFFFFFF, 0x0000000040000000, 0x0000000040000000}, + [_]u64{0x8000000000000000, 0x0000000200000000, 0x0000000040000000, 0x0000000000000000}, + [_]u64{0x8000000000000000, 0x0000000200000001, 0x000000003FFFFFFF, 0x00000001C0000001}, + [_]u64{0x8000000000000000, 0x0000000200000002, 0x000000003FFFFFFF, 0x0000000180000002}, + [_]u64{0x8000000000000000, 0x0000000200000003, 0x000000003FFFFFFF, 0x0000000140000003}, + [_]u64{0x8000000000000000, 0x0000000200000010, 0x000000003FFFFFFE, 0x0000000000000020}, + [_]u64{0x8000000000000000, 0x00000002078644FA, 0x000000003F12B425, 0x0000000021843FDE}, + [_]u64{0x8000000000000000, 0x000000020747AE14, 0x000000003F1A4E53, 0x0000000132B07784}, + [_]u64{0x8000000000000000, 0x000000027FFFFFFF, 0x0000000033333333, 0x00000000B3333333}, + [_]u64{0x8000000000000000, 0x0000000280000000, 0x0000000033333333, 0x0000000080000000}, + [_]u64{0x8000000000000000, 0x00000002FFFFFFFD, 0x000000002AAAAAAA, 0x000000027FFFFFFE}, + [_]u64{0x8000000000000000, 0x00000002FFFFFFFE, 0x000000002AAAAAAA, 0x0000000255555554}, + [_]u64{0x8000000000000000, 0x00000002FFFFFFFF, 0x000000002AAAAAAA, 0x000000022AAAAAAA}, + [_]u64{0x8000000000000000, 0x0000000300000000, 0x000000002AAAAAAA, 0x0000000200000000}, + [_]u64{0x8000000000000000, 0x0000000300000001, 0x000000002AAAAAAA, 0x00000001D5555556}, + [_]u64{0x8000000000000000, 0x0000000300000002, 0x000000002AAAAAAA, 0x00000001AAAAAAAC}, + [_]u64{0x8000000000000000, 0x0000000300000003, 0x000000002AAAAAAA, 0x0000000180000002}, + [_]u64{0x8000000000000000, 0x0000000300000010, 0x000000002AAAAAA9, 0x0000000255555570}, + [_]u64{0x8000000000000000, 0x00000003078644FA, 0x000000002A40B0A4, 0x000000009C0FEFD8}, + [_]u64{0x8000000000000000, 0x000000030747AE14, 0x000000002A4419E3, 0x000000010620B044}, + [_]u64{0x8000000000000000, 0x000000037FFFFFFF, 0x0000000024924924, 0x0000000224924924}, + [_]u64{0x8000000000000000, 0x0000000380000000, 0x0000000024924924, 0x0000000200000000}, + [_]u64{0x8000000000000000, 0x00000003FFFFFFFD, 0x0000000020000000, 0x0000000060000000}, + [_]u64{0x8000000000000000, 0x00000003FFFFFFFE, 0x0000000020000000, 0x0000000040000000}, + [_]u64{0x8000000000000000, 0x00000003FFFFFFFF, 0x0000000020000000, 0x0000000020000000}, + [_]u64{0x8000000000000000, 0x0000001000000000, 0x0000000008000000, 0x0000000000000000}, + [_]u64{0x8000000000000000, 0x0000001000000001, 0x0000000007FFFFFF, 0x0000000FF8000001}, + [_]u64{0x8000000000000000, 0x0000001000000002, 0x0000000007FFFFFF, 0x0000000FF0000002}, + [_]u64{0x8000000000000000, 0x0000001000000003, 0x0000000007FFFFFF, 0x0000000FE8000003}, + [_]u64{0x8000000000000000, 0x0000001000000010, 0x0000000007FFFFFF, 0x0000000F80000010}, + [_]u64{0x8000000000000000, 0x00000010078644FA, 0x0000000007FC3EA1, 0x0000000A03C212C6}, + [_]u64{0x8000000000000000, 0x000000100747AE14, 0x0000000007FC5DD0, 0x0000000323D54BC0}, + [_]u64{0x8000000000000000, 0x000000107FFFFFFF, 0x0000000007C1F07C, 0x0000000207C1F07C}, + [_]u64{0x8000000000000000, 0x0000001080000000, 0x0000000007C1F07C, 0x0000000200000000}, + [_]u64{0x8000000000000000, 0x00000010FFFFFFFD, 0x0000000007878787, 0x0000000916969695}, + [_]u64{0x8000000000000000, 0x00000010FFFFFFFE, 0x0000000007878787, 0x000000090F0F0F0E}, + [_]u64{0x8000000000000000, 0x00000010FFFFFFFF, 0x0000000007878787, 0x0000000907878787}, + [_]u64{0x8000000000000000, 0x078644FA00000000, 0x0000000000000011, 0x00156B6600000000}, + [_]u64{0x8000000000000000, 0x078644FA00000001, 0x0000000000000011, 0x00156B65FFFFFFEF}, + [_]u64{0x8000000000000000, 0x078644FA00000002, 0x0000000000000011, 0x00156B65FFFFFFDE}, + [_]u64{0x8000000000000000, 0x078644FA00000003, 0x0000000000000011, 0x00156B65FFFFFFCD}, + [_]u64{0x8000000000000000, 0x078644FA00000010, 0x0000000000000011, 0x00156B65FFFFFEF0}, + [_]u64{0x8000000000000000, 0x078644FA078644FA, 0x0000000000000011, 0x00156B6580156B66}, + [_]u64{0x8000000000000000, 0x078644FA0747AE14, 0x0000000000000011, 0x00156B65843D70AC}, + [_]u64{0x8000000000000000, 0x078644FA7FFFFFFF, 0x0000000000000011, 0x00156B5D80000011}, + [_]u64{0x8000000000000000, 0x078644FA80000000, 0x0000000000000011, 0x00156B5D80000000}, + [_]u64{0x8000000000000000, 0x078644FAFFFFFFFD, 0x0000000000000011, 0x00156B5500000033}, + [_]u64{0x8000000000000000, 0x078644FAFFFFFFFE, 0x0000000000000011, 0x00156B5500000022}, + [_]u64{0x8000000000000000, 0x078644FAFFFFFFFF, 0x0000000000000011, 0x00156B5500000011}, + [_]u64{0x8000000000000000, 0x0747AE1400000000, 0x0000000000000011, 0x043D70AC00000000}, + [_]u64{0x8000000000000000, 0x0747AE1400000001, 0x0000000000000011, 0x043D70ABFFFFFFEF}, + [_]u64{0x8000000000000000, 0x0747AE1400000002, 0x0000000000000011, 0x043D70ABFFFFFFDE}, + [_]u64{0x8000000000000000, 0x0747AE1400000003, 0x0000000000000011, 0x043D70ABFFFFFFCD}, + [_]u64{0x8000000000000000, 0x0747AE1400000010, 0x0000000000000011, 0x043D70ABFFFFFEF0}, + [_]u64{0x8000000000000000, 0x0747AE14078644FA, 0x0000000000000011, 0x043D70AB80156B66}, + [_]u64{0x8000000000000000, 0x0747AE140747AE14, 0x0000000000000011, 0x043D70AB843D70AC}, + [_]u64{0x8000000000000000, 0x0747AE147FFFFFFF, 0x0000000000000011, 0x043D70A380000011}, + [_]u64{0x8000000000000000, 0x0747AE1480000000, 0x0000000000000011, 0x043D70A380000000}, + [_]u64{0x8000000000000000, 0x0747AE14FFFFFFFD, 0x0000000000000011, 0x043D709B00000033}, + [_]u64{0x8000000000000000, 0x0747AE14FFFFFFFE, 0x0000000000000011, 0x043D709B00000022}, + [_]u64{0x8000000000000000, 0x0747AE14FFFFFFFF, 0x0000000000000011, 0x043D709B00000011}, + [_]u64{0x8000000000000000, 0x7FFFFFFF00000000, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x8000000000000000, 0x7FFFFFFF00000001, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0x8000000000000000, 0x7FFFFFFF00000002, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0x8000000000000000, 0x7FFFFFFF00000003, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0x8000000000000000, 0x7FFFFFFF00000010, 0x0000000000000001, 0x00000000FFFFFFF0}, + [_]u64{0x8000000000000000, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x00000000F879BB06}, + [_]u64{0x8000000000000000, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x00000000F8B851EC}, + [_]u64{0x8000000000000000, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x0000000080000001}, + [_]u64{0x8000000000000000, 0x7FFFFFFF80000000, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0x8000000000000000, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0x8000000000000000, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x8000000000000000, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x8000000000000000, 0x8000000000000000, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x8000000000000000, 0x8000000000000001, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0x8000000000000002, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0x8000000000000003, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0x8000000000000010, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0x80000000078644FA, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0x800000000747AE14, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0x800000007FFFFFFF, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0x8000000080000000, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0x80000000FFFFFFFD, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0x80000000FFFFFFFE, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0x80000000FFFFFFFF, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFD00000000, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFD00000001, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFD00000002, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFD00000003, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFD00000010, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFD80000000, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFE00000000, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFE00000001, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFE00000002, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFE00000003, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFE00000010, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFE80000000, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFF00000000, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFF00000001, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFF00000002, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFF00000003, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFF00000010, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFF80000000, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000000, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x8000000000000000}, + [_]u64{0x8000000000000001, 0x0000000000000001, 0x8000000000000001, 0x0000000000000000}, + [_]u64{0x8000000000000001, 0x0000000000000002, 0x4000000000000000, 0x0000000000000001}, + [_]u64{0x8000000000000001, 0x0000000000000003, 0x2AAAAAAAAAAAAAAB, 0x0000000000000000}, + [_]u64{0x8000000000000001, 0x0000000000000010, 0x0800000000000000, 0x0000000000000001}, + [_]u64{0x8000000000000001, 0x00000000078644FA, 0x0000001102D8BD7E, 0x00000000040D7AF5}, + [_]u64{0x8000000000000001, 0x000000000747AE14, 0x00000011951952BD, 0x00000000065E133D}, + [_]u64{0x8000000000000001, 0x000000007FFFFFFF, 0x0000000100000002, 0x0000000000000003}, + [_]u64{0x8000000000000001, 0x0000000080000000, 0x0000000100000000, 0x0000000000000001}, + [_]u64{0x8000000000000001, 0x00000000FFFFFFFD, 0x0000000080000001, 0x0000000080000004}, + [_]u64{0x8000000000000001, 0x00000000FFFFFFFE, 0x0000000080000001, 0x0000000000000003}, + [_]u64{0x8000000000000001, 0x00000000FFFFFFFF, 0x0000000080000000, 0x0000000080000001}, + [_]u64{0x8000000000000001, 0x0000000100000000, 0x0000000080000000, 0x0000000000000001}, + [_]u64{0x8000000000000001, 0x0000000100000001, 0x000000007FFFFFFF, 0x0000000080000002}, + [_]u64{0x8000000000000001, 0x0000000100000002, 0x000000007FFFFFFF, 0x0000000000000003}, + [_]u64{0x8000000000000001, 0x0000000100000003, 0x000000007FFFFFFE, 0x0000000080000007}, + [_]u64{0x8000000000000001, 0x0000000100000010, 0x000000007FFFFFF8, 0x0000000000000081}, + [_]u64{0x8000000000000001, 0x00000001078644FA, 0x000000007C585DAE, 0x000000004DBE4C15}, + [_]u64{0x8000000000000001, 0x000000010747AE14, 0x000000007C75ED2D, 0x000000001D19E27D}, + [_]u64{0x8000000000000001, 0x000000017FFFFFFF, 0x0000000055555555, 0x00000000D5555556}, + [_]u64{0x8000000000000001, 0x0000000180000000, 0x0000000055555555, 0x0000000080000001}, + [_]u64{0x8000000000000001, 0x00000001FFFFFFFD, 0x0000000040000000, 0x00000000C0000001}, + [_]u64{0x8000000000000001, 0x00000001FFFFFFFE, 0x0000000040000000, 0x0000000080000001}, + [_]u64{0x8000000000000001, 0x00000001FFFFFFFF, 0x0000000040000000, 0x0000000040000001}, + [_]u64{0x8000000000000001, 0x0000000200000000, 0x0000000040000000, 0x0000000000000001}, + [_]u64{0x8000000000000001, 0x0000000200000001, 0x000000003FFFFFFF, 0x00000001C0000002}, + [_]u64{0x8000000000000001, 0x0000000200000002, 0x000000003FFFFFFF, 0x0000000180000003}, + [_]u64{0x8000000000000001, 0x0000000200000003, 0x000000003FFFFFFF, 0x0000000140000004}, + [_]u64{0x8000000000000001, 0x0000000200000010, 0x000000003FFFFFFE, 0x0000000000000021}, + [_]u64{0x8000000000000001, 0x00000002078644FA, 0x000000003F12B425, 0x0000000021843FDF}, + [_]u64{0x8000000000000001, 0x000000020747AE14, 0x000000003F1A4E53, 0x0000000132B07785}, + [_]u64{0x8000000000000001, 0x000000027FFFFFFF, 0x0000000033333333, 0x00000000B3333334}, + [_]u64{0x8000000000000001, 0x0000000280000000, 0x0000000033333333, 0x0000000080000001}, + [_]u64{0x8000000000000001, 0x00000002FFFFFFFD, 0x000000002AAAAAAA, 0x000000027FFFFFFF}, + [_]u64{0x8000000000000001, 0x00000002FFFFFFFE, 0x000000002AAAAAAA, 0x0000000255555555}, + [_]u64{0x8000000000000001, 0x00000002FFFFFFFF, 0x000000002AAAAAAA, 0x000000022AAAAAAB}, + [_]u64{0x8000000000000001, 0x0000000300000000, 0x000000002AAAAAAA, 0x0000000200000001}, + [_]u64{0x8000000000000001, 0x0000000300000001, 0x000000002AAAAAAA, 0x00000001D5555557}, + [_]u64{0x8000000000000001, 0x0000000300000002, 0x000000002AAAAAAA, 0x00000001AAAAAAAD}, + [_]u64{0x8000000000000001, 0x0000000300000003, 0x000000002AAAAAAA, 0x0000000180000003}, + [_]u64{0x8000000000000001, 0x0000000300000010, 0x000000002AAAAAA9, 0x0000000255555571}, + [_]u64{0x8000000000000001, 0x00000003078644FA, 0x000000002A40B0A4, 0x000000009C0FEFD9}, + [_]u64{0x8000000000000001, 0x000000030747AE14, 0x000000002A4419E3, 0x000000010620B045}, + [_]u64{0x8000000000000001, 0x000000037FFFFFFF, 0x0000000024924924, 0x0000000224924925}, + [_]u64{0x8000000000000001, 0x0000000380000000, 0x0000000024924924, 0x0000000200000001}, + [_]u64{0x8000000000000001, 0x00000003FFFFFFFD, 0x0000000020000000, 0x0000000060000001}, + [_]u64{0x8000000000000001, 0x00000003FFFFFFFE, 0x0000000020000000, 0x0000000040000001}, + [_]u64{0x8000000000000001, 0x00000003FFFFFFFF, 0x0000000020000000, 0x0000000020000001}, + [_]u64{0x8000000000000001, 0x0000001000000000, 0x0000000008000000, 0x0000000000000001}, + [_]u64{0x8000000000000001, 0x0000001000000001, 0x0000000007FFFFFF, 0x0000000FF8000002}, + [_]u64{0x8000000000000001, 0x0000001000000002, 0x0000000007FFFFFF, 0x0000000FF0000003}, + [_]u64{0x8000000000000001, 0x0000001000000003, 0x0000000007FFFFFF, 0x0000000FE8000004}, + [_]u64{0x8000000000000001, 0x0000001000000010, 0x0000000007FFFFFF, 0x0000000F80000011}, + [_]u64{0x8000000000000001, 0x00000010078644FA, 0x0000000007FC3EA1, 0x0000000A03C212C7}, + [_]u64{0x8000000000000001, 0x000000100747AE14, 0x0000000007FC5DD0, 0x0000000323D54BC1}, + [_]u64{0x8000000000000001, 0x000000107FFFFFFF, 0x0000000007C1F07C, 0x0000000207C1F07D}, + [_]u64{0x8000000000000001, 0x0000001080000000, 0x0000000007C1F07C, 0x0000000200000001}, + [_]u64{0x8000000000000001, 0x00000010FFFFFFFD, 0x0000000007878787, 0x0000000916969696}, + [_]u64{0x8000000000000001, 0x00000010FFFFFFFE, 0x0000000007878787, 0x000000090F0F0F0F}, + [_]u64{0x8000000000000001, 0x00000010FFFFFFFF, 0x0000000007878787, 0x0000000907878788}, + [_]u64{0x8000000000000001, 0x078644FA00000000, 0x0000000000000011, 0x00156B6600000001}, + [_]u64{0x8000000000000001, 0x078644FA00000001, 0x0000000000000011, 0x00156B65FFFFFFF0}, + [_]u64{0x8000000000000001, 0x078644FA00000002, 0x0000000000000011, 0x00156B65FFFFFFDF}, + [_]u64{0x8000000000000001, 0x078644FA00000003, 0x0000000000000011, 0x00156B65FFFFFFCE}, + [_]u64{0x8000000000000001, 0x078644FA00000010, 0x0000000000000011, 0x00156B65FFFFFEF1}, + [_]u64{0x8000000000000001, 0x078644FA078644FA, 0x0000000000000011, 0x00156B6580156B67}, + [_]u64{0x8000000000000001, 0x078644FA0747AE14, 0x0000000000000011, 0x00156B65843D70AD}, + [_]u64{0x8000000000000001, 0x078644FA7FFFFFFF, 0x0000000000000011, 0x00156B5D80000012}, + [_]u64{0x8000000000000001, 0x078644FA80000000, 0x0000000000000011, 0x00156B5D80000001}, + [_]u64{0x8000000000000001, 0x078644FAFFFFFFFD, 0x0000000000000011, 0x00156B5500000034}, + [_]u64{0x8000000000000001, 0x078644FAFFFFFFFE, 0x0000000000000011, 0x00156B5500000023}, + [_]u64{0x8000000000000001, 0x078644FAFFFFFFFF, 0x0000000000000011, 0x00156B5500000012}, + [_]u64{0x8000000000000001, 0x0747AE1400000000, 0x0000000000000011, 0x043D70AC00000001}, + [_]u64{0x8000000000000001, 0x0747AE1400000001, 0x0000000000000011, 0x043D70ABFFFFFFF0}, + [_]u64{0x8000000000000001, 0x0747AE1400000002, 0x0000000000000011, 0x043D70ABFFFFFFDF}, + [_]u64{0x8000000000000001, 0x0747AE1400000003, 0x0000000000000011, 0x043D70ABFFFFFFCE}, + [_]u64{0x8000000000000001, 0x0747AE1400000010, 0x0000000000000011, 0x043D70ABFFFFFEF1}, + [_]u64{0x8000000000000001, 0x0747AE14078644FA, 0x0000000000000011, 0x043D70AB80156B67}, + [_]u64{0x8000000000000001, 0x0747AE140747AE14, 0x0000000000000011, 0x043D70AB843D70AD}, + [_]u64{0x8000000000000001, 0x0747AE147FFFFFFF, 0x0000000000000011, 0x043D70A380000012}, + [_]u64{0x8000000000000001, 0x0747AE1480000000, 0x0000000000000011, 0x043D70A380000001}, + [_]u64{0x8000000000000001, 0x0747AE14FFFFFFFD, 0x0000000000000011, 0x043D709B00000034}, + [_]u64{0x8000000000000001, 0x0747AE14FFFFFFFE, 0x0000000000000011, 0x043D709B00000023}, + [_]u64{0x8000000000000001, 0x0747AE14FFFFFFFF, 0x0000000000000011, 0x043D709B00000012}, + [_]u64{0x8000000000000001, 0x7FFFFFFF00000000, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0x8000000000000001, 0x7FFFFFFF00000001, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x8000000000000001, 0x7FFFFFFF00000002, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0x8000000000000001, 0x7FFFFFFF00000003, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0x8000000000000001, 0x7FFFFFFF00000010, 0x0000000000000001, 0x00000000FFFFFFF1}, + [_]u64{0x8000000000000001, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x00000000F879BB07}, + [_]u64{0x8000000000000001, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x00000000F8B851ED}, + [_]u64{0x8000000000000001, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x0000000080000002}, + [_]u64{0x8000000000000001, 0x7FFFFFFF80000000, 0x0000000000000001, 0x0000000080000001}, + [_]u64{0x8000000000000001, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x0000000000000004}, + [_]u64{0x8000000000000001, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0x8000000000000001, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x8000000000000001, 0x8000000000000000, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x8000000000000001, 0x8000000000000001, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x8000000000000001, 0x8000000000000002, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0x8000000000000003, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0x8000000000000010, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0x80000000078644FA, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0x800000000747AE14, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0x800000007FFFFFFF, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0x8000000080000000, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0x80000000FFFFFFFD, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0x80000000FFFFFFFE, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0x80000000FFFFFFFF, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFD00000000, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFD00000001, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFD00000002, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFD00000003, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFD00000010, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFD80000000, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFE00000000, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFE00000001, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFE00000002, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFE00000003, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFE00000010, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFE80000000, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFF00000000, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFF00000001, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFF00000002, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFF00000003, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFF00000010, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFF80000000, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000001, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x8000000000000001}, + [_]u64{0x8000000000000002, 0x0000000000000001, 0x8000000000000002, 0x0000000000000000}, + [_]u64{0x8000000000000002, 0x0000000000000002, 0x4000000000000001, 0x0000000000000000}, + [_]u64{0x8000000000000002, 0x0000000000000003, 0x2AAAAAAAAAAAAAAB, 0x0000000000000001}, + [_]u64{0x8000000000000002, 0x0000000000000010, 0x0800000000000000, 0x0000000000000002}, + [_]u64{0x8000000000000002, 0x00000000078644FA, 0x0000001102D8BD7E, 0x00000000040D7AF6}, + [_]u64{0x8000000000000002, 0x000000000747AE14, 0x00000011951952BD, 0x00000000065E133E}, + [_]u64{0x8000000000000002, 0x000000007FFFFFFF, 0x0000000100000002, 0x0000000000000004}, + [_]u64{0x8000000000000002, 0x0000000080000000, 0x0000000100000000, 0x0000000000000002}, + [_]u64{0x8000000000000002, 0x00000000FFFFFFFD, 0x0000000080000001, 0x0000000080000005}, + [_]u64{0x8000000000000002, 0x00000000FFFFFFFE, 0x0000000080000001, 0x0000000000000004}, + [_]u64{0x8000000000000002, 0x00000000FFFFFFFF, 0x0000000080000000, 0x0000000080000002}, + [_]u64{0x8000000000000002, 0x0000000100000000, 0x0000000080000000, 0x0000000000000002}, + [_]u64{0x8000000000000002, 0x0000000100000001, 0x000000007FFFFFFF, 0x0000000080000003}, + [_]u64{0x8000000000000002, 0x0000000100000002, 0x000000007FFFFFFF, 0x0000000000000004}, + [_]u64{0x8000000000000002, 0x0000000100000003, 0x000000007FFFFFFE, 0x0000000080000008}, + [_]u64{0x8000000000000002, 0x0000000100000010, 0x000000007FFFFFF8, 0x0000000000000082}, + [_]u64{0x8000000000000002, 0x00000001078644FA, 0x000000007C585DAE, 0x000000004DBE4C16}, + [_]u64{0x8000000000000002, 0x000000010747AE14, 0x000000007C75ED2D, 0x000000001D19E27E}, + [_]u64{0x8000000000000002, 0x000000017FFFFFFF, 0x0000000055555555, 0x00000000D5555557}, + [_]u64{0x8000000000000002, 0x0000000180000000, 0x0000000055555555, 0x0000000080000002}, + [_]u64{0x8000000000000002, 0x00000001FFFFFFFD, 0x0000000040000000, 0x00000000C0000002}, + [_]u64{0x8000000000000002, 0x00000001FFFFFFFE, 0x0000000040000000, 0x0000000080000002}, + [_]u64{0x8000000000000002, 0x00000001FFFFFFFF, 0x0000000040000000, 0x0000000040000002}, + [_]u64{0x8000000000000002, 0x0000000200000000, 0x0000000040000000, 0x0000000000000002}, + [_]u64{0x8000000000000002, 0x0000000200000001, 0x000000003FFFFFFF, 0x00000001C0000003}, + [_]u64{0x8000000000000002, 0x0000000200000002, 0x000000003FFFFFFF, 0x0000000180000004}, + [_]u64{0x8000000000000002, 0x0000000200000003, 0x000000003FFFFFFF, 0x0000000140000005}, + [_]u64{0x8000000000000002, 0x0000000200000010, 0x000000003FFFFFFE, 0x0000000000000022}, + [_]u64{0x8000000000000002, 0x00000002078644FA, 0x000000003F12B425, 0x0000000021843FE0}, + [_]u64{0x8000000000000002, 0x000000020747AE14, 0x000000003F1A4E53, 0x0000000132B07786}, + [_]u64{0x8000000000000002, 0x000000027FFFFFFF, 0x0000000033333333, 0x00000000B3333335}, + [_]u64{0x8000000000000002, 0x0000000280000000, 0x0000000033333333, 0x0000000080000002}, + [_]u64{0x8000000000000002, 0x00000002FFFFFFFD, 0x000000002AAAAAAA, 0x0000000280000000}, + [_]u64{0x8000000000000002, 0x00000002FFFFFFFE, 0x000000002AAAAAAA, 0x0000000255555556}, + [_]u64{0x8000000000000002, 0x00000002FFFFFFFF, 0x000000002AAAAAAA, 0x000000022AAAAAAC}, + [_]u64{0x8000000000000002, 0x0000000300000000, 0x000000002AAAAAAA, 0x0000000200000002}, + [_]u64{0x8000000000000002, 0x0000000300000001, 0x000000002AAAAAAA, 0x00000001D5555558}, + [_]u64{0x8000000000000002, 0x0000000300000002, 0x000000002AAAAAAA, 0x00000001AAAAAAAE}, + [_]u64{0x8000000000000002, 0x0000000300000003, 0x000000002AAAAAAA, 0x0000000180000004}, + [_]u64{0x8000000000000002, 0x0000000300000010, 0x000000002AAAAAA9, 0x0000000255555572}, + [_]u64{0x8000000000000002, 0x00000003078644FA, 0x000000002A40B0A4, 0x000000009C0FEFDA}, + [_]u64{0x8000000000000002, 0x000000030747AE14, 0x000000002A4419E3, 0x000000010620B046}, + [_]u64{0x8000000000000002, 0x000000037FFFFFFF, 0x0000000024924924, 0x0000000224924926}, + [_]u64{0x8000000000000002, 0x0000000380000000, 0x0000000024924924, 0x0000000200000002}, + [_]u64{0x8000000000000002, 0x00000003FFFFFFFD, 0x0000000020000000, 0x0000000060000002}, + [_]u64{0x8000000000000002, 0x00000003FFFFFFFE, 0x0000000020000000, 0x0000000040000002}, + [_]u64{0x8000000000000002, 0x00000003FFFFFFFF, 0x0000000020000000, 0x0000000020000002}, + [_]u64{0x8000000000000002, 0x0000001000000000, 0x0000000008000000, 0x0000000000000002}, + [_]u64{0x8000000000000002, 0x0000001000000001, 0x0000000007FFFFFF, 0x0000000FF8000003}, + [_]u64{0x8000000000000002, 0x0000001000000002, 0x0000000007FFFFFF, 0x0000000FF0000004}, + [_]u64{0x8000000000000002, 0x0000001000000003, 0x0000000007FFFFFF, 0x0000000FE8000005}, + [_]u64{0x8000000000000002, 0x0000001000000010, 0x0000000007FFFFFF, 0x0000000F80000012}, + [_]u64{0x8000000000000002, 0x00000010078644FA, 0x0000000007FC3EA1, 0x0000000A03C212C8}, + [_]u64{0x8000000000000002, 0x000000100747AE14, 0x0000000007FC5DD0, 0x0000000323D54BC2}, + [_]u64{0x8000000000000002, 0x000000107FFFFFFF, 0x0000000007C1F07C, 0x0000000207C1F07E}, + [_]u64{0x8000000000000002, 0x0000001080000000, 0x0000000007C1F07C, 0x0000000200000002}, + [_]u64{0x8000000000000002, 0x00000010FFFFFFFD, 0x0000000007878787, 0x0000000916969697}, + [_]u64{0x8000000000000002, 0x00000010FFFFFFFE, 0x0000000007878787, 0x000000090F0F0F10}, + [_]u64{0x8000000000000002, 0x00000010FFFFFFFF, 0x0000000007878787, 0x0000000907878789}, + [_]u64{0x8000000000000002, 0x078644FA00000000, 0x0000000000000011, 0x00156B6600000002}, + [_]u64{0x8000000000000002, 0x078644FA00000001, 0x0000000000000011, 0x00156B65FFFFFFF1}, + [_]u64{0x8000000000000002, 0x078644FA00000002, 0x0000000000000011, 0x00156B65FFFFFFE0}, + [_]u64{0x8000000000000002, 0x078644FA00000003, 0x0000000000000011, 0x00156B65FFFFFFCF}, + [_]u64{0x8000000000000002, 0x078644FA00000010, 0x0000000000000011, 0x00156B65FFFFFEF2}, + [_]u64{0x8000000000000002, 0x078644FA078644FA, 0x0000000000000011, 0x00156B6580156B68}, + [_]u64{0x8000000000000002, 0x078644FA0747AE14, 0x0000000000000011, 0x00156B65843D70AE}, + [_]u64{0x8000000000000002, 0x078644FA7FFFFFFF, 0x0000000000000011, 0x00156B5D80000013}, + [_]u64{0x8000000000000002, 0x078644FA80000000, 0x0000000000000011, 0x00156B5D80000002}, + [_]u64{0x8000000000000002, 0x078644FAFFFFFFFD, 0x0000000000000011, 0x00156B5500000035}, + [_]u64{0x8000000000000002, 0x078644FAFFFFFFFE, 0x0000000000000011, 0x00156B5500000024}, + [_]u64{0x8000000000000002, 0x078644FAFFFFFFFF, 0x0000000000000011, 0x00156B5500000013}, + [_]u64{0x8000000000000002, 0x0747AE1400000000, 0x0000000000000011, 0x043D70AC00000002}, + [_]u64{0x8000000000000002, 0x0747AE1400000001, 0x0000000000000011, 0x043D70ABFFFFFFF1}, + [_]u64{0x8000000000000002, 0x0747AE1400000002, 0x0000000000000011, 0x043D70ABFFFFFFE0}, + [_]u64{0x8000000000000002, 0x0747AE1400000003, 0x0000000000000011, 0x043D70ABFFFFFFCF}, + [_]u64{0x8000000000000002, 0x0747AE1400000010, 0x0000000000000011, 0x043D70ABFFFFFEF2}, + [_]u64{0x8000000000000002, 0x0747AE14078644FA, 0x0000000000000011, 0x043D70AB80156B68}, + [_]u64{0x8000000000000002, 0x0747AE140747AE14, 0x0000000000000011, 0x043D70AB843D70AE}, + [_]u64{0x8000000000000002, 0x0747AE147FFFFFFF, 0x0000000000000011, 0x043D70A380000013}, + [_]u64{0x8000000000000002, 0x0747AE1480000000, 0x0000000000000011, 0x043D70A380000002}, + [_]u64{0x8000000000000002, 0x0747AE14FFFFFFFD, 0x0000000000000011, 0x043D709B00000035}, + [_]u64{0x8000000000000002, 0x0747AE14FFFFFFFE, 0x0000000000000011, 0x043D709B00000024}, + [_]u64{0x8000000000000002, 0x0747AE14FFFFFFFF, 0x0000000000000011, 0x043D709B00000013}, + [_]u64{0x8000000000000002, 0x7FFFFFFF00000000, 0x0000000000000001, 0x0000000100000002}, + [_]u64{0x8000000000000002, 0x7FFFFFFF00000001, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0x8000000000000002, 0x7FFFFFFF00000002, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x8000000000000002, 0x7FFFFFFF00000003, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0x8000000000000002, 0x7FFFFFFF00000010, 0x0000000000000001, 0x00000000FFFFFFF2}, + [_]u64{0x8000000000000002, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x00000000F879BB08}, + [_]u64{0x8000000000000002, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x00000000F8B851EE}, + [_]u64{0x8000000000000002, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x0000000080000003}, + [_]u64{0x8000000000000002, 0x7FFFFFFF80000000, 0x0000000000000001, 0x0000000080000002}, + [_]u64{0x8000000000000002, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x0000000000000005}, + [_]u64{0x8000000000000002, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x0000000000000004}, + [_]u64{0x8000000000000002, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0x8000000000000002, 0x8000000000000000, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x8000000000000002, 0x8000000000000001, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x8000000000000002, 0x8000000000000002, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x8000000000000002, 0x8000000000000003, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0x8000000000000010, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0x80000000078644FA, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0x800000000747AE14, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0x800000007FFFFFFF, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0x8000000080000000, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0x80000000FFFFFFFD, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0x80000000FFFFFFFE, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0x80000000FFFFFFFF, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFD00000000, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFD00000001, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFD00000002, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFD00000003, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFD00000010, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFD80000000, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFE00000000, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFE00000001, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFE00000002, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFE00000003, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFE00000010, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFE80000000, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFF00000000, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFF00000001, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFF00000002, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFF00000003, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFF00000010, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFF80000000, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000002, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x8000000000000002}, + [_]u64{0x8000000000000003, 0x0000000000000001, 0x8000000000000003, 0x0000000000000000}, + [_]u64{0x8000000000000003, 0x0000000000000002, 0x4000000000000001, 0x0000000000000001}, + [_]u64{0x8000000000000003, 0x0000000000000003, 0x2AAAAAAAAAAAAAAB, 0x0000000000000002}, + [_]u64{0x8000000000000003, 0x0000000000000010, 0x0800000000000000, 0x0000000000000003}, + [_]u64{0x8000000000000003, 0x00000000078644FA, 0x0000001102D8BD7E, 0x00000000040D7AF7}, + [_]u64{0x8000000000000003, 0x000000000747AE14, 0x00000011951952BD, 0x00000000065E133F}, + [_]u64{0x8000000000000003, 0x000000007FFFFFFF, 0x0000000100000002, 0x0000000000000005}, + [_]u64{0x8000000000000003, 0x0000000080000000, 0x0000000100000000, 0x0000000000000003}, + [_]u64{0x8000000000000003, 0x00000000FFFFFFFD, 0x0000000080000001, 0x0000000080000006}, + [_]u64{0x8000000000000003, 0x00000000FFFFFFFE, 0x0000000080000001, 0x0000000000000005}, + [_]u64{0x8000000000000003, 0x00000000FFFFFFFF, 0x0000000080000000, 0x0000000080000003}, + [_]u64{0x8000000000000003, 0x0000000100000000, 0x0000000080000000, 0x0000000000000003}, + [_]u64{0x8000000000000003, 0x0000000100000001, 0x000000007FFFFFFF, 0x0000000080000004}, + [_]u64{0x8000000000000003, 0x0000000100000002, 0x000000007FFFFFFF, 0x0000000000000005}, + [_]u64{0x8000000000000003, 0x0000000100000003, 0x000000007FFFFFFE, 0x0000000080000009}, + [_]u64{0x8000000000000003, 0x0000000100000010, 0x000000007FFFFFF8, 0x0000000000000083}, + [_]u64{0x8000000000000003, 0x00000001078644FA, 0x000000007C585DAE, 0x000000004DBE4C17}, + [_]u64{0x8000000000000003, 0x000000010747AE14, 0x000000007C75ED2D, 0x000000001D19E27F}, + [_]u64{0x8000000000000003, 0x000000017FFFFFFF, 0x0000000055555555, 0x00000000D5555558}, + [_]u64{0x8000000000000003, 0x0000000180000000, 0x0000000055555555, 0x0000000080000003}, + [_]u64{0x8000000000000003, 0x00000001FFFFFFFD, 0x0000000040000000, 0x00000000C0000003}, + [_]u64{0x8000000000000003, 0x00000001FFFFFFFE, 0x0000000040000000, 0x0000000080000003}, + [_]u64{0x8000000000000003, 0x00000001FFFFFFFF, 0x0000000040000000, 0x0000000040000003}, + [_]u64{0x8000000000000003, 0x0000000200000000, 0x0000000040000000, 0x0000000000000003}, + [_]u64{0x8000000000000003, 0x0000000200000001, 0x000000003FFFFFFF, 0x00000001C0000004}, + [_]u64{0x8000000000000003, 0x0000000200000002, 0x000000003FFFFFFF, 0x0000000180000005}, + [_]u64{0x8000000000000003, 0x0000000200000003, 0x000000003FFFFFFF, 0x0000000140000006}, + [_]u64{0x8000000000000003, 0x0000000200000010, 0x000000003FFFFFFE, 0x0000000000000023}, + [_]u64{0x8000000000000003, 0x00000002078644FA, 0x000000003F12B425, 0x0000000021843FE1}, + [_]u64{0x8000000000000003, 0x000000020747AE14, 0x000000003F1A4E53, 0x0000000132B07787}, + [_]u64{0x8000000000000003, 0x000000027FFFFFFF, 0x0000000033333333, 0x00000000B3333336}, + [_]u64{0x8000000000000003, 0x0000000280000000, 0x0000000033333333, 0x0000000080000003}, + [_]u64{0x8000000000000003, 0x00000002FFFFFFFD, 0x000000002AAAAAAA, 0x0000000280000001}, + [_]u64{0x8000000000000003, 0x00000002FFFFFFFE, 0x000000002AAAAAAA, 0x0000000255555557}, + [_]u64{0x8000000000000003, 0x00000002FFFFFFFF, 0x000000002AAAAAAA, 0x000000022AAAAAAD}, + [_]u64{0x8000000000000003, 0x0000000300000000, 0x000000002AAAAAAA, 0x0000000200000003}, + [_]u64{0x8000000000000003, 0x0000000300000001, 0x000000002AAAAAAA, 0x00000001D5555559}, + [_]u64{0x8000000000000003, 0x0000000300000002, 0x000000002AAAAAAA, 0x00000001AAAAAAAF}, + [_]u64{0x8000000000000003, 0x0000000300000003, 0x000000002AAAAAAA, 0x0000000180000005}, + [_]u64{0x8000000000000003, 0x0000000300000010, 0x000000002AAAAAA9, 0x0000000255555573}, + [_]u64{0x8000000000000003, 0x00000003078644FA, 0x000000002A40B0A4, 0x000000009C0FEFDB}, + [_]u64{0x8000000000000003, 0x000000030747AE14, 0x000000002A4419E3, 0x000000010620B047}, + [_]u64{0x8000000000000003, 0x000000037FFFFFFF, 0x0000000024924924, 0x0000000224924927}, + [_]u64{0x8000000000000003, 0x0000000380000000, 0x0000000024924924, 0x0000000200000003}, + [_]u64{0x8000000000000003, 0x00000003FFFFFFFD, 0x0000000020000000, 0x0000000060000003}, + [_]u64{0x8000000000000003, 0x00000003FFFFFFFE, 0x0000000020000000, 0x0000000040000003}, + [_]u64{0x8000000000000003, 0x00000003FFFFFFFF, 0x0000000020000000, 0x0000000020000003}, + [_]u64{0x8000000000000003, 0x0000001000000000, 0x0000000008000000, 0x0000000000000003}, + [_]u64{0x8000000000000003, 0x0000001000000001, 0x0000000007FFFFFF, 0x0000000FF8000004}, + [_]u64{0x8000000000000003, 0x0000001000000002, 0x0000000007FFFFFF, 0x0000000FF0000005}, + [_]u64{0x8000000000000003, 0x0000001000000003, 0x0000000007FFFFFF, 0x0000000FE8000006}, + [_]u64{0x8000000000000003, 0x0000001000000010, 0x0000000007FFFFFF, 0x0000000F80000013}, + [_]u64{0x8000000000000003, 0x00000010078644FA, 0x0000000007FC3EA1, 0x0000000A03C212C9}, + [_]u64{0x8000000000000003, 0x000000100747AE14, 0x0000000007FC5DD0, 0x0000000323D54BC3}, + [_]u64{0x8000000000000003, 0x000000107FFFFFFF, 0x0000000007C1F07C, 0x0000000207C1F07F}, + [_]u64{0x8000000000000003, 0x0000001080000000, 0x0000000007C1F07C, 0x0000000200000003}, + [_]u64{0x8000000000000003, 0x00000010FFFFFFFD, 0x0000000007878787, 0x0000000916969698}, + [_]u64{0x8000000000000003, 0x00000010FFFFFFFE, 0x0000000007878787, 0x000000090F0F0F11}, + [_]u64{0x8000000000000003, 0x00000010FFFFFFFF, 0x0000000007878787, 0x000000090787878A}, + [_]u64{0x8000000000000003, 0x078644FA00000000, 0x0000000000000011, 0x00156B6600000003}, + [_]u64{0x8000000000000003, 0x078644FA00000001, 0x0000000000000011, 0x00156B65FFFFFFF2}, + [_]u64{0x8000000000000003, 0x078644FA00000002, 0x0000000000000011, 0x00156B65FFFFFFE1}, + [_]u64{0x8000000000000003, 0x078644FA00000003, 0x0000000000000011, 0x00156B65FFFFFFD0}, + [_]u64{0x8000000000000003, 0x078644FA00000010, 0x0000000000000011, 0x00156B65FFFFFEF3}, + [_]u64{0x8000000000000003, 0x078644FA078644FA, 0x0000000000000011, 0x00156B6580156B69}, + [_]u64{0x8000000000000003, 0x078644FA0747AE14, 0x0000000000000011, 0x00156B65843D70AF}, + [_]u64{0x8000000000000003, 0x078644FA7FFFFFFF, 0x0000000000000011, 0x00156B5D80000014}, + [_]u64{0x8000000000000003, 0x078644FA80000000, 0x0000000000000011, 0x00156B5D80000003}, + [_]u64{0x8000000000000003, 0x078644FAFFFFFFFD, 0x0000000000000011, 0x00156B5500000036}, + [_]u64{0x8000000000000003, 0x078644FAFFFFFFFE, 0x0000000000000011, 0x00156B5500000025}, + [_]u64{0x8000000000000003, 0x078644FAFFFFFFFF, 0x0000000000000011, 0x00156B5500000014}, + [_]u64{0x8000000000000003, 0x0747AE1400000000, 0x0000000000000011, 0x043D70AC00000003}, + [_]u64{0x8000000000000003, 0x0747AE1400000001, 0x0000000000000011, 0x043D70ABFFFFFFF2}, + [_]u64{0x8000000000000003, 0x0747AE1400000002, 0x0000000000000011, 0x043D70ABFFFFFFE1}, + [_]u64{0x8000000000000003, 0x0747AE1400000003, 0x0000000000000011, 0x043D70ABFFFFFFD0}, + [_]u64{0x8000000000000003, 0x0747AE1400000010, 0x0000000000000011, 0x043D70ABFFFFFEF3}, + [_]u64{0x8000000000000003, 0x0747AE14078644FA, 0x0000000000000011, 0x043D70AB80156B69}, + [_]u64{0x8000000000000003, 0x0747AE140747AE14, 0x0000000000000011, 0x043D70AB843D70AF}, + [_]u64{0x8000000000000003, 0x0747AE147FFFFFFF, 0x0000000000000011, 0x043D70A380000014}, + [_]u64{0x8000000000000003, 0x0747AE1480000000, 0x0000000000000011, 0x043D70A380000003}, + [_]u64{0x8000000000000003, 0x0747AE14FFFFFFFD, 0x0000000000000011, 0x043D709B00000036}, + [_]u64{0x8000000000000003, 0x0747AE14FFFFFFFE, 0x0000000000000011, 0x043D709B00000025}, + [_]u64{0x8000000000000003, 0x0747AE14FFFFFFFF, 0x0000000000000011, 0x043D709B00000014}, + [_]u64{0x8000000000000003, 0x7FFFFFFF00000000, 0x0000000000000001, 0x0000000100000003}, + [_]u64{0x8000000000000003, 0x7FFFFFFF00000001, 0x0000000000000001, 0x0000000100000002}, + [_]u64{0x8000000000000003, 0x7FFFFFFF00000002, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0x8000000000000003, 0x7FFFFFFF00000003, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x8000000000000003, 0x7FFFFFFF00000010, 0x0000000000000001, 0x00000000FFFFFFF3}, + [_]u64{0x8000000000000003, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x00000000F879BB09}, + [_]u64{0x8000000000000003, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x00000000F8B851EF}, + [_]u64{0x8000000000000003, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x0000000080000004}, + [_]u64{0x8000000000000003, 0x7FFFFFFF80000000, 0x0000000000000001, 0x0000000080000003}, + [_]u64{0x8000000000000003, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x0000000000000006}, + [_]u64{0x8000000000000003, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x0000000000000005}, + [_]u64{0x8000000000000003, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x0000000000000004}, + [_]u64{0x8000000000000003, 0x8000000000000000, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0x8000000000000003, 0x8000000000000001, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x8000000000000003, 0x8000000000000002, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x8000000000000003, 0x8000000000000003, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x8000000000000003, 0x8000000000000010, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0x80000000078644FA, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0x800000000747AE14, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0x800000007FFFFFFF, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0x8000000080000000, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0x80000000FFFFFFFD, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0x80000000FFFFFFFE, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0x80000000FFFFFFFF, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFD00000000, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFD00000001, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFD00000002, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFD00000003, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFD00000010, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFD80000000, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFE00000000, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFE00000001, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFE00000002, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFE00000003, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFE00000010, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFE80000000, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFF00000000, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFF00000001, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFF00000002, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFF00000003, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFF00000010, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFF80000000, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000003, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x8000000000000003}, + [_]u64{0x8000000000000010, 0x0000000000000001, 0x8000000000000010, 0x0000000000000000}, + [_]u64{0x8000000000000010, 0x0000000000000002, 0x4000000000000008, 0x0000000000000000}, + [_]u64{0x8000000000000010, 0x0000000000000003, 0x2AAAAAAAAAAAAAB0, 0x0000000000000000}, + [_]u64{0x8000000000000010, 0x0000000000000010, 0x0800000000000001, 0x0000000000000000}, + [_]u64{0x8000000000000010, 0x00000000078644FA, 0x0000001102D8BD7E, 0x00000000040D7B04}, + [_]u64{0x8000000000000010, 0x000000000747AE14, 0x00000011951952BD, 0x00000000065E134C}, + [_]u64{0x8000000000000010, 0x000000007FFFFFFF, 0x0000000100000002, 0x0000000000000012}, + [_]u64{0x8000000000000010, 0x0000000080000000, 0x0000000100000000, 0x0000000000000010}, + [_]u64{0x8000000000000010, 0x00000000FFFFFFFD, 0x0000000080000001, 0x0000000080000013}, + [_]u64{0x8000000000000010, 0x00000000FFFFFFFE, 0x0000000080000001, 0x0000000000000012}, + [_]u64{0x8000000000000010, 0x00000000FFFFFFFF, 0x0000000080000000, 0x0000000080000010}, + [_]u64{0x8000000000000010, 0x0000000100000000, 0x0000000080000000, 0x0000000000000010}, + [_]u64{0x8000000000000010, 0x0000000100000001, 0x000000007FFFFFFF, 0x0000000080000011}, + [_]u64{0x8000000000000010, 0x0000000100000002, 0x000000007FFFFFFF, 0x0000000000000012}, + [_]u64{0x8000000000000010, 0x0000000100000003, 0x000000007FFFFFFE, 0x0000000080000016}, + [_]u64{0x8000000000000010, 0x0000000100000010, 0x000000007FFFFFF8, 0x0000000000000090}, + [_]u64{0x8000000000000010, 0x00000001078644FA, 0x000000007C585DAE, 0x000000004DBE4C24}, + [_]u64{0x8000000000000010, 0x000000010747AE14, 0x000000007C75ED2D, 0x000000001D19E28C}, + [_]u64{0x8000000000000010, 0x000000017FFFFFFF, 0x0000000055555555, 0x00000000D5555565}, + [_]u64{0x8000000000000010, 0x0000000180000000, 0x0000000055555555, 0x0000000080000010}, + [_]u64{0x8000000000000010, 0x00000001FFFFFFFD, 0x0000000040000000, 0x00000000C0000010}, + [_]u64{0x8000000000000010, 0x00000001FFFFFFFE, 0x0000000040000000, 0x0000000080000010}, + [_]u64{0x8000000000000010, 0x00000001FFFFFFFF, 0x0000000040000000, 0x0000000040000010}, + [_]u64{0x8000000000000010, 0x0000000200000000, 0x0000000040000000, 0x0000000000000010}, + [_]u64{0x8000000000000010, 0x0000000200000001, 0x000000003FFFFFFF, 0x00000001C0000011}, + [_]u64{0x8000000000000010, 0x0000000200000002, 0x000000003FFFFFFF, 0x0000000180000012}, + [_]u64{0x8000000000000010, 0x0000000200000003, 0x000000003FFFFFFF, 0x0000000140000013}, + [_]u64{0x8000000000000010, 0x0000000200000010, 0x000000003FFFFFFE, 0x0000000000000030}, + [_]u64{0x8000000000000010, 0x00000002078644FA, 0x000000003F12B425, 0x0000000021843FEE}, + [_]u64{0x8000000000000010, 0x000000020747AE14, 0x000000003F1A4E53, 0x0000000132B07794}, + [_]u64{0x8000000000000010, 0x000000027FFFFFFF, 0x0000000033333333, 0x00000000B3333343}, + [_]u64{0x8000000000000010, 0x0000000280000000, 0x0000000033333333, 0x0000000080000010}, + [_]u64{0x8000000000000010, 0x00000002FFFFFFFD, 0x000000002AAAAAAA, 0x000000028000000E}, + [_]u64{0x8000000000000010, 0x00000002FFFFFFFE, 0x000000002AAAAAAA, 0x0000000255555564}, + [_]u64{0x8000000000000010, 0x00000002FFFFFFFF, 0x000000002AAAAAAA, 0x000000022AAAAABA}, + [_]u64{0x8000000000000010, 0x0000000300000000, 0x000000002AAAAAAA, 0x0000000200000010}, + [_]u64{0x8000000000000010, 0x0000000300000001, 0x000000002AAAAAAA, 0x00000001D5555566}, + [_]u64{0x8000000000000010, 0x0000000300000002, 0x000000002AAAAAAA, 0x00000001AAAAAABC}, + [_]u64{0x8000000000000010, 0x0000000300000003, 0x000000002AAAAAAA, 0x0000000180000012}, + [_]u64{0x8000000000000010, 0x0000000300000010, 0x000000002AAAAAA9, 0x0000000255555580}, + [_]u64{0x8000000000000010, 0x00000003078644FA, 0x000000002A40B0A4, 0x000000009C0FEFE8}, + [_]u64{0x8000000000000010, 0x000000030747AE14, 0x000000002A4419E3, 0x000000010620B054}, + [_]u64{0x8000000000000010, 0x000000037FFFFFFF, 0x0000000024924924, 0x0000000224924934}, + [_]u64{0x8000000000000010, 0x0000000380000000, 0x0000000024924924, 0x0000000200000010}, + [_]u64{0x8000000000000010, 0x00000003FFFFFFFD, 0x0000000020000000, 0x0000000060000010}, + [_]u64{0x8000000000000010, 0x00000003FFFFFFFE, 0x0000000020000000, 0x0000000040000010}, + [_]u64{0x8000000000000010, 0x00000003FFFFFFFF, 0x0000000020000000, 0x0000000020000010}, + [_]u64{0x8000000000000010, 0x0000001000000000, 0x0000000008000000, 0x0000000000000010}, + [_]u64{0x8000000000000010, 0x0000001000000001, 0x0000000007FFFFFF, 0x0000000FF8000011}, + [_]u64{0x8000000000000010, 0x0000001000000002, 0x0000000007FFFFFF, 0x0000000FF0000012}, + [_]u64{0x8000000000000010, 0x0000001000000003, 0x0000000007FFFFFF, 0x0000000FE8000013}, + [_]u64{0x8000000000000010, 0x0000001000000010, 0x0000000007FFFFFF, 0x0000000F80000020}, + [_]u64{0x8000000000000010, 0x00000010078644FA, 0x0000000007FC3EA1, 0x0000000A03C212D6}, + [_]u64{0x8000000000000010, 0x000000100747AE14, 0x0000000007FC5DD0, 0x0000000323D54BD0}, + [_]u64{0x8000000000000010, 0x000000107FFFFFFF, 0x0000000007C1F07C, 0x0000000207C1F08C}, + [_]u64{0x8000000000000010, 0x0000001080000000, 0x0000000007C1F07C, 0x0000000200000010}, + [_]u64{0x8000000000000010, 0x00000010FFFFFFFD, 0x0000000007878787, 0x00000009169696A5}, + [_]u64{0x8000000000000010, 0x00000010FFFFFFFE, 0x0000000007878787, 0x000000090F0F0F1E}, + [_]u64{0x8000000000000010, 0x00000010FFFFFFFF, 0x0000000007878787, 0x0000000907878797}, + [_]u64{0x8000000000000010, 0x078644FA00000000, 0x0000000000000011, 0x00156B6600000010}, + [_]u64{0x8000000000000010, 0x078644FA00000001, 0x0000000000000011, 0x00156B65FFFFFFFF}, + [_]u64{0x8000000000000010, 0x078644FA00000002, 0x0000000000000011, 0x00156B65FFFFFFEE}, + [_]u64{0x8000000000000010, 0x078644FA00000003, 0x0000000000000011, 0x00156B65FFFFFFDD}, + [_]u64{0x8000000000000010, 0x078644FA00000010, 0x0000000000000011, 0x00156B65FFFFFF00}, + [_]u64{0x8000000000000010, 0x078644FA078644FA, 0x0000000000000011, 0x00156B6580156B76}, + [_]u64{0x8000000000000010, 0x078644FA0747AE14, 0x0000000000000011, 0x00156B65843D70BC}, + [_]u64{0x8000000000000010, 0x078644FA7FFFFFFF, 0x0000000000000011, 0x00156B5D80000021}, + [_]u64{0x8000000000000010, 0x078644FA80000000, 0x0000000000000011, 0x00156B5D80000010}, + [_]u64{0x8000000000000010, 0x078644FAFFFFFFFD, 0x0000000000000011, 0x00156B5500000043}, + [_]u64{0x8000000000000010, 0x078644FAFFFFFFFE, 0x0000000000000011, 0x00156B5500000032}, + [_]u64{0x8000000000000010, 0x078644FAFFFFFFFF, 0x0000000000000011, 0x00156B5500000021}, + [_]u64{0x8000000000000010, 0x0747AE1400000000, 0x0000000000000011, 0x043D70AC00000010}, + [_]u64{0x8000000000000010, 0x0747AE1400000001, 0x0000000000000011, 0x043D70ABFFFFFFFF}, + [_]u64{0x8000000000000010, 0x0747AE1400000002, 0x0000000000000011, 0x043D70ABFFFFFFEE}, + [_]u64{0x8000000000000010, 0x0747AE1400000003, 0x0000000000000011, 0x043D70ABFFFFFFDD}, + [_]u64{0x8000000000000010, 0x0747AE1400000010, 0x0000000000000011, 0x043D70ABFFFFFF00}, + [_]u64{0x8000000000000010, 0x0747AE14078644FA, 0x0000000000000011, 0x043D70AB80156B76}, + [_]u64{0x8000000000000010, 0x0747AE140747AE14, 0x0000000000000011, 0x043D70AB843D70BC}, + [_]u64{0x8000000000000010, 0x0747AE147FFFFFFF, 0x0000000000000011, 0x043D70A380000021}, + [_]u64{0x8000000000000010, 0x0747AE1480000000, 0x0000000000000011, 0x043D70A380000010}, + [_]u64{0x8000000000000010, 0x0747AE14FFFFFFFD, 0x0000000000000011, 0x043D709B00000043}, + [_]u64{0x8000000000000010, 0x0747AE14FFFFFFFE, 0x0000000000000011, 0x043D709B00000032}, + [_]u64{0x8000000000000010, 0x0747AE14FFFFFFFF, 0x0000000000000011, 0x043D709B00000021}, + [_]u64{0x8000000000000010, 0x7FFFFFFF00000000, 0x0000000000000001, 0x0000000100000010}, + [_]u64{0x8000000000000010, 0x7FFFFFFF00000001, 0x0000000000000001, 0x000000010000000F}, + [_]u64{0x8000000000000010, 0x7FFFFFFF00000002, 0x0000000000000001, 0x000000010000000E}, + [_]u64{0x8000000000000010, 0x7FFFFFFF00000003, 0x0000000000000001, 0x000000010000000D}, + [_]u64{0x8000000000000010, 0x7FFFFFFF00000010, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x8000000000000010, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x00000000F879BB16}, + [_]u64{0x8000000000000010, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x00000000F8B851FC}, + [_]u64{0x8000000000000010, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x0000000080000011}, + [_]u64{0x8000000000000010, 0x7FFFFFFF80000000, 0x0000000000000001, 0x0000000080000010}, + [_]u64{0x8000000000000010, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x0000000000000013}, + [_]u64{0x8000000000000010, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x0000000000000012}, + [_]u64{0x8000000000000010, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x0000000000000011}, + [_]u64{0x8000000000000010, 0x8000000000000000, 0x0000000000000001, 0x0000000000000010}, + [_]u64{0x8000000000000010, 0x8000000000000001, 0x0000000000000001, 0x000000000000000F}, + [_]u64{0x8000000000000010, 0x8000000000000002, 0x0000000000000001, 0x000000000000000E}, + [_]u64{0x8000000000000010, 0x8000000000000003, 0x0000000000000001, 0x000000000000000D}, + [_]u64{0x8000000000000010, 0x8000000000000010, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x8000000000000010, 0x80000000078644FA, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0x800000000747AE14, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0x800000007FFFFFFF, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0x8000000080000000, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0x80000000FFFFFFFD, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0x80000000FFFFFFFE, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0x80000000FFFFFFFF, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFD00000000, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFD00000001, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFD00000002, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFD00000003, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFD00000010, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFD80000000, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFE00000000, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFE00000001, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFE00000002, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFE00000003, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFE00000010, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFE80000000, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFF00000000, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFF00000001, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFF00000002, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFF00000003, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFF00000010, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFF80000000, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x8000000000000010, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x8000000000000010}, + [_]u64{0x80000000078644FA, 0x0000000000000001, 0x80000000078644FA, 0x0000000000000000}, + [_]u64{0x80000000078644FA, 0x0000000000000002, 0x4000000003C3227D, 0x0000000000000000}, + [_]u64{0x80000000078644FA, 0x0000000000000003, 0x2AAAAAAAAD2CC1A8, 0x0000000000000002}, + [_]u64{0x80000000078644FA, 0x0000000000000010, 0x080000000078644F, 0x000000000000000A}, + [_]u64{0x80000000078644FA, 0x00000000078644FA, 0x0000001102D8BD7F, 0x00000000040D7AF4}, + [_]u64{0x80000000078644FA, 0x000000000747AE14, 0x00000011951952BE, 0x00000000069CAA22}, + [_]u64{0x80000000078644FA, 0x000000007FFFFFFF, 0x0000000100000002, 0x00000000078644FC}, + [_]u64{0x80000000078644FA, 0x0000000080000000, 0x0000000100000000, 0x00000000078644FA}, + [_]u64{0x80000000078644FA, 0x00000000FFFFFFFD, 0x0000000080000001, 0x00000000878644FD}, + [_]u64{0x80000000078644FA, 0x00000000FFFFFFFE, 0x0000000080000001, 0x00000000078644FC}, + [_]u64{0x80000000078644FA, 0x00000000FFFFFFFF, 0x0000000080000000, 0x00000000878644FA}, + [_]u64{0x80000000078644FA, 0x0000000100000000, 0x0000000080000000, 0x00000000078644FA}, + [_]u64{0x80000000078644FA, 0x0000000100000001, 0x000000007FFFFFFF, 0x00000000878644FB}, + [_]u64{0x80000000078644FA, 0x0000000100000002, 0x000000007FFFFFFF, 0x00000000078644FC}, + [_]u64{0x80000000078644FA, 0x0000000100000003, 0x000000007FFFFFFE, 0x0000000087864500}, + [_]u64{0x80000000078644FA, 0x0000000100000010, 0x000000007FFFFFF8, 0x000000000786457A}, + [_]u64{0x80000000078644FA, 0x00000001078644FA, 0x000000007C585DAE, 0x000000005544910E}, + [_]u64{0x80000000078644FA, 0x000000010747AE14, 0x000000007C75ED2D, 0x0000000024A02776}, + [_]u64{0x80000000078644FA, 0x000000017FFFFFFF, 0x0000000055555555, 0x00000000DCDB9A4F}, + [_]u64{0x80000000078644FA, 0x0000000180000000, 0x0000000055555555, 0x00000000878644FA}, + [_]u64{0x80000000078644FA, 0x00000001FFFFFFFD, 0x0000000040000000, 0x00000000C78644FA}, + [_]u64{0x80000000078644FA, 0x00000001FFFFFFFE, 0x0000000040000000, 0x00000000878644FA}, + [_]u64{0x80000000078644FA, 0x00000001FFFFFFFF, 0x0000000040000000, 0x00000000478644FA}, + [_]u64{0x80000000078644FA, 0x0000000200000000, 0x0000000040000000, 0x00000000078644FA}, + [_]u64{0x80000000078644FA, 0x0000000200000001, 0x000000003FFFFFFF, 0x00000001C78644FB}, + [_]u64{0x80000000078644FA, 0x0000000200000002, 0x000000003FFFFFFF, 0x00000001878644FC}, + [_]u64{0x80000000078644FA, 0x0000000200000003, 0x000000003FFFFFFF, 0x00000001478644FD}, + [_]u64{0x80000000078644FA, 0x0000000200000010, 0x000000003FFFFFFE, 0x000000000786451A}, + [_]u64{0x80000000078644FA, 0x00000002078644FA, 0x000000003F12B425, 0x00000000290A84D8}, + [_]u64{0x80000000078644FA, 0x000000020747AE14, 0x000000003F1A4E53, 0x000000013A36BC7E}, + [_]u64{0x80000000078644FA, 0x000000027FFFFFFF, 0x0000000033333333, 0x00000000BAB9782D}, + [_]u64{0x80000000078644FA, 0x0000000280000000, 0x0000000033333333, 0x00000000878644FA}, + [_]u64{0x80000000078644FA, 0x00000002FFFFFFFD, 0x000000002AAAAAAA, 0x00000002878644F8}, + [_]u64{0x80000000078644FA, 0x00000002FFFFFFFE, 0x000000002AAAAAAA, 0x000000025CDB9A4E}, + [_]u64{0x80000000078644FA, 0x00000002FFFFFFFF, 0x000000002AAAAAAA, 0x000000023230EFA4}, + [_]u64{0x80000000078644FA, 0x0000000300000000, 0x000000002AAAAAAA, 0x00000002078644FA}, + [_]u64{0x80000000078644FA, 0x0000000300000001, 0x000000002AAAAAAA, 0x00000001DCDB9A50}, + [_]u64{0x80000000078644FA, 0x0000000300000002, 0x000000002AAAAAAA, 0x00000001B230EFA6}, + [_]u64{0x80000000078644FA, 0x0000000300000003, 0x000000002AAAAAAA, 0x00000001878644FC}, + [_]u64{0x80000000078644FA, 0x0000000300000010, 0x000000002AAAAAA9, 0x000000025CDB9A6A}, + [_]u64{0x80000000078644FA, 0x00000003078644FA, 0x000000002A40B0A4, 0x00000000A39634D2}, + [_]u64{0x80000000078644FA, 0x000000030747AE14, 0x000000002A4419E3, 0x000000010DA6F53E}, + [_]u64{0x80000000078644FA, 0x000000037FFFFFFF, 0x0000000024924924, 0x000000022C188E1E}, + [_]u64{0x80000000078644FA, 0x0000000380000000, 0x0000000024924924, 0x00000002078644FA}, + [_]u64{0x80000000078644FA, 0x00000003FFFFFFFD, 0x0000000020000000, 0x00000000678644FA}, + [_]u64{0x80000000078644FA, 0x00000003FFFFFFFE, 0x0000000020000000, 0x00000000478644FA}, + [_]u64{0x80000000078644FA, 0x00000003FFFFFFFF, 0x0000000020000000, 0x00000000278644FA}, + [_]u64{0x80000000078644FA, 0x0000001000000000, 0x0000000008000000, 0x00000000078644FA}, + [_]u64{0x80000000078644FA, 0x0000001000000001, 0x0000000007FFFFFF, 0x0000000FFF8644FB}, + [_]u64{0x80000000078644FA, 0x0000001000000002, 0x0000000007FFFFFF, 0x0000000FF78644FC}, + [_]u64{0x80000000078644FA, 0x0000001000000003, 0x0000000007FFFFFF, 0x0000000FEF8644FD}, + [_]u64{0x80000000078644FA, 0x0000001000000010, 0x0000000007FFFFFF, 0x0000000F8786450A}, + [_]u64{0x80000000078644FA, 0x00000010078644FA, 0x0000000007FC3EA1, 0x0000000A0B4857C0}, + [_]u64{0x80000000078644FA, 0x000000100747AE14, 0x0000000007FC5DD0, 0x000000032B5B90BA}, + [_]u64{0x80000000078644FA, 0x000000107FFFFFFF, 0x0000000007C1F07C, 0x000000020F483576}, + [_]u64{0x80000000078644FA, 0x0000001080000000, 0x0000000007C1F07C, 0x00000002078644FA}, + [_]u64{0x80000000078644FA, 0x00000010FFFFFFFD, 0x0000000007878787, 0x000000091E1CDB8F}, + [_]u64{0x80000000078644FA, 0x00000010FFFFFFFE, 0x0000000007878787, 0x0000000916955408}, + [_]u64{0x80000000078644FA, 0x00000010FFFFFFFF, 0x0000000007878787, 0x000000090F0DCC81}, + [_]u64{0x80000000078644FA, 0x078644FA00000000, 0x0000000000000011, 0x00156B66078644FA}, + [_]u64{0x80000000078644FA, 0x078644FA00000001, 0x0000000000000011, 0x00156B66078644E9}, + [_]u64{0x80000000078644FA, 0x078644FA00000002, 0x0000000000000011, 0x00156B66078644D8}, + [_]u64{0x80000000078644FA, 0x078644FA00000003, 0x0000000000000011, 0x00156B66078644C7}, + [_]u64{0x80000000078644FA, 0x078644FA00000010, 0x0000000000000011, 0x00156B66078643EA}, + [_]u64{0x80000000078644FA, 0x078644FA078644FA, 0x0000000000000011, 0x00156B65879BB060}, + [_]u64{0x80000000078644FA, 0x078644FA0747AE14, 0x0000000000000011, 0x00156B658BC3B5A6}, + [_]u64{0x80000000078644FA, 0x078644FA7FFFFFFF, 0x0000000000000011, 0x00156B5D8786450B}, + [_]u64{0x80000000078644FA, 0x078644FA80000000, 0x0000000000000011, 0x00156B5D878644FA}, + [_]u64{0x80000000078644FA, 0x078644FAFFFFFFFD, 0x0000000000000011, 0x00156B550786452D}, + [_]u64{0x80000000078644FA, 0x078644FAFFFFFFFE, 0x0000000000000011, 0x00156B550786451C}, + [_]u64{0x80000000078644FA, 0x078644FAFFFFFFFF, 0x0000000000000011, 0x00156B550786450B}, + [_]u64{0x80000000078644FA, 0x0747AE1400000000, 0x0000000000000011, 0x043D70AC078644FA}, + [_]u64{0x80000000078644FA, 0x0747AE1400000001, 0x0000000000000011, 0x043D70AC078644E9}, + [_]u64{0x80000000078644FA, 0x0747AE1400000002, 0x0000000000000011, 0x043D70AC078644D8}, + [_]u64{0x80000000078644FA, 0x0747AE1400000003, 0x0000000000000011, 0x043D70AC078644C7}, + [_]u64{0x80000000078644FA, 0x0747AE1400000010, 0x0000000000000011, 0x043D70AC078643EA}, + [_]u64{0x80000000078644FA, 0x0747AE14078644FA, 0x0000000000000011, 0x043D70AB879BB060}, + [_]u64{0x80000000078644FA, 0x0747AE140747AE14, 0x0000000000000011, 0x043D70AB8BC3B5A6}, + [_]u64{0x80000000078644FA, 0x0747AE147FFFFFFF, 0x0000000000000011, 0x043D70A38786450B}, + [_]u64{0x80000000078644FA, 0x0747AE1480000000, 0x0000000000000011, 0x043D70A3878644FA}, + [_]u64{0x80000000078644FA, 0x0747AE14FFFFFFFD, 0x0000000000000011, 0x043D709B0786452D}, + [_]u64{0x80000000078644FA, 0x0747AE14FFFFFFFE, 0x0000000000000011, 0x043D709B0786451C}, + [_]u64{0x80000000078644FA, 0x0747AE14FFFFFFFF, 0x0000000000000011, 0x043D709B0786450B}, + [_]u64{0x80000000078644FA, 0x7FFFFFFF00000000, 0x0000000000000001, 0x00000001078644FA}, + [_]u64{0x80000000078644FA, 0x7FFFFFFF00000001, 0x0000000000000001, 0x00000001078644F9}, + [_]u64{0x80000000078644FA, 0x7FFFFFFF00000002, 0x0000000000000001, 0x00000001078644F8}, + [_]u64{0x80000000078644FA, 0x7FFFFFFF00000003, 0x0000000000000001, 0x00000001078644F7}, + [_]u64{0x80000000078644FA, 0x7FFFFFFF00000010, 0x0000000000000001, 0x00000001078644EA}, + [_]u64{0x80000000078644FA, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x80000000078644FA, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x00000001003E96E6}, + [_]u64{0x80000000078644FA, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x00000000878644FB}, + [_]u64{0x80000000078644FA, 0x7FFFFFFF80000000, 0x0000000000000001, 0x00000000878644FA}, + [_]u64{0x80000000078644FA, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x00000000078644FD}, + [_]u64{0x80000000078644FA, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x00000000078644FC}, + [_]u64{0x80000000078644FA, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x00000000078644FB}, + [_]u64{0x80000000078644FA, 0x8000000000000000, 0x0000000000000001, 0x00000000078644FA}, + [_]u64{0x80000000078644FA, 0x8000000000000001, 0x0000000000000001, 0x00000000078644F9}, + [_]u64{0x80000000078644FA, 0x8000000000000002, 0x0000000000000001, 0x00000000078644F8}, + [_]u64{0x80000000078644FA, 0x8000000000000003, 0x0000000000000001, 0x00000000078644F7}, + [_]u64{0x80000000078644FA, 0x8000000000000010, 0x0000000000000001, 0x00000000078644EA}, + [_]u64{0x80000000078644FA, 0x80000000078644FA, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x80000000078644FA, 0x800000000747AE14, 0x0000000000000001, 0x00000000003E96E6}, + [_]u64{0x80000000078644FA, 0x800000007FFFFFFF, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0x8000000080000000, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0x80000000FFFFFFFD, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0x80000000FFFFFFFE, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0x80000000FFFFFFFF, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFD00000000, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFD00000001, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFD00000002, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFD00000003, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFD00000010, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFD80000000, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFE00000000, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFE00000001, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFE00000002, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFE00000003, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFE00000010, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFE80000000, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFF00000000, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFF00000001, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFF00000002, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFF00000003, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFF00000010, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFF80000000, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x80000000078644FA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x80000000078644FA}, + [_]u64{0x800000000747AE14, 0x0000000000000001, 0x800000000747AE14, 0x0000000000000000}, + [_]u64{0x800000000747AE14, 0x0000000000000002, 0x4000000003A3D70A, 0x0000000000000000}, + [_]u64{0x800000000747AE14, 0x0000000000000003, 0x2AAAAAAAAD17E4B1, 0x0000000000000001}, + [_]u64{0x800000000747AE14, 0x0000000000000010, 0x0800000000747AE1, 0x0000000000000004}, + [_]u64{0x800000000747AE14, 0x00000000078644FA, 0x0000001102D8BD7F, 0x0000000003CEE40E}, + [_]u64{0x800000000747AE14, 0x000000000747AE14, 0x00000011951952BE, 0x00000000065E133C}, + [_]u64{0x800000000747AE14, 0x000000007FFFFFFF, 0x0000000100000002, 0x000000000747AE16}, + [_]u64{0x800000000747AE14, 0x0000000080000000, 0x0000000100000000, 0x000000000747AE14}, + [_]u64{0x800000000747AE14, 0x00000000FFFFFFFD, 0x0000000080000001, 0x000000008747AE17}, + [_]u64{0x800000000747AE14, 0x00000000FFFFFFFE, 0x0000000080000001, 0x000000000747AE16}, + [_]u64{0x800000000747AE14, 0x00000000FFFFFFFF, 0x0000000080000000, 0x000000008747AE14}, + [_]u64{0x800000000747AE14, 0x0000000100000000, 0x0000000080000000, 0x000000000747AE14}, + [_]u64{0x800000000747AE14, 0x0000000100000001, 0x000000007FFFFFFF, 0x000000008747AE15}, + [_]u64{0x800000000747AE14, 0x0000000100000002, 0x000000007FFFFFFF, 0x000000000747AE16}, + [_]u64{0x800000000747AE14, 0x0000000100000003, 0x000000007FFFFFFE, 0x000000008747AE1A}, + [_]u64{0x800000000747AE14, 0x0000000100000010, 0x000000007FFFFFF8, 0x000000000747AE94}, + [_]u64{0x800000000747AE14, 0x00000001078644FA, 0x000000007C585DAE, 0x000000005505FA28}, + [_]u64{0x800000000747AE14, 0x000000010747AE14, 0x000000007C75ED2D, 0x0000000024619090}, + [_]u64{0x800000000747AE14, 0x000000017FFFFFFF, 0x0000000055555555, 0x00000000DC9D0369}, + [_]u64{0x800000000747AE14, 0x0000000180000000, 0x0000000055555555, 0x000000008747AE14}, + [_]u64{0x800000000747AE14, 0x00000001FFFFFFFD, 0x0000000040000000, 0x00000000C747AE14}, + [_]u64{0x800000000747AE14, 0x00000001FFFFFFFE, 0x0000000040000000, 0x000000008747AE14}, + [_]u64{0x800000000747AE14, 0x00000001FFFFFFFF, 0x0000000040000000, 0x000000004747AE14}, + [_]u64{0x800000000747AE14, 0x0000000200000000, 0x0000000040000000, 0x000000000747AE14}, + [_]u64{0x800000000747AE14, 0x0000000200000001, 0x000000003FFFFFFF, 0x00000001C747AE15}, + [_]u64{0x800000000747AE14, 0x0000000200000002, 0x000000003FFFFFFF, 0x000000018747AE16}, + [_]u64{0x800000000747AE14, 0x0000000200000003, 0x000000003FFFFFFF, 0x000000014747AE17}, + [_]u64{0x800000000747AE14, 0x0000000200000010, 0x000000003FFFFFFE, 0x000000000747AE34}, + [_]u64{0x800000000747AE14, 0x00000002078644FA, 0x000000003F12B425, 0x0000000028CBEDF2}, + [_]u64{0x800000000747AE14, 0x000000020747AE14, 0x000000003F1A4E53, 0x0000000139F82598}, + [_]u64{0x800000000747AE14, 0x000000027FFFFFFF, 0x0000000033333333, 0x00000000BA7AE147}, + [_]u64{0x800000000747AE14, 0x0000000280000000, 0x0000000033333333, 0x000000008747AE14}, + [_]u64{0x800000000747AE14, 0x00000002FFFFFFFD, 0x000000002AAAAAAA, 0x000000028747AE12}, + [_]u64{0x800000000747AE14, 0x00000002FFFFFFFE, 0x000000002AAAAAAA, 0x000000025C9D0368}, + [_]u64{0x800000000747AE14, 0x00000002FFFFFFFF, 0x000000002AAAAAAA, 0x0000000231F258BE}, + [_]u64{0x800000000747AE14, 0x0000000300000000, 0x000000002AAAAAAA, 0x000000020747AE14}, + [_]u64{0x800000000747AE14, 0x0000000300000001, 0x000000002AAAAAAA, 0x00000001DC9D036A}, + [_]u64{0x800000000747AE14, 0x0000000300000002, 0x000000002AAAAAAA, 0x00000001B1F258C0}, + [_]u64{0x800000000747AE14, 0x0000000300000003, 0x000000002AAAAAAA, 0x000000018747AE16}, + [_]u64{0x800000000747AE14, 0x0000000300000010, 0x000000002AAAAAA9, 0x000000025C9D0384}, + [_]u64{0x800000000747AE14, 0x00000003078644FA, 0x000000002A40B0A4, 0x00000000A3579DEC}, + [_]u64{0x800000000747AE14, 0x000000030747AE14, 0x000000002A4419E3, 0x000000010D685E58}, + [_]u64{0x800000000747AE14, 0x000000037FFFFFFF, 0x0000000024924924, 0x000000022BD9F738}, + [_]u64{0x800000000747AE14, 0x0000000380000000, 0x0000000024924924, 0x000000020747AE14}, + [_]u64{0x800000000747AE14, 0x00000003FFFFFFFD, 0x0000000020000000, 0x000000006747AE14}, + [_]u64{0x800000000747AE14, 0x00000003FFFFFFFE, 0x0000000020000000, 0x000000004747AE14}, + [_]u64{0x800000000747AE14, 0x00000003FFFFFFFF, 0x0000000020000000, 0x000000002747AE14}, + [_]u64{0x800000000747AE14, 0x0000001000000000, 0x0000000008000000, 0x000000000747AE14}, + [_]u64{0x800000000747AE14, 0x0000001000000001, 0x0000000007FFFFFF, 0x0000000FFF47AE15}, + [_]u64{0x800000000747AE14, 0x0000001000000002, 0x0000000007FFFFFF, 0x0000000FF747AE16}, + [_]u64{0x800000000747AE14, 0x0000001000000003, 0x0000000007FFFFFF, 0x0000000FEF47AE17}, + [_]u64{0x800000000747AE14, 0x0000001000000010, 0x0000000007FFFFFF, 0x0000000F8747AE24}, + [_]u64{0x800000000747AE14, 0x00000010078644FA, 0x0000000007FC3EA1, 0x0000000A0B09C0DA}, + [_]u64{0x800000000747AE14, 0x000000100747AE14, 0x0000000007FC5DD0, 0x000000032B1CF9D4}, + [_]u64{0x800000000747AE14, 0x000000107FFFFFFF, 0x0000000007C1F07C, 0x000000020F099E90}, + [_]u64{0x800000000747AE14, 0x0000001080000000, 0x0000000007C1F07C, 0x000000020747AE14}, + [_]u64{0x800000000747AE14, 0x00000010FFFFFFFD, 0x0000000007878787, 0x000000091DDE44A9}, + [_]u64{0x800000000747AE14, 0x00000010FFFFFFFE, 0x0000000007878787, 0x000000091656BD22}, + [_]u64{0x800000000747AE14, 0x00000010FFFFFFFF, 0x0000000007878787, 0x000000090ECF359B}, + [_]u64{0x800000000747AE14, 0x078644FA00000000, 0x0000000000000011, 0x00156B660747AE14}, + [_]u64{0x800000000747AE14, 0x078644FA00000001, 0x0000000000000011, 0x00156B660747AE03}, + [_]u64{0x800000000747AE14, 0x078644FA00000002, 0x0000000000000011, 0x00156B660747ADF2}, + [_]u64{0x800000000747AE14, 0x078644FA00000003, 0x0000000000000011, 0x00156B660747ADE1}, + [_]u64{0x800000000747AE14, 0x078644FA00000010, 0x0000000000000011, 0x00156B660747AD04}, + [_]u64{0x800000000747AE14, 0x078644FA078644FA, 0x0000000000000011, 0x00156B65875D197A}, + [_]u64{0x800000000747AE14, 0x078644FA0747AE14, 0x0000000000000011, 0x00156B658B851EC0}, + [_]u64{0x800000000747AE14, 0x078644FA7FFFFFFF, 0x0000000000000011, 0x00156B5D8747AE25}, + [_]u64{0x800000000747AE14, 0x078644FA80000000, 0x0000000000000011, 0x00156B5D8747AE14}, + [_]u64{0x800000000747AE14, 0x078644FAFFFFFFFD, 0x0000000000000011, 0x00156B550747AE47}, + [_]u64{0x800000000747AE14, 0x078644FAFFFFFFFE, 0x0000000000000011, 0x00156B550747AE36}, + [_]u64{0x800000000747AE14, 0x078644FAFFFFFFFF, 0x0000000000000011, 0x00156B550747AE25}, + [_]u64{0x800000000747AE14, 0x0747AE1400000000, 0x0000000000000011, 0x043D70AC0747AE14}, + [_]u64{0x800000000747AE14, 0x0747AE1400000001, 0x0000000000000011, 0x043D70AC0747AE03}, + [_]u64{0x800000000747AE14, 0x0747AE1400000002, 0x0000000000000011, 0x043D70AC0747ADF2}, + [_]u64{0x800000000747AE14, 0x0747AE1400000003, 0x0000000000000011, 0x043D70AC0747ADE1}, + [_]u64{0x800000000747AE14, 0x0747AE1400000010, 0x0000000000000011, 0x043D70AC0747AD04}, + [_]u64{0x800000000747AE14, 0x0747AE14078644FA, 0x0000000000000011, 0x043D70AB875D197A}, + [_]u64{0x800000000747AE14, 0x0747AE140747AE14, 0x0000000000000011, 0x043D70AB8B851EC0}, + [_]u64{0x800000000747AE14, 0x0747AE147FFFFFFF, 0x0000000000000011, 0x043D70A38747AE25}, + [_]u64{0x800000000747AE14, 0x0747AE1480000000, 0x0000000000000011, 0x043D70A38747AE14}, + [_]u64{0x800000000747AE14, 0x0747AE14FFFFFFFD, 0x0000000000000011, 0x043D709B0747AE47}, + [_]u64{0x800000000747AE14, 0x0747AE14FFFFFFFE, 0x0000000000000011, 0x043D709B0747AE36}, + [_]u64{0x800000000747AE14, 0x0747AE14FFFFFFFF, 0x0000000000000011, 0x043D709B0747AE25}, + [_]u64{0x800000000747AE14, 0x7FFFFFFF00000000, 0x0000000000000001, 0x000000010747AE14}, + [_]u64{0x800000000747AE14, 0x7FFFFFFF00000001, 0x0000000000000001, 0x000000010747AE13}, + [_]u64{0x800000000747AE14, 0x7FFFFFFF00000002, 0x0000000000000001, 0x000000010747AE12}, + [_]u64{0x800000000747AE14, 0x7FFFFFFF00000003, 0x0000000000000001, 0x000000010747AE11}, + [_]u64{0x800000000747AE14, 0x7FFFFFFF00000010, 0x0000000000000001, 0x000000010747AE04}, + [_]u64{0x800000000747AE14, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x00000000FFC1691A}, + [_]u64{0x800000000747AE14, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x800000000747AE14, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x000000008747AE15}, + [_]u64{0x800000000747AE14, 0x7FFFFFFF80000000, 0x0000000000000001, 0x000000008747AE14}, + [_]u64{0x800000000747AE14, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x000000000747AE17}, + [_]u64{0x800000000747AE14, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x000000000747AE16}, + [_]u64{0x800000000747AE14, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x000000000747AE15}, + [_]u64{0x800000000747AE14, 0x8000000000000000, 0x0000000000000001, 0x000000000747AE14}, + [_]u64{0x800000000747AE14, 0x8000000000000001, 0x0000000000000001, 0x000000000747AE13}, + [_]u64{0x800000000747AE14, 0x8000000000000002, 0x0000000000000001, 0x000000000747AE12}, + [_]u64{0x800000000747AE14, 0x8000000000000003, 0x0000000000000001, 0x000000000747AE11}, + [_]u64{0x800000000747AE14, 0x8000000000000010, 0x0000000000000001, 0x000000000747AE04}, + [_]u64{0x800000000747AE14, 0x80000000078644FA, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0x800000000747AE14, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x800000000747AE14, 0x800000007FFFFFFF, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0x8000000080000000, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0x80000000FFFFFFFD, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0x80000000FFFFFFFE, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0x80000000FFFFFFFF, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFD00000000, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFD00000001, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFD00000002, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFD00000003, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFD00000010, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFD80000000, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFE00000000, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFE00000001, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFE00000002, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFE00000003, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFE00000010, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFE80000000, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFF00000000, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFF00000001, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFF00000002, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFF00000003, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFF00000010, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFF80000000, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000000747AE14, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x800000000747AE14}, + [_]u64{0x800000007FFFFFFF, 0x0000000000000001, 0x800000007FFFFFFF, 0x0000000000000000}, + [_]u64{0x800000007FFFFFFF, 0x0000000000000002, 0x400000003FFFFFFF, 0x0000000000000001}, + [_]u64{0x800000007FFFFFFF, 0x0000000000000003, 0x2AAAAAAAD5555555, 0x0000000000000000}, + [_]u64{0x800000007FFFFFFF, 0x0000000000000010, 0x0800000007FFFFFF, 0x000000000000000F}, + [_]u64{0x800000007FFFFFFF, 0x00000000078644FA, 0x0000001102D8BD8F, 0x000000000422E659}, + [_]u64{0x800000007FFFFFFF, 0x000000000747AE14, 0x00000011951952CF, 0x000000000353D5D3}, + [_]u64{0x800000007FFFFFFF, 0x000000007FFFFFFF, 0x0000000100000003, 0x0000000000000002}, + [_]u64{0x800000007FFFFFFF, 0x0000000080000000, 0x0000000100000000, 0x000000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x00000000FFFFFFFD, 0x0000000080000002, 0x0000000000000005}, + [_]u64{0x800000007FFFFFFF, 0x00000000FFFFFFFE, 0x0000000080000001, 0x0000000080000001}, + [_]u64{0x800000007FFFFFFF, 0x00000000FFFFFFFF, 0x0000000080000001, 0x0000000000000000}, + [_]u64{0x800000007FFFFFFF, 0x0000000100000000, 0x0000000080000000, 0x000000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x0000000100000001, 0x000000007FFFFFFF, 0x0000000100000000}, + [_]u64{0x800000007FFFFFFF, 0x0000000100000002, 0x000000007FFFFFFF, 0x0000000080000001}, + [_]u64{0x800000007FFFFFFF, 0x0000000100000003, 0x000000007FFFFFFF, 0x0000000000000002}, + [_]u64{0x800000007FFFFFFF, 0x0000000100000010, 0x000000007FFFFFF8, 0x000000008000007F}, + [_]u64{0x800000007FFFFFFF, 0x00000001078644FA, 0x000000007C585DAE, 0x00000000CDBE4C13}, + [_]u64{0x800000007FFFFFFF, 0x000000010747AE14, 0x000000007C75ED2D, 0x000000009D19E27B}, + [_]u64{0x800000007FFFFFFF, 0x000000017FFFFFFF, 0x0000000055555555, 0x0000000155555554}, + [_]u64{0x800000007FFFFFFF, 0x0000000180000000, 0x0000000055555555, 0x00000000FFFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x00000001FFFFFFFD, 0x0000000040000000, 0x000000013FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x00000001FFFFFFFE, 0x0000000040000000, 0x00000000FFFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x00000001FFFFFFFF, 0x0000000040000000, 0x00000000BFFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x0000000200000000, 0x0000000040000000, 0x000000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x0000000200000001, 0x0000000040000000, 0x000000003FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x0000000200000002, 0x000000003FFFFFFF, 0x0000000200000001}, + [_]u64{0x800000007FFFFFFF, 0x0000000200000003, 0x000000003FFFFFFF, 0x00000001C0000002}, + [_]u64{0x800000007FFFFFFF, 0x0000000200000010, 0x000000003FFFFFFE, 0x000000008000001F}, + [_]u64{0x800000007FFFFFFF, 0x00000002078644FA, 0x000000003F12B425, 0x00000000A1843FDD}, + [_]u64{0x800000007FFFFFFF, 0x000000020747AE14, 0x000000003F1A4E53, 0x00000001B2B07783}, + [_]u64{0x800000007FFFFFFF, 0x000000027FFFFFFF, 0x0000000033333333, 0x0000000133333332}, + [_]u64{0x800000007FFFFFFF, 0x0000000280000000, 0x0000000033333333, 0x00000000FFFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x00000002FFFFFFFD, 0x000000002AAAAAAB, 0x0000000000000000}, + [_]u64{0x800000007FFFFFFF, 0x00000002FFFFFFFE, 0x000000002AAAAAAA, 0x00000002D5555553}, + [_]u64{0x800000007FFFFFFF, 0x00000002FFFFFFFF, 0x000000002AAAAAAA, 0x00000002AAAAAAA9}, + [_]u64{0x800000007FFFFFFF, 0x0000000300000000, 0x000000002AAAAAAA, 0x000000027FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x0000000300000001, 0x000000002AAAAAAA, 0x0000000255555555}, + [_]u64{0x800000007FFFFFFF, 0x0000000300000002, 0x000000002AAAAAAA, 0x000000022AAAAAAB}, + [_]u64{0x800000007FFFFFFF, 0x0000000300000003, 0x000000002AAAAAAA, 0x0000000200000001}, + [_]u64{0x800000007FFFFFFF, 0x0000000300000010, 0x000000002AAAAAA9, 0x00000002D555556F}, + [_]u64{0x800000007FFFFFFF, 0x00000003078644FA, 0x000000002A40B0A4, 0x000000011C0FEFD7}, + [_]u64{0x800000007FFFFFFF, 0x000000030747AE14, 0x000000002A4419E3, 0x000000018620B043}, + [_]u64{0x800000007FFFFFFF, 0x000000037FFFFFFF, 0x0000000024924924, 0x00000002A4924923}, + [_]u64{0x800000007FFFFFFF, 0x0000000380000000, 0x0000000024924924, 0x000000027FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x00000003FFFFFFFD, 0x0000000020000000, 0x00000000DFFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x00000003FFFFFFFE, 0x0000000020000000, 0x00000000BFFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x00000003FFFFFFFF, 0x0000000020000000, 0x000000009FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x0000001000000000, 0x0000000008000000, 0x000000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x0000001000000001, 0x0000000008000000, 0x0000000077FFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x0000001000000002, 0x0000000008000000, 0x000000006FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x0000001000000003, 0x0000000008000000, 0x0000000067FFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x0000001000000010, 0x0000000007FFFFFF, 0x000000100000000F}, + [_]u64{0x800000007FFFFFFF, 0x00000010078644FA, 0x0000000007FC3EA1, 0x0000000A83C212C5}, + [_]u64{0x800000007FFFFFFF, 0x000000100747AE14, 0x0000000007FC5DD0, 0x00000003A3D54BBF}, + [_]u64{0x800000007FFFFFFF, 0x000000107FFFFFFF, 0x0000000007C1F07C, 0x0000000287C1F07B}, + [_]u64{0x800000007FFFFFFF, 0x0000001080000000, 0x0000000007C1F07C, 0x000000027FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x00000010FFFFFFFD, 0x0000000007878787, 0x0000000996969694}, + [_]u64{0x800000007FFFFFFF, 0x00000010FFFFFFFE, 0x0000000007878787, 0x000000098F0F0F0D}, + [_]u64{0x800000007FFFFFFF, 0x00000010FFFFFFFF, 0x0000000007878787, 0x0000000987878786}, + [_]u64{0x800000007FFFFFFF, 0x078644FA00000000, 0x0000000000000011, 0x00156B667FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x078644FA00000001, 0x0000000000000011, 0x00156B667FFFFFEE}, + [_]u64{0x800000007FFFFFFF, 0x078644FA00000002, 0x0000000000000011, 0x00156B667FFFFFDD}, + [_]u64{0x800000007FFFFFFF, 0x078644FA00000003, 0x0000000000000011, 0x00156B667FFFFFCC}, + [_]u64{0x800000007FFFFFFF, 0x078644FA00000010, 0x0000000000000011, 0x00156B667FFFFEEF}, + [_]u64{0x800000007FFFFFFF, 0x078644FA078644FA, 0x0000000000000011, 0x00156B6600156B65}, + [_]u64{0x800000007FFFFFFF, 0x078644FA0747AE14, 0x0000000000000011, 0x00156B66043D70AB}, + [_]u64{0x800000007FFFFFFF, 0x078644FA7FFFFFFF, 0x0000000000000011, 0x00156B5E00000010}, + [_]u64{0x800000007FFFFFFF, 0x078644FA80000000, 0x0000000000000011, 0x00156B5DFFFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x078644FAFFFFFFFD, 0x0000000000000011, 0x00156B5580000032}, + [_]u64{0x800000007FFFFFFF, 0x078644FAFFFFFFFE, 0x0000000000000011, 0x00156B5580000021}, + [_]u64{0x800000007FFFFFFF, 0x078644FAFFFFFFFF, 0x0000000000000011, 0x00156B5580000010}, + [_]u64{0x800000007FFFFFFF, 0x0747AE1400000000, 0x0000000000000011, 0x043D70AC7FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x0747AE1400000001, 0x0000000000000011, 0x043D70AC7FFFFFEE}, + [_]u64{0x800000007FFFFFFF, 0x0747AE1400000002, 0x0000000000000011, 0x043D70AC7FFFFFDD}, + [_]u64{0x800000007FFFFFFF, 0x0747AE1400000003, 0x0000000000000011, 0x043D70AC7FFFFFCC}, + [_]u64{0x800000007FFFFFFF, 0x0747AE1400000010, 0x0000000000000011, 0x043D70AC7FFFFEEF}, + [_]u64{0x800000007FFFFFFF, 0x0747AE14078644FA, 0x0000000000000011, 0x043D70AC00156B65}, + [_]u64{0x800000007FFFFFFF, 0x0747AE140747AE14, 0x0000000000000011, 0x043D70AC043D70AB}, + [_]u64{0x800000007FFFFFFF, 0x0747AE147FFFFFFF, 0x0000000000000011, 0x043D70A400000010}, + [_]u64{0x800000007FFFFFFF, 0x0747AE1480000000, 0x0000000000000011, 0x043D70A3FFFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x0747AE14FFFFFFFD, 0x0000000000000011, 0x043D709B80000032}, + [_]u64{0x800000007FFFFFFF, 0x0747AE14FFFFFFFE, 0x0000000000000011, 0x043D709B80000021}, + [_]u64{0x800000007FFFFFFF, 0x0747AE14FFFFFFFF, 0x0000000000000011, 0x043D709B80000010}, + [_]u64{0x800000007FFFFFFF, 0x7FFFFFFF00000000, 0x0000000000000001, 0x000000017FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x7FFFFFFF00000001, 0x0000000000000001, 0x000000017FFFFFFE}, + [_]u64{0x800000007FFFFFFF, 0x7FFFFFFF00000002, 0x0000000000000001, 0x000000017FFFFFFD}, + [_]u64{0x800000007FFFFFFF, 0x7FFFFFFF00000003, 0x0000000000000001, 0x000000017FFFFFFC}, + [_]u64{0x800000007FFFFFFF, 0x7FFFFFFF00000010, 0x0000000000000001, 0x000000017FFFFFEF}, + [_]u64{0x800000007FFFFFFF, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x000000017879BB05}, + [_]u64{0x800000007FFFFFFF, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x0000000178B851EB}, + [_]u64{0x800000007FFFFFFF, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x800000007FFFFFFF, 0x7FFFFFFF80000000, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x0000000080000002}, + [_]u64{0x800000007FFFFFFF, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x0000000080000001}, + [_]u64{0x800000007FFFFFFF, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0x800000007FFFFFFF, 0x8000000000000000, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x8000000000000001, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x800000007FFFFFFF, 0x8000000000000002, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0x800000007FFFFFFF, 0x8000000000000003, 0x0000000000000001, 0x000000007FFFFFFC}, + [_]u64{0x800000007FFFFFFF, 0x8000000000000010, 0x0000000000000001, 0x000000007FFFFFEF}, + [_]u64{0x800000007FFFFFFF, 0x80000000078644FA, 0x0000000000000001, 0x000000007879BB05}, + [_]u64{0x800000007FFFFFFF, 0x800000000747AE14, 0x0000000000000001, 0x0000000078B851EB}, + [_]u64{0x800000007FFFFFFF, 0x800000007FFFFFFF, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x800000007FFFFFFF, 0x8000000080000000, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x80000000FFFFFFFD, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x80000000FFFFFFFE, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0x80000000FFFFFFFF, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFD00000000, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFD00000001, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFD00000002, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFD00000003, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFD00000010, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFD80000000, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFE00000000, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFE00000001, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFE00000002, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFE00000003, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFE00000010, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFE80000000, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFF00000000, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFF00000001, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFF00000002, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFF00000003, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFF00000010, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFF80000000, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x800000007FFFFFFF, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x800000007FFFFFFF}, + [_]u64{0x8000000080000000, 0x0000000000000001, 0x8000000080000000, 0x0000000000000000}, + [_]u64{0x8000000080000000, 0x0000000000000002, 0x4000000040000000, 0x0000000000000000}, + [_]u64{0x8000000080000000, 0x0000000000000003, 0x2AAAAAAAD5555555, 0x0000000000000001}, + [_]u64{0x8000000080000000, 0x0000000000000010, 0x0800000008000000, 0x0000000000000000}, + [_]u64{0x8000000080000000, 0x00000000078644FA, 0x0000001102D8BD8F, 0x000000000422E65A}, + [_]u64{0x8000000080000000, 0x000000000747AE14, 0x00000011951952CF, 0x000000000353D5D4}, + [_]u64{0x8000000080000000, 0x000000007FFFFFFF, 0x0000000100000003, 0x0000000000000003}, + [_]u64{0x8000000080000000, 0x0000000080000000, 0x0000000100000001, 0x0000000000000000}, + [_]u64{0x8000000080000000, 0x00000000FFFFFFFD, 0x0000000080000002, 0x0000000000000006}, + [_]u64{0x8000000080000000, 0x00000000FFFFFFFE, 0x0000000080000001, 0x0000000080000002}, + [_]u64{0x8000000080000000, 0x00000000FFFFFFFF, 0x0000000080000001, 0x0000000000000001}, + [_]u64{0x8000000080000000, 0x0000000100000000, 0x0000000080000000, 0x0000000080000000}, + [_]u64{0x8000000080000000, 0x0000000100000001, 0x0000000080000000, 0x0000000000000000}, + [_]u64{0x8000000080000000, 0x0000000100000002, 0x000000007FFFFFFF, 0x0000000080000002}, + [_]u64{0x8000000080000000, 0x0000000100000003, 0x000000007FFFFFFF, 0x0000000000000003}, + [_]u64{0x8000000080000000, 0x0000000100000010, 0x000000007FFFFFF8, 0x0000000080000080}, + [_]u64{0x8000000080000000, 0x00000001078644FA, 0x000000007C585DAE, 0x00000000CDBE4C14}, + [_]u64{0x8000000080000000, 0x000000010747AE14, 0x000000007C75ED2D, 0x000000009D19E27C}, + [_]u64{0x8000000080000000, 0x000000017FFFFFFF, 0x0000000055555555, 0x0000000155555555}, + [_]u64{0x8000000080000000, 0x0000000180000000, 0x0000000055555555, 0x0000000100000000}, + [_]u64{0x8000000080000000, 0x00000001FFFFFFFD, 0x0000000040000000, 0x0000000140000000}, + [_]u64{0x8000000080000000, 0x00000001FFFFFFFE, 0x0000000040000000, 0x0000000100000000}, + [_]u64{0x8000000080000000, 0x00000001FFFFFFFF, 0x0000000040000000, 0x00000000C0000000}, + [_]u64{0x8000000080000000, 0x0000000200000000, 0x0000000040000000, 0x0000000080000000}, + [_]u64{0x8000000080000000, 0x0000000200000001, 0x0000000040000000, 0x0000000040000000}, + [_]u64{0x8000000080000000, 0x0000000200000002, 0x0000000040000000, 0x0000000000000000}, + [_]u64{0x8000000080000000, 0x0000000200000003, 0x000000003FFFFFFF, 0x00000001C0000003}, + [_]u64{0x8000000080000000, 0x0000000200000010, 0x000000003FFFFFFE, 0x0000000080000020}, + [_]u64{0x8000000080000000, 0x00000002078644FA, 0x000000003F12B425, 0x00000000A1843FDE}, + [_]u64{0x8000000080000000, 0x000000020747AE14, 0x000000003F1A4E53, 0x00000001B2B07784}, + [_]u64{0x8000000080000000, 0x000000027FFFFFFF, 0x0000000033333333, 0x0000000133333333}, + [_]u64{0x8000000080000000, 0x0000000280000000, 0x0000000033333333, 0x0000000100000000}, + [_]u64{0x8000000080000000, 0x00000002FFFFFFFD, 0x000000002AAAAAAB, 0x0000000000000001}, + [_]u64{0x8000000080000000, 0x00000002FFFFFFFE, 0x000000002AAAAAAA, 0x00000002D5555554}, + [_]u64{0x8000000080000000, 0x00000002FFFFFFFF, 0x000000002AAAAAAA, 0x00000002AAAAAAAA}, + [_]u64{0x8000000080000000, 0x0000000300000000, 0x000000002AAAAAAA, 0x0000000280000000}, + [_]u64{0x8000000080000000, 0x0000000300000001, 0x000000002AAAAAAA, 0x0000000255555556}, + [_]u64{0x8000000080000000, 0x0000000300000002, 0x000000002AAAAAAA, 0x000000022AAAAAAC}, + [_]u64{0x8000000080000000, 0x0000000300000003, 0x000000002AAAAAAA, 0x0000000200000002}, + [_]u64{0x8000000080000000, 0x0000000300000010, 0x000000002AAAAAA9, 0x00000002D5555570}, + [_]u64{0x8000000080000000, 0x00000003078644FA, 0x000000002A40B0A4, 0x000000011C0FEFD8}, + [_]u64{0x8000000080000000, 0x000000030747AE14, 0x000000002A4419E3, 0x000000018620B044}, + [_]u64{0x8000000080000000, 0x000000037FFFFFFF, 0x0000000024924924, 0x00000002A4924924}, + [_]u64{0x8000000080000000, 0x0000000380000000, 0x0000000024924924, 0x0000000280000000}, + [_]u64{0x8000000080000000, 0x00000003FFFFFFFD, 0x0000000020000000, 0x00000000E0000000}, + [_]u64{0x8000000080000000, 0x00000003FFFFFFFE, 0x0000000020000000, 0x00000000C0000000}, + [_]u64{0x8000000080000000, 0x00000003FFFFFFFF, 0x0000000020000000, 0x00000000A0000000}, + [_]u64{0x8000000080000000, 0x0000001000000000, 0x0000000008000000, 0x0000000080000000}, + [_]u64{0x8000000080000000, 0x0000001000000001, 0x0000000008000000, 0x0000000078000000}, + [_]u64{0x8000000080000000, 0x0000001000000002, 0x0000000008000000, 0x0000000070000000}, + [_]u64{0x8000000080000000, 0x0000001000000003, 0x0000000008000000, 0x0000000068000000}, + [_]u64{0x8000000080000000, 0x0000001000000010, 0x0000000008000000, 0x0000000000000000}, + [_]u64{0x8000000080000000, 0x00000010078644FA, 0x0000000007FC3EA1, 0x0000000A83C212C6}, + [_]u64{0x8000000080000000, 0x000000100747AE14, 0x0000000007FC5DD0, 0x00000003A3D54BC0}, + [_]u64{0x8000000080000000, 0x000000107FFFFFFF, 0x0000000007C1F07C, 0x0000000287C1F07C}, + [_]u64{0x8000000080000000, 0x0000001080000000, 0x0000000007C1F07C, 0x0000000280000000}, + [_]u64{0x8000000080000000, 0x00000010FFFFFFFD, 0x0000000007878787, 0x0000000996969695}, + [_]u64{0x8000000080000000, 0x00000010FFFFFFFE, 0x0000000007878787, 0x000000098F0F0F0E}, + [_]u64{0x8000000080000000, 0x00000010FFFFFFFF, 0x0000000007878787, 0x0000000987878787}, + [_]u64{0x8000000080000000, 0x078644FA00000000, 0x0000000000000011, 0x00156B6680000000}, + [_]u64{0x8000000080000000, 0x078644FA00000001, 0x0000000000000011, 0x00156B667FFFFFEF}, + [_]u64{0x8000000080000000, 0x078644FA00000002, 0x0000000000000011, 0x00156B667FFFFFDE}, + [_]u64{0x8000000080000000, 0x078644FA00000003, 0x0000000000000011, 0x00156B667FFFFFCD}, + [_]u64{0x8000000080000000, 0x078644FA00000010, 0x0000000000000011, 0x00156B667FFFFEF0}, + [_]u64{0x8000000080000000, 0x078644FA078644FA, 0x0000000000000011, 0x00156B6600156B66}, + [_]u64{0x8000000080000000, 0x078644FA0747AE14, 0x0000000000000011, 0x00156B66043D70AC}, + [_]u64{0x8000000080000000, 0x078644FA7FFFFFFF, 0x0000000000000011, 0x00156B5E00000011}, + [_]u64{0x8000000080000000, 0x078644FA80000000, 0x0000000000000011, 0x00156B5E00000000}, + [_]u64{0x8000000080000000, 0x078644FAFFFFFFFD, 0x0000000000000011, 0x00156B5580000033}, + [_]u64{0x8000000080000000, 0x078644FAFFFFFFFE, 0x0000000000000011, 0x00156B5580000022}, + [_]u64{0x8000000080000000, 0x078644FAFFFFFFFF, 0x0000000000000011, 0x00156B5580000011}, + [_]u64{0x8000000080000000, 0x0747AE1400000000, 0x0000000000000011, 0x043D70AC80000000}, + [_]u64{0x8000000080000000, 0x0747AE1400000001, 0x0000000000000011, 0x043D70AC7FFFFFEF}, + [_]u64{0x8000000080000000, 0x0747AE1400000002, 0x0000000000000011, 0x043D70AC7FFFFFDE}, + [_]u64{0x8000000080000000, 0x0747AE1400000003, 0x0000000000000011, 0x043D70AC7FFFFFCD}, + [_]u64{0x8000000080000000, 0x0747AE1400000010, 0x0000000000000011, 0x043D70AC7FFFFEF0}, + [_]u64{0x8000000080000000, 0x0747AE14078644FA, 0x0000000000000011, 0x043D70AC00156B66}, + [_]u64{0x8000000080000000, 0x0747AE140747AE14, 0x0000000000000011, 0x043D70AC043D70AC}, + [_]u64{0x8000000080000000, 0x0747AE147FFFFFFF, 0x0000000000000011, 0x043D70A400000011}, + [_]u64{0x8000000080000000, 0x0747AE1480000000, 0x0000000000000011, 0x043D70A400000000}, + [_]u64{0x8000000080000000, 0x0747AE14FFFFFFFD, 0x0000000000000011, 0x043D709B80000033}, + [_]u64{0x8000000080000000, 0x0747AE14FFFFFFFE, 0x0000000000000011, 0x043D709B80000022}, + [_]u64{0x8000000080000000, 0x0747AE14FFFFFFFF, 0x0000000000000011, 0x043D709B80000011}, + [_]u64{0x8000000080000000, 0x7FFFFFFF00000000, 0x0000000000000001, 0x0000000180000000}, + [_]u64{0x8000000080000000, 0x7FFFFFFF00000001, 0x0000000000000001, 0x000000017FFFFFFF}, + [_]u64{0x8000000080000000, 0x7FFFFFFF00000002, 0x0000000000000001, 0x000000017FFFFFFE}, + [_]u64{0x8000000080000000, 0x7FFFFFFF00000003, 0x0000000000000001, 0x000000017FFFFFFD}, + [_]u64{0x8000000080000000, 0x7FFFFFFF00000010, 0x0000000000000001, 0x000000017FFFFFF0}, + [_]u64{0x8000000080000000, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x000000017879BB06}, + [_]u64{0x8000000080000000, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x0000000178B851EC}, + [_]u64{0x8000000080000000, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0x8000000080000000, 0x7FFFFFFF80000000, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x8000000080000000, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x0000000080000003}, + [_]u64{0x8000000080000000, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x0000000080000002}, + [_]u64{0x8000000080000000, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x0000000080000001}, + [_]u64{0x8000000080000000, 0x8000000000000000, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0x8000000080000000, 0x8000000000000001, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x8000000080000000, 0x8000000000000002, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x8000000080000000, 0x8000000000000003, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0x8000000080000000, 0x8000000000000010, 0x0000000000000001, 0x000000007FFFFFF0}, + [_]u64{0x8000000080000000, 0x80000000078644FA, 0x0000000000000001, 0x000000007879BB06}, + [_]u64{0x8000000080000000, 0x800000000747AE14, 0x0000000000000001, 0x0000000078B851EC}, + [_]u64{0x8000000080000000, 0x800000007FFFFFFF, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x8000000080000000, 0x8000000080000000, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x8000000080000000, 0x80000000FFFFFFFD, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0x80000000FFFFFFFE, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0x80000000FFFFFFFF, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFD00000000, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFD00000001, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFD00000002, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFD00000003, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFD00000010, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFD80000000, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFE00000000, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFE00000001, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFE00000002, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFE00000003, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFE00000010, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFE80000000, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFF00000000, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFF00000001, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFF00000002, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFF00000003, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFF00000010, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFF80000000, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x8000000080000000, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x8000000080000000}, + [_]u64{0x80000000FFFFFFFD, 0x0000000000000001, 0x80000000FFFFFFFD, 0x0000000000000000}, + [_]u64{0x80000000FFFFFFFD, 0x0000000000000002, 0x400000007FFFFFFE, 0x0000000000000001}, + [_]u64{0x80000000FFFFFFFD, 0x0000000000000003, 0x2AAAAAAAFFFFFFFF, 0x0000000000000000}, + [_]u64{0x80000000FFFFFFFD, 0x0000000000000010, 0x080000000FFFFFFF, 0x000000000000000D}, + [_]u64{0x80000000FFFFFFFD, 0x00000000078644FA, 0x0000001102D8BDA0, 0x00000000043851BD}, + [_]u64{0x80000000FFFFFFFD, 0x000000000747AE14, 0x00000011951952E1, 0x0000000000499869}, + [_]u64{0x80000000FFFFFFFD, 0x000000007FFFFFFF, 0x0000000100000004, 0x0000000000000001}, + [_]u64{0x80000000FFFFFFFD, 0x0000000080000000, 0x0000000100000001, 0x000000007FFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x00000000FFFFFFFD, 0x0000000080000002, 0x0000000080000003}, + [_]u64{0x80000000FFFFFFFD, 0x00000000FFFFFFFE, 0x0000000080000002, 0x0000000000000001}, + [_]u64{0x80000000FFFFFFFD, 0x00000000FFFFFFFF, 0x0000000080000001, 0x000000007FFFFFFE}, + [_]u64{0x80000000FFFFFFFD, 0x0000000100000000, 0x0000000080000000, 0x00000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x0000000100000001, 0x0000000080000000, 0x000000007FFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x0000000100000002, 0x000000007FFFFFFF, 0x00000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFD, 0x0000000100000003, 0x000000007FFFFFFF, 0x0000000080000000}, + [_]u64{0x80000000FFFFFFFD, 0x0000000100000010, 0x000000007FFFFFF9, 0x000000000000006D}, + [_]u64{0x80000000FFFFFFFD, 0x00000001078644FA, 0x000000007C585DAF, 0x0000000046380717}, + [_]u64{0x80000000FFFFFFFD, 0x000000010747AE14, 0x000000007C75ED2E, 0x0000000015D23465}, + [_]u64{0x80000000FFFFFFFD, 0x000000017FFFFFFF, 0x0000000055555556, 0x0000000055555553}, + [_]u64{0x80000000FFFFFFFD, 0x0000000180000000, 0x0000000055555555, 0x000000017FFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x00000001FFFFFFFD, 0x0000000040000000, 0x00000001BFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x00000001FFFFFFFE, 0x0000000040000000, 0x000000017FFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x00000001FFFFFFFF, 0x0000000040000000, 0x000000013FFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x0000000200000000, 0x0000000040000000, 0x00000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x0000000200000001, 0x0000000040000000, 0x00000000BFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x0000000200000002, 0x0000000040000000, 0x000000007FFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x0000000200000003, 0x0000000040000000, 0x000000003FFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x0000000200000010, 0x000000003FFFFFFE, 0x000000010000001D}, + [_]u64{0x80000000FFFFFFFD, 0x00000002078644FA, 0x000000003F12B425, 0x0000000121843FDB}, + [_]u64{0x80000000FFFFFFFD, 0x000000020747AE14, 0x000000003F1A4E54, 0x000000002B68C96D}, + [_]u64{0x80000000FFFFFFFD, 0x000000027FFFFFFF, 0x0000000033333333, 0x00000001B3333330}, + [_]u64{0x80000000FFFFFFFD, 0x0000000280000000, 0x0000000033333333, 0x000000017FFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x00000002FFFFFFFD, 0x000000002AAAAAAB, 0x000000007FFFFFFE}, + [_]u64{0x80000000FFFFFFFD, 0x00000002FFFFFFFE, 0x000000002AAAAAAB, 0x0000000055555553}, + [_]u64{0x80000000FFFFFFFD, 0x00000002FFFFFFFF, 0x000000002AAAAAAB, 0x000000002AAAAAA8}, + [_]u64{0x80000000FFFFFFFD, 0x0000000300000000, 0x000000002AAAAAAA, 0x00000002FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x0000000300000001, 0x000000002AAAAAAA, 0x00000002D5555553}, + [_]u64{0x80000000FFFFFFFD, 0x0000000300000002, 0x000000002AAAAAAA, 0x00000002AAAAAAA9}, + [_]u64{0x80000000FFFFFFFD, 0x0000000300000003, 0x000000002AAAAAAA, 0x000000027FFFFFFF}, + [_]u64{0x80000000FFFFFFFD, 0x0000000300000010, 0x000000002AAAAAAA, 0x000000005555555D}, + [_]u64{0x80000000FFFFFFFD, 0x00000003078644FA, 0x000000002A40B0A4, 0x000000019C0FEFD5}, + [_]u64{0x80000000FFFFFFFD, 0x000000030747AE14, 0x000000002A4419E3, 0x000000020620B041}, + [_]u64{0x80000000FFFFFFFD, 0x000000037FFFFFFF, 0x0000000024924924, 0x0000000324924921}, + [_]u64{0x80000000FFFFFFFD, 0x0000000380000000, 0x0000000024924924, 0x00000002FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x00000003FFFFFFFD, 0x0000000020000000, 0x000000015FFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x00000003FFFFFFFE, 0x0000000020000000, 0x000000013FFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x00000003FFFFFFFF, 0x0000000020000000, 0x000000011FFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x0000001000000000, 0x0000000008000000, 0x00000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x0000001000000001, 0x0000000008000000, 0x00000000F7FFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x0000001000000002, 0x0000000008000000, 0x00000000EFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x0000001000000003, 0x0000000008000000, 0x00000000E7FFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x0000001000000010, 0x0000000008000000, 0x000000007FFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x00000010078644FA, 0x0000000007FC3EA1, 0x0000000B03C212C3}, + [_]u64{0x80000000FFFFFFFD, 0x000000100747AE14, 0x0000000007FC5DD0, 0x0000000423D54BBD}, + [_]u64{0x80000000FFFFFFFD, 0x000000107FFFFFFF, 0x0000000007C1F07C, 0x0000000307C1F079}, + [_]u64{0x80000000FFFFFFFD, 0x0000001080000000, 0x0000000007C1F07C, 0x00000002FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x00000010FFFFFFFD, 0x0000000007878787, 0x0000000A16969692}, + [_]u64{0x80000000FFFFFFFD, 0x00000010FFFFFFFE, 0x0000000007878787, 0x0000000A0F0F0F0B}, + [_]u64{0x80000000FFFFFFFD, 0x00000010FFFFFFFF, 0x0000000007878787, 0x0000000A07878784}, + [_]u64{0x80000000FFFFFFFD, 0x078644FA00000000, 0x0000000000000011, 0x00156B66FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x078644FA00000001, 0x0000000000000011, 0x00156B66FFFFFFEC}, + [_]u64{0x80000000FFFFFFFD, 0x078644FA00000002, 0x0000000000000011, 0x00156B66FFFFFFDB}, + [_]u64{0x80000000FFFFFFFD, 0x078644FA00000003, 0x0000000000000011, 0x00156B66FFFFFFCA}, + [_]u64{0x80000000FFFFFFFD, 0x078644FA00000010, 0x0000000000000011, 0x00156B66FFFFFEED}, + [_]u64{0x80000000FFFFFFFD, 0x078644FA078644FA, 0x0000000000000011, 0x00156B6680156B63}, + [_]u64{0x80000000FFFFFFFD, 0x078644FA0747AE14, 0x0000000000000011, 0x00156B66843D70A9}, + [_]u64{0x80000000FFFFFFFD, 0x078644FA7FFFFFFF, 0x0000000000000011, 0x00156B5E8000000E}, + [_]u64{0x80000000FFFFFFFD, 0x078644FA80000000, 0x0000000000000011, 0x00156B5E7FFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x078644FAFFFFFFFD, 0x0000000000000011, 0x00156B5600000030}, + [_]u64{0x80000000FFFFFFFD, 0x078644FAFFFFFFFE, 0x0000000000000011, 0x00156B560000001F}, + [_]u64{0x80000000FFFFFFFD, 0x078644FAFFFFFFFF, 0x0000000000000011, 0x00156B560000000E}, + [_]u64{0x80000000FFFFFFFD, 0x0747AE1400000000, 0x0000000000000011, 0x043D70ACFFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x0747AE1400000001, 0x0000000000000011, 0x043D70ACFFFFFFEC}, + [_]u64{0x80000000FFFFFFFD, 0x0747AE1400000002, 0x0000000000000011, 0x043D70ACFFFFFFDB}, + [_]u64{0x80000000FFFFFFFD, 0x0747AE1400000003, 0x0000000000000011, 0x043D70ACFFFFFFCA}, + [_]u64{0x80000000FFFFFFFD, 0x0747AE1400000010, 0x0000000000000011, 0x043D70ACFFFFFEED}, + [_]u64{0x80000000FFFFFFFD, 0x0747AE14078644FA, 0x0000000000000011, 0x043D70AC80156B63}, + [_]u64{0x80000000FFFFFFFD, 0x0747AE140747AE14, 0x0000000000000011, 0x043D70AC843D70A9}, + [_]u64{0x80000000FFFFFFFD, 0x0747AE147FFFFFFF, 0x0000000000000011, 0x043D70A48000000E}, + [_]u64{0x80000000FFFFFFFD, 0x0747AE1480000000, 0x0000000000000011, 0x043D70A47FFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x0747AE14FFFFFFFD, 0x0000000000000011, 0x043D709C00000030}, + [_]u64{0x80000000FFFFFFFD, 0x0747AE14FFFFFFFE, 0x0000000000000011, 0x043D709C0000001F}, + [_]u64{0x80000000FFFFFFFD, 0x0747AE14FFFFFFFF, 0x0000000000000011, 0x043D709C0000000E}, + [_]u64{0x80000000FFFFFFFD, 0x7FFFFFFF00000000, 0x0000000000000001, 0x00000001FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x7FFFFFFF00000001, 0x0000000000000001, 0x00000001FFFFFFFC}, + [_]u64{0x80000000FFFFFFFD, 0x7FFFFFFF00000002, 0x0000000000000001, 0x00000001FFFFFFFB}, + [_]u64{0x80000000FFFFFFFD, 0x7FFFFFFF00000003, 0x0000000000000001, 0x00000001FFFFFFFA}, + [_]u64{0x80000000FFFFFFFD, 0x7FFFFFFF00000010, 0x0000000000000001, 0x00000001FFFFFFED}, + [_]u64{0x80000000FFFFFFFD, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x00000001F879BB03}, + [_]u64{0x80000000FFFFFFFD, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x00000001F8B851E9}, + [_]u64{0x80000000FFFFFFFD, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x000000017FFFFFFE}, + [_]u64{0x80000000FFFFFFFD, 0x7FFFFFFF80000000, 0x0000000000000001, 0x000000017FFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x80000000FFFFFFFD, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFD, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFD, 0x8000000000000000, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x8000000000000001, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0x80000000FFFFFFFD, 0x8000000000000002, 0x0000000000000001, 0x00000000FFFFFFFB}, + [_]u64{0x80000000FFFFFFFD, 0x8000000000000003, 0x0000000000000001, 0x00000000FFFFFFFA}, + [_]u64{0x80000000FFFFFFFD, 0x8000000000000010, 0x0000000000000001, 0x00000000FFFFFFED}, + [_]u64{0x80000000FFFFFFFD, 0x80000000078644FA, 0x0000000000000001, 0x00000000F879BB03}, + [_]u64{0x80000000FFFFFFFD, 0x800000000747AE14, 0x0000000000000001, 0x00000000F8B851E9}, + [_]u64{0x80000000FFFFFFFD, 0x800000007FFFFFFF, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x80000000FFFFFFFD, 0x8000000080000000, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x80000000FFFFFFFD, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x80000000FFFFFFFD, 0x80000000FFFFFFFE, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0x80000000FFFFFFFF, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFD00000000, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFD00000001, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFD00000002, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFD00000003, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFD00000010, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFD80000000, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFE00000000, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFE00000001, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFE00000002, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFE00000003, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFE00000010, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFE80000000, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFF00000000, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFF00000001, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFF00000002, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFF00000003, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFF00000010, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFF80000000, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFD, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x80000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFE, 0x0000000000000001, 0x80000000FFFFFFFE, 0x0000000000000000}, + [_]u64{0x80000000FFFFFFFE, 0x0000000000000002, 0x400000007FFFFFFF, 0x0000000000000000}, + [_]u64{0x80000000FFFFFFFE, 0x0000000000000003, 0x2AAAAAAAFFFFFFFF, 0x0000000000000001}, + [_]u64{0x80000000FFFFFFFE, 0x0000000000000010, 0x080000000FFFFFFF, 0x000000000000000E}, + [_]u64{0x80000000FFFFFFFE, 0x00000000078644FA, 0x0000001102D8BDA0, 0x00000000043851BE}, + [_]u64{0x80000000FFFFFFFE, 0x000000000747AE14, 0x00000011951952E1, 0x000000000049986A}, + [_]u64{0x80000000FFFFFFFE, 0x000000007FFFFFFF, 0x0000000100000004, 0x0000000000000002}, + [_]u64{0x80000000FFFFFFFE, 0x0000000080000000, 0x0000000100000001, 0x000000007FFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x00000000FFFFFFFD, 0x0000000080000002, 0x0000000080000004}, + [_]u64{0x80000000FFFFFFFE, 0x00000000FFFFFFFE, 0x0000000080000002, 0x0000000000000002}, + [_]u64{0x80000000FFFFFFFE, 0x00000000FFFFFFFF, 0x0000000080000001, 0x000000007FFFFFFF}, + [_]u64{0x80000000FFFFFFFE, 0x0000000100000000, 0x0000000080000000, 0x00000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x0000000100000001, 0x0000000080000000, 0x000000007FFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x0000000100000002, 0x000000007FFFFFFF, 0x0000000100000000}, + [_]u64{0x80000000FFFFFFFE, 0x0000000100000003, 0x000000007FFFFFFF, 0x0000000080000001}, + [_]u64{0x80000000FFFFFFFE, 0x0000000100000010, 0x000000007FFFFFF9, 0x000000000000006E}, + [_]u64{0x80000000FFFFFFFE, 0x00000001078644FA, 0x000000007C585DAF, 0x0000000046380718}, + [_]u64{0x80000000FFFFFFFE, 0x000000010747AE14, 0x000000007C75ED2E, 0x0000000015D23466}, + [_]u64{0x80000000FFFFFFFE, 0x000000017FFFFFFF, 0x0000000055555556, 0x0000000055555554}, + [_]u64{0x80000000FFFFFFFE, 0x0000000180000000, 0x0000000055555555, 0x000000017FFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x00000001FFFFFFFD, 0x0000000040000000, 0x00000001BFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x00000001FFFFFFFE, 0x0000000040000000, 0x000000017FFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x00000001FFFFFFFF, 0x0000000040000000, 0x000000013FFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x0000000200000000, 0x0000000040000000, 0x00000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x0000000200000001, 0x0000000040000000, 0x00000000BFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x0000000200000002, 0x0000000040000000, 0x000000007FFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x0000000200000003, 0x0000000040000000, 0x000000003FFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x0000000200000010, 0x000000003FFFFFFE, 0x000000010000001E}, + [_]u64{0x80000000FFFFFFFE, 0x00000002078644FA, 0x000000003F12B425, 0x0000000121843FDC}, + [_]u64{0x80000000FFFFFFFE, 0x000000020747AE14, 0x000000003F1A4E54, 0x000000002B68C96E}, + [_]u64{0x80000000FFFFFFFE, 0x000000027FFFFFFF, 0x0000000033333333, 0x00000001B3333331}, + [_]u64{0x80000000FFFFFFFE, 0x0000000280000000, 0x0000000033333333, 0x000000017FFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x00000002FFFFFFFD, 0x000000002AAAAAAB, 0x000000007FFFFFFF}, + [_]u64{0x80000000FFFFFFFE, 0x00000002FFFFFFFE, 0x000000002AAAAAAB, 0x0000000055555554}, + [_]u64{0x80000000FFFFFFFE, 0x00000002FFFFFFFF, 0x000000002AAAAAAB, 0x000000002AAAAAA9}, + [_]u64{0x80000000FFFFFFFE, 0x0000000300000000, 0x000000002AAAAAAA, 0x00000002FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x0000000300000001, 0x000000002AAAAAAA, 0x00000002D5555554}, + [_]u64{0x80000000FFFFFFFE, 0x0000000300000002, 0x000000002AAAAAAA, 0x00000002AAAAAAAA}, + [_]u64{0x80000000FFFFFFFE, 0x0000000300000003, 0x000000002AAAAAAA, 0x0000000280000000}, + [_]u64{0x80000000FFFFFFFE, 0x0000000300000010, 0x000000002AAAAAAA, 0x000000005555555E}, + [_]u64{0x80000000FFFFFFFE, 0x00000003078644FA, 0x000000002A40B0A4, 0x000000019C0FEFD6}, + [_]u64{0x80000000FFFFFFFE, 0x000000030747AE14, 0x000000002A4419E3, 0x000000020620B042}, + [_]u64{0x80000000FFFFFFFE, 0x000000037FFFFFFF, 0x0000000024924924, 0x0000000324924922}, + [_]u64{0x80000000FFFFFFFE, 0x0000000380000000, 0x0000000024924924, 0x00000002FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x00000003FFFFFFFD, 0x0000000020000000, 0x000000015FFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x00000003FFFFFFFE, 0x0000000020000000, 0x000000013FFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x00000003FFFFFFFF, 0x0000000020000000, 0x000000011FFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x0000001000000000, 0x0000000008000000, 0x00000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x0000001000000001, 0x0000000008000000, 0x00000000F7FFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x0000001000000002, 0x0000000008000000, 0x00000000EFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x0000001000000003, 0x0000000008000000, 0x00000000E7FFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x0000001000000010, 0x0000000008000000, 0x000000007FFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x00000010078644FA, 0x0000000007FC3EA1, 0x0000000B03C212C4}, + [_]u64{0x80000000FFFFFFFE, 0x000000100747AE14, 0x0000000007FC5DD0, 0x0000000423D54BBE}, + [_]u64{0x80000000FFFFFFFE, 0x000000107FFFFFFF, 0x0000000007C1F07C, 0x0000000307C1F07A}, + [_]u64{0x80000000FFFFFFFE, 0x0000001080000000, 0x0000000007C1F07C, 0x00000002FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x00000010FFFFFFFD, 0x0000000007878787, 0x0000000A16969693}, + [_]u64{0x80000000FFFFFFFE, 0x00000010FFFFFFFE, 0x0000000007878787, 0x0000000A0F0F0F0C}, + [_]u64{0x80000000FFFFFFFE, 0x00000010FFFFFFFF, 0x0000000007878787, 0x0000000A07878785}, + [_]u64{0x80000000FFFFFFFE, 0x078644FA00000000, 0x0000000000000011, 0x00156B66FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x078644FA00000001, 0x0000000000000011, 0x00156B66FFFFFFED}, + [_]u64{0x80000000FFFFFFFE, 0x078644FA00000002, 0x0000000000000011, 0x00156B66FFFFFFDC}, + [_]u64{0x80000000FFFFFFFE, 0x078644FA00000003, 0x0000000000000011, 0x00156B66FFFFFFCB}, + [_]u64{0x80000000FFFFFFFE, 0x078644FA00000010, 0x0000000000000011, 0x00156B66FFFFFEEE}, + [_]u64{0x80000000FFFFFFFE, 0x078644FA078644FA, 0x0000000000000011, 0x00156B6680156B64}, + [_]u64{0x80000000FFFFFFFE, 0x078644FA0747AE14, 0x0000000000000011, 0x00156B66843D70AA}, + [_]u64{0x80000000FFFFFFFE, 0x078644FA7FFFFFFF, 0x0000000000000011, 0x00156B5E8000000F}, + [_]u64{0x80000000FFFFFFFE, 0x078644FA80000000, 0x0000000000000011, 0x00156B5E7FFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x078644FAFFFFFFFD, 0x0000000000000011, 0x00156B5600000031}, + [_]u64{0x80000000FFFFFFFE, 0x078644FAFFFFFFFE, 0x0000000000000011, 0x00156B5600000020}, + [_]u64{0x80000000FFFFFFFE, 0x078644FAFFFFFFFF, 0x0000000000000011, 0x00156B560000000F}, + [_]u64{0x80000000FFFFFFFE, 0x0747AE1400000000, 0x0000000000000011, 0x043D70ACFFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x0747AE1400000001, 0x0000000000000011, 0x043D70ACFFFFFFED}, + [_]u64{0x80000000FFFFFFFE, 0x0747AE1400000002, 0x0000000000000011, 0x043D70ACFFFFFFDC}, + [_]u64{0x80000000FFFFFFFE, 0x0747AE1400000003, 0x0000000000000011, 0x043D70ACFFFFFFCB}, + [_]u64{0x80000000FFFFFFFE, 0x0747AE1400000010, 0x0000000000000011, 0x043D70ACFFFFFEEE}, + [_]u64{0x80000000FFFFFFFE, 0x0747AE14078644FA, 0x0000000000000011, 0x043D70AC80156B64}, + [_]u64{0x80000000FFFFFFFE, 0x0747AE140747AE14, 0x0000000000000011, 0x043D70AC843D70AA}, + [_]u64{0x80000000FFFFFFFE, 0x0747AE147FFFFFFF, 0x0000000000000011, 0x043D70A48000000F}, + [_]u64{0x80000000FFFFFFFE, 0x0747AE1480000000, 0x0000000000000011, 0x043D70A47FFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x0747AE14FFFFFFFD, 0x0000000000000011, 0x043D709C00000031}, + [_]u64{0x80000000FFFFFFFE, 0x0747AE14FFFFFFFE, 0x0000000000000011, 0x043D709C00000020}, + [_]u64{0x80000000FFFFFFFE, 0x0747AE14FFFFFFFF, 0x0000000000000011, 0x043D709C0000000F}, + [_]u64{0x80000000FFFFFFFE, 0x7FFFFFFF00000000, 0x0000000000000001, 0x00000001FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x7FFFFFFF00000001, 0x0000000000000001, 0x00000001FFFFFFFD}, + [_]u64{0x80000000FFFFFFFE, 0x7FFFFFFF00000002, 0x0000000000000001, 0x00000001FFFFFFFC}, + [_]u64{0x80000000FFFFFFFE, 0x7FFFFFFF00000003, 0x0000000000000001, 0x00000001FFFFFFFB}, + [_]u64{0x80000000FFFFFFFE, 0x7FFFFFFF00000010, 0x0000000000000001, 0x00000001FFFFFFEE}, + [_]u64{0x80000000FFFFFFFE, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x00000001F879BB04}, + [_]u64{0x80000000FFFFFFFE, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x00000001F8B851EA}, + [_]u64{0x80000000FFFFFFFE, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x000000017FFFFFFF}, + [_]u64{0x80000000FFFFFFFE, 0x7FFFFFFF80000000, 0x0000000000000001, 0x000000017FFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0x80000000FFFFFFFE, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x80000000FFFFFFFE, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFE, 0x8000000000000000, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x8000000000000001, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFE, 0x8000000000000002, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0x80000000FFFFFFFE, 0x8000000000000003, 0x0000000000000001, 0x00000000FFFFFFFB}, + [_]u64{0x80000000FFFFFFFE, 0x8000000000000010, 0x0000000000000001, 0x00000000FFFFFFEE}, + [_]u64{0x80000000FFFFFFFE, 0x80000000078644FA, 0x0000000000000001, 0x00000000F879BB04}, + [_]u64{0x80000000FFFFFFFE, 0x800000000747AE14, 0x0000000000000001, 0x00000000F8B851EA}, + [_]u64{0x80000000FFFFFFFE, 0x800000007FFFFFFF, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x80000000FFFFFFFE, 0x8000000080000000, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0x80000000FFFFFFFD, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x80000000FFFFFFFE, 0x80000000FFFFFFFE, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x80000000FFFFFFFE, 0x80000000FFFFFFFF, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFD00000000, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFD00000001, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFD00000002, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFD00000003, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFD00000010, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFD80000000, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFE00000000, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFE00000001, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFE00000002, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFE00000003, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFE00000010, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFE80000000, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFF00000000, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFF00000001, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFF00000002, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFF00000003, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFF00000010, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFF80000000, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFE, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x80000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFF, 0x0000000000000001, 0x80000000FFFFFFFF, 0x0000000000000000}, + [_]u64{0x80000000FFFFFFFF, 0x0000000000000002, 0x400000007FFFFFFF, 0x0000000000000001}, + [_]u64{0x80000000FFFFFFFF, 0x0000000000000003, 0x2AAAAAAAFFFFFFFF, 0x0000000000000002}, + [_]u64{0x80000000FFFFFFFF, 0x0000000000000010, 0x080000000FFFFFFF, 0x000000000000000F}, + [_]u64{0x80000000FFFFFFFF, 0x00000000078644FA, 0x0000001102D8BDA0, 0x00000000043851BF}, + [_]u64{0x80000000FFFFFFFF, 0x000000000747AE14, 0x00000011951952E1, 0x000000000049986B}, + [_]u64{0x80000000FFFFFFFF, 0x000000007FFFFFFF, 0x0000000100000004, 0x0000000000000003}, + [_]u64{0x80000000FFFFFFFF, 0x0000000080000000, 0x0000000100000001, 0x000000007FFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x00000000FFFFFFFD, 0x0000000080000002, 0x0000000080000005}, + [_]u64{0x80000000FFFFFFFF, 0x00000000FFFFFFFE, 0x0000000080000002, 0x0000000000000003}, + [_]u64{0x80000000FFFFFFFF, 0x00000000FFFFFFFF, 0x0000000080000001, 0x0000000080000000}, + [_]u64{0x80000000FFFFFFFF, 0x0000000100000000, 0x0000000080000000, 0x00000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x0000000100000001, 0x0000000080000000, 0x000000007FFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x0000000100000002, 0x000000007FFFFFFF, 0x0000000100000001}, + [_]u64{0x80000000FFFFFFFF, 0x0000000100000003, 0x000000007FFFFFFF, 0x0000000080000002}, + [_]u64{0x80000000FFFFFFFF, 0x0000000100000010, 0x000000007FFFFFF9, 0x000000000000006F}, + [_]u64{0x80000000FFFFFFFF, 0x00000001078644FA, 0x000000007C585DAF, 0x0000000046380719}, + [_]u64{0x80000000FFFFFFFF, 0x000000010747AE14, 0x000000007C75ED2E, 0x0000000015D23467}, + [_]u64{0x80000000FFFFFFFF, 0x000000017FFFFFFF, 0x0000000055555556, 0x0000000055555555}, + [_]u64{0x80000000FFFFFFFF, 0x0000000180000000, 0x0000000055555555, 0x000000017FFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x00000001FFFFFFFD, 0x0000000040000000, 0x00000001BFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x00000001FFFFFFFE, 0x0000000040000000, 0x000000017FFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x00000001FFFFFFFF, 0x0000000040000000, 0x000000013FFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x0000000200000000, 0x0000000040000000, 0x00000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x0000000200000001, 0x0000000040000000, 0x00000000BFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x0000000200000002, 0x0000000040000000, 0x000000007FFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x0000000200000003, 0x0000000040000000, 0x000000003FFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x0000000200000010, 0x000000003FFFFFFE, 0x000000010000001F}, + [_]u64{0x80000000FFFFFFFF, 0x00000002078644FA, 0x000000003F12B425, 0x0000000121843FDD}, + [_]u64{0x80000000FFFFFFFF, 0x000000020747AE14, 0x000000003F1A4E54, 0x000000002B68C96F}, + [_]u64{0x80000000FFFFFFFF, 0x000000027FFFFFFF, 0x0000000033333333, 0x00000001B3333332}, + [_]u64{0x80000000FFFFFFFF, 0x0000000280000000, 0x0000000033333333, 0x000000017FFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x00000002FFFFFFFD, 0x000000002AAAAAAB, 0x0000000080000000}, + [_]u64{0x80000000FFFFFFFF, 0x00000002FFFFFFFE, 0x000000002AAAAAAB, 0x0000000055555555}, + [_]u64{0x80000000FFFFFFFF, 0x00000002FFFFFFFF, 0x000000002AAAAAAB, 0x000000002AAAAAAA}, + [_]u64{0x80000000FFFFFFFF, 0x0000000300000000, 0x000000002AAAAAAA, 0x00000002FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x0000000300000001, 0x000000002AAAAAAA, 0x00000002D5555555}, + [_]u64{0x80000000FFFFFFFF, 0x0000000300000002, 0x000000002AAAAAAA, 0x00000002AAAAAAAB}, + [_]u64{0x80000000FFFFFFFF, 0x0000000300000003, 0x000000002AAAAAAA, 0x0000000280000001}, + [_]u64{0x80000000FFFFFFFF, 0x0000000300000010, 0x000000002AAAAAAA, 0x000000005555555F}, + [_]u64{0x80000000FFFFFFFF, 0x00000003078644FA, 0x000000002A40B0A4, 0x000000019C0FEFD7}, + [_]u64{0x80000000FFFFFFFF, 0x000000030747AE14, 0x000000002A4419E3, 0x000000020620B043}, + [_]u64{0x80000000FFFFFFFF, 0x000000037FFFFFFF, 0x0000000024924924, 0x0000000324924923}, + [_]u64{0x80000000FFFFFFFF, 0x0000000380000000, 0x0000000024924924, 0x00000002FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x00000003FFFFFFFD, 0x0000000020000000, 0x000000015FFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x00000003FFFFFFFE, 0x0000000020000000, 0x000000013FFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x00000003FFFFFFFF, 0x0000000020000000, 0x000000011FFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x0000001000000000, 0x0000000008000000, 0x00000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x0000001000000001, 0x0000000008000000, 0x00000000F7FFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x0000001000000002, 0x0000000008000000, 0x00000000EFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x0000001000000003, 0x0000000008000000, 0x00000000E7FFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x0000001000000010, 0x0000000008000000, 0x000000007FFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x00000010078644FA, 0x0000000007FC3EA1, 0x0000000B03C212C5}, + [_]u64{0x80000000FFFFFFFF, 0x000000100747AE14, 0x0000000007FC5DD0, 0x0000000423D54BBF}, + [_]u64{0x80000000FFFFFFFF, 0x000000107FFFFFFF, 0x0000000007C1F07C, 0x0000000307C1F07B}, + [_]u64{0x80000000FFFFFFFF, 0x0000001080000000, 0x0000000007C1F07C, 0x00000002FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x00000010FFFFFFFD, 0x0000000007878787, 0x0000000A16969694}, + [_]u64{0x80000000FFFFFFFF, 0x00000010FFFFFFFE, 0x0000000007878787, 0x0000000A0F0F0F0D}, + [_]u64{0x80000000FFFFFFFF, 0x00000010FFFFFFFF, 0x0000000007878787, 0x0000000A07878786}, + [_]u64{0x80000000FFFFFFFF, 0x078644FA00000000, 0x0000000000000011, 0x00156B66FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x078644FA00000001, 0x0000000000000011, 0x00156B66FFFFFFEE}, + [_]u64{0x80000000FFFFFFFF, 0x078644FA00000002, 0x0000000000000011, 0x00156B66FFFFFFDD}, + [_]u64{0x80000000FFFFFFFF, 0x078644FA00000003, 0x0000000000000011, 0x00156B66FFFFFFCC}, + [_]u64{0x80000000FFFFFFFF, 0x078644FA00000010, 0x0000000000000011, 0x00156B66FFFFFEEF}, + [_]u64{0x80000000FFFFFFFF, 0x078644FA078644FA, 0x0000000000000011, 0x00156B6680156B65}, + [_]u64{0x80000000FFFFFFFF, 0x078644FA0747AE14, 0x0000000000000011, 0x00156B66843D70AB}, + [_]u64{0x80000000FFFFFFFF, 0x078644FA7FFFFFFF, 0x0000000000000011, 0x00156B5E80000010}, + [_]u64{0x80000000FFFFFFFF, 0x078644FA80000000, 0x0000000000000011, 0x00156B5E7FFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x078644FAFFFFFFFD, 0x0000000000000011, 0x00156B5600000032}, + [_]u64{0x80000000FFFFFFFF, 0x078644FAFFFFFFFE, 0x0000000000000011, 0x00156B5600000021}, + [_]u64{0x80000000FFFFFFFF, 0x078644FAFFFFFFFF, 0x0000000000000011, 0x00156B5600000010}, + [_]u64{0x80000000FFFFFFFF, 0x0747AE1400000000, 0x0000000000000011, 0x043D70ACFFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x0747AE1400000001, 0x0000000000000011, 0x043D70ACFFFFFFEE}, + [_]u64{0x80000000FFFFFFFF, 0x0747AE1400000002, 0x0000000000000011, 0x043D70ACFFFFFFDD}, + [_]u64{0x80000000FFFFFFFF, 0x0747AE1400000003, 0x0000000000000011, 0x043D70ACFFFFFFCC}, + [_]u64{0x80000000FFFFFFFF, 0x0747AE1400000010, 0x0000000000000011, 0x043D70ACFFFFFEEF}, + [_]u64{0x80000000FFFFFFFF, 0x0747AE14078644FA, 0x0000000000000011, 0x043D70AC80156B65}, + [_]u64{0x80000000FFFFFFFF, 0x0747AE140747AE14, 0x0000000000000011, 0x043D70AC843D70AB}, + [_]u64{0x80000000FFFFFFFF, 0x0747AE147FFFFFFF, 0x0000000000000011, 0x043D70A480000010}, + [_]u64{0x80000000FFFFFFFF, 0x0747AE1480000000, 0x0000000000000011, 0x043D70A47FFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x0747AE14FFFFFFFD, 0x0000000000000011, 0x043D709C00000032}, + [_]u64{0x80000000FFFFFFFF, 0x0747AE14FFFFFFFE, 0x0000000000000011, 0x043D709C00000021}, + [_]u64{0x80000000FFFFFFFF, 0x0747AE14FFFFFFFF, 0x0000000000000011, 0x043D709C00000010}, + [_]u64{0x80000000FFFFFFFF, 0x7FFFFFFF00000000, 0x0000000000000001, 0x00000001FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x7FFFFFFF00000001, 0x0000000000000001, 0x00000001FFFFFFFE}, + [_]u64{0x80000000FFFFFFFF, 0x7FFFFFFF00000002, 0x0000000000000001, 0x00000001FFFFFFFD}, + [_]u64{0x80000000FFFFFFFF, 0x7FFFFFFF00000003, 0x0000000000000001, 0x00000001FFFFFFFC}, + [_]u64{0x80000000FFFFFFFF, 0x7FFFFFFF00000010, 0x0000000000000001, 0x00000001FFFFFFEF}, + [_]u64{0x80000000FFFFFFFF, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x00000001F879BB05}, + [_]u64{0x80000000FFFFFFFF, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x00000001F8B851EB}, + [_]u64{0x80000000FFFFFFFF, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x0000000180000000}, + [_]u64{0x80000000FFFFFFFF, 0x7FFFFFFF80000000, 0x0000000000000001, 0x000000017FFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x0000000100000002}, + [_]u64{0x80000000FFFFFFFF, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0x80000000FFFFFFFF, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0x80000000FFFFFFFF, 0x8000000000000000, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x8000000000000001, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0x80000000FFFFFFFF, 0x8000000000000002, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0x80000000FFFFFFFF, 0x8000000000000003, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0x80000000FFFFFFFF, 0x8000000000000010, 0x0000000000000001, 0x00000000FFFFFFEF}, + [_]u64{0x80000000FFFFFFFF, 0x80000000078644FA, 0x0000000000000001, 0x00000000F879BB05}, + [_]u64{0x80000000FFFFFFFF, 0x800000000747AE14, 0x0000000000000001, 0x00000000F8B851EB}, + [_]u64{0x80000000FFFFFFFF, 0x800000007FFFFFFF, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0x80000000FFFFFFFF, 0x8000000080000000, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0x80000000FFFFFFFD, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0x80000000FFFFFFFF, 0x80000000FFFFFFFE, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0x80000000FFFFFFFF, 0x80000000FFFFFFFF, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFD00000000, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFD00000001, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFD00000002, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFD00000003, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFD00000010, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFD078644FA, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFD80000000, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFE00000000, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFE00000001, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFE00000002, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFE00000003, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFE00000010, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFE078644FA, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFE80000000, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFF00000000, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFF00000001, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFF00000002, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFF00000003, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFF00000010, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFF078644FA, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFF80000000, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0x80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0x80000000FFFFFFFF}, + [_]u64{0xFFFFFFFD00000000, 0x0000000000000001, 0xFFFFFFFD00000000, 0x0000000000000000}, + [_]u64{0xFFFFFFFD00000000, 0x0000000000000002, 0x7FFFFFFE80000000, 0x0000000000000000}, + [_]u64{0xFFFFFFFD00000000, 0x0000000000000003, 0x5555555455555555, 0x0000000000000001}, + [_]u64{0xFFFFFFFD00000000, 0x0000000000000010, 0x0FFFFFFFD0000000, 0x0000000000000000}, + [_]u64{0xFFFFFFFD00000000, 0x00000000078644FA, 0x0000002205B17A97, 0x0000000000142C8A}, + [_]u64{0xFFFFFFFD00000000, 0x000000000747AE14, 0x000000232A32A512, 0x0000000001DADE98}, + [_]u64{0xFFFFFFFD00000000, 0x000000007FFFFFFF, 0x00000001FFFFFFFD, 0x000000007FFFFFFD}, + [_]u64{0xFFFFFFFD00000000, 0x0000000080000000, 0x00000001FFFFFFFA, 0x0000000000000000}, + [_]u64{0xFFFFFFFD00000000, 0x00000000FFFFFFFD, 0x0000000100000000, 0x0000000000000000}, + [_]u64{0xFFFFFFFD00000000, 0x00000000FFFFFFFE, 0x00000000FFFFFFFE, 0x00000000FFFFFFFC}, + [_]u64{0xFFFFFFFD00000000, 0x00000000FFFFFFFF, 0x00000000FFFFFFFD, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFD00000000, 0x0000000100000000, 0x00000000FFFFFFFD, 0x0000000000000000}, + [_]u64{0xFFFFFFFD00000000, 0x0000000100000001, 0x00000000FFFFFFFC, 0x0000000000000004}, + [_]u64{0xFFFFFFFD00000000, 0x0000000100000002, 0x00000000FFFFFFFB, 0x000000000000000A}, + [_]u64{0xFFFFFFFD00000000, 0x0000000100000003, 0x00000000FFFFFFFA, 0x0000000000000012}, + [_]u64{0xFFFFFFFD00000000, 0x0000000100000010, 0x00000000FFFFFFED, 0x0000000000000130}, + [_]u64{0xFFFFFFFD00000000, 0x00000001078644FA, 0x00000000F8B0BB59, 0x00000000B20F6716}, + [_]u64{0xFFFFFFFD00000000, 0x000000010747AE14, 0x00000000F8EBDA57, 0x00000000500ACF34}, + [_]u64{0xFFFFFFFD00000000, 0x000000017FFFFFFF, 0x00000000AAAAAAA9, 0x000000002AAAAAA9}, + [_]u64{0xFFFFFFFD00000000, 0x0000000180000000, 0x00000000AAAAAAA8, 0x0000000100000000}, + [_]u64{0xFFFFFFFD00000000, 0x00000001FFFFFFFD, 0x000000007FFFFFFF, 0x000000007FFFFFFD}, + [_]u64{0xFFFFFFFD00000000, 0x00000001FFFFFFFE, 0x000000007FFFFFFE, 0x00000001FFFFFFFC}, + [_]u64{0xFFFFFFFD00000000, 0x00000001FFFFFFFF, 0x000000007FFFFFFE, 0x000000017FFFFFFE}, + [_]u64{0xFFFFFFFD00000000, 0x0000000200000000, 0x000000007FFFFFFE, 0x0000000100000000}, + [_]u64{0xFFFFFFFD00000000, 0x0000000200000001, 0x000000007FFFFFFE, 0x0000000080000002}, + [_]u64{0xFFFFFFFD00000000, 0x0000000200000002, 0x000000007FFFFFFE, 0x0000000000000004}, + [_]u64{0xFFFFFFFD00000000, 0x0000000200000003, 0x000000007FFFFFFD, 0x0000000180000009}, + [_]u64{0xFFFFFFFD00000000, 0x0000000200000010, 0x000000007FFFFFFA, 0x0000000100000060}, + [_]u64{0xFFFFFFFD00000000, 0x00000002078644FA, 0x000000007E256848, 0x00000001521509B0}, + [_]u64{0xFFFFFFFD00000000, 0x000000020747AE14, 0x000000007E349CA5, 0x000000016CA89D1C}, + [_]u64{0xFFFFFFFD00000000, 0x000000027FFFFFFF, 0x0000000066666665, 0x00000000E6666665}, + [_]u64{0xFFFFFFFD00000000, 0x0000000280000000, 0x0000000066666665, 0x0000000080000000}, + [_]u64{0xFFFFFFFD00000000, 0x00000002FFFFFFFD, 0x0000000055555554, 0x00000001FFFFFFFC}, + [_]u64{0xFFFFFFFD00000000, 0x00000002FFFFFFFE, 0x0000000055555554, 0x00000001AAAAAAA8}, + [_]u64{0xFFFFFFFD00000000, 0x00000002FFFFFFFF, 0x0000000055555554, 0x0000000155555554}, + [_]u64{0xFFFFFFFD00000000, 0x0000000300000000, 0x0000000055555554, 0x0000000100000000}, + [_]u64{0xFFFFFFFD00000000, 0x0000000300000001, 0x0000000055555554, 0x00000000AAAAAAAC}, + [_]u64{0xFFFFFFFD00000000, 0x0000000300000002, 0x0000000055555554, 0x0000000055555558}, + [_]u64{0xFFFFFFFD00000000, 0x0000000300000003, 0x0000000055555554, 0x0000000000000004}, + [_]u64{0xFFFFFFFD00000000, 0x0000000300000010, 0x0000000055555552, 0x00000001AAAAAAE0}, + [_]u64{0xFFFFFFFD00000000, 0x00000003078644FA, 0x0000000054816147, 0x000000013FA624AA}, + [_]u64{0xFFFFFFFD00000000, 0x000000030747AE14, 0x00000000548833C5, 0x0000000213890E9C}, + [_]u64{0xFFFFFFFD00000000, 0x000000037FFFFFFF, 0x0000000049249248, 0x0000000149249248}, + [_]u64{0xFFFFFFFD00000000, 0x0000000380000000, 0x0000000049249248, 0x0000000100000000}, + [_]u64{0xFFFFFFFD00000000, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x00000001BFFFFFFD}, + [_]u64{0xFFFFFFFD00000000, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x000000017FFFFFFE}, + [_]u64{0xFFFFFFFD00000000, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x000000013FFFFFFF}, + [_]u64{0xFFFFFFFD00000000, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000D00000000}, + [_]u64{0xFFFFFFFD00000000, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000CF0000001}, + [_]u64{0xFFFFFFFD00000000, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000CE0000002}, + [_]u64{0xFFFFFFFD00000000, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000CD0000003}, + [_]u64{0xFFFFFFFD00000000, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000C00000010}, + [_]u64{0xFFFFFFFD00000000, 0x00000010078644FA, 0x000000000FF87D43, 0x00000000FFFDE092}, + [_]u64{0xFFFFFFFD00000000, 0x000000100747AE14, 0x000000000FF8BBA0, 0x0000000347AA9780}, + [_]u64{0xFFFFFFFD00000000, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000010F83E0F8}, + [_]u64{0xFFFFFFFD00000000, 0x0000001080000000, 0x000000000F83E0F8, 0x0000000100000000}, + [_]u64{0xFFFFFFFD00000000, 0x00000010FFFFFFFD, 0x000000000F0F0F0E, 0x0000000F2D2D2D2A}, + [_]u64{0xFFFFFFFD00000000, 0x00000010FFFFFFFE, 0x000000000F0F0F0E, 0x0000000F1E1E1E1C}, + [_]u64{0xFFFFFFFD00000000, 0x00000010FFFFFFFF, 0x000000000F0F0F0E, 0x0000000F0F0F0F0E}, + [_]u64{0xFFFFFFFD00000000, 0x078644FA00000000, 0x0000000000000022, 0x002AD6C900000000}, + [_]u64{0xFFFFFFFD00000000, 0x078644FA00000001, 0x0000000000000022, 0x002AD6C8FFFFFFDE}, + [_]u64{0xFFFFFFFD00000000, 0x078644FA00000002, 0x0000000000000022, 0x002AD6C8FFFFFFBC}, + [_]u64{0xFFFFFFFD00000000, 0x078644FA00000003, 0x0000000000000022, 0x002AD6C8FFFFFF9A}, + [_]u64{0xFFFFFFFD00000000, 0x078644FA00000010, 0x0000000000000022, 0x002AD6C8FFFFFDE0}, + [_]u64{0xFFFFFFFD00000000, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6C8002AD6CC}, + [_]u64{0xFFFFFFFD00000000, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6C8087AE158}, + [_]u64{0xFFFFFFFD00000000, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6B800000022}, + [_]u64{0xFFFFFFFD00000000, 0x078644FA80000000, 0x0000000000000022, 0x002AD6B800000000}, + [_]u64{0xFFFFFFFD00000000, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A700000066}, + [_]u64{0xFFFFFFFD00000000, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A700000044}, + [_]u64{0xFFFFFFFD00000000, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A700000022}, + [_]u64{0xFFFFFFFD00000000, 0x0747AE1400000000, 0x0000000000000023, 0x0133334100000000}, + [_]u64{0xFFFFFFFD00000000, 0x0747AE1400000001, 0x0000000000000023, 0x01333340FFFFFFDD}, + [_]u64{0xFFFFFFFD00000000, 0x0747AE1400000002, 0x0000000000000023, 0x01333340FFFFFFBA}, + [_]u64{0xFFFFFFFD00000000, 0x0747AE1400000003, 0x0000000000000023, 0x01333340FFFFFF97}, + [_]u64{0xFFFFFFFD00000000, 0x0747AE1400000010, 0x0000000000000023, 0x01333340FFFFFDD0}, + [_]u64{0xFFFFFFFD00000000, 0x0747AE14078644FA, 0x0000000000000023, 0x0133333FF8A491D2}, + [_]u64{0xFFFFFFFD00000000, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334001333344}, + [_]u64{0xFFFFFFFD00000000, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133332F80000023}, + [_]u64{0xFFFFFFFD00000000, 0x0747AE1480000000, 0x0000000000000023, 0x0133332F80000000}, + [_]u64{0xFFFFFFFD00000000, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133331E00000069}, + [_]u64{0xFFFFFFFD00000000, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133331E00000046}, + [_]u64{0xFFFFFFFD00000000, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133331E00000023}, + [_]u64{0xFFFFFFFD00000000, 0x7FFFFFFF00000000, 0x0000000000000001, 0x7FFFFFFE00000000}, + [_]u64{0xFFFFFFFD00000000, 0x7FFFFFFF00000001, 0x0000000000000001, 0x7FFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFD00000000, 0x7FFFFFFF00000002, 0x0000000000000001, 0x7FFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFD00000000, 0x7FFFFFFF00000003, 0x0000000000000001, 0x7FFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFD00000000, 0x7FFFFFFF00000010, 0x0000000000000001, 0x7FFFFFFDFFFFFFF0}, + [_]u64{0xFFFFFFFD00000000, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x7FFFFFFDF879BB06}, + [_]u64{0xFFFFFFFD00000000, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x7FFFFFFDF8B851EC}, + [_]u64{0xFFFFFFFD00000000, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x7FFFFFFD80000001}, + [_]u64{0xFFFFFFFD00000000, 0x7FFFFFFF80000000, 0x0000000000000001, 0x7FFFFFFD80000000}, + [_]u64{0xFFFFFFFD00000000, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000000, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000000, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000000, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFCFFFFFFFF}, + [_]u64{0xFFFFFFFD00000000, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFCFFFFFFFE}, + [_]u64{0xFFFFFFFD00000000, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFCFFFFFFFD}, + [_]u64{0xFFFFFFFD00000000, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFCFFFFFFF0}, + [_]u64{0xFFFFFFFD00000000, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFCF879BB06}, + [_]u64{0xFFFFFFFD00000000, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFCF8B851EC}, + [_]u64{0xFFFFFFFD00000000, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFC80000001}, + [_]u64{0xFFFFFFFD00000000, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFC80000000}, + [_]u64{0xFFFFFFFD00000000, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFC00000003}, + [_]u64{0xFFFFFFFD00000000, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFC00000002}, + [_]u64{0xFFFFFFFD00000000, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFC00000001}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFD00000000, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFD00000001, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFD00000002, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFD00000003, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFD00000010, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFD078644FA, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFD80000000, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFE00000000, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFE00000001, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFE00000002, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFE00000003, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFE00000010, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFE078644FA, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFE80000000, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFF00000000, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFF00000001, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFF00000002, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFF00000003, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFF00000010, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000000, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000001, 0x0000000000000001, 0xFFFFFFFD00000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFD00000001, 0x0000000000000002, 0x7FFFFFFE80000000, 0x0000000000000001}, + [_]u64{0xFFFFFFFD00000001, 0x0000000000000003, 0x5555555455555555, 0x0000000000000002}, + [_]u64{0xFFFFFFFD00000001, 0x0000000000000010, 0x0FFFFFFFD0000000, 0x0000000000000001}, + [_]u64{0xFFFFFFFD00000001, 0x00000000078644FA, 0x0000002205B17A97, 0x0000000000142C8B}, + [_]u64{0xFFFFFFFD00000001, 0x000000000747AE14, 0x000000232A32A512, 0x0000000001DADE99}, + [_]u64{0xFFFFFFFD00000001, 0x000000007FFFFFFF, 0x00000001FFFFFFFD, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFD00000001, 0x0000000080000000, 0x00000001FFFFFFFA, 0x0000000000000001}, + [_]u64{0xFFFFFFFD00000001, 0x00000000FFFFFFFD, 0x0000000100000000, 0x0000000000000001}, + [_]u64{0xFFFFFFFD00000001, 0x00000000FFFFFFFE, 0x00000000FFFFFFFE, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFD00000001, 0x00000000FFFFFFFF, 0x00000000FFFFFFFD, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFD00000001, 0x0000000100000000, 0x00000000FFFFFFFD, 0x0000000000000001}, + [_]u64{0xFFFFFFFD00000001, 0x0000000100000001, 0x00000000FFFFFFFC, 0x0000000000000005}, + [_]u64{0xFFFFFFFD00000001, 0x0000000100000002, 0x00000000FFFFFFFB, 0x000000000000000B}, + [_]u64{0xFFFFFFFD00000001, 0x0000000100000003, 0x00000000FFFFFFFA, 0x0000000000000013}, + [_]u64{0xFFFFFFFD00000001, 0x0000000100000010, 0x00000000FFFFFFED, 0x0000000000000131}, + [_]u64{0xFFFFFFFD00000001, 0x00000001078644FA, 0x00000000F8B0BB59, 0x00000000B20F6717}, + [_]u64{0xFFFFFFFD00000001, 0x000000010747AE14, 0x00000000F8EBDA57, 0x00000000500ACF35}, + [_]u64{0xFFFFFFFD00000001, 0x000000017FFFFFFF, 0x00000000AAAAAAA9, 0x000000002AAAAAAA}, + [_]u64{0xFFFFFFFD00000001, 0x0000000180000000, 0x00000000AAAAAAA8, 0x0000000100000001}, + [_]u64{0xFFFFFFFD00000001, 0x00000001FFFFFFFD, 0x000000007FFFFFFF, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFD00000001, 0x00000001FFFFFFFE, 0x000000007FFFFFFE, 0x00000001FFFFFFFD}, + [_]u64{0xFFFFFFFD00000001, 0x00000001FFFFFFFF, 0x000000007FFFFFFE, 0x000000017FFFFFFF}, + [_]u64{0xFFFFFFFD00000001, 0x0000000200000000, 0x000000007FFFFFFE, 0x0000000100000001}, + [_]u64{0xFFFFFFFD00000001, 0x0000000200000001, 0x000000007FFFFFFE, 0x0000000080000003}, + [_]u64{0xFFFFFFFD00000001, 0x0000000200000002, 0x000000007FFFFFFE, 0x0000000000000005}, + [_]u64{0xFFFFFFFD00000001, 0x0000000200000003, 0x000000007FFFFFFD, 0x000000018000000A}, + [_]u64{0xFFFFFFFD00000001, 0x0000000200000010, 0x000000007FFFFFFA, 0x0000000100000061}, + [_]u64{0xFFFFFFFD00000001, 0x00000002078644FA, 0x000000007E256848, 0x00000001521509B1}, + [_]u64{0xFFFFFFFD00000001, 0x000000020747AE14, 0x000000007E349CA5, 0x000000016CA89D1D}, + [_]u64{0xFFFFFFFD00000001, 0x000000027FFFFFFF, 0x0000000066666665, 0x00000000E6666666}, + [_]u64{0xFFFFFFFD00000001, 0x0000000280000000, 0x0000000066666665, 0x0000000080000001}, + [_]u64{0xFFFFFFFD00000001, 0x00000002FFFFFFFD, 0x0000000055555554, 0x00000001FFFFFFFD}, + [_]u64{0xFFFFFFFD00000001, 0x00000002FFFFFFFE, 0x0000000055555554, 0x00000001AAAAAAA9}, + [_]u64{0xFFFFFFFD00000001, 0x00000002FFFFFFFF, 0x0000000055555554, 0x0000000155555555}, + [_]u64{0xFFFFFFFD00000001, 0x0000000300000000, 0x0000000055555554, 0x0000000100000001}, + [_]u64{0xFFFFFFFD00000001, 0x0000000300000001, 0x0000000055555554, 0x00000000AAAAAAAD}, + [_]u64{0xFFFFFFFD00000001, 0x0000000300000002, 0x0000000055555554, 0x0000000055555559}, + [_]u64{0xFFFFFFFD00000001, 0x0000000300000003, 0x0000000055555554, 0x0000000000000005}, + [_]u64{0xFFFFFFFD00000001, 0x0000000300000010, 0x0000000055555552, 0x00000001AAAAAAE1}, + [_]u64{0xFFFFFFFD00000001, 0x00000003078644FA, 0x0000000054816147, 0x000000013FA624AB}, + [_]u64{0xFFFFFFFD00000001, 0x000000030747AE14, 0x00000000548833C5, 0x0000000213890E9D}, + [_]u64{0xFFFFFFFD00000001, 0x000000037FFFFFFF, 0x0000000049249248, 0x0000000149249249}, + [_]u64{0xFFFFFFFD00000001, 0x0000000380000000, 0x0000000049249248, 0x0000000100000001}, + [_]u64{0xFFFFFFFD00000001, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x00000001BFFFFFFE}, + [_]u64{0xFFFFFFFD00000001, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x000000017FFFFFFF}, + [_]u64{0xFFFFFFFD00000001, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x0000000140000000}, + [_]u64{0xFFFFFFFD00000001, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000D00000001}, + [_]u64{0xFFFFFFFD00000001, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000CF0000002}, + [_]u64{0xFFFFFFFD00000001, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000CE0000003}, + [_]u64{0xFFFFFFFD00000001, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000CD0000004}, + [_]u64{0xFFFFFFFD00000001, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000C00000011}, + [_]u64{0xFFFFFFFD00000001, 0x00000010078644FA, 0x000000000FF87D43, 0x00000000FFFDE093}, + [_]u64{0xFFFFFFFD00000001, 0x000000100747AE14, 0x000000000FF8BBA0, 0x0000000347AA9781}, + [_]u64{0xFFFFFFFD00000001, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000010F83E0F9}, + [_]u64{0xFFFFFFFD00000001, 0x0000001080000000, 0x000000000F83E0F8, 0x0000000100000001}, + [_]u64{0xFFFFFFFD00000001, 0x00000010FFFFFFFD, 0x000000000F0F0F0E, 0x0000000F2D2D2D2B}, + [_]u64{0xFFFFFFFD00000001, 0x00000010FFFFFFFE, 0x000000000F0F0F0E, 0x0000000F1E1E1E1D}, + [_]u64{0xFFFFFFFD00000001, 0x00000010FFFFFFFF, 0x000000000F0F0F0E, 0x0000000F0F0F0F0F}, + [_]u64{0xFFFFFFFD00000001, 0x078644FA00000000, 0x0000000000000022, 0x002AD6C900000001}, + [_]u64{0xFFFFFFFD00000001, 0x078644FA00000001, 0x0000000000000022, 0x002AD6C8FFFFFFDF}, + [_]u64{0xFFFFFFFD00000001, 0x078644FA00000002, 0x0000000000000022, 0x002AD6C8FFFFFFBD}, + [_]u64{0xFFFFFFFD00000001, 0x078644FA00000003, 0x0000000000000022, 0x002AD6C8FFFFFF9B}, + [_]u64{0xFFFFFFFD00000001, 0x078644FA00000010, 0x0000000000000022, 0x002AD6C8FFFFFDE1}, + [_]u64{0xFFFFFFFD00000001, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6C8002AD6CD}, + [_]u64{0xFFFFFFFD00000001, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6C8087AE159}, + [_]u64{0xFFFFFFFD00000001, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6B800000023}, + [_]u64{0xFFFFFFFD00000001, 0x078644FA80000000, 0x0000000000000022, 0x002AD6B800000001}, + [_]u64{0xFFFFFFFD00000001, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A700000067}, + [_]u64{0xFFFFFFFD00000001, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A700000045}, + [_]u64{0xFFFFFFFD00000001, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A700000023}, + [_]u64{0xFFFFFFFD00000001, 0x0747AE1400000000, 0x0000000000000023, 0x0133334100000001}, + [_]u64{0xFFFFFFFD00000001, 0x0747AE1400000001, 0x0000000000000023, 0x01333340FFFFFFDE}, + [_]u64{0xFFFFFFFD00000001, 0x0747AE1400000002, 0x0000000000000023, 0x01333340FFFFFFBB}, + [_]u64{0xFFFFFFFD00000001, 0x0747AE1400000003, 0x0000000000000023, 0x01333340FFFFFF98}, + [_]u64{0xFFFFFFFD00000001, 0x0747AE1400000010, 0x0000000000000023, 0x01333340FFFFFDD1}, + [_]u64{0xFFFFFFFD00000001, 0x0747AE14078644FA, 0x0000000000000023, 0x0133333FF8A491D3}, + [_]u64{0xFFFFFFFD00000001, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334001333345}, + [_]u64{0xFFFFFFFD00000001, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133332F80000024}, + [_]u64{0xFFFFFFFD00000001, 0x0747AE1480000000, 0x0000000000000023, 0x0133332F80000001}, + [_]u64{0xFFFFFFFD00000001, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133331E0000006A}, + [_]u64{0xFFFFFFFD00000001, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133331E00000047}, + [_]u64{0xFFFFFFFD00000001, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133331E00000024}, + [_]u64{0xFFFFFFFD00000001, 0x7FFFFFFF00000000, 0x0000000000000001, 0x7FFFFFFE00000001}, + [_]u64{0xFFFFFFFD00000001, 0x7FFFFFFF00000001, 0x0000000000000001, 0x7FFFFFFE00000000}, + [_]u64{0xFFFFFFFD00000001, 0x7FFFFFFF00000002, 0x0000000000000001, 0x7FFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFD00000001, 0x7FFFFFFF00000003, 0x0000000000000001, 0x7FFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFD00000001, 0x7FFFFFFF00000010, 0x0000000000000001, 0x7FFFFFFDFFFFFFF1}, + [_]u64{0xFFFFFFFD00000001, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x7FFFFFFDF879BB07}, + [_]u64{0xFFFFFFFD00000001, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x7FFFFFFDF8B851ED}, + [_]u64{0xFFFFFFFD00000001, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x7FFFFFFD80000002}, + [_]u64{0xFFFFFFFD00000001, 0x7FFFFFFF80000000, 0x0000000000000001, 0x7FFFFFFD80000001}, + [_]u64{0xFFFFFFFD00000001, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFD00000004}, + [_]u64{0xFFFFFFFD00000001, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000001, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000001, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000001, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFCFFFFFFFF}, + [_]u64{0xFFFFFFFD00000001, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFCFFFFFFFE}, + [_]u64{0xFFFFFFFD00000001, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFCFFFFFFF1}, + [_]u64{0xFFFFFFFD00000001, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFCF879BB07}, + [_]u64{0xFFFFFFFD00000001, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFCF8B851ED}, + [_]u64{0xFFFFFFFD00000001, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFC80000002}, + [_]u64{0xFFFFFFFD00000001, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFC80000001}, + [_]u64{0xFFFFFFFD00000001, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFC00000004}, + [_]u64{0xFFFFFFFD00000001, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFC00000003}, + [_]u64{0xFFFFFFFD00000001, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFC00000002}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFD00000000, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFD00000001, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFD00000002, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFD00000003, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFD00000010, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFD078644FA, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFD80000000, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFE00000000, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFE00000001, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFE00000002, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFE00000003, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFE00000010, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFE078644FA, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFE80000000, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFF00000000, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFF00000001, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFF00000002, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFF00000003, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFF00000010, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000001, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000002, 0x0000000000000001, 0xFFFFFFFD00000002, 0x0000000000000000}, + [_]u64{0xFFFFFFFD00000002, 0x0000000000000002, 0x7FFFFFFE80000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFD00000002, 0x0000000000000003, 0x5555555455555556, 0x0000000000000000}, + [_]u64{0xFFFFFFFD00000002, 0x0000000000000010, 0x0FFFFFFFD0000000, 0x0000000000000002}, + [_]u64{0xFFFFFFFD00000002, 0x00000000078644FA, 0x0000002205B17A97, 0x0000000000142C8C}, + [_]u64{0xFFFFFFFD00000002, 0x000000000747AE14, 0x000000232A32A512, 0x0000000001DADE9A}, + [_]u64{0xFFFFFFFD00000002, 0x000000007FFFFFFF, 0x00000001FFFFFFFE, 0x0000000000000000}, + [_]u64{0xFFFFFFFD00000002, 0x0000000080000000, 0x00000001FFFFFFFA, 0x0000000000000002}, + [_]u64{0xFFFFFFFD00000002, 0x00000000FFFFFFFD, 0x0000000100000000, 0x0000000000000002}, + [_]u64{0xFFFFFFFD00000002, 0x00000000FFFFFFFE, 0x00000000FFFFFFFF, 0x0000000000000000}, + [_]u64{0xFFFFFFFD00000002, 0x00000000FFFFFFFF, 0x00000000FFFFFFFE, 0x0000000000000000}, + [_]u64{0xFFFFFFFD00000002, 0x0000000100000000, 0x00000000FFFFFFFD, 0x0000000000000002}, + [_]u64{0xFFFFFFFD00000002, 0x0000000100000001, 0x00000000FFFFFFFC, 0x0000000000000006}, + [_]u64{0xFFFFFFFD00000002, 0x0000000100000002, 0x00000000FFFFFFFB, 0x000000000000000C}, + [_]u64{0xFFFFFFFD00000002, 0x0000000100000003, 0x00000000FFFFFFFA, 0x0000000000000014}, + [_]u64{0xFFFFFFFD00000002, 0x0000000100000010, 0x00000000FFFFFFED, 0x0000000000000132}, + [_]u64{0xFFFFFFFD00000002, 0x00000001078644FA, 0x00000000F8B0BB59, 0x00000000B20F6718}, + [_]u64{0xFFFFFFFD00000002, 0x000000010747AE14, 0x00000000F8EBDA57, 0x00000000500ACF36}, + [_]u64{0xFFFFFFFD00000002, 0x000000017FFFFFFF, 0x00000000AAAAAAA9, 0x000000002AAAAAAB}, + [_]u64{0xFFFFFFFD00000002, 0x0000000180000000, 0x00000000AAAAAAA8, 0x0000000100000002}, + [_]u64{0xFFFFFFFD00000002, 0x00000001FFFFFFFD, 0x000000007FFFFFFF, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFD00000002, 0x00000001FFFFFFFE, 0x000000007FFFFFFF, 0x0000000000000000}, + [_]u64{0xFFFFFFFD00000002, 0x00000001FFFFFFFF, 0x000000007FFFFFFE, 0x0000000180000000}, + [_]u64{0xFFFFFFFD00000002, 0x0000000200000000, 0x000000007FFFFFFE, 0x0000000100000002}, + [_]u64{0xFFFFFFFD00000002, 0x0000000200000001, 0x000000007FFFFFFE, 0x0000000080000004}, + [_]u64{0xFFFFFFFD00000002, 0x0000000200000002, 0x000000007FFFFFFE, 0x0000000000000006}, + [_]u64{0xFFFFFFFD00000002, 0x0000000200000003, 0x000000007FFFFFFD, 0x000000018000000B}, + [_]u64{0xFFFFFFFD00000002, 0x0000000200000010, 0x000000007FFFFFFA, 0x0000000100000062}, + [_]u64{0xFFFFFFFD00000002, 0x00000002078644FA, 0x000000007E256848, 0x00000001521509B2}, + [_]u64{0xFFFFFFFD00000002, 0x000000020747AE14, 0x000000007E349CA5, 0x000000016CA89D1E}, + [_]u64{0xFFFFFFFD00000002, 0x000000027FFFFFFF, 0x0000000066666665, 0x00000000E6666667}, + [_]u64{0xFFFFFFFD00000002, 0x0000000280000000, 0x0000000066666665, 0x0000000080000002}, + [_]u64{0xFFFFFFFD00000002, 0x00000002FFFFFFFD, 0x0000000055555554, 0x00000001FFFFFFFE}, + [_]u64{0xFFFFFFFD00000002, 0x00000002FFFFFFFE, 0x0000000055555554, 0x00000001AAAAAAAA}, + [_]u64{0xFFFFFFFD00000002, 0x00000002FFFFFFFF, 0x0000000055555554, 0x0000000155555556}, + [_]u64{0xFFFFFFFD00000002, 0x0000000300000000, 0x0000000055555554, 0x0000000100000002}, + [_]u64{0xFFFFFFFD00000002, 0x0000000300000001, 0x0000000055555554, 0x00000000AAAAAAAE}, + [_]u64{0xFFFFFFFD00000002, 0x0000000300000002, 0x0000000055555554, 0x000000005555555A}, + [_]u64{0xFFFFFFFD00000002, 0x0000000300000003, 0x0000000055555554, 0x0000000000000006}, + [_]u64{0xFFFFFFFD00000002, 0x0000000300000010, 0x0000000055555552, 0x00000001AAAAAAE2}, + [_]u64{0xFFFFFFFD00000002, 0x00000003078644FA, 0x0000000054816147, 0x000000013FA624AC}, + [_]u64{0xFFFFFFFD00000002, 0x000000030747AE14, 0x00000000548833C5, 0x0000000213890E9E}, + [_]u64{0xFFFFFFFD00000002, 0x000000037FFFFFFF, 0x0000000049249248, 0x000000014924924A}, + [_]u64{0xFFFFFFFD00000002, 0x0000000380000000, 0x0000000049249248, 0x0000000100000002}, + [_]u64{0xFFFFFFFD00000002, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x00000001BFFFFFFF}, + [_]u64{0xFFFFFFFD00000002, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x0000000180000000}, + [_]u64{0xFFFFFFFD00000002, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x0000000140000001}, + [_]u64{0xFFFFFFFD00000002, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000D00000002}, + [_]u64{0xFFFFFFFD00000002, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000CF0000003}, + [_]u64{0xFFFFFFFD00000002, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000CE0000004}, + [_]u64{0xFFFFFFFD00000002, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000CD0000005}, + [_]u64{0xFFFFFFFD00000002, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000C00000012}, + [_]u64{0xFFFFFFFD00000002, 0x00000010078644FA, 0x000000000FF87D43, 0x00000000FFFDE094}, + [_]u64{0xFFFFFFFD00000002, 0x000000100747AE14, 0x000000000FF8BBA0, 0x0000000347AA9782}, + [_]u64{0xFFFFFFFD00000002, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000010F83E0FA}, + [_]u64{0xFFFFFFFD00000002, 0x0000001080000000, 0x000000000F83E0F8, 0x0000000100000002}, + [_]u64{0xFFFFFFFD00000002, 0x00000010FFFFFFFD, 0x000000000F0F0F0E, 0x0000000F2D2D2D2C}, + [_]u64{0xFFFFFFFD00000002, 0x00000010FFFFFFFE, 0x000000000F0F0F0E, 0x0000000F1E1E1E1E}, + [_]u64{0xFFFFFFFD00000002, 0x00000010FFFFFFFF, 0x000000000F0F0F0E, 0x0000000F0F0F0F10}, + [_]u64{0xFFFFFFFD00000002, 0x078644FA00000000, 0x0000000000000022, 0x002AD6C900000002}, + [_]u64{0xFFFFFFFD00000002, 0x078644FA00000001, 0x0000000000000022, 0x002AD6C8FFFFFFE0}, + [_]u64{0xFFFFFFFD00000002, 0x078644FA00000002, 0x0000000000000022, 0x002AD6C8FFFFFFBE}, + [_]u64{0xFFFFFFFD00000002, 0x078644FA00000003, 0x0000000000000022, 0x002AD6C8FFFFFF9C}, + [_]u64{0xFFFFFFFD00000002, 0x078644FA00000010, 0x0000000000000022, 0x002AD6C8FFFFFDE2}, + [_]u64{0xFFFFFFFD00000002, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6C8002AD6CE}, + [_]u64{0xFFFFFFFD00000002, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6C8087AE15A}, + [_]u64{0xFFFFFFFD00000002, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6B800000024}, + [_]u64{0xFFFFFFFD00000002, 0x078644FA80000000, 0x0000000000000022, 0x002AD6B800000002}, + [_]u64{0xFFFFFFFD00000002, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A700000068}, + [_]u64{0xFFFFFFFD00000002, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A700000046}, + [_]u64{0xFFFFFFFD00000002, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A700000024}, + [_]u64{0xFFFFFFFD00000002, 0x0747AE1400000000, 0x0000000000000023, 0x0133334100000002}, + [_]u64{0xFFFFFFFD00000002, 0x0747AE1400000001, 0x0000000000000023, 0x01333340FFFFFFDF}, + [_]u64{0xFFFFFFFD00000002, 0x0747AE1400000002, 0x0000000000000023, 0x01333340FFFFFFBC}, + [_]u64{0xFFFFFFFD00000002, 0x0747AE1400000003, 0x0000000000000023, 0x01333340FFFFFF99}, + [_]u64{0xFFFFFFFD00000002, 0x0747AE1400000010, 0x0000000000000023, 0x01333340FFFFFDD2}, + [_]u64{0xFFFFFFFD00000002, 0x0747AE14078644FA, 0x0000000000000023, 0x0133333FF8A491D4}, + [_]u64{0xFFFFFFFD00000002, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334001333346}, + [_]u64{0xFFFFFFFD00000002, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133332F80000025}, + [_]u64{0xFFFFFFFD00000002, 0x0747AE1480000000, 0x0000000000000023, 0x0133332F80000002}, + [_]u64{0xFFFFFFFD00000002, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133331E0000006B}, + [_]u64{0xFFFFFFFD00000002, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133331E00000048}, + [_]u64{0xFFFFFFFD00000002, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133331E00000025}, + [_]u64{0xFFFFFFFD00000002, 0x7FFFFFFF00000000, 0x0000000000000001, 0x7FFFFFFE00000002}, + [_]u64{0xFFFFFFFD00000002, 0x7FFFFFFF00000001, 0x0000000000000001, 0x7FFFFFFE00000001}, + [_]u64{0xFFFFFFFD00000002, 0x7FFFFFFF00000002, 0x0000000000000001, 0x7FFFFFFE00000000}, + [_]u64{0xFFFFFFFD00000002, 0x7FFFFFFF00000003, 0x0000000000000001, 0x7FFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFD00000002, 0x7FFFFFFF00000010, 0x0000000000000001, 0x7FFFFFFDFFFFFFF2}, + [_]u64{0xFFFFFFFD00000002, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x7FFFFFFDF879BB08}, + [_]u64{0xFFFFFFFD00000002, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x7FFFFFFDF8B851EE}, + [_]u64{0xFFFFFFFD00000002, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x7FFFFFFD80000003}, + [_]u64{0xFFFFFFFD00000002, 0x7FFFFFFF80000000, 0x0000000000000001, 0x7FFFFFFD80000002}, + [_]u64{0xFFFFFFFD00000002, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFD00000005}, + [_]u64{0xFFFFFFFD00000002, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFD00000004}, + [_]u64{0xFFFFFFFD00000002, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000002, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000002, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000002, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFCFFFFFFFF}, + [_]u64{0xFFFFFFFD00000002, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFCFFFFFFF2}, + [_]u64{0xFFFFFFFD00000002, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFCF879BB08}, + [_]u64{0xFFFFFFFD00000002, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFCF8B851EE}, + [_]u64{0xFFFFFFFD00000002, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFC80000003}, + [_]u64{0xFFFFFFFD00000002, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFC80000002}, + [_]u64{0xFFFFFFFD00000002, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFC00000005}, + [_]u64{0xFFFFFFFD00000002, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFC00000004}, + [_]u64{0xFFFFFFFD00000002, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFC00000003}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFD00000000, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFD00000001, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFD00000002, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFD00000003, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFD00000010, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFD078644FA, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFD80000000, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFE00000000, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFE00000001, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFE00000002, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFE00000003, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFE00000010, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFE078644FA, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFE80000000, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFF00000000, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFF00000001, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFF00000002, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFF00000003, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFF00000010, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000002, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000003, 0x0000000000000001, 0xFFFFFFFD00000003, 0x0000000000000000}, + [_]u64{0xFFFFFFFD00000003, 0x0000000000000002, 0x7FFFFFFE80000001, 0x0000000000000001}, + [_]u64{0xFFFFFFFD00000003, 0x0000000000000003, 0x5555555455555556, 0x0000000000000001}, + [_]u64{0xFFFFFFFD00000003, 0x0000000000000010, 0x0FFFFFFFD0000000, 0x0000000000000003}, + [_]u64{0xFFFFFFFD00000003, 0x00000000078644FA, 0x0000002205B17A97, 0x0000000000142C8D}, + [_]u64{0xFFFFFFFD00000003, 0x000000000747AE14, 0x000000232A32A512, 0x0000000001DADE9B}, + [_]u64{0xFFFFFFFD00000003, 0x000000007FFFFFFF, 0x00000001FFFFFFFE, 0x0000000000000001}, + [_]u64{0xFFFFFFFD00000003, 0x0000000080000000, 0x00000001FFFFFFFA, 0x0000000000000003}, + [_]u64{0xFFFFFFFD00000003, 0x00000000FFFFFFFD, 0x0000000100000000, 0x0000000000000003}, + [_]u64{0xFFFFFFFD00000003, 0x00000000FFFFFFFE, 0x00000000FFFFFFFF, 0x0000000000000001}, + [_]u64{0xFFFFFFFD00000003, 0x00000000FFFFFFFF, 0x00000000FFFFFFFE, 0x0000000000000001}, + [_]u64{0xFFFFFFFD00000003, 0x0000000100000000, 0x00000000FFFFFFFD, 0x0000000000000003}, + [_]u64{0xFFFFFFFD00000003, 0x0000000100000001, 0x00000000FFFFFFFC, 0x0000000000000007}, + [_]u64{0xFFFFFFFD00000003, 0x0000000100000002, 0x00000000FFFFFFFB, 0x000000000000000D}, + [_]u64{0xFFFFFFFD00000003, 0x0000000100000003, 0x00000000FFFFFFFA, 0x0000000000000015}, + [_]u64{0xFFFFFFFD00000003, 0x0000000100000010, 0x00000000FFFFFFED, 0x0000000000000133}, + [_]u64{0xFFFFFFFD00000003, 0x00000001078644FA, 0x00000000F8B0BB59, 0x00000000B20F6719}, + [_]u64{0xFFFFFFFD00000003, 0x000000010747AE14, 0x00000000F8EBDA57, 0x00000000500ACF37}, + [_]u64{0xFFFFFFFD00000003, 0x000000017FFFFFFF, 0x00000000AAAAAAA9, 0x000000002AAAAAAC}, + [_]u64{0xFFFFFFFD00000003, 0x0000000180000000, 0x00000000AAAAAAA8, 0x0000000100000003}, + [_]u64{0xFFFFFFFD00000003, 0x00000001FFFFFFFD, 0x000000007FFFFFFF, 0x0000000080000000}, + [_]u64{0xFFFFFFFD00000003, 0x00000001FFFFFFFE, 0x000000007FFFFFFF, 0x0000000000000001}, + [_]u64{0xFFFFFFFD00000003, 0x00000001FFFFFFFF, 0x000000007FFFFFFE, 0x0000000180000001}, + [_]u64{0xFFFFFFFD00000003, 0x0000000200000000, 0x000000007FFFFFFE, 0x0000000100000003}, + [_]u64{0xFFFFFFFD00000003, 0x0000000200000001, 0x000000007FFFFFFE, 0x0000000080000005}, + [_]u64{0xFFFFFFFD00000003, 0x0000000200000002, 0x000000007FFFFFFE, 0x0000000000000007}, + [_]u64{0xFFFFFFFD00000003, 0x0000000200000003, 0x000000007FFFFFFD, 0x000000018000000C}, + [_]u64{0xFFFFFFFD00000003, 0x0000000200000010, 0x000000007FFFFFFA, 0x0000000100000063}, + [_]u64{0xFFFFFFFD00000003, 0x00000002078644FA, 0x000000007E256848, 0x00000001521509B3}, + [_]u64{0xFFFFFFFD00000003, 0x000000020747AE14, 0x000000007E349CA5, 0x000000016CA89D1F}, + [_]u64{0xFFFFFFFD00000003, 0x000000027FFFFFFF, 0x0000000066666665, 0x00000000E6666668}, + [_]u64{0xFFFFFFFD00000003, 0x0000000280000000, 0x0000000066666665, 0x0000000080000003}, + [_]u64{0xFFFFFFFD00000003, 0x00000002FFFFFFFD, 0x0000000055555554, 0x00000001FFFFFFFF}, + [_]u64{0xFFFFFFFD00000003, 0x00000002FFFFFFFE, 0x0000000055555554, 0x00000001AAAAAAAB}, + [_]u64{0xFFFFFFFD00000003, 0x00000002FFFFFFFF, 0x0000000055555554, 0x0000000155555557}, + [_]u64{0xFFFFFFFD00000003, 0x0000000300000000, 0x0000000055555554, 0x0000000100000003}, + [_]u64{0xFFFFFFFD00000003, 0x0000000300000001, 0x0000000055555554, 0x00000000AAAAAAAF}, + [_]u64{0xFFFFFFFD00000003, 0x0000000300000002, 0x0000000055555554, 0x000000005555555B}, + [_]u64{0xFFFFFFFD00000003, 0x0000000300000003, 0x0000000055555554, 0x0000000000000007}, + [_]u64{0xFFFFFFFD00000003, 0x0000000300000010, 0x0000000055555552, 0x00000001AAAAAAE3}, + [_]u64{0xFFFFFFFD00000003, 0x00000003078644FA, 0x0000000054816147, 0x000000013FA624AD}, + [_]u64{0xFFFFFFFD00000003, 0x000000030747AE14, 0x00000000548833C5, 0x0000000213890E9F}, + [_]u64{0xFFFFFFFD00000003, 0x000000037FFFFFFF, 0x0000000049249248, 0x000000014924924B}, + [_]u64{0xFFFFFFFD00000003, 0x0000000380000000, 0x0000000049249248, 0x0000000100000003}, + [_]u64{0xFFFFFFFD00000003, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x00000001C0000000}, + [_]u64{0xFFFFFFFD00000003, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x0000000180000001}, + [_]u64{0xFFFFFFFD00000003, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x0000000140000002}, + [_]u64{0xFFFFFFFD00000003, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000D00000003}, + [_]u64{0xFFFFFFFD00000003, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000CF0000004}, + [_]u64{0xFFFFFFFD00000003, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000CE0000005}, + [_]u64{0xFFFFFFFD00000003, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000CD0000006}, + [_]u64{0xFFFFFFFD00000003, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000C00000013}, + [_]u64{0xFFFFFFFD00000003, 0x00000010078644FA, 0x000000000FF87D43, 0x00000000FFFDE095}, + [_]u64{0xFFFFFFFD00000003, 0x000000100747AE14, 0x000000000FF8BBA0, 0x0000000347AA9783}, + [_]u64{0xFFFFFFFD00000003, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000010F83E0FB}, + [_]u64{0xFFFFFFFD00000003, 0x0000001080000000, 0x000000000F83E0F8, 0x0000000100000003}, + [_]u64{0xFFFFFFFD00000003, 0x00000010FFFFFFFD, 0x000000000F0F0F0E, 0x0000000F2D2D2D2D}, + [_]u64{0xFFFFFFFD00000003, 0x00000010FFFFFFFE, 0x000000000F0F0F0E, 0x0000000F1E1E1E1F}, + [_]u64{0xFFFFFFFD00000003, 0x00000010FFFFFFFF, 0x000000000F0F0F0E, 0x0000000F0F0F0F11}, + [_]u64{0xFFFFFFFD00000003, 0x078644FA00000000, 0x0000000000000022, 0x002AD6C900000003}, + [_]u64{0xFFFFFFFD00000003, 0x078644FA00000001, 0x0000000000000022, 0x002AD6C8FFFFFFE1}, + [_]u64{0xFFFFFFFD00000003, 0x078644FA00000002, 0x0000000000000022, 0x002AD6C8FFFFFFBF}, + [_]u64{0xFFFFFFFD00000003, 0x078644FA00000003, 0x0000000000000022, 0x002AD6C8FFFFFF9D}, + [_]u64{0xFFFFFFFD00000003, 0x078644FA00000010, 0x0000000000000022, 0x002AD6C8FFFFFDE3}, + [_]u64{0xFFFFFFFD00000003, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6C8002AD6CF}, + [_]u64{0xFFFFFFFD00000003, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6C8087AE15B}, + [_]u64{0xFFFFFFFD00000003, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6B800000025}, + [_]u64{0xFFFFFFFD00000003, 0x078644FA80000000, 0x0000000000000022, 0x002AD6B800000003}, + [_]u64{0xFFFFFFFD00000003, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A700000069}, + [_]u64{0xFFFFFFFD00000003, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A700000047}, + [_]u64{0xFFFFFFFD00000003, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A700000025}, + [_]u64{0xFFFFFFFD00000003, 0x0747AE1400000000, 0x0000000000000023, 0x0133334100000003}, + [_]u64{0xFFFFFFFD00000003, 0x0747AE1400000001, 0x0000000000000023, 0x01333340FFFFFFE0}, + [_]u64{0xFFFFFFFD00000003, 0x0747AE1400000002, 0x0000000000000023, 0x01333340FFFFFFBD}, + [_]u64{0xFFFFFFFD00000003, 0x0747AE1400000003, 0x0000000000000023, 0x01333340FFFFFF9A}, + [_]u64{0xFFFFFFFD00000003, 0x0747AE1400000010, 0x0000000000000023, 0x01333340FFFFFDD3}, + [_]u64{0xFFFFFFFD00000003, 0x0747AE14078644FA, 0x0000000000000023, 0x0133333FF8A491D5}, + [_]u64{0xFFFFFFFD00000003, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334001333347}, + [_]u64{0xFFFFFFFD00000003, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133332F80000026}, + [_]u64{0xFFFFFFFD00000003, 0x0747AE1480000000, 0x0000000000000023, 0x0133332F80000003}, + [_]u64{0xFFFFFFFD00000003, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133331E0000006C}, + [_]u64{0xFFFFFFFD00000003, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133331E00000049}, + [_]u64{0xFFFFFFFD00000003, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133331E00000026}, + [_]u64{0xFFFFFFFD00000003, 0x7FFFFFFF00000000, 0x0000000000000001, 0x7FFFFFFE00000003}, + [_]u64{0xFFFFFFFD00000003, 0x7FFFFFFF00000001, 0x0000000000000001, 0x7FFFFFFE00000002}, + [_]u64{0xFFFFFFFD00000003, 0x7FFFFFFF00000002, 0x0000000000000001, 0x7FFFFFFE00000001}, + [_]u64{0xFFFFFFFD00000003, 0x7FFFFFFF00000003, 0x0000000000000001, 0x7FFFFFFE00000000}, + [_]u64{0xFFFFFFFD00000003, 0x7FFFFFFF00000010, 0x0000000000000001, 0x7FFFFFFDFFFFFFF3}, + [_]u64{0xFFFFFFFD00000003, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x7FFFFFFDF879BB09}, + [_]u64{0xFFFFFFFD00000003, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x7FFFFFFDF8B851EF}, + [_]u64{0xFFFFFFFD00000003, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x7FFFFFFD80000004}, + [_]u64{0xFFFFFFFD00000003, 0x7FFFFFFF80000000, 0x0000000000000001, 0x7FFFFFFD80000003}, + [_]u64{0xFFFFFFFD00000003, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFD00000006}, + [_]u64{0xFFFFFFFD00000003, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFD00000005}, + [_]u64{0xFFFFFFFD00000003, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFD00000004}, + [_]u64{0xFFFFFFFD00000003, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFD00000002}, + [_]u64{0xFFFFFFFD00000003, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFD00000001}, + [_]u64{0xFFFFFFFD00000003, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000003, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFCFFFFFFF3}, + [_]u64{0xFFFFFFFD00000003, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFCF879BB09}, + [_]u64{0xFFFFFFFD00000003, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFCF8B851EF}, + [_]u64{0xFFFFFFFD00000003, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFC80000004}, + [_]u64{0xFFFFFFFD00000003, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFC80000003}, + [_]u64{0xFFFFFFFD00000003, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFC00000006}, + [_]u64{0xFFFFFFFD00000003, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFC00000005}, + [_]u64{0xFFFFFFFD00000003, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFC00000004}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFD00000000, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFD00000001, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFD00000002, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFD00000003, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFD00000010, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFD078644FA, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFD80000000, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFE00000000, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFE00000001, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFE00000002, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFE00000003, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFE00000010, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFE078644FA, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFE80000000, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFF00000000, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFF00000001, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFF00000002, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFF00000003, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFF00000010, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000003, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000003}, + [_]u64{0xFFFFFFFD00000010, 0x0000000000000001, 0xFFFFFFFD00000010, 0x0000000000000000}, + [_]u64{0xFFFFFFFD00000010, 0x0000000000000002, 0x7FFFFFFE80000008, 0x0000000000000000}, + [_]u64{0xFFFFFFFD00000010, 0x0000000000000003, 0x555555545555555A, 0x0000000000000002}, + [_]u64{0xFFFFFFFD00000010, 0x0000000000000010, 0x0FFFFFFFD0000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFD00000010, 0x00000000078644FA, 0x0000002205B17A97, 0x0000000000142C9A}, + [_]u64{0xFFFFFFFD00000010, 0x000000000747AE14, 0x000000232A32A512, 0x0000000001DADEA8}, + [_]u64{0xFFFFFFFD00000010, 0x000000007FFFFFFF, 0x00000001FFFFFFFE, 0x000000000000000E}, + [_]u64{0xFFFFFFFD00000010, 0x0000000080000000, 0x00000001FFFFFFFA, 0x0000000000000010}, + [_]u64{0xFFFFFFFD00000010, 0x00000000FFFFFFFD, 0x0000000100000000, 0x0000000000000010}, + [_]u64{0xFFFFFFFD00000010, 0x00000000FFFFFFFE, 0x00000000FFFFFFFF, 0x000000000000000E}, + [_]u64{0xFFFFFFFD00000010, 0x00000000FFFFFFFF, 0x00000000FFFFFFFE, 0x000000000000000E}, + [_]u64{0xFFFFFFFD00000010, 0x0000000100000000, 0x00000000FFFFFFFD, 0x0000000000000010}, + [_]u64{0xFFFFFFFD00000010, 0x0000000100000001, 0x00000000FFFFFFFC, 0x0000000000000014}, + [_]u64{0xFFFFFFFD00000010, 0x0000000100000002, 0x00000000FFFFFFFB, 0x000000000000001A}, + [_]u64{0xFFFFFFFD00000010, 0x0000000100000003, 0x00000000FFFFFFFA, 0x0000000000000022}, + [_]u64{0xFFFFFFFD00000010, 0x0000000100000010, 0x00000000FFFFFFED, 0x0000000000000140}, + [_]u64{0xFFFFFFFD00000010, 0x00000001078644FA, 0x00000000F8B0BB59, 0x00000000B20F6726}, + [_]u64{0xFFFFFFFD00000010, 0x000000010747AE14, 0x00000000F8EBDA57, 0x00000000500ACF44}, + [_]u64{0xFFFFFFFD00000010, 0x000000017FFFFFFF, 0x00000000AAAAAAA9, 0x000000002AAAAAB9}, + [_]u64{0xFFFFFFFD00000010, 0x0000000180000000, 0x00000000AAAAAAA8, 0x0000000100000010}, + [_]u64{0xFFFFFFFD00000010, 0x00000001FFFFFFFD, 0x000000007FFFFFFF, 0x000000008000000D}, + [_]u64{0xFFFFFFFD00000010, 0x00000001FFFFFFFE, 0x000000007FFFFFFF, 0x000000000000000E}, + [_]u64{0xFFFFFFFD00000010, 0x00000001FFFFFFFF, 0x000000007FFFFFFE, 0x000000018000000E}, + [_]u64{0xFFFFFFFD00000010, 0x0000000200000000, 0x000000007FFFFFFE, 0x0000000100000010}, + [_]u64{0xFFFFFFFD00000010, 0x0000000200000001, 0x000000007FFFFFFE, 0x0000000080000012}, + [_]u64{0xFFFFFFFD00000010, 0x0000000200000002, 0x000000007FFFFFFE, 0x0000000000000014}, + [_]u64{0xFFFFFFFD00000010, 0x0000000200000003, 0x000000007FFFFFFD, 0x0000000180000019}, + [_]u64{0xFFFFFFFD00000010, 0x0000000200000010, 0x000000007FFFFFFA, 0x0000000100000070}, + [_]u64{0xFFFFFFFD00000010, 0x00000002078644FA, 0x000000007E256848, 0x00000001521509C0}, + [_]u64{0xFFFFFFFD00000010, 0x000000020747AE14, 0x000000007E349CA5, 0x000000016CA89D2C}, + [_]u64{0xFFFFFFFD00000010, 0x000000027FFFFFFF, 0x0000000066666665, 0x00000000E6666675}, + [_]u64{0xFFFFFFFD00000010, 0x0000000280000000, 0x0000000066666665, 0x0000000080000010}, + [_]u64{0xFFFFFFFD00000010, 0x00000002FFFFFFFD, 0x0000000055555554, 0x000000020000000C}, + [_]u64{0xFFFFFFFD00000010, 0x00000002FFFFFFFE, 0x0000000055555554, 0x00000001AAAAAAB8}, + [_]u64{0xFFFFFFFD00000010, 0x00000002FFFFFFFF, 0x0000000055555554, 0x0000000155555564}, + [_]u64{0xFFFFFFFD00000010, 0x0000000300000000, 0x0000000055555554, 0x0000000100000010}, + [_]u64{0xFFFFFFFD00000010, 0x0000000300000001, 0x0000000055555554, 0x00000000AAAAAABC}, + [_]u64{0xFFFFFFFD00000010, 0x0000000300000002, 0x0000000055555554, 0x0000000055555568}, + [_]u64{0xFFFFFFFD00000010, 0x0000000300000003, 0x0000000055555554, 0x0000000000000014}, + [_]u64{0xFFFFFFFD00000010, 0x0000000300000010, 0x0000000055555552, 0x00000001AAAAAAF0}, + [_]u64{0xFFFFFFFD00000010, 0x00000003078644FA, 0x0000000054816147, 0x000000013FA624BA}, + [_]u64{0xFFFFFFFD00000010, 0x000000030747AE14, 0x00000000548833C5, 0x0000000213890EAC}, + [_]u64{0xFFFFFFFD00000010, 0x000000037FFFFFFF, 0x0000000049249248, 0x0000000149249258}, + [_]u64{0xFFFFFFFD00000010, 0x0000000380000000, 0x0000000049249248, 0x0000000100000010}, + [_]u64{0xFFFFFFFD00000010, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x00000001C000000D}, + [_]u64{0xFFFFFFFD00000010, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x000000018000000E}, + [_]u64{0xFFFFFFFD00000010, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x000000014000000F}, + [_]u64{0xFFFFFFFD00000010, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000D00000010}, + [_]u64{0xFFFFFFFD00000010, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000CF0000011}, + [_]u64{0xFFFFFFFD00000010, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000CE0000012}, + [_]u64{0xFFFFFFFD00000010, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000CD0000013}, + [_]u64{0xFFFFFFFD00000010, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000C00000020}, + [_]u64{0xFFFFFFFD00000010, 0x00000010078644FA, 0x000000000FF87D43, 0x00000000FFFDE0A2}, + [_]u64{0xFFFFFFFD00000010, 0x000000100747AE14, 0x000000000FF8BBA0, 0x0000000347AA9790}, + [_]u64{0xFFFFFFFD00000010, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000010F83E108}, + [_]u64{0xFFFFFFFD00000010, 0x0000001080000000, 0x000000000F83E0F8, 0x0000000100000010}, + [_]u64{0xFFFFFFFD00000010, 0x00000010FFFFFFFD, 0x000000000F0F0F0E, 0x0000000F2D2D2D3A}, + [_]u64{0xFFFFFFFD00000010, 0x00000010FFFFFFFE, 0x000000000F0F0F0E, 0x0000000F1E1E1E2C}, + [_]u64{0xFFFFFFFD00000010, 0x00000010FFFFFFFF, 0x000000000F0F0F0E, 0x0000000F0F0F0F1E}, + [_]u64{0xFFFFFFFD00000010, 0x078644FA00000000, 0x0000000000000022, 0x002AD6C900000010}, + [_]u64{0xFFFFFFFD00000010, 0x078644FA00000001, 0x0000000000000022, 0x002AD6C8FFFFFFEE}, + [_]u64{0xFFFFFFFD00000010, 0x078644FA00000002, 0x0000000000000022, 0x002AD6C8FFFFFFCC}, + [_]u64{0xFFFFFFFD00000010, 0x078644FA00000003, 0x0000000000000022, 0x002AD6C8FFFFFFAA}, + [_]u64{0xFFFFFFFD00000010, 0x078644FA00000010, 0x0000000000000022, 0x002AD6C8FFFFFDF0}, + [_]u64{0xFFFFFFFD00000010, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6C8002AD6DC}, + [_]u64{0xFFFFFFFD00000010, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6C8087AE168}, + [_]u64{0xFFFFFFFD00000010, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6B800000032}, + [_]u64{0xFFFFFFFD00000010, 0x078644FA80000000, 0x0000000000000022, 0x002AD6B800000010}, + [_]u64{0xFFFFFFFD00000010, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A700000076}, + [_]u64{0xFFFFFFFD00000010, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A700000054}, + [_]u64{0xFFFFFFFD00000010, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A700000032}, + [_]u64{0xFFFFFFFD00000010, 0x0747AE1400000000, 0x0000000000000023, 0x0133334100000010}, + [_]u64{0xFFFFFFFD00000010, 0x0747AE1400000001, 0x0000000000000023, 0x01333340FFFFFFED}, + [_]u64{0xFFFFFFFD00000010, 0x0747AE1400000002, 0x0000000000000023, 0x01333340FFFFFFCA}, + [_]u64{0xFFFFFFFD00000010, 0x0747AE1400000003, 0x0000000000000023, 0x01333340FFFFFFA7}, + [_]u64{0xFFFFFFFD00000010, 0x0747AE1400000010, 0x0000000000000023, 0x01333340FFFFFDE0}, + [_]u64{0xFFFFFFFD00000010, 0x0747AE14078644FA, 0x0000000000000023, 0x0133333FF8A491E2}, + [_]u64{0xFFFFFFFD00000010, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334001333354}, + [_]u64{0xFFFFFFFD00000010, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133332F80000033}, + [_]u64{0xFFFFFFFD00000010, 0x0747AE1480000000, 0x0000000000000023, 0x0133332F80000010}, + [_]u64{0xFFFFFFFD00000010, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133331E00000079}, + [_]u64{0xFFFFFFFD00000010, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133331E00000056}, + [_]u64{0xFFFFFFFD00000010, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133331E00000033}, + [_]u64{0xFFFFFFFD00000010, 0x7FFFFFFF00000000, 0x0000000000000001, 0x7FFFFFFE00000010}, + [_]u64{0xFFFFFFFD00000010, 0x7FFFFFFF00000001, 0x0000000000000001, 0x7FFFFFFE0000000F}, + [_]u64{0xFFFFFFFD00000010, 0x7FFFFFFF00000002, 0x0000000000000001, 0x7FFFFFFE0000000E}, + [_]u64{0xFFFFFFFD00000010, 0x7FFFFFFF00000003, 0x0000000000000001, 0x7FFFFFFE0000000D}, + [_]u64{0xFFFFFFFD00000010, 0x7FFFFFFF00000010, 0x0000000000000001, 0x7FFFFFFE00000000}, + [_]u64{0xFFFFFFFD00000010, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x7FFFFFFDF879BB16}, + [_]u64{0xFFFFFFFD00000010, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x7FFFFFFDF8B851FC}, + [_]u64{0xFFFFFFFD00000010, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x7FFFFFFD80000011}, + [_]u64{0xFFFFFFFD00000010, 0x7FFFFFFF80000000, 0x0000000000000001, 0x7FFFFFFD80000010}, + [_]u64{0xFFFFFFFD00000010, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFD00000013}, + [_]u64{0xFFFFFFFD00000010, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFD00000012}, + [_]u64{0xFFFFFFFD00000010, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFD00000011}, + [_]u64{0xFFFFFFFD00000010, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFD0000000F}, + [_]u64{0xFFFFFFFD00000010, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFD0000000E}, + [_]u64{0xFFFFFFFD00000010, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFD0000000D}, + [_]u64{0xFFFFFFFD00000010, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFD00000000}, + [_]u64{0xFFFFFFFD00000010, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFCF879BB16}, + [_]u64{0xFFFFFFFD00000010, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFCF8B851FC}, + [_]u64{0xFFFFFFFD00000010, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFC80000011}, + [_]u64{0xFFFFFFFD00000010, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFC80000010}, + [_]u64{0xFFFFFFFD00000010, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFC00000013}, + [_]u64{0xFFFFFFFD00000010, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFC00000012}, + [_]u64{0xFFFFFFFD00000010, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFC00000011}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFD00000000, 0x0000000000000001, 0x0000000000000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFD00000001, 0x0000000000000001, 0x000000000000000F}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFD00000002, 0x0000000000000001, 0x000000000000000E}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFD00000003, 0x0000000000000001, 0x000000000000000D}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFD00000010, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFD078644FA, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFD0747AE14, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFD80000000, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFE00000000, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFE00000001, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFE00000002, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFE00000003, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFE00000010, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFE078644FA, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFE80000000, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFF00000000, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFF00000001, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFF00000002, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFF00000003, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFF00000010, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD00000010, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFD00000010}, + [_]u64{0xFFFFFFFD078644FA, 0x0000000000000001, 0xFFFFFFFD078644FA, 0x0000000000000000}, + [_]u64{0xFFFFFFFD078644FA, 0x0000000000000002, 0x7FFFFFFE83C3227D, 0x0000000000000000}, + [_]u64{0xFFFFFFFD078644FA, 0x0000000000000003, 0x5555555457D76C53, 0x0000000000000001}, + [_]u64{0xFFFFFFFD078644FA, 0x0000000000000010, 0x0FFFFFFFD078644F, 0x000000000000000A}, + [_]u64{0xFFFFFFFD078644FA, 0x00000000078644FA, 0x0000002205B17A98, 0x0000000000142C8A}, + [_]u64{0xFFFFFFFD078644FA, 0x000000000747AE14, 0x000000232A32A513, 0x000000000219757E}, + [_]u64{0xFFFFFFFD078644FA, 0x000000007FFFFFFF, 0x00000001FFFFFFFE, 0x00000000078644F8}, + [_]u64{0xFFFFFFFD078644FA, 0x0000000080000000, 0x00000001FFFFFFFA, 0x00000000078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0x00000000FFFFFFFD, 0x0000000100000000, 0x00000000078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0x00000000FFFFFFFE, 0x00000000FFFFFFFF, 0x00000000078644F8}, + [_]u64{0xFFFFFFFD078644FA, 0x00000000FFFFFFFF, 0x00000000FFFFFFFE, 0x00000000078644F8}, + [_]u64{0xFFFFFFFD078644FA, 0x0000000100000000, 0x00000000FFFFFFFD, 0x00000000078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0x0000000100000001, 0x00000000FFFFFFFC, 0x00000000078644FE}, + [_]u64{0xFFFFFFFD078644FA, 0x0000000100000002, 0x00000000FFFFFFFB, 0x0000000007864504}, + [_]u64{0xFFFFFFFD078644FA, 0x0000000100000003, 0x00000000FFFFFFFA, 0x000000000786450C}, + [_]u64{0xFFFFFFFD078644FA, 0x0000000100000010, 0x00000000FFFFFFED, 0x000000000786462A}, + [_]u64{0xFFFFFFFD078644FA, 0x00000001078644FA, 0x00000000F8B0BB59, 0x00000000B995AC10}, + [_]u64{0xFFFFFFFD078644FA, 0x000000010747AE14, 0x00000000F8EBDA57, 0x000000005791142E}, + [_]u64{0xFFFFFFFD078644FA, 0x000000017FFFFFFF, 0x00000000AAAAAAA9, 0x000000003230EFA3}, + [_]u64{0xFFFFFFFD078644FA, 0x0000000180000000, 0x00000000AAAAAAA8, 0x00000001078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0x00000001FFFFFFFD, 0x000000007FFFFFFF, 0x00000000878644F7}, + [_]u64{0xFFFFFFFD078644FA, 0x00000001FFFFFFFE, 0x000000007FFFFFFF, 0x00000000078644F8}, + [_]u64{0xFFFFFFFD078644FA, 0x00000001FFFFFFFF, 0x000000007FFFFFFE, 0x00000001878644F8}, + [_]u64{0xFFFFFFFD078644FA, 0x0000000200000000, 0x000000007FFFFFFE, 0x00000001078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0x0000000200000001, 0x000000007FFFFFFE, 0x00000000878644FC}, + [_]u64{0xFFFFFFFD078644FA, 0x0000000200000002, 0x000000007FFFFFFE, 0x00000000078644FE}, + [_]u64{0xFFFFFFFD078644FA, 0x0000000200000003, 0x000000007FFFFFFD, 0x0000000187864503}, + [_]u64{0xFFFFFFFD078644FA, 0x0000000200000010, 0x000000007FFFFFFA, 0x000000010786455A}, + [_]u64{0xFFFFFFFD078644FA, 0x00000002078644FA, 0x000000007E256848, 0x00000001599B4EAA}, + [_]u64{0xFFFFFFFD078644FA, 0x000000020747AE14, 0x000000007E349CA5, 0x00000001742EE216}, + [_]u64{0xFFFFFFFD078644FA, 0x000000027FFFFFFF, 0x0000000066666665, 0x00000000EDECAB5F}, + [_]u64{0xFFFFFFFD078644FA, 0x0000000280000000, 0x0000000066666665, 0x00000000878644FA}, + [_]u64{0xFFFFFFFD078644FA, 0x00000002FFFFFFFD, 0x0000000055555554, 0x00000002078644F6}, + [_]u64{0xFFFFFFFD078644FA, 0x00000002FFFFFFFE, 0x0000000055555554, 0x00000001B230EFA2}, + [_]u64{0xFFFFFFFD078644FA, 0x00000002FFFFFFFF, 0x0000000055555554, 0x000000015CDB9A4E}, + [_]u64{0xFFFFFFFD078644FA, 0x0000000300000000, 0x0000000055555554, 0x00000001078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0x0000000300000001, 0x0000000055555554, 0x00000000B230EFA6}, + [_]u64{0xFFFFFFFD078644FA, 0x0000000300000002, 0x0000000055555554, 0x000000005CDB9A52}, + [_]u64{0xFFFFFFFD078644FA, 0x0000000300000003, 0x0000000055555554, 0x00000000078644FE}, + [_]u64{0xFFFFFFFD078644FA, 0x0000000300000010, 0x0000000055555552, 0x00000001B230EFDA}, + [_]u64{0xFFFFFFFD078644FA, 0x00000003078644FA, 0x0000000054816147, 0x00000001472C69A4}, + [_]u64{0xFFFFFFFD078644FA, 0x000000030747AE14, 0x00000000548833C5, 0x000000021B0F5396}, + [_]u64{0xFFFFFFFD078644FA, 0x000000037FFFFFFF, 0x0000000049249248, 0x0000000150AAD742}, + [_]u64{0xFFFFFFFD078644FA, 0x0000000380000000, 0x0000000049249248, 0x00000001078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x00000001C78644F7}, + [_]u64{0xFFFFFFFD078644FA, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x00000001878644F8}, + [_]u64{0xFFFFFFFD078644FA, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x00000001478644F9}, + [_]u64{0xFFFFFFFD078644FA, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000D078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000CF78644FB}, + [_]u64{0xFFFFFFFD078644FA, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000CE78644FC}, + [_]u64{0xFFFFFFFD078644FA, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000CD78644FD}, + [_]u64{0xFFFFFFFD078644FA, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000C0786450A}, + [_]u64{0xFFFFFFFD078644FA, 0x00000010078644FA, 0x000000000FF87D43, 0x000000010784258C}, + [_]u64{0xFFFFFFFD078644FA, 0x000000100747AE14, 0x000000000FF8BBA0, 0x000000034F30DC7A}, + [_]u64{0xFFFFFFFD078644FA, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x00000001170A25F2}, + [_]u64{0xFFFFFFFD078644FA, 0x0000001080000000, 0x000000000F83E0F8, 0x00000001078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0x00000010FFFFFFFD, 0x000000000F0F0F0E, 0x0000000F34B37224}, + [_]u64{0xFFFFFFFD078644FA, 0x00000010FFFFFFFE, 0x000000000F0F0F0E, 0x0000000F25A46316}, + [_]u64{0xFFFFFFFD078644FA, 0x00000010FFFFFFFF, 0x000000000F0F0F0E, 0x0000000F16955408}, + [_]u64{0xFFFFFFFD078644FA, 0x078644FA00000000, 0x0000000000000022, 0x002AD6C9078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0x078644FA00000001, 0x0000000000000022, 0x002AD6C9078644D8}, + [_]u64{0xFFFFFFFD078644FA, 0x078644FA00000002, 0x0000000000000022, 0x002AD6C9078644B6}, + [_]u64{0xFFFFFFFD078644FA, 0x078644FA00000003, 0x0000000000000022, 0x002AD6C907864494}, + [_]u64{0xFFFFFFFD078644FA, 0x078644FA00000010, 0x0000000000000022, 0x002AD6C9078642DA}, + [_]u64{0xFFFFFFFD078644FA, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6C807B11BC6}, + [_]u64{0xFFFFFFFD078644FA, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6C810012652}, + [_]u64{0xFFFFFFFD078644FA, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6B80786451C}, + [_]u64{0xFFFFFFFD078644FA, 0x078644FA80000000, 0x0000000000000022, 0x002AD6B8078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A707864560}, + [_]u64{0xFFFFFFFD078644FA, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A70786453E}, + [_]u64{0xFFFFFFFD078644FA, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A70786451C}, + [_]u64{0xFFFFFFFD078644FA, 0x0747AE1400000000, 0x0000000000000023, 0x01333341078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0x0747AE1400000001, 0x0000000000000023, 0x01333341078644D7}, + [_]u64{0xFFFFFFFD078644FA, 0x0747AE1400000002, 0x0000000000000023, 0x01333341078644B4}, + [_]u64{0xFFFFFFFD078644FA, 0x0747AE1400000003, 0x0000000000000023, 0x0133334107864491}, + [_]u64{0xFFFFFFFD078644FA, 0x0747AE1400000010, 0x0000000000000023, 0x01333341078642CA}, + [_]u64{0xFFFFFFFD078644FA, 0x0747AE14078644FA, 0x0000000000000023, 0x01333340002AD6CC}, + [_]u64{0xFFFFFFFD078644FA, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334008B9783E}, + [_]u64{0xFFFFFFFD078644FA, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133332F8786451D}, + [_]u64{0xFFFFFFFD078644FA, 0x0747AE1480000000, 0x0000000000000023, 0x0133332F878644FA}, + [_]u64{0xFFFFFFFD078644FA, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133331E07864563}, + [_]u64{0xFFFFFFFD078644FA, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133331E07864540}, + [_]u64{0xFFFFFFFD078644FA, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133331E0786451D}, + [_]u64{0xFFFFFFFD078644FA, 0x7FFFFFFF00000000, 0x0000000000000001, 0x7FFFFFFE078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0x7FFFFFFF00000001, 0x0000000000000001, 0x7FFFFFFE078644F9}, + [_]u64{0xFFFFFFFD078644FA, 0x7FFFFFFF00000002, 0x0000000000000001, 0x7FFFFFFE078644F8}, + [_]u64{0xFFFFFFFD078644FA, 0x7FFFFFFF00000003, 0x0000000000000001, 0x7FFFFFFE078644F7}, + [_]u64{0xFFFFFFFD078644FA, 0x7FFFFFFF00000010, 0x0000000000000001, 0x7FFFFFFE078644EA}, + [_]u64{0xFFFFFFFD078644FA, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x7FFFFFFE00000000}, + [_]u64{0xFFFFFFFD078644FA, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x7FFFFFFE003E96E6}, + [_]u64{0xFFFFFFFD078644FA, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x7FFFFFFD878644FB}, + [_]u64{0xFFFFFFFD078644FA, 0x7FFFFFFF80000000, 0x0000000000000001, 0x7FFFFFFD878644FA}, + [_]u64{0xFFFFFFFD078644FA, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFD078644FD}, + [_]u64{0xFFFFFFFD078644FA, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFD078644FC}, + [_]u64{0xFFFFFFFD078644FA, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFD078644FB}, + [_]u64{0xFFFFFFFD078644FA, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFD078644F9}, + [_]u64{0xFFFFFFFD078644FA, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFD078644F8}, + [_]u64{0xFFFFFFFD078644FA, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFD078644F7}, + [_]u64{0xFFFFFFFD078644FA, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFD078644EA}, + [_]u64{0xFFFFFFFD078644FA, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFD00000000}, + [_]u64{0xFFFFFFFD078644FA, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFD003E96E6}, + [_]u64{0xFFFFFFFD078644FA, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFC878644FB}, + [_]u64{0xFFFFFFFD078644FA, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFC878644FA}, + [_]u64{0xFFFFFFFD078644FA, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFC078644FD}, + [_]u64{0xFFFFFFFD078644FA, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFC078644FC}, + [_]u64{0xFFFFFFFD078644FA, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFC078644FB}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFD00000000, 0x0000000000000001, 0x00000000078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFD00000001, 0x0000000000000001, 0x00000000078644F9}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFD00000002, 0x0000000000000001, 0x00000000078644F8}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFD00000003, 0x0000000000000001, 0x00000000078644F7}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFD00000010, 0x0000000000000001, 0x00000000078644EA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x00000000003E96E6}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFD80000000, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFE00000000, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFE00000001, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFE00000002, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFE00000003, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFE00000010, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFE078644FA, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFE80000000, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFF00000000, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFF00000001, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFF00000002, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFF00000003, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFF00000010, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD078644FA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFD078644FA}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000000000000001, 0xFFFFFFFD0747AE14, 0x0000000000000000}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000000000000002, 0x7FFFFFFE83A3D70A, 0x0000000000000000}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000000000000003, 0x5555555457C28F5C, 0x0000000000000000}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000000000000010, 0x0FFFFFFFD0747AE1, 0x0000000000000004}, + [_]u64{0xFFFFFFFD0747AE14, 0x00000000078644FA, 0x0000002205B17A97, 0x00000000075BDA9E}, + [_]u64{0xFFFFFFFD0747AE14, 0x000000000747AE14, 0x000000232A32A513, 0x0000000001DADE98}, + [_]u64{0xFFFFFFFD0747AE14, 0x000000007FFFFFFF, 0x00000001FFFFFFFE, 0x000000000747AE12}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000000080000000, 0x00000001FFFFFFFA, 0x000000000747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0x00000000FFFFFFFD, 0x0000000100000000, 0x000000000747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0x00000000FFFFFFFE, 0x00000000FFFFFFFF, 0x000000000747AE12}, + [_]u64{0xFFFFFFFD0747AE14, 0x00000000FFFFFFFF, 0x00000000FFFFFFFE, 0x000000000747AE12}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000000100000000, 0x00000000FFFFFFFD, 0x000000000747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000000100000001, 0x00000000FFFFFFFC, 0x000000000747AE18}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000000100000002, 0x00000000FFFFFFFB, 0x000000000747AE1E}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000000100000003, 0x00000000FFFFFFFA, 0x000000000747AE26}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000000100000010, 0x00000000FFFFFFED, 0x000000000747AF44}, + [_]u64{0xFFFFFFFD0747AE14, 0x00000001078644FA, 0x00000000F8B0BB59, 0x00000000B957152A}, + [_]u64{0xFFFFFFFD0747AE14, 0x000000010747AE14, 0x00000000F8EBDA57, 0x0000000057527D48}, + [_]u64{0xFFFFFFFD0747AE14, 0x000000017FFFFFFF, 0x00000000AAAAAAA9, 0x0000000031F258BD}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000000180000000, 0x00000000AAAAAAA8, 0x000000010747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0x00000001FFFFFFFD, 0x000000007FFFFFFF, 0x000000008747AE11}, + [_]u64{0xFFFFFFFD0747AE14, 0x00000001FFFFFFFE, 0x000000007FFFFFFF, 0x000000000747AE12}, + [_]u64{0xFFFFFFFD0747AE14, 0x00000001FFFFFFFF, 0x000000007FFFFFFE, 0x000000018747AE12}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000000200000000, 0x000000007FFFFFFE, 0x000000010747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000000200000001, 0x000000007FFFFFFE, 0x000000008747AE16}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000000200000002, 0x000000007FFFFFFE, 0x000000000747AE18}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000000200000003, 0x000000007FFFFFFD, 0x000000018747AE1D}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000000200000010, 0x000000007FFFFFFA, 0x000000010747AE74}, + [_]u64{0xFFFFFFFD0747AE14, 0x00000002078644FA, 0x000000007E256848, 0x00000001595CB7C4}, + [_]u64{0xFFFFFFFD0747AE14, 0x000000020747AE14, 0x000000007E349CA5, 0x0000000173F04B30}, + [_]u64{0xFFFFFFFD0747AE14, 0x000000027FFFFFFF, 0x0000000066666665, 0x00000000EDAE1479}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000000280000000, 0x0000000066666665, 0x000000008747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0x00000002FFFFFFFD, 0x0000000055555554, 0x000000020747AE10}, + [_]u64{0xFFFFFFFD0747AE14, 0x00000002FFFFFFFE, 0x0000000055555554, 0x00000001B1F258BC}, + [_]u64{0xFFFFFFFD0747AE14, 0x00000002FFFFFFFF, 0x0000000055555554, 0x000000015C9D0368}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000000300000000, 0x0000000055555554, 0x000000010747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000000300000001, 0x0000000055555554, 0x00000000B1F258C0}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000000300000002, 0x0000000055555554, 0x000000005C9D036C}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000000300000003, 0x0000000055555554, 0x000000000747AE18}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000000300000010, 0x0000000055555552, 0x00000001B1F258F4}, + [_]u64{0xFFFFFFFD0747AE14, 0x00000003078644FA, 0x0000000054816147, 0x0000000146EDD2BE}, + [_]u64{0xFFFFFFFD0747AE14, 0x000000030747AE14, 0x00000000548833C5, 0x000000021AD0BCB0}, + [_]u64{0xFFFFFFFD0747AE14, 0x000000037FFFFFFF, 0x0000000049249248, 0x00000001506C405C}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000000380000000, 0x0000000049249248, 0x000000010747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x00000001C747AE11}, + [_]u64{0xFFFFFFFD0747AE14, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x000000018747AE12}, + [_]u64{0xFFFFFFFD0747AE14, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x000000014747AE13}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000D0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000CF747AE15}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000CE747AE16}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000CD747AE17}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000C0747AE24}, + [_]u64{0xFFFFFFFD0747AE14, 0x00000010078644FA, 0x000000000FF87D43, 0x0000000107458EA6}, + [_]u64{0xFFFFFFFD0747AE14, 0x000000100747AE14, 0x000000000FF8BBA0, 0x000000034EF24594}, + [_]u64{0xFFFFFFFD0747AE14, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x0000000116CB8F0C}, + [_]u64{0xFFFFFFFD0747AE14, 0x0000001080000000, 0x000000000F83E0F8, 0x000000010747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0x00000010FFFFFFFD, 0x000000000F0F0F0E, 0x0000000F3474DB3E}, + [_]u64{0xFFFFFFFD0747AE14, 0x00000010FFFFFFFE, 0x000000000F0F0F0E, 0x0000000F2565CC30}, + [_]u64{0xFFFFFFFD0747AE14, 0x00000010FFFFFFFF, 0x000000000F0F0F0E, 0x0000000F1656BD22}, + [_]u64{0xFFFFFFFD0747AE14, 0x078644FA00000000, 0x0000000000000022, 0x002AD6C90747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0x078644FA00000001, 0x0000000000000022, 0x002AD6C90747ADF2}, + [_]u64{0xFFFFFFFD0747AE14, 0x078644FA00000002, 0x0000000000000022, 0x002AD6C90747ADD0}, + [_]u64{0xFFFFFFFD0747AE14, 0x078644FA00000003, 0x0000000000000022, 0x002AD6C90747ADAE}, + [_]u64{0xFFFFFFFD0747AE14, 0x078644FA00000010, 0x0000000000000022, 0x002AD6C90747ABF4}, + [_]u64{0xFFFFFFFD0747AE14, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6C8077284E0}, + [_]u64{0xFFFFFFFD0747AE14, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6C80FC28F6C}, + [_]u64{0xFFFFFFFD0747AE14, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6B80747AE36}, + [_]u64{0xFFFFFFFD0747AE14, 0x078644FA80000000, 0x0000000000000022, 0x002AD6B80747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A70747AE7A}, + [_]u64{0xFFFFFFFD0747AE14, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A70747AE58}, + [_]u64{0xFFFFFFFD0747AE14, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A70747AE36}, + [_]u64{0xFFFFFFFD0747AE14, 0x0747AE1400000000, 0x0000000000000023, 0x013333410747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0x0747AE1400000001, 0x0000000000000023, 0x013333410747ADF1}, + [_]u64{0xFFFFFFFD0747AE14, 0x0747AE1400000002, 0x0000000000000023, 0x013333410747ADCE}, + [_]u64{0xFFFFFFFD0747AE14, 0x0747AE1400000003, 0x0000000000000023, 0x013333410747ADAB}, + [_]u64{0xFFFFFFFD0747AE14, 0x0747AE1400000010, 0x0000000000000023, 0x013333410747ABE4}, + [_]u64{0xFFFFFFFD0747AE14, 0x0747AE14078644FA, 0x0000000000000023, 0x0133333FFFEC3FE6}, + [_]u64{0xFFFFFFFD0747AE14, 0x0747AE140747AE14, 0x0000000000000023, 0x01333340087AE158}, + [_]u64{0xFFFFFFFD0747AE14, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133332F8747AE37}, + [_]u64{0xFFFFFFFD0747AE14, 0x0747AE1480000000, 0x0000000000000023, 0x0133332F8747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133331E0747AE7D}, + [_]u64{0xFFFFFFFD0747AE14, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133331E0747AE5A}, + [_]u64{0xFFFFFFFD0747AE14, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133331E0747AE37}, + [_]u64{0xFFFFFFFD0747AE14, 0x7FFFFFFF00000000, 0x0000000000000001, 0x7FFFFFFE0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0x7FFFFFFF00000001, 0x0000000000000001, 0x7FFFFFFE0747AE13}, + [_]u64{0xFFFFFFFD0747AE14, 0x7FFFFFFF00000002, 0x0000000000000001, 0x7FFFFFFE0747AE12}, + [_]u64{0xFFFFFFFD0747AE14, 0x7FFFFFFF00000003, 0x0000000000000001, 0x7FFFFFFE0747AE11}, + [_]u64{0xFFFFFFFD0747AE14, 0x7FFFFFFF00000010, 0x0000000000000001, 0x7FFFFFFE0747AE04}, + [_]u64{0xFFFFFFFD0747AE14, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x7FFFFFFDFFC1691A}, + [_]u64{0xFFFFFFFD0747AE14, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x7FFFFFFE00000000}, + [_]u64{0xFFFFFFFD0747AE14, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x7FFFFFFD8747AE15}, + [_]u64{0xFFFFFFFD0747AE14, 0x7FFFFFFF80000000, 0x0000000000000001, 0x7FFFFFFD8747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFD0747AE17}, + [_]u64{0xFFFFFFFD0747AE14, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFD0747AE16}, + [_]u64{0xFFFFFFFD0747AE14, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFD0747AE15}, + [_]u64{0xFFFFFFFD0747AE14, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFD0747AE13}, + [_]u64{0xFFFFFFFD0747AE14, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFD0747AE12}, + [_]u64{0xFFFFFFFD0747AE14, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFD0747AE11}, + [_]u64{0xFFFFFFFD0747AE14, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFD0747AE04}, + [_]u64{0xFFFFFFFD0747AE14, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFCFFC1691A}, + [_]u64{0xFFFFFFFD0747AE14, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFD00000000}, + [_]u64{0xFFFFFFFD0747AE14, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFC8747AE15}, + [_]u64{0xFFFFFFFD0747AE14, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFC8747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFC0747AE17}, + [_]u64{0xFFFFFFFD0747AE14, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFC0747AE16}, + [_]u64{0xFFFFFFFD0747AE14, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFC0747AE15}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFD00000000, 0x0000000000000001, 0x000000000747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFD00000001, 0x0000000000000001, 0x000000000747AE13}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFD00000002, 0x0000000000000001, 0x000000000747AE12}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFD00000003, 0x0000000000000001, 0x000000000747AE11}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFD00000010, 0x0000000000000001, 0x000000000747AE04}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFD078644FA, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFD80000000, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFE00000000, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFE00000001, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFE00000002, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFE00000003, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFE00000010, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFE078644FA, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFE80000000, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFF00000000, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFF00000001, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFF00000002, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFF00000003, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFF00000010, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD0747AE14, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFD0747AE14}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0xFFFFFFFD7FFFFFFF, 0x0000000000000000}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000000000000002, 0x7FFFFFFEBFFFFFFF, 0x0000000000000001}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000000000000003, 0x555555547FFFFFFF, 0x0000000000000002}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000000000000010, 0x0FFFFFFFD7FFFFFF, 0x000000000000000F}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x00000000078644FA, 0x0000002205B17AA8, 0x00000000002997EF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x000000000747AE14, 0x000000232A32A523, 0x0000000006184F43}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x000000007FFFFFFF, 0x00000001FFFFFFFE, 0x000000007FFFFFFD}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000000080000000, 0x00000001FFFFFFFA, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x00000000FFFFFFFD, 0x0000000100000000, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x00000000FFFFFFFE, 0x00000000FFFFFFFF, 0x000000007FFFFFFD}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x00000000FFFFFFFF, 0x00000000FFFFFFFE, 0x000000007FFFFFFD}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000000100000000, 0x00000000FFFFFFFD, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000000100000001, 0x00000000FFFFFFFC, 0x0000000080000003}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000000100000002, 0x00000000FFFFFFFB, 0x0000000080000009}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000000100000003, 0x00000000FFFFFFFA, 0x0000000080000011}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000000100000010, 0x00000000FFFFFFED, 0x000000008000012F}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x00000001078644FA, 0x00000000F8B0BB5A, 0x000000002A89221B}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x000000010747AE14, 0x00000000F8EBDA57, 0x00000000D00ACF33}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x000000017FFFFFFF, 0x00000000AAAAAAA9, 0x00000000AAAAAAA8}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000000180000000, 0x00000000AAAAAAA8, 0x000000017FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x00000001FFFFFFFD, 0x000000007FFFFFFF, 0x00000000FFFFFFFC}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x00000001FFFFFFFE, 0x000000007FFFFFFF, 0x000000007FFFFFFD}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x00000001FFFFFFFF, 0x000000007FFFFFFE, 0x00000001FFFFFFFD}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000000200000000, 0x000000007FFFFFFE, 0x000000017FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000000200000001, 0x000000007FFFFFFE, 0x0000000100000001}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000000200000002, 0x000000007FFFFFFE, 0x0000000080000003}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000000200000003, 0x000000007FFFFFFE, 0x0000000000000005}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000000200000010, 0x000000007FFFFFFA, 0x000000018000005F}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x00000002078644FA, 0x000000007E256848, 0x00000001D21509AF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x000000020747AE14, 0x000000007E349CA5, 0x00000001ECA89D1B}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x000000027FFFFFFF, 0x0000000066666665, 0x0000000166666664}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000000280000000, 0x0000000066666665, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x00000002FFFFFFFD, 0x0000000055555554, 0x000000027FFFFFFB}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x00000002FFFFFFFE, 0x0000000055555554, 0x000000022AAAAAA7}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x00000002FFFFFFFF, 0x0000000055555554, 0x00000001D5555553}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000000300000000, 0x0000000055555554, 0x000000017FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000000300000001, 0x0000000055555554, 0x000000012AAAAAAB}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000000300000002, 0x0000000055555554, 0x00000000D5555557}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000000300000003, 0x0000000055555554, 0x0000000080000003}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000000300000010, 0x0000000055555552, 0x000000022AAAAADF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x00000003078644FA, 0x0000000054816147, 0x00000001BFA624A9}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x000000030747AE14, 0x00000000548833C5, 0x0000000293890E9B}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x000000037FFFFFFF, 0x0000000049249248, 0x00000001C9249247}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000000380000000, 0x0000000049249248, 0x000000017FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x000000023FFFFFFC}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x00000001FFFFFFFD}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x00000001BFFFFFFE}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000D7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000D70000000}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000D60000001}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000D50000002}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000C8000000F}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x00000010078644FA, 0x000000000FF87D43, 0x000000017FFDE091}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x000000100747AE14, 0x000000000FF8BBA0, 0x00000003C7AA977F}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000018F83E0F7}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0000001080000000, 0x000000000F83E0F8, 0x000000017FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x00000010FFFFFFFD, 0x000000000F0F0F0E, 0x0000000FAD2D2D29}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x00000010FFFFFFFE, 0x000000000F0F0F0E, 0x0000000F9E1E1E1B}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x00000010FFFFFFFF, 0x000000000F0F0F0E, 0x0000000F8F0F0F0D}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x078644FA00000000, 0x0000000000000022, 0x002AD6C97FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x078644FA00000001, 0x0000000000000022, 0x002AD6C97FFFFFDD}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x078644FA00000002, 0x0000000000000022, 0x002AD6C97FFFFFBB}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x078644FA00000003, 0x0000000000000022, 0x002AD6C97FFFFF99}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x078644FA00000010, 0x0000000000000022, 0x002AD6C97FFFFDDF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6C8802AD6CB}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6C8887AE157}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6B880000021}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x078644FA80000000, 0x0000000000000022, 0x002AD6B87FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A780000065}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A780000043}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A780000021}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0747AE1400000000, 0x0000000000000023, 0x013333417FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0747AE1400000001, 0x0000000000000023, 0x013333417FFFFFDC}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0747AE1400000002, 0x0000000000000023, 0x013333417FFFFFB9}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0747AE1400000003, 0x0000000000000023, 0x013333417FFFFF96}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0747AE1400000010, 0x0000000000000023, 0x013333417FFFFDCF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0747AE14078644FA, 0x0000000000000023, 0x0133334078A491D1}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334081333343}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133333000000022}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0747AE1480000000, 0x0000000000000023, 0x0133332FFFFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133331E80000068}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133331E80000045}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133331E80000022}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x7FFFFFFF00000000, 0x0000000000000001, 0x7FFFFFFE7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x7FFFFFFF00000001, 0x0000000000000001, 0x7FFFFFFE7FFFFFFE}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x7FFFFFFF00000002, 0x0000000000000001, 0x7FFFFFFE7FFFFFFD}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x7FFFFFFF00000003, 0x0000000000000001, 0x7FFFFFFE7FFFFFFC}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x7FFFFFFF00000010, 0x0000000000000001, 0x7FFFFFFE7FFFFFEF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x7FFFFFFE7879BB05}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x7FFFFFFE78B851EB}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x7FFFFFFE00000000}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x7FFFFFFF80000000, 0x0000000000000001, 0x7FFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFD80000002}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFD80000001}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFD80000000}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFD7FFFFFFE}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFD7FFFFFFD}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFD7FFFFFFC}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFD7FFFFFEF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFD7879BB05}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFD78B851EB}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFD00000000}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFCFFFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFC80000002}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFC80000001}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFC80000000}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFD00000000, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFD00000001, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFD00000002, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFD00000003, 0x0000000000000001, 0x000000007FFFFFFC}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFD00000010, 0x0000000000000001, 0x000000007FFFFFEF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x000000007879BB05}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x0000000078B851EB}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFD80000000, 0x0000000000000000, 0xFFFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0xFFFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0xFFFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0xFFFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFE00000000, 0x0000000000000000, 0xFFFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFE00000001, 0x0000000000000000, 0xFFFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFE00000002, 0x0000000000000000, 0xFFFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFE00000003, 0x0000000000000000, 0xFFFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFE00000010, 0x0000000000000000, 0xFFFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFE078644FA, 0x0000000000000000, 0xFFFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0xFFFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0xFFFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFE80000000, 0x0000000000000000, 0xFFFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0xFFFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0xFFFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0xFFFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFF00000000, 0x0000000000000000, 0xFFFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFF00000001, 0x0000000000000000, 0xFFFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFF00000002, 0x0000000000000000, 0xFFFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFF00000003, 0x0000000000000000, 0xFFFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFF00000010, 0x0000000000000000, 0xFFFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD7FFFFFFF, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD80000000, 0x0000000000000001, 0xFFFFFFFD80000000, 0x0000000000000000}, + [_]u64{0xFFFFFFFD80000000, 0x0000000000000002, 0x7FFFFFFEC0000000, 0x0000000000000000}, + [_]u64{0xFFFFFFFD80000000, 0x0000000000000003, 0x5555555480000000, 0x0000000000000000}, + [_]u64{0xFFFFFFFD80000000, 0x0000000000000010, 0x0FFFFFFFD8000000, 0x0000000000000000}, + [_]u64{0xFFFFFFFD80000000, 0x00000000078644FA, 0x0000002205B17AA8, 0x00000000002997F0}, + [_]u64{0xFFFFFFFD80000000, 0x000000000747AE14, 0x000000232A32A523, 0x0000000006184F44}, + [_]u64{0xFFFFFFFD80000000, 0x000000007FFFFFFF, 0x00000001FFFFFFFE, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFD80000000, 0x0000000080000000, 0x00000001FFFFFFFB, 0x0000000000000000}, + [_]u64{0xFFFFFFFD80000000, 0x00000000FFFFFFFD, 0x0000000100000000, 0x0000000080000000}, + [_]u64{0xFFFFFFFD80000000, 0x00000000FFFFFFFE, 0x00000000FFFFFFFF, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFD80000000, 0x00000000FFFFFFFF, 0x00000000FFFFFFFE, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFD80000000, 0x0000000100000000, 0x00000000FFFFFFFD, 0x0000000080000000}, + [_]u64{0xFFFFFFFD80000000, 0x0000000100000001, 0x00000000FFFFFFFC, 0x0000000080000004}, + [_]u64{0xFFFFFFFD80000000, 0x0000000100000002, 0x00000000FFFFFFFB, 0x000000008000000A}, + [_]u64{0xFFFFFFFD80000000, 0x0000000100000003, 0x00000000FFFFFFFA, 0x0000000080000012}, + [_]u64{0xFFFFFFFD80000000, 0x0000000100000010, 0x00000000FFFFFFED, 0x0000000080000130}, + [_]u64{0xFFFFFFFD80000000, 0x00000001078644FA, 0x00000000F8B0BB5A, 0x000000002A89221C}, + [_]u64{0xFFFFFFFD80000000, 0x000000010747AE14, 0x00000000F8EBDA57, 0x00000000D00ACF34}, + [_]u64{0xFFFFFFFD80000000, 0x000000017FFFFFFF, 0x00000000AAAAAAA9, 0x00000000AAAAAAA9}, + [_]u64{0xFFFFFFFD80000000, 0x0000000180000000, 0x00000000AAAAAAA9, 0x0000000000000000}, + [_]u64{0xFFFFFFFD80000000, 0x00000001FFFFFFFD, 0x000000007FFFFFFF, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFD80000000, 0x00000001FFFFFFFE, 0x000000007FFFFFFF, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFD80000000, 0x00000001FFFFFFFF, 0x000000007FFFFFFE, 0x00000001FFFFFFFE}, + [_]u64{0xFFFFFFFD80000000, 0x0000000200000000, 0x000000007FFFFFFE, 0x0000000180000000}, + [_]u64{0xFFFFFFFD80000000, 0x0000000200000001, 0x000000007FFFFFFE, 0x0000000100000002}, + [_]u64{0xFFFFFFFD80000000, 0x0000000200000002, 0x000000007FFFFFFE, 0x0000000080000004}, + [_]u64{0xFFFFFFFD80000000, 0x0000000200000003, 0x000000007FFFFFFE, 0x0000000000000006}, + [_]u64{0xFFFFFFFD80000000, 0x0000000200000010, 0x000000007FFFFFFA, 0x0000000180000060}, + [_]u64{0xFFFFFFFD80000000, 0x00000002078644FA, 0x000000007E256848, 0x00000001D21509B0}, + [_]u64{0xFFFFFFFD80000000, 0x000000020747AE14, 0x000000007E349CA5, 0x00000001ECA89D1C}, + [_]u64{0xFFFFFFFD80000000, 0x000000027FFFFFFF, 0x0000000066666665, 0x0000000166666665}, + [_]u64{0xFFFFFFFD80000000, 0x0000000280000000, 0x0000000066666665, 0x0000000100000000}, + [_]u64{0xFFFFFFFD80000000, 0x00000002FFFFFFFD, 0x0000000055555554, 0x000000027FFFFFFC}, + [_]u64{0xFFFFFFFD80000000, 0x00000002FFFFFFFE, 0x0000000055555554, 0x000000022AAAAAA8}, + [_]u64{0xFFFFFFFD80000000, 0x00000002FFFFFFFF, 0x0000000055555554, 0x00000001D5555554}, + [_]u64{0xFFFFFFFD80000000, 0x0000000300000000, 0x0000000055555554, 0x0000000180000000}, + [_]u64{0xFFFFFFFD80000000, 0x0000000300000001, 0x0000000055555554, 0x000000012AAAAAAC}, + [_]u64{0xFFFFFFFD80000000, 0x0000000300000002, 0x0000000055555554, 0x00000000D5555558}, + [_]u64{0xFFFFFFFD80000000, 0x0000000300000003, 0x0000000055555554, 0x0000000080000004}, + [_]u64{0xFFFFFFFD80000000, 0x0000000300000010, 0x0000000055555552, 0x000000022AAAAAE0}, + [_]u64{0xFFFFFFFD80000000, 0x00000003078644FA, 0x0000000054816147, 0x00000001BFA624AA}, + [_]u64{0xFFFFFFFD80000000, 0x000000030747AE14, 0x00000000548833C5, 0x0000000293890E9C}, + [_]u64{0xFFFFFFFD80000000, 0x000000037FFFFFFF, 0x0000000049249248, 0x00000001C9249248}, + [_]u64{0xFFFFFFFD80000000, 0x0000000380000000, 0x0000000049249248, 0x0000000180000000}, + [_]u64{0xFFFFFFFD80000000, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x000000023FFFFFFD}, + [_]u64{0xFFFFFFFD80000000, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x00000001FFFFFFFE}, + [_]u64{0xFFFFFFFD80000000, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x00000001BFFFFFFF}, + [_]u64{0xFFFFFFFD80000000, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000D80000000}, + [_]u64{0xFFFFFFFD80000000, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000D70000001}, + [_]u64{0xFFFFFFFD80000000, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000D60000002}, + [_]u64{0xFFFFFFFD80000000, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000D50000003}, + [_]u64{0xFFFFFFFD80000000, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000C80000010}, + [_]u64{0xFFFFFFFD80000000, 0x00000010078644FA, 0x000000000FF87D43, 0x000000017FFDE092}, + [_]u64{0xFFFFFFFD80000000, 0x000000100747AE14, 0x000000000FF8BBA0, 0x00000003C7AA9780}, + [_]u64{0xFFFFFFFD80000000, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000018F83E0F8}, + [_]u64{0xFFFFFFFD80000000, 0x0000001080000000, 0x000000000F83E0F8, 0x0000000180000000}, + [_]u64{0xFFFFFFFD80000000, 0x00000010FFFFFFFD, 0x000000000F0F0F0E, 0x0000000FAD2D2D2A}, + [_]u64{0xFFFFFFFD80000000, 0x00000010FFFFFFFE, 0x000000000F0F0F0E, 0x0000000F9E1E1E1C}, + [_]u64{0xFFFFFFFD80000000, 0x00000010FFFFFFFF, 0x000000000F0F0F0E, 0x0000000F8F0F0F0E}, + [_]u64{0xFFFFFFFD80000000, 0x078644FA00000000, 0x0000000000000022, 0x002AD6C980000000}, + [_]u64{0xFFFFFFFD80000000, 0x078644FA00000001, 0x0000000000000022, 0x002AD6C97FFFFFDE}, + [_]u64{0xFFFFFFFD80000000, 0x078644FA00000002, 0x0000000000000022, 0x002AD6C97FFFFFBC}, + [_]u64{0xFFFFFFFD80000000, 0x078644FA00000003, 0x0000000000000022, 0x002AD6C97FFFFF9A}, + [_]u64{0xFFFFFFFD80000000, 0x078644FA00000010, 0x0000000000000022, 0x002AD6C97FFFFDE0}, + [_]u64{0xFFFFFFFD80000000, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6C8802AD6CC}, + [_]u64{0xFFFFFFFD80000000, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6C8887AE158}, + [_]u64{0xFFFFFFFD80000000, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6B880000022}, + [_]u64{0xFFFFFFFD80000000, 0x078644FA80000000, 0x0000000000000022, 0x002AD6B880000000}, + [_]u64{0xFFFFFFFD80000000, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A780000066}, + [_]u64{0xFFFFFFFD80000000, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A780000044}, + [_]u64{0xFFFFFFFD80000000, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A780000022}, + [_]u64{0xFFFFFFFD80000000, 0x0747AE1400000000, 0x0000000000000023, 0x0133334180000000}, + [_]u64{0xFFFFFFFD80000000, 0x0747AE1400000001, 0x0000000000000023, 0x013333417FFFFFDD}, + [_]u64{0xFFFFFFFD80000000, 0x0747AE1400000002, 0x0000000000000023, 0x013333417FFFFFBA}, + [_]u64{0xFFFFFFFD80000000, 0x0747AE1400000003, 0x0000000000000023, 0x013333417FFFFF97}, + [_]u64{0xFFFFFFFD80000000, 0x0747AE1400000010, 0x0000000000000023, 0x013333417FFFFDD0}, + [_]u64{0xFFFFFFFD80000000, 0x0747AE14078644FA, 0x0000000000000023, 0x0133334078A491D2}, + [_]u64{0xFFFFFFFD80000000, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334081333344}, + [_]u64{0xFFFFFFFD80000000, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133333000000023}, + [_]u64{0xFFFFFFFD80000000, 0x0747AE1480000000, 0x0000000000000023, 0x0133333000000000}, + [_]u64{0xFFFFFFFD80000000, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133331E80000069}, + [_]u64{0xFFFFFFFD80000000, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133331E80000046}, + [_]u64{0xFFFFFFFD80000000, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133331E80000023}, + [_]u64{0xFFFFFFFD80000000, 0x7FFFFFFF00000000, 0x0000000000000001, 0x7FFFFFFE80000000}, + [_]u64{0xFFFFFFFD80000000, 0x7FFFFFFF00000001, 0x0000000000000001, 0x7FFFFFFE7FFFFFFF}, + [_]u64{0xFFFFFFFD80000000, 0x7FFFFFFF00000002, 0x0000000000000001, 0x7FFFFFFE7FFFFFFE}, + [_]u64{0xFFFFFFFD80000000, 0x7FFFFFFF00000003, 0x0000000000000001, 0x7FFFFFFE7FFFFFFD}, + [_]u64{0xFFFFFFFD80000000, 0x7FFFFFFF00000010, 0x0000000000000001, 0x7FFFFFFE7FFFFFF0}, + [_]u64{0xFFFFFFFD80000000, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x7FFFFFFE7879BB06}, + [_]u64{0xFFFFFFFD80000000, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x7FFFFFFE78B851EC}, + [_]u64{0xFFFFFFFD80000000, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x7FFFFFFE00000001}, + [_]u64{0xFFFFFFFD80000000, 0x7FFFFFFF80000000, 0x0000000000000001, 0x7FFFFFFE00000000}, + [_]u64{0xFFFFFFFD80000000, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFD80000003}, + [_]u64{0xFFFFFFFD80000000, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFD80000002}, + [_]u64{0xFFFFFFFD80000000, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFD80000001}, + [_]u64{0xFFFFFFFD80000000, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFD80000000}, + [_]u64{0xFFFFFFFD80000000, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFD80000000, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFD7FFFFFFE}, + [_]u64{0xFFFFFFFD80000000, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFD7FFFFFFD}, + [_]u64{0xFFFFFFFD80000000, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFD7FFFFFF0}, + [_]u64{0xFFFFFFFD80000000, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFD7879BB06}, + [_]u64{0xFFFFFFFD80000000, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFD78B851EC}, + [_]u64{0xFFFFFFFD80000000, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFD00000001}, + [_]u64{0xFFFFFFFD80000000, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFD00000000}, + [_]u64{0xFFFFFFFD80000000, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFC80000003}, + [_]u64{0xFFFFFFFD80000000, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFC80000002}, + [_]u64{0xFFFFFFFD80000000, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFC80000001}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFD00000000, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFD00000001, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFD00000002, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFD00000003, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFD00000010, 0x0000000000000001, 0x000000007FFFFFF0}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x000000007879BB06}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x0000000078B851EC}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFD80000000, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000, 0xFFFFFFFD80000000}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0xFFFFFFFD80000000}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0xFFFFFFFD80000000}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFE00000000, 0x0000000000000000, 0xFFFFFFFD80000000}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFE00000001, 0x0000000000000000, 0xFFFFFFFD80000000}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFE00000002, 0x0000000000000000, 0xFFFFFFFD80000000}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFE00000003, 0x0000000000000000, 0xFFFFFFFD80000000}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFE00000010, 0x0000000000000000, 0xFFFFFFFD80000000}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFE078644FA, 0x0000000000000000, 0xFFFFFFFD80000000}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0xFFFFFFFD80000000}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0xFFFFFFFD80000000}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFE80000000, 0x0000000000000000, 0xFFFFFFFD80000000}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0xFFFFFFFD80000000}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0xFFFFFFFD80000000}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0xFFFFFFFD80000000}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFF00000000, 0x0000000000000000, 0xFFFFFFFD80000000}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFF00000001, 0x0000000000000000, 0xFFFFFFFD80000000}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFF00000002, 0x0000000000000000, 0xFFFFFFFD80000000}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFF00000003, 0x0000000000000000, 0xFFFFFFFD80000000}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFF00000010, 0x0000000000000000, 0xFFFFFFFD80000000}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFD80000000}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFD80000000}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFD80000000}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFD80000000}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFD80000000}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFD80000000}, + [_]u64{0xFFFFFFFD80000000, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFD80000000}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000000000000001, 0xFFFFFFFDFFFFFFFD, 0x0000000000000000}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000000000000002, 0x7FFFFFFEFFFFFFFE, 0x0000000000000001}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000000000000003, 0x55555554AAAAAAA9, 0x0000000000000002}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000000000000010, 0x0FFFFFFFDFFFFFFF, 0x000000000000000D}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x00000000078644FA, 0x0000002205B17AB9, 0x00000000003F0353}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x000000000747AE14, 0x000000232A32A535, 0x00000000030E11D9}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x000000007FFFFFFF, 0x00000001FFFFFFFF, 0x000000007FFFFFFC}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000000080000000, 0x00000001FFFFFFFB, 0x000000007FFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x00000000FFFFFFFD, 0x0000000100000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x00000000FFFFFFFE, 0x00000000FFFFFFFF, 0x00000000FFFFFFFB}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x00000000FFFFFFFF, 0x00000000FFFFFFFE, 0x00000000FFFFFFFB}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000000100000000, 0x00000000FFFFFFFD, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000000100000001, 0x00000000FFFFFFFD, 0x0000000000000000}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000000100000002, 0x00000000FFFFFFFC, 0x0000000000000005}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000000100000003, 0x00000000FFFFFFFB, 0x000000000000000C}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000000100000010, 0x00000000FFFFFFEE, 0x000000000000011D}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x00000001078644FA, 0x00000000F8B0BB5A, 0x00000000AA892219}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x000000010747AE14, 0x00000000F8EBDA58, 0x0000000048C3211D}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x000000017FFFFFFF, 0x00000000AAAAAAA9, 0x000000012AAAAAA6}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000000180000000, 0x00000000AAAAAAA9, 0x000000007FFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x00000001FFFFFFFD, 0x000000007FFFFFFF, 0x000000017FFFFFFA}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x00000001FFFFFFFE, 0x000000007FFFFFFF, 0x00000000FFFFFFFB}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x00000001FFFFFFFF, 0x000000007FFFFFFF, 0x000000007FFFFFFC}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000000200000000, 0x000000007FFFFFFE, 0x00000001FFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000000200000001, 0x000000007FFFFFFE, 0x000000017FFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000000200000002, 0x000000007FFFFFFE, 0x0000000100000001}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000000200000003, 0x000000007FFFFFFE, 0x0000000080000003}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000000200000010, 0x000000007FFFFFFB, 0x000000000000004D}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x00000002078644FA, 0x000000007E256849, 0x000000004A8EC4B3}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x000000020747AE14, 0x000000007E349CA6, 0x000000006560EF05}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x000000027FFFFFFF, 0x0000000066666665, 0x00000001E6666662}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000000280000000, 0x0000000066666665, 0x000000017FFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x00000002FFFFFFFD, 0x0000000055555554, 0x00000002FFFFFFF9}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x00000002FFFFFFFE, 0x0000000055555554, 0x00000002AAAAAAA5}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x00000002FFFFFFFF, 0x0000000055555554, 0x0000000255555551}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000000300000000, 0x0000000055555554, 0x00000001FFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000000300000001, 0x0000000055555554, 0x00000001AAAAAAA9}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000000300000002, 0x0000000055555554, 0x0000000155555555}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000000300000003, 0x0000000055555554, 0x0000000100000001}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000000300000010, 0x0000000055555552, 0x00000002AAAAAADD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x00000003078644FA, 0x0000000054816147, 0x000000023FA624A7}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x000000030747AE14, 0x00000000548833C6, 0x000000000C416085}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x000000037FFFFFFF, 0x0000000049249248, 0x0000000249249245}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000000380000000, 0x0000000049249248, 0x00000001FFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x00000002BFFFFFFA}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x000000027FFFFFFB}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x000000023FFFFFFC}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000DFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000DEFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000DDFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000DD0000000}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000D0000000D}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x00000010078644FA, 0x000000000FF87D43, 0x00000001FFFDE08F}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x000000100747AE14, 0x000000000FF8BBA0, 0x0000000447AA977D}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000020F83E0F5}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0000001080000000, 0x000000000F83E0F8, 0x00000001FFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x00000010FFFFFFFD, 0x000000000F0F0F0E, 0x000000102D2D2D27}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x00000010FFFFFFFE, 0x000000000F0F0F0E, 0x000000101E1E1E19}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x00000010FFFFFFFF, 0x000000000F0F0F0E, 0x000000100F0F0F0B}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x078644FA00000000, 0x0000000000000022, 0x002AD6C9FFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x078644FA00000001, 0x0000000000000022, 0x002AD6C9FFFFFFDB}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x078644FA00000002, 0x0000000000000022, 0x002AD6C9FFFFFFB9}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x078644FA00000003, 0x0000000000000022, 0x002AD6C9FFFFFF97}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x078644FA00000010, 0x0000000000000022, 0x002AD6C9FFFFFDDD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6C9002AD6C9}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6C9087AE155}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6B90000001F}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x078644FA80000000, 0x0000000000000022, 0x002AD6B8FFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A800000063}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A800000041}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A80000001F}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0747AE1400000000, 0x0000000000000023, 0x01333341FFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0747AE1400000001, 0x0000000000000023, 0x01333341FFFFFFDA}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0747AE1400000002, 0x0000000000000023, 0x01333341FFFFFFB7}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0747AE1400000003, 0x0000000000000023, 0x01333341FFFFFF94}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0747AE1400000010, 0x0000000000000023, 0x01333341FFFFFDCD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0747AE14078644FA, 0x0000000000000023, 0x01333340F8A491CF}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334101333341}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133333080000020}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0747AE1480000000, 0x0000000000000023, 0x013333307FFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133331F00000066}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133331F00000043}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133331F00000020}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x7FFFFFFF00000000, 0x0000000000000001, 0x7FFFFFFEFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x7FFFFFFF00000001, 0x0000000000000001, 0x7FFFFFFEFFFFFFFC}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x7FFFFFFF00000002, 0x0000000000000001, 0x7FFFFFFEFFFFFFFB}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x7FFFFFFF00000003, 0x0000000000000001, 0x7FFFFFFEFFFFFFFA}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x7FFFFFFF00000010, 0x0000000000000001, 0x7FFFFFFEFFFFFFED}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x7FFFFFFEF879BB03}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x7FFFFFFEF8B851E9}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x7FFFFFFE7FFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x7FFFFFFF80000000, 0x0000000000000001, 0x7FFFFFFE7FFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFE00000000}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFDFFFFFFFC}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFDFFFFFFFB}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFDFFFFFFFA}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFDFFFFFFED}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFDF879BB03}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFDF8B851E9}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFD7FFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFD7FFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFD00000000}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFCFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFCFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFD00000000, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFD00000001, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFD00000002, 0x0000000000000001, 0x00000000FFFFFFFB}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFD00000003, 0x0000000000000001, 0x00000000FFFFFFFA}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFD00000010, 0x0000000000000001, 0x00000000FFFFFFED}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x00000000F879BB03}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x00000000F8B851E9}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFD80000000, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFDFFFFFFFD, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000, 0xFFFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0xFFFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFE00000000, 0x0000000000000000, 0xFFFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFE00000001, 0x0000000000000000, 0xFFFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFE00000002, 0x0000000000000000, 0xFFFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFE00000003, 0x0000000000000000, 0xFFFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFE00000010, 0x0000000000000000, 0xFFFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFE078644FA, 0x0000000000000000, 0xFFFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0xFFFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0xFFFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFE80000000, 0x0000000000000000, 0xFFFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0xFFFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0xFFFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0xFFFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFF00000000, 0x0000000000000000, 0xFFFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFF00000001, 0x0000000000000000, 0xFFFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFF00000002, 0x0000000000000000, 0xFFFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFF00000003, 0x0000000000000000, 0xFFFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFF00000010, 0x0000000000000000, 0xFFFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFD, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000000000000001, 0xFFFFFFFDFFFFFFFE, 0x0000000000000000}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000000000000002, 0x7FFFFFFEFFFFFFFF, 0x0000000000000000}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000000000000003, 0x55555554AAAAAAAA, 0x0000000000000000}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000000000000010, 0x0FFFFFFFDFFFFFFF, 0x000000000000000E}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x00000000078644FA, 0x0000002205B17AB9, 0x00000000003F0354}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x000000000747AE14, 0x000000232A32A535, 0x00000000030E11DA}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x000000007FFFFFFF, 0x00000001FFFFFFFF, 0x000000007FFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000000080000000, 0x00000001FFFFFFFB, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x00000000FFFFFFFD, 0x0000000100000001, 0x0000000000000001}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x00000000FFFFFFFE, 0x00000000FFFFFFFF, 0x00000000FFFFFFFC}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x00000000FFFFFFFF, 0x00000000FFFFFFFE, 0x00000000FFFFFFFC}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000000100000000, 0x00000000FFFFFFFD, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000000100000001, 0x00000000FFFFFFFD, 0x0000000000000001}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000000100000002, 0x00000000FFFFFFFC, 0x0000000000000006}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000000100000003, 0x00000000FFFFFFFB, 0x000000000000000D}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000000100000010, 0x00000000FFFFFFEE, 0x000000000000011E}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x00000001078644FA, 0x00000000F8B0BB5A, 0x00000000AA89221A}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x000000010747AE14, 0x00000000F8EBDA58, 0x0000000048C3211E}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x000000017FFFFFFF, 0x00000000AAAAAAA9, 0x000000012AAAAAA7}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000000180000000, 0x00000000AAAAAAA9, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x00000001FFFFFFFD, 0x000000007FFFFFFF, 0x000000017FFFFFFB}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x00000001FFFFFFFE, 0x000000007FFFFFFF, 0x00000000FFFFFFFC}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x00000001FFFFFFFF, 0x000000007FFFFFFF, 0x000000007FFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000000200000000, 0x000000007FFFFFFE, 0x00000001FFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000000200000001, 0x000000007FFFFFFE, 0x0000000180000000}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000000200000002, 0x000000007FFFFFFE, 0x0000000100000002}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000000200000003, 0x000000007FFFFFFE, 0x0000000080000004}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000000200000010, 0x000000007FFFFFFB, 0x000000000000004E}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x00000002078644FA, 0x000000007E256849, 0x000000004A8EC4B4}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x000000020747AE14, 0x000000007E349CA6, 0x000000006560EF06}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x000000027FFFFFFF, 0x0000000066666665, 0x00000001E6666663}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000000280000000, 0x0000000066666665, 0x000000017FFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x00000002FFFFFFFD, 0x0000000055555554, 0x00000002FFFFFFFA}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x00000002FFFFFFFE, 0x0000000055555554, 0x00000002AAAAAAA6}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x00000002FFFFFFFF, 0x0000000055555554, 0x0000000255555552}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000000300000000, 0x0000000055555554, 0x00000001FFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000000300000001, 0x0000000055555554, 0x00000001AAAAAAAA}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000000300000002, 0x0000000055555554, 0x0000000155555556}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000000300000003, 0x0000000055555554, 0x0000000100000002}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000000300000010, 0x0000000055555552, 0x00000002AAAAAADE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x00000003078644FA, 0x0000000054816147, 0x000000023FA624A8}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x000000030747AE14, 0x00000000548833C6, 0x000000000C416086}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x000000037FFFFFFF, 0x0000000049249248, 0x0000000249249246}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000000380000000, 0x0000000049249248, 0x00000001FFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x00000002BFFFFFFB}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x000000027FFFFFFC}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x000000023FFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000DFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000DEFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000DE0000000}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000DD0000001}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000D0000000E}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x00000010078644FA, 0x000000000FF87D43, 0x00000001FFFDE090}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x000000100747AE14, 0x000000000FF8BBA0, 0x0000000447AA977E}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000020F83E0F6}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0000001080000000, 0x000000000F83E0F8, 0x00000001FFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x00000010FFFFFFFD, 0x000000000F0F0F0E, 0x000000102D2D2D28}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x00000010FFFFFFFE, 0x000000000F0F0F0E, 0x000000101E1E1E1A}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x00000010FFFFFFFF, 0x000000000F0F0F0E, 0x000000100F0F0F0C}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x078644FA00000000, 0x0000000000000022, 0x002AD6C9FFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x078644FA00000001, 0x0000000000000022, 0x002AD6C9FFFFFFDC}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x078644FA00000002, 0x0000000000000022, 0x002AD6C9FFFFFFBA}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x078644FA00000003, 0x0000000000000022, 0x002AD6C9FFFFFF98}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x078644FA00000010, 0x0000000000000022, 0x002AD6C9FFFFFDDE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6C9002AD6CA}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6C9087AE156}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6B900000020}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x078644FA80000000, 0x0000000000000022, 0x002AD6B8FFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A800000064}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A800000042}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A800000020}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0747AE1400000000, 0x0000000000000023, 0x01333341FFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0747AE1400000001, 0x0000000000000023, 0x01333341FFFFFFDB}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0747AE1400000002, 0x0000000000000023, 0x01333341FFFFFFB8}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0747AE1400000003, 0x0000000000000023, 0x01333341FFFFFF95}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0747AE1400000010, 0x0000000000000023, 0x01333341FFFFFDCE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0747AE14078644FA, 0x0000000000000023, 0x01333340F8A491D0}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334101333342}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133333080000021}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0747AE1480000000, 0x0000000000000023, 0x013333307FFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133331F00000067}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133331F00000044}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133331F00000021}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x7FFFFFFF00000000, 0x0000000000000001, 0x7FFFFFFEFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x7FFFFFFF00000001, 0x0000000000000001, 0x7FFFFFFEFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x7FFFFFFF00000002, 0x0000000000000001, 0x7FFFFFFEFFFFFFFC}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x7FFFFFFF00000003, 0x0000000000000001, 0x7FFFFFFEFFFFFFFB}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x7FFFFFFF00000010, 0x0000000000000001, 0x7FFFFFFEFFFFFFEE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x7FFFFFFEF879BB04}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x7FFFFFFEF8B851EA}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x7FFFFFFE7FFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x7FFFFFFF80000000, 0x0000000000000001, 0x7FFFFFFE7FFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFE00000001}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFE00000000}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFDFFFFFFFC}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFDFFFFFFFB}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFDFFFFFFEE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFDF879BB04}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFDF8B851EA}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFD7FFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFD00000001}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFD00000000}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFCFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFD00000000, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFD00000001, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFD00000002, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFD00000003, 0x0000000000000001, 0x00000000FFFFFFFB}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFD00000010, 0x0000000000000001, 0x00000000FFFFFFEE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x00000000F879BB04}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x00000000F8B851EA}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFD80000000, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFDFFFFFFFD, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFDFFFFFFFE, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000, 0xFFFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFE00000000, 0x0000000000000000, 0xFFFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFE00000001, 0x0000000000000000, 0xFFFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFE00000002, 0x0000000000000000, 0xFFFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFE00000003, 0x0000000000000000, 0xFFFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFE00000010, 0x0000000000000000, 0xFFFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFE078644FA, 0x0000000000000000, 0xFFFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0xFFFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0xFFFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFE80000000, 0x0000000000000000, 0xFFFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0xFFFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0xFFFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0xFFFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFF00000000, 0x0000000000000000, 0xFFFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFF00000001, 0x0000000000000000, 0xFFFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFF00000002, 0x0000000000000000, 0xFFFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFF00000003, 0x0000000000000000, 0xFFFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFF00000010, 0x0000000000000000, 0xFFFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFE, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000000000000001, 0xFFFFFFFDFFFFFFFF, 0x0000000000000000}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000000000000002, 0x7FFFFFFEFFFFFFFF, 0x0000000000000001}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000000000000003, 0x55555554AAAAAAAA, 0x0000000000000001}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000000000000010, 0x0FFFFFFFDFFFFFFF, 0x000000000000000F}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x00000000078644FA, 0x0000002205B17AB9, 0x00000000003F0355}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x000000000747AE14, 0x000000232A32A535, 0x00000000030E11DB}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x000000007FFFFFFF, 0x00000001FFFFFFFF, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000000080000000, 0x00000001FFFFFFFB, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x00000000FFFFFFFD, 0x0000000100000001, 0x0000000000000002}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x00000000FFFFFFFE, 0x00000000FFFFFFFF, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x00000000FFFFFFFF, 0x00000000FFFFFFFE, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000000100000000, 0x00000000FFFFFFFD, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000000100000001, 0x00000000FFFFFFFD, 0x0000000000000002}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000000100000002, 0x00000000FFFFFFFC, 0x0000000000000007}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000000100000003, 0x00000000FFFFFFFB, 0x000000000000000E}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000000100000010, 0x00000000FFFFFFEE, 0x000000000000011F}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x00000001078644FA, 0x00000000F8B0BB5A, 0x00000000AA89221B}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x000000010747AE14, 0x00000000F8EBDA58, 0x0000000048C3211F}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x000000017FFFFFFF, 0x00000000AAAAAAA9, 0x000000012AAAAAA8}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000000180000000, 0x00000000AAAAAAA9, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x00000001FFFFFFFD, 0x000000007FFFFFFF, 0x000000017FFFFFFC}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x00000001FFFFFFFE, 0x000000007FFFFFFF, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x00000001FFFFFFFF, 0x000000007FFFFFFF, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000000200000000, 0x000000007FFFFFFE, 0x00000001FFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000000200000001, 0x000000007FFFFFFE, 0x0000000180000001}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000000200000002, 0x000000007FFFFFFE, 0x0000000100000003}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000000200000003, 0x000000007FFFFFFE, 0x0000000080000005}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000000200000010, 0x000000007FFFFFFB, 0x000000000000004F}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x00000002078644FA, 0x000000007E256849, 0x000000004A8EC4B5}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x000000020747AE14, 0x000000007E349CA6, 0x000000006560EF07}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x000000027FFFFFFF, 0x0000000066666665, 0x00000001E6666664}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000000280000000, 0x0000000066666665, 0x000000017FFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x00000002FFFFFFFD, 0x0000000055555554, 0x00000002FFFFFFFB}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x00000002FFFFFFFE, 0x0000000055555554, 0x00000002AAAAAAA7}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x00000002FFFFFFFF, 0x0000000055555554, 0x0000000255555553}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000000300000000, 0x0000000055555554, 0x00000001FFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000000300000001, 0x0000000055555554, 0x00000001AAAAAAAB}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000000300000002, 0x0000000055555554, 0x0000000155555557}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000000300000003, 0x0000000055555554, 0x0000000100000003}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000000300000010, 0x0000000055555552, 0x00000002AAAAAADF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x00000003078644FA, 0x0000000054816147, 0x000000023FA624A9}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x000000030747AE14, 0x00000000548833C6, 0x000000000C416087}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x000000037FFFFFFF, 0x0000000049249248, 0x0000000249249247}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000000380000000, 0x0000000049249248, 0x00000001FFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x00000002BFFFFFFC}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x000000027FFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x000000023FFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000DFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000DF0000000}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000DE0000001}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000DD0000002}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000D0000000F}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x00000010078644FA, 0x000000000FF87D43, 0x00000001FFFDE091}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x000000100747AE14, 0x000000000FF8BBA0, 0x0000000447AA977F}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000020F83E0F7}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0000001080000000, 0x000000000F83E0F8, 0x00000001FFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x00000010FFFFFFFD, 0x000000000F0F0F0E, 0x000000102D2D2D29}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x00000010FFFFFFFE, 0x000000000F0F0F0E, 0x000000101E1E1E1B}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x00000010FFFFFFFF, 0x000000000F0F0F0E, 0x000000100F0F0F0D}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x078644FA00000000, 0x0000000000000022, 0x002AD6C9FFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x078644FA00000001, 0x0000000000000022, 0x002AD6C9FFFFFFDD}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x078644FA00000002, 0x0000000000000022, 0x002AD6C9FFFFFFBB}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x078644FA00000003, 0x0000000000000022, 0x002AD6C9FFFFFF99}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x078644FA00000010, 0x0000000000000022, 0x002AD6C9FFFFFDDF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6C9002AD6CB}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6C9087AE157}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6B900000021}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x078644FA80000000, 0x0000000000000022, 0x002AD6B8FFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A800000065}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A800000043}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A800000021}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0747AE1400000000, 0x0000000000000023, 0x01333341FFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0747AE1400000001, 0x0000000000000023, 0x01333341FFFFFFDC}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0747AE1400000002, 0x0000000000000023, 0x01333341FFFFFFB9}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0747AE1400000003, 0x0000000000000023, 0x01333341FFFFFF96}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0747AE1400000010, 0x0000000000000023, 0x01333341FFFFFDCF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0747AE14078644FA, 0x0000000000000023, 0x01333340F8A491D1}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334101333343}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133333080000022}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0747AE1480000000, 0x0000000000000023, 0x013333307FFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133331F00000068}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133331F00000045}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133331F00000022}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x7FFFFFFF00000000, 0x0000000000000001, 0x7FFFFFFEFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x7FFFFFFF00000001, 0x0000000000000001, 0x7FFFFFFEFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x7FFFFFFF00000002, 0x0000000000000001, 0x7FFFFFFEFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x7FFFFFFF00000003, 0x0000000000000001, 0x7FFFFFFEFFFFFFFC}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x7FFFFFFF00000010, 0x0000000000000001, 0x7FFFFFFEFFFFFFEF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x7FFFFFFEF879BB05}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x7FFFFFFEF8B851EB}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x7FFFFFFE80000000}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x7FFFFFFF80000000, 0x0000000000000001, 0x7FFFFFFE7FFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFE00000002}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFE00000001}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFE00000000}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFDFFFFFFFC}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFDFFFFFFEF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFDF879BB05}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFDF8B851EB}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFD80000000}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFD7FFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFD00000002}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFD00000001}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFD00000000}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFD00000000, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFD00000001, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFD00000002, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFD00000003, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFD00000010, 0x0000000000000001, 0x00000000FFFFFFEF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x00000000F879BB05}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x00000000F8B851EB}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFD80000000, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFDFFFFFFFD, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFDFFFFFFFE, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFDFFFFFFFF, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFE00000000, 0x0000000000000000, 0xFFFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFE00000001, 0x0000000000000000, 0xFFFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFE00000002, 0x0000000000000000, 0xFFFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFE00000003, 0x0000000000000000, 0xFFFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFE00000010, 0x0000000000000000, 0xFFFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFE078644FA, 0x0000000000000000, 0xFFFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0xFFFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0xFFFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFE80000000, 0x0000000000000000, 0xFFFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0xFFFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0xFFFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0xFFFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFF00000000, 0x0000000000000000, 0xFFFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFF00000001, 0x0000000000000000, 0xFFFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFF00000002, 0x0000000000000000, 0xFFFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFF00000003, 0x0000000000000000, 0xFFFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFF00000010, 0x0000000000000000, 0xFFFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFDFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFE00000000, 0x0000000000000001, 0xFFFFFFFE00000000, 0x0000000000000000}, + [_]u64{0xFFFFFFFE00000000, 0x0000000000000002, 0x7FFFFFFF00000000, 0x0000000000000000}, + [_]u64{0xFFFFFFFE00000000, 0x0000000000000003, 0x55555554AAAAAAAA, 0x0000000000000002}, + [_]u64{0xFFFFFFFE00000000, 0x0000000000000010, 0x0FFFFFFFE0000000, 0x0000000000000000}, + [_]u64{0xFFFFFFFE00000000, 0x00000000078644FA, 0x0000002205B17AB9, 0x00000000003F0356}, + [_]u64{0xFFFFFFFE00000000, 0x000000000747AE14, 0x000000232A32A535, 0x00000000030E11DC}, + [_]u64{0xFFFFFFFE00000000, 0x000000007FFFFFFF, 0x0000000200000000, 0x0000000000000000}, + [_]u64{0xFFFFFFFE00000000, 0x0000000080000000, 0x00000001FFFFFFFC, 0x0000000000000000}, + [_]u64{0xFFFFFFFE00000000, 0x00000000FFFFFFFD, 0x0000000100000001, 0x0000000000000003}, + [_]u64{0xFFFFFFFE00000000, 0x00000000FFFFFFFE, 0x0000000100000000, 0x0000000000000000}, + [_]u64{0xFFFFFFFE00000000, 0x00000000FFFFFFFF, 0x00000000FFFFFFFE, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFE00000000, 0x0000000100000000, 0x00000000FFFFFFFE, 0x0000000000000000}, + [_]u64{0xFFFFFFFE00000000, 0x0000000100000001, 0x00000000FFFFFFFD, 0x0000000000000003}, + [_]u64{0xFFFFFFFE00000000, 0x0000000100000002, 0x00000000FFFFFFFC, 0x0000000000000008}, + [_]u64{0xFFFFFFFE00000000, 0x0000000100000003, 0x00000000FFFFFFFB, 0x000000000000000F}, + [_]u64{0xFFFFFFFE00000000, 0x0000000100000010, 0x00000000FFFFFFEE, 0x0000000000000120}, + [_]u64{0xFFFFFFFE00000000, 0x00000001078644FA, 0x00000000F8B0BB5A, 0x00000000AA89221C}, + [_]u64{0xFFFFFFFE00000000, 0x000000010747AE14, 0x00000000F8EBDA58, 0x0000000048C32120}, + [_]u64{0xFFFFFFFE00000000, 0x000000017FFFFFFF, 0x00000000AAAAAAA9, 0x000000012AAAAAA9}, + [_]u64{0xFFFFFFFE00000000, 0x0000000180000000, 0x00000000AAAAAAA9, 0x0000000080000000}, + [_]u64{0xFFFFFFFE00000000, 0x00000001FFFFFFFD, 0x000000007FFFFFFF, 0x000000017FFFFFFD}, + [_]u64{0xFFFFFFFE00000000, 0x00000001FFFFFFFE, 0x000000007FFFFFFF, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFE00000000, 0x00000001FFFFFFFF, 0x000000007FFFFFFF, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFE00000000, 0x0000000200000000, 0x000000007FFFFFFF, 0x0000000000000000}, + [_]u64{0xFFFFFFFE00000000, 0x0000000200000001, 0x000000007FFFFFFE, 0x0000000180000002}, + [_]u64{0xFFFFFFFE00000000, 0x0000000200000002, 0x000000007FFFFFFE, 0x0000000100000004}, + [_]u64{0xFFFFFFFE00000000, 0x0000000200000003, 0x000000007FFFFFFE, 0x0000000080000006}, + [_]u64{0xFFFFFFFE00000000, 0x0000000200000010, 0x000000007FFFFFFB, 0x0000000000000050}, + [_]u64{0xFFFFFFFE00000000, 0x00000002078644FA, 0x000000007E256849, 0x000000004A8EC4B6}, + [_]u64{0xFFFFFFFE00000000, 0x000000020747AE14, 0x000000007E349CA6, 0x000000006560EF08}, + [_]u64{0xFFFFFFFE00000000, 0x000000027FFFFFFF, 0x0000000066666665, 0x00000001E6666665}, + [_]u64{0xFFFFFFFE00000000, 0x0000000280000000, 0x0000000066666665, 0x0000000180000000}, + [_]u64{0xFFFFFFFE00000000, 0x00000002FFFFFFFD, 0x0000000055555554, 0x00000002FFFFFFFC}, + [_]u64{0xFFFFFFFE00000000, 0x00000002FFFFFFFE, 0x0000000055555554, 0x00000002AAAAAAA8}, + [_]u64{0xFFFFFFFE00000000, 0x00000002FFFFFFFF, 0x0000000055555554, 0x0000000255555554}, + [_]u64{0xFFFFFFFE00000000, 0x0000000300000000, 0x0000000055555554, 0x0000000200000000}, + [_]u64{0xFFFFFFFE00000000, 0x0000000300000001, 0x0000000055555554, 0x00000001AAAAAAAC}, + [_]u64{0xFFFFFFFE00000000, 0x0000000300000002, 0x0000000055555554, 0x0000000155555558}, + [_]u64{0xFFFFFFFE00000000, 0x0000000300000003, 0x0000000055555554, 0x0000000100000004}, + [_]u64{0xFFFFFFFE00000000, 0x0000000300000010, 0x0000000055555552, 0x00000002AAAAAAE0}, + [_]u64{0xFFFFFFFE00000000, 0x00000003078644FA, 0x0000000054816147, 0x000000023FA624AA}, + [_]u64{0xFFFFFFFE00000000, 0x000000030747AE14, 0x00000000548833C6, 0x000000000C416088}, + [_]u64{0xFFFFFFFE00000000, 0x000000037FFFFFFF, 0x0000000049249248, 0x0000000249249248}, + [_]u64{0xFFFFFFFE00000000, 0x0000000380000000, 0x0000000049249248, 0x0000000200000000}, + [_]u64{0xFFFFFFFE00000000, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x00000002BFFFFFFD}, + [_]u64{0xFFFFFFFE00000000, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x000000027FFFFFFE}, + [_]u64{0xFFFFFFFE00000000, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x000000023FFFFFFF}, + [_]u64{0xFFFFFFFE00000000, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000E00000000}, + [_]u64{0xFFFFFFFE00000000, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000DF0000001}, + [_]u64{0xFFFFFFFE00000000, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000DE0000002}, + [_]u64{0xFFFFFFFE00000000, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000DD0000003}, + [_]u64{0xFFFFFFFE00000000, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000D00000010}, + [_]u64{0xFFFFFFFE00000000, 0x00000010078644FA, 0x000000000FF87D43, 0x00000001FFFDE092}, + [_]u64{0xFFFFFFFE00000000, 0x000000100747AE14, 0x000000000FF8BBA0, 0x0000000447AA9780}, + [_]u64{0xFFFFFFFE00000000, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000020F83E0F8}, + [_]u64{0xFFFFFFFE00000000, 0x0000001080000000, 0x000000000F83E0F8, 0x0000000200000000}, + [_]u64{0xFFFFFFFE00000000, 0x00000010FFFFFFFD, 0x000000000F0F0F0E, 0x000000102D2D2D2A}, + [_]u64{0xFFFFFFFE00000000, 0x00000010FFFFFFFE, 0x000000000F0F0F0E, 0x000000101E1E1E1C}, + [_]u64{0xFFFFFFFE00000000, 0x00000010FFFFFFFF, 0x000000000F0F0F0E, 0x000000100F0F0F0E}, + [_]u64{0xFFFFFFFE00000000, 0x078644FA00000000, 0x0000000000000022, 0x002AD6CA00000000}, + [_]u64{0xFFFFFFFE00000000, 0x078644FA00000001, 0x0000000000000022, 0x002AD6C9FFFFFFDE}, + [_]u64{0xFFFFFFFE00000000, 0x078644FA00000002, 0x0000000000000022, 0x002AD6C9FFFFFFBC}, + [_]u64{0xFFFFFFFE00000000, 0x078644FA00000003, 0x0000000000000022, 0x002AD6C9FFFFFF9A}, + [_]u64{0xFFFFFFFE00000000, 0x078644FA00000010, 0x0000000000000022, 0x002AD6C9FFFFFDE0}, + [_]u64{0xFFFFFFFE00000000, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6C9002AD6CC}, + [_]u64{0xFFFFFFFE00000000, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6C9087AE158}, + [_]u64{0xFFFFFFFE00000000, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6B900000022}, + [_]u64{0xFFFFFFFE00000000, 0x078644FA80000000, 0x0000000000000022, 0x002AD6B900000000}, + [_]u64{0xFFFFFFFE00000000, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A800000066}, + [_]u64{0xFFFFFFFE00000000, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A800000044}, + [_]u64{0xFFFFFFFE00000000, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A800000022}, + [_]u64{0xFFFFFFFE00000000, 0x0747AE1400000000, 0x0000000000000023, 0x0133334200000000}, + [_]u64{0xFFFFFFFE00000000, 0x0747AE1400000001, 0x0000000000000023, 0x01333341FFFFFFDD}, + [_]u64{0xFFFFFFFE00000000, 0x0747AE1400000002, 0x0000000000000023, 0x01333341FFFFFFBA}, + [_]u64{0xFFFFFFFE00000000, 0x0747AE1400000003, 0x0000000000000023, 0x01333341FFFFFF97}, + [_]u64{0xFFFFFFFE00000000, 0x0747AE1400000010, 0x0000000000000023, 0x01333341FFFFFDD0}, + [_]u64{0xFFFFFFFE00000000, 0x0747AE14078644FA, 0x0000000000000023, 0x01333340F8A491D2}, + [_]u64{0xFFFFFFFE00000000, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334101333344}, + [_]u64{0xFFFFFFFE00000000, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133333080000023}, + [_]u64{0xFFFFFFFE00000000, 0x0747AE1480000000, 0x0000000000000023, 0x0133333080000000}, + [_]u64{0xFFFFFFFE00000000, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133331F00000069}, + [_]u64{0xFFFFFFFE00000000, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133331F00000046}, + [_]u64{0xFFFFFFFE00000000, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133331F00000023}, + [_]u64{0xFFFFFFFE00000000, 0x7FFFFFFF00000000, 0x0000000000000002, 0x0000000000000000}, + [_]u64{0xFFFFFFFE00000000, 0x7FFFFFFF00000001, 0x0000000000000001, 0x7FFFFFFEFFFFFFFF}, + [_]u64{0xFFFFFFFE00000000, 0x7FFFFFFF00000002, 0x0000000000000001, 0x7FFFFFFEFFFFFFFE}, + [_]u64{0xFFFFFFFE00000000, 0x7FFFFFFF00000003, 0x0000000000000001, 0x7FFFFFFEFFFFFFFD}, + [_]u64{0xFFFFFFFE00000000, 0x7FFFFFFF00000010, 0x0000000000000001, 0x7FFFFFFEFFFFFFF0}, + [_]u64{0xFFFFFFFE00000000, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x7FFFFFFEF879BB06}, + [_]u64{0xFFFFFFFE00000000, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x7FFFFFFEF8B851EC}, + [_]u64{0xFFFFFFFE00000000, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x7FFFFFFE80000001}, + [_]u64{0xFFFFFFFE00000000, 0x7FFFFFFF80000000, 0x0000000000000001, 0x7FFFFFFE80000000}, + [_]u64{0xFFFFFFFE00000000, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFE00000003}, + [_]u64{0xFFFFFFFE00000000, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFE00000002}, + [_]u64{0xFFFFFFFE00000000, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFE00000001}, + [_]u64{0xFFFFFFFE00000000, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFE00000000}, + [_]u64{0xFFFFFFFE00000000, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFE00000000, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFE00000000, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFDFFFFFFFD}, + [_]u64{0xFFFFFFFE00000000, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFDFFFFFFF0}, + [_]u64{0xFFFFFFFE00000000, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFDF879BB06}, + [_]u64{0xFFFFFFFE00000000, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFDF8B851EC}, + [_]u64{0xFFFFFFFE00000000, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFD80000001}, + [_]u64{0xFFFFFFFE00000000, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFD80000000}, + [_]u64{0xFFFFFFFE00000000, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFD00000003}, + [_]u64{0xFFFFFFFE00000000, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFD00000002}, + [_]u64{0xFFFFFFFE00000000, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFD00000001}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFD00000000, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFD00000001, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFD00000002, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFD00000003, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFD00000010, 0x0000000000000001, 0x00000000FFFFFFF0}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x00000000F879BB06}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x00000000F8B851EC}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x0000000080000001}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFD80000000, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFDFFFFFFFD, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFDFFFFFFFE, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFDFFFFFFFF, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFE00000000, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFE00000001, 0x0000000000000000, 0xFFFFFFFE00000000}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFE00000002, 0x0000000000000000, 0xFFFFFFFE00000000}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFE00000003, 0x0000000000000000, 0xFFFFFFFE00000000}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFE00000010, 0x0000000000000000, 0xFFFFFFFE00000000}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFE078644FA, 0x0000000000000000, 0xFFFFFFFE00000000}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0xFFFFFFFE00000000}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0xFFFFFFFE00000000}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFE80000000, 0x0000000000000000, 0xFFFFFFFE00000000}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0xFFFFFFFE00000000}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0xFFFFFFFE00000000}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0xFFFFFFFE00000000}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFF00000000, 0x0000000000000000, 0xFFFFFFFE00000000}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFF00000001, 0x0000000000000000, 0xFFFFFFFE00000000}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFF00000002, 0x0000000000000000, 0xFFFFFFFE00000000}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFF00000003, 0x0000000000000000, 0xFFFFFFFE00000000}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFF00000010, 0x0000000000000000, 0xFFFFFFFE00000000}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFE00000000}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFE00000000}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFE00000000}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFE00000000}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFE00000000}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFE00000000}, + [_]u64{0xFFFFFFFE00000000, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFE00000000}, + [_]u64{0xFFFFFFFE00000001, 0x0000000000000001, 0xFFFFFFFE00000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFE00000001, 0x0000000000000002, 0x7FFFFFFF00000000, 0x0000000000000001}, + [_]u64{0xFFFFFFFE00000001, 0x0000000000000003, 0x55555554AAAAAAAB, 0x0000000000000000}, + [_]u64{0xFFFFFFFE00000001, 0x0000000000000010, 0x0FFFFFFFE0000000, 0x0000000000000001}, + [_]u64{0xFFFFFFFE00000001, 0x00000000078644FA, 0x0000002205B17AB9, 0x00000000003F0357}, + [_]u64{0xFFFFFFFE00000001, 0x000000000747AE14, 0x000000232A32A535, 0x00000000030E11DD}, + [_]u64{0xFFFFFFFE00000001, 0x000000007FFFFFFF, 0x0000000200000000, 0x0000000000000001}, + [_]u64{0xFFFFFFFE00000001, 0x0000000080000000, 0x00000001FFFFFFFC, 0x0000000000000001}, + [_]u64{0xFFFFFFFE00000001, 0x00000000FFFFFFFD, 0x0000000100000001, 0x0000000000000004}, + [_]u64{0xFFFFFFFE00000001, 0x00000000FFFFFFFE, 0x0000000100000000, 0x0000000000000001}, + [_]u64{0xFFFFFFFE00000001, 0x00000000FFFFFFFF, 0x00000000FFFFFFFF, 0x0000000000000000}, + [_]u64{0xFFFFFFFE00000001, 0x0000000100000000, 0x00000000FFFFFFFE, 0x0000000000000001}, + [_]u64{0xFFFFFFFE00000001, 0x0000000100000001, 0x00000000FFFFFFFD, 0x0000000000000004}, + [_]u64{0xFFFFFFFE00000001, 0x0000000100000002, 0x00000000FFFFFFFC, 0x0000000000000009}, + [_]u64{0xFFFFFFFE00000001, 0x0000000100000003, 0x00000000FFFFFFFB, 0x0000000000000010}, + [_]u64{0xFFFFFFFE00000001, 0x0000000100000010, 0x00000000FFFFFFEE, 0x0000000000000121}, + [_]u64{0xFFFFFFFE00000001, 0x00000001078644FA, 0x00000000F8B0BB5A, 0x00000000AA89221D}, + [_]u64{0xFFFFFFFE00000001, 0x000000010747AE14, 0x00000000F8EBDA58, 0x0000000048C32121}, + [_]u64{0xFFFFFFFE00000001, 0x000000017FFFFFFF, 0x00000000AAAAAAA9, 0x000000012AAAAAAA}, + [_]u64{0xFFFFFFFE00000001, 0x0000000180000000, 0x00000000AAAAAAA9, 0x0000000080000001}, + [_]u64{0xFFFFFFFE00000001, 0x00000001FFFFFFFD, 0x000000007FFFFFFF, 0x000000017FFFFFFE}, + [_]u64{0xFFFFFFFE00000001, 0x00000001FFFFFFFE, 0x000000007FFFFFFF, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFE00000001, 0x00000001FFFFFFFF, 0x000000007FFFFFFF, 0x0000000080000000}, + [_]u64{0xFFFFFFFE00000001, 0x0000000200000000, 0x000000007FFFFFFF, 0x0000000000000001}, + [_]u64{0xFFFFFFFE00000001, 0x0000000200000001, 0x000000007FFFFFFE, 0x0000000180000003}, + [_]u64{0xFFFFFFFE00000001, 0x0000000200000002, 0x000000007FFFFFFE, 0x0000000100000005}, + [_]u64{0xFFFFFFFE00000001, 0x0000000200000003, 0x000000007FFFFFFE, 0x0000000080000007}, + [_]u64{0xFFFFFFFE00000001, 0x0000000200000010, 0x000000007FFFFFFB, 0x0000000000000051}, + [_]u64{0xFFFFFFFE00000001, 0x00000002078644FA, 0x000000007E256849, 0x000000004A8EC4B7}, + [_]u64{0xFFFFFFFE00000001, 0x000000020747AE14, 0x000000007E349CA6, 0x000000006560EF09}, + [_]u64{0xFFFFFFFE00000001, 0x000000027FFFFFFF, 0x0000000066666665, 0x00000001E6666666}, + [_]u64{0xFFFFFFFE00000001, 0x0000000280000000, 0x0000000066666665, 0x0000000180000001}, + [_]u64{0xFFFFFFFE00000001, 0x00000002FFFFFFFD, 0x0000000055555555, 0x0000000000000000}, + [_]u64{0xFFFFFFFE00000001, 0x00000002FFFFFFFE, 0x0000000055555554, 0x00000002AAAAAAA9}, + [_]u64{0xFFFFFFFE00000001, 0x00000002FFFFFFFF, 0x0000000055555554, 0x0000000255555555}, + [_]u64{0xFFFFFFFE00000001, 0x0000000300000000, 0x0000000055555554, 0x0000000200000001}, + [_]u64{0xFFFFFFFE00000001, 0x0000000300000001, 0x0000000055555554, 0x00000001AAAAAAAD}, + [_]u64{0xFFFFFFFE00000001, 0x0000000300000002, 0x0000000055555554, 0x0000000155555559}, + [_]u64{0xFFFFFFFE00000001, 0x0000000300000003, 0x0000000055555554, 0x0000000100000005}, + [_]u64{0xFFFFFFFE00000001, 0x0000000300000010, 0x0000000055555552, 0x00000002AAAAAAE1}, + [_]u64{0xFFFFFFFE00000001, 0x00000003078644FA, 0x0000000054816147, 0x000000023FA624AB}, + [_]u64{0xFFFFFFFE00000001, 0x000000030747AE14, 0x00000000548833C6, 0x000000000C416089}, + [_]u64{0xFFFFFFFE00000001, 0x000000037FFFFFFF, 0x0000000049249248, 0x0000000249249249}, + [_]u64{0xFFFFFFFE00000001, 0x0000000380000000, 0x0000000049249248, 0x0000000200000001}, + [_]u64{0xFFFFFFFE00000001, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x00000002BFFFFFFE}, + [_]u64{0xFFFFFFFE00000001, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x000000027FFFFFFF}, + [_]u64{0xFFFFFFFE00000001, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x0000000240000000}, + [_]u64{0xFFFFFFFE00000001, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000E00000001}, + [_]u64{0xFFFFFFFE00000001, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000DF0000002}, + [_]u64{0xFFFFFFFE00000001, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000DE0000003}, + [_]u64{0xFFFFFFFE00000001, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000DD0000004}, + [_]u64{0xFFFFFFFE00000001, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000D00000011}, + [_]u64{0xFFFFFFFE00000001, 0x00000010078644FA, 0x000000000FF87D43, 0x00000001FFFDE093}, + [_]u64{0xFFFFFFFE00000001, 0x000000100747AE14, 0x000000000FF8BBA0, 0x0000000447AA9781}, + [_]u64{0xFFFFFFFE00000001, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000020F83E0F9}, + [_]u64{0xFFFFFFFE00000001, 0x0000001080000000, 0x000000000F83E0F8, 0x0000000200000001}, + [_]u64{0xFFFFFFFE00000001, 0x00000010FFFFFFFD, 0x000000000F0F0F0E, 0x000000102D2D2D2B}, + [_]u64{0xFFFFFFFE00000001, 0x00000010FFFFFFFE, 0x000000000F0F0F0E, 0x000000101E1E1E1D}, + [_]u64{0xFFFFFFFE00000001, 0x00000010FFFFFFFF, 0x000000000F0F0F0E, 0x000000100F0F0F0F}, + [_]u64{0xFFFFFFFE00000001, 0x078644FA00000000, 0x0000000000000022, 0x002AD6CA00000001}, + [_]u64{0xFFFFFFFE00000001, 0x078644FA00000001, 0x0000000000000022, 0x002AD6C9FFFFFFDF}, + [_]u64{0xFFFFFFFE00000001, 0x078644FA00000002, 0x0000000000000022, 0x002AD6C9FFFFFFBD}, + [_]u64{0xFFFFFFFE00000001, 0x078644FA00000003, 0x0000000000000022, 0x002AD6C9FFFFFF9B}, + [_]u64{0xFFFFFFFE00000001, 0x078644FA00000010, 0x0000000000000022, 0x002AD6C9FFFFFDE1}, + [_]u64{0xFFFFFFFE00000001, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6C9002AD6CD}, + [_]u64{0xFFFFFFFE00000001, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6C9087AE159}, + [_]u64{0xFFFFFFFE00000001, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6B900000023}, + [_]u64{0xFFFFFFFE00000001, 0x078644FA80000000, 0x0000000000000022, 0x002AD6B900000001}, + [_]u64{0xFFFFFFFE00000001, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A800000067}, + [_]u64{0xFFFFFFFE00000001, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A800000045}, + [_]u64{0xFFFFFFFE00000001, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A800000023}, + [_]u64{0xFFFFFFFE00000001, 0x0747AE1400000000, 0x0000000000000023, 0x0133334200000001}, + [_]u64{0xFFFFFFFE00000001, 0x0747AE1400000001, 0x0000000000000023, 0x01333341FFFFFFDE}, + [_]u64{0xFFFFFFFE00000001, 0x0747AE1400000002, 0x0000000000000023, 0x01333341FFFFFFBB}, + [_]u64{0xFFFFFFFE00000001, 0x0747AE1400000003, 0x0000000000000023, 0x01333341FFFFFF98}, + [_]u64{0xFFFFFFFE00000001, 0x0747AE1400000010, 0x0000000000000023, 0x01333341FFFFFDD1}, + [_]u64{0xFFFFFFFE00000001, 0x0747AE14078644FA, 0x0000000000000023, 0x01333340F8A491D3}, + [_]u64{0xFFFFFFFE00000001, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334101333345}, + [_]u64{0xFFFFFFFE00000001, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133333080000024}, + [_]u64{0xFFFFFFFE00000001, 0x0747AE1480000000, 0x0000000000000023, 0x0133333080000001}, + [_]u64{0xFFFFFFFE00000001, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133331F0000006A}, + [_]u64{0xFFFFFFFE00000001, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133331F00000047}, + [_]u64{0xFFFFFFFE00000001, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133331F00000024}, + [_]u64{0xFFFFFFFE00000001, 0x7FFFFFFF00000000, 0x0000000000000002, 0x0000000000000001}, + [_]u64{0xFFFFFFFE00000001, 0x7FFFFFFF00000001, 0x0000000000000001, 0x7FFFFFFF00000000}, + [_]u64{0xFFFFFFFE00000001, 0x7FFFFFFF00000002, 0x0000000000000001, 0x7FFFFFFEFFFFFFFF}, + [_]u64{0xFFFFFFFE00000001, 0x7FFFFFFF00000003, 0x0000000000000001, 0x7FFFFFFEFFFFFFFE}, + [_]u64{0xFFFFFFFE00000001, 0x7FFFFFFF00000010, 0x0000000000000001, 0x7FFFFFFEFFFFFFF1}, + [_]u64{0xFFFFFFFE00000001, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x7FFFFFFEF879BB07}, + [_]u64{0xFFFFFFFE00000001, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x7FFFFFFEF8B851ED}, + [_]u64{0xFFFFFFFE00000001, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x7FFFFFFE80000002}, + [_]u64{0xFFFFFFFE00000001, 0x7FFFFFFF80000000, 0x0000000000000001, 0x7FFFFFFE80000001}, + [_]u64{0xFFFFFFFE00000001, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFE00000004}, + [_]u64{0xFFFFFFFE00000001, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFE00000003}, + [_]u64{0xFFFFFFFE00000001, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFE00000002}, + [_]u64{0xFFFFFFFE00000001, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFE00000001}, + [_]u64{0xFFFFFFFE00000001, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFE00000000}, + [_]u64{0xFFFFFFFE00000001, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFE00000001, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFE00000001, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFDFFFFFFF1}, + [_]u64{0xFFFFFFFE00000001, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFDF879BB07}, + [_]u64{0xFFFFFFFE00000001, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFDF8B851ED}, + [_]u64{0xFFFFFFFE00000001, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFD80000002}, + [_]u64{0xFFFFFFFE00000001, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFD80000001}, + [_]u64{0xFFFFFFFE00000001, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFD00000004}, + [_]u64{0xFFFFFFFE00000001, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFD00000003}, + [_]u64{0xFFFFFFFE00000001, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFD00000002}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFD00000000, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFD00000001, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFD00000002, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFD00000003, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFD00000010, 0x0000000000000001, 0x00000000FFFFFFF1}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x00000000F879BB07}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x00000000F8B851ED}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x0000000080000002}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFD80000000, 0x0000000000000001, 0x0000000080000001}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFDFFFFFFFD, 0x0000000000000001, 0x0000000000000004}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFDFFFFFFFE, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFDFFFFFFFF, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFE00000000, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFE00000001, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFE00000002, 0x0000000000000000, 0xFFFFFFFE00000001}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFE00000003, 0x0000000000000000, 0xFFFFFFFE00000001}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFE00000010, 0x0000000000000000, 0xFFFFFFFE00000001}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFE078644FA, 0x0000000000000000, 0xFFFFFFFE00000001}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0xFFFFFFFE00000001}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0xFFFFFFFE00000001}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFE80000000, 0x0000000000000000, 0xFFFFFFFE00000001}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0xFFFFFFFE00000001}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0xFFFFFFFE00000001}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0xFFFFFFFE00000001}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFF00000000, 0x0000000000000000, 0xFFFFFFFE00000001}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFF00000001, 0x0000000000000000, 0xFFFFFFFE00000001}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFF00000002, 0x0000000000000000, 0xFFFFFFFE00000001}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFF00000003, 0x0000000000000000, 0xFFFFFFFE00000001}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFF00000010, 0x0000000000000000, 0xFFFFFFFE00000001}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFE00000001}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFE00000001}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFE00000001}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFE00000001}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFE00000001}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFE00000001}, + [_]u64{0xFFFFFFFE00000001, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFE00000001}, + [_]u64{0xFFFFFFFE00000002, 0x0000000000000001, 0xFFFFFFFE00000002, 0x0000000000000000}, + [_]u64{0xFFFFFFFE00000002, 0x0000000000000002, 0x7FFFFFFF00000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFE00000002, 0x0000000000000003, 0x55555554AAAAAAAB, 0x0000000000000001}, + [_]u64{0xFFFFFFFE00000002, 0x0000000000000010, 0x0FFFFFFFE0000000, 0x0000000000000002}, + [_]u64{0xFFFFFFFE00000002, 0x00000000078644FA, 0x0000002205B17AB9, 0x00000000003F0358}, + [_]u64{0xFFFFFFFE00000002, 0x000000000747AE14, 0x000000232A32A535, 0x00000000030E11DE}, + [_]u64{0xFFFFFFFE00000002, 0x000000007FFFFFFF, 0x0000000200000000, 0x0000000000000002}, + [_]u64{0xFFFFFFFE00000002, 0x0000000080000000, 0x00000001FFFFFFFC, 0x0000000000000002}, + [_]u64{0xFFFFFFFE00000002, 0x00000000FFFFFFFD, 0x0000000100000001, 0x0000000000000005}, + [_]u64{0xFFFFFFFE00000002, 0x00000000FFFFFFFE, 0x0000000100000000, 0x0000000000000002}, + [_]u64{0xFFFFFFFE00000002, 0x00000000FFFFFFFF, 0x00000000FFFFFFFF, 0x0000000000000001}, + [_]u64{0xFFFFFFFE00000002, 0x0000000100000000, 0x00000000FFFFFFFE, 0x0000000000000002}, + [_]u64{0xFFFFFFFE00000002, 0x0000000100000001, 0x00000000FFFFFFFD, 0x0000000000000005}, + [_]u64{0xFFFFFFFE00000002, 0x0000000100000002, 0x00000000FFFFFFFC, 0x000000000000000A}, + [_]u64{0xFFFFFFFE00000002, 0x0000000100000003, 0x00000000FFFFFFFB, 0x0000000000000011}, + [_]u64{0xFFFFFFFE00000002, 0x0000000100000010, 0x00000000FFFFFFEE, 0x0000000000000122}, + [_]u64{0xFFFFFFFE00000002, 0x00000001078644FA, 0x00000000F8B0BB5A, 0x00000000AA89221E}, + [_]u64{0xFFFFFFFE00000002, 0x000000010747AE14, 0x00000000F8EBDA58, 0x0000000048C32122}, + [_]u64{0xFFFFFFFE00000002, 0x000000017FFFFFFF, 0x00000000AAAAAAA9, 0x000000012AAAAAAB}, + [_]u64{0xFFFFFFFE00000002, 0x0000000180000000, 0x00000000AAAAAAA9, 0x0000000080000002}, + [_]u64{0xFFFFFFFE00000002, 0x00000001FFFFFFFD, 0x000000007FFFFFFF, 0x000000017FFFFFFF}, + [_]u64{0xFFFFFFFE00000002, 0x00000001FFFFFFFE, 0x000000007FFFFFFF, 0x0000000100000000}, + [_]u64{0xFFFFFFFE00000002, 0x00000001FFFFFFFF, 0x000000007FFFFFFF, 0x0000000080000001}, + [_]u64{0xFFFFFFFE00000002, 0x0000000200000000, 0x000000007FFFFFFF, 0x0000000000000002}, + [_]u64{0xFFFFFFFE00000002, 0x0000000200000001, 0x000000007FFFFFFE, 0x0000000180000004}, + [_]u64{0xFFFFFFFE00000002, 0x0000000200000002, 0x000000007FFFFFFE, 0x0000000100000006}, + [_]u64{0xFFFFFFFE00000002, 0x0000000200000003, 0x000000007FFFFFFE, 0x0000000080000008}, + [_]u64{0xFFFFFFFE00000002, 0x0000000200000010, 0x000000007FFFFFFB, 0x0000000000000052}, + [_]u64{0xFFFFFFFE00000002, 0x00000002078644FA, 0x000000007E256849, 0x000000004A8EC4B8}, + [_]u64{0xFFFFFFFE00000002, 0x000000020747AE14, 0x000000007E349CA6, 0x000000006560EF0A}, + [_]u64{0xFFFFFFFE00000002, 0x000000027FFFFFFF, 0x0000000066666665, 0x00000001E6666667}, + [_]u64{0xFFFFFFFE00000002, 0x0000000280000000, 0x0000000066666665, 0x0000000180000002}, + [_]u64{0xFFFFFFFE00000002, 0x00000002FFFFFFFD, 0x0000000055555555, 0x0000000000000001}, + [_]u64{0xFFFFFFFE00000002, 0x00000002FFFFFFFE, 0x0000000055555554, 0x00000002AAAAAAAA}, + [_]u64{0xFFFFFFFE00000002, 0x00000002FFFFFFFF, 0x0000000055555554, 0x0000000255555556}, + [_]u64{0xFFFFFFFE00000002, 0x0000000300000000, 0x0000000055555554, 0x0000000200000002}, + [_]u64{0xFFFFFFFE00000002, 0x0000000300000001, 0x0000000055555554, 0x00000001AAAAAAAE}, + [_]u64{0xFFFFFFFE00000002, 0x0000000300000002, 0x0000000055555554, 0x000000015555555A}, + [_]u64{0xFFFFFFFE00000002, 0x0000000300000003, 0x0000000055555554, 0x0000000100000006}, + [_]u64{0xFFFFFFFE00000002, 0x0000000300000010, 0x0000000055555552, 0x00000002AAAAAAE2}, + [_]u64{0xFFFFFFFE00000002, 0x00000003078644FA, 0x0000000054816147, 0x000000023FA624AC}, + [_]u64{0xFFFFFFFE00000002, 0x000000030747AE14, 0x00000000548833C6, 0x000000000C41608A}, + [_]u64{0xFFFFFFFE00000002, 0x000000037FFFFFFF, 0x0000000049249248, 0x000000024924924A}, + [_]u64{0xFFFFFFFE00000002, 0x0000000380000000, 0x0000000049249248, 0x0000000200000002}, + [_]u64{0xFFFFFFFE00000002, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x00000002BFFFFFFF}, + [_]u64{0xFFFFFFFE00000002, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x0000000280000000}, + [_]u64{0xFFFFFFFE00000002, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x0000000240000001}, + [_]u64{0xFFFFFFFE00000002, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000E00000002}, + [_]u64{0xFFFFFFFE00000002, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000DF0000003}, + [_]u64{0xFFFFFFFE00000002, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000DE0000004}, + [_]u64{0xFFFFFFFE00000002, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000DD0000005}, + [_]u64{0xFFFFFFFE00000002, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000D00000012}, + [_]u64{0xFFFFFFFE00000002, 0x00000010078644FA, 0x000000000FF87D43, 0x00000001FFFDE094}, + [_]u64{0xFFFFFFFE00000002, 0x000000100747AE14, 0x000000000FF8BBA0, 0x0000000447AA9782}, + [_]u64{0xFFFFFFFE00000002, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000020F83E0FA}, + [_]u64{0xFFFFFFFE00000002, 0x0000001080000000, 0x000000000F83E0F8, 0x0000000200000002}, + [_]u64{0xFFFFFFFE00000002, 0x00000010FFFFFFFD, 0x000000000F0F0F0E, 0x000000102D2D2D2C}, + [_]u64{0xFFFFFFFE00000002, 0x00000010FFFFFFFE, 0x000000000F0F0F0E, 0x000000101E1E1E1E}, + [_]u64{0xFFFFFFFE00000002, 0x00000010FFFFFFFF, 0x000000000F0F0F0E, 0x000000100F0F0F10}, + [_]u64{0xFFFFFFFE00000002, 0x078644FA00000000, 0x0000000000000022, 0x002AD6CA00000002}, + [_]u64{0xFFFFFFFE00000002, 0x078644FA00000001, 0x0000000000000022, 0x002AD6C9FFFFFFE0}, + [_]u64{0xFFFFFFFE00000002, 0x078644FA00000002, 0x0000000000000022, 0x002AD6C9FFFFFFBE}, + [_]u64{0xFFFFFFFE00000002, 0x078644FA00000003, 0x0000000000000022, 0x002AD6C9FFFFFF9C}, + [_]u64{0xFFFFFFFE00000002, 0x078644FA00000010, 0x0000000000000022, 0x002AD6C9FFFFFDE2}, + [_]u64{0xFFFFFFFE00000002, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6C9002AD6CE}, + [_]u64{0xFFFFFFFE00000002, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6C9087AE15A}, + [_]u64{0xFFFFFFFE00000002, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6B900000024}, + [_]u64{0xFFFFFFFE00000002, 0x078644FA80000000, 0x0000000000000022, 0x002AD6B900000002}, + [_]u64{0xFFFFFFFE00000002, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A800000068}, + [_]u64{0xFFFFFFFE00000002, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A800000046}, + [_]u64{0xFFFFFFFE00000002, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A800000024}, + [_]u64{0xFFFFFFFE00000002, 0x0747AE1400000000, 0x0000000000000023, 0x0133334200000002}, + [_]u64{0xFFFFFFFE00000002, 0x0747AE1400000001, 0x0000000000000023, 0x01333341FFFFFFDF}, + [_]u64{0xFFFFFFFE00000002, 0x0747AE1400000002, 0x0000000000000023, 0x01333341FFFFFFBC}, + [_]u64{0xFFFFFFFE00000002, 0x0747AE1400000003, 0x0000000000000023, 0x01333341FFFFFF99}, + [_]u64{0xFFFFFFFE00000002, 0x0747AE1400000010, 0x0000000000000023, 0x01333341FFFFFDD2}, + [_]u64{0xFFFFFFFE00000002, 0x0747AE14078644FA, 0x0000000000000023, 0x01333340F8A491D4}, + [_]u64{0xFFFFFFFE00000002, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334101333346}, + [_]u64{0xFFFFFFFE00000002, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133333080000025}, + [_]u64{0xFFFFFFFE00000002, 0x0747AE1480000000, 0x0000000000000023, 0x0133333080000002}, + [_]u64{0xFFFFFFFE00000002, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133331F0000006B}, + [_]u64{0xFFFFFFFE00000002, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133331F00000048}, + [_]u64{0xFFFFFFFE00000002, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133331F00000025}, + [_]u64{0xFFFFFFFE00000002, 0x7FFFFFFF00000000, 0x0000000000000002, 0x0000000000000002}, + [_]u64{0xFFFFFFFE00000002, 0x7FFFFFFF00000001, 0x0000000000000002, 0x0000000000000000}, + [_]u64{0xFFFFFFFE00000002, 0x7FFFFFFF00000002, 0x0000000000000001, 0x7FFFFFFF00000000}, + [_]u64{0xFFFFFFFE00000002, 0x7FFFFFFF00000003, 0x0000000000000001, 0x7FFFFFFEFFFFFFFF}, + [_]u64{0xFFFFFFFE00000002, 0x7FFFFFFF00000010, 0x0000000000000001, 0x7FFFFFFEFFFFFFF2}, + [_]u64{0xFFFFFFFE00000002, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x7FFFFFFEF879BB08}, + [_]u64{0xFFFFFFFE00000002, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x7FFFFFFEF8B851EE}, + [_]u64{0xFFFFFFFE00000002, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x7FFFFFFE80000003}, + [_]u64{0xFFFFFFFE00000002, 0x7FFFFFFF80000000, 0x0000000000000001, 0x7FFFFFFE80000002}, + [_]u64{0xFFFFFFFE00000002, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFE00000005}, + [_]u64{0xFFFFFFFE00000002, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFE00000004}, + [_]u64{0xFFFFFFFE00000002, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFE00000003}, + [_]u64{0xFFFFFFFE00000002, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFE00000002}, + [_]u64{0xFFFFFFFE00000002, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFE00000001}, + [_]u64{0xFFFFFFFE00000002, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFE00000000}, + [_]u64{0xFFFFFFFE00000002, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFE00000002, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFDFFFFFFF2}, + [_]u64{0xFFFFFFFE00000002, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFDF879BB08}, + [_]u64{0xFFFFFFFE00000002, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFDF8B851EE}, + [_]u64{0xFFFFFFFE00000002, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFD80000003}, + [_]u64{0xFFFFFFFE00000002, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFD80000002}, + [_]u64{0xFFFFFFFE00000002, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFD00000005}, + [_]u64{0xFFFFFFFE00000002, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFD00000004}, + [_]u64{0xFFFFFFFE00000002, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFD00000003}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFD00000000, 0x0000000000000001, 0x0000000100000002}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFD00000001, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFD00000002, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFD00000003, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFD00000010, 0x0000000000000001, 0x00000000FFFFFFF2}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x00000000F879BB08}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x00000000F8B851EE}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x0000000080000003}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFD80000000, 0x0000000000000001, 0x0000000080000002}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFDFFFFFFFD, 0x0000000000000001, 0x0000000000000005}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFDFFFFFFFE, 0x0000000000000001, 0x0000000000000004}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFDFFFFFFFF, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFE00000000, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFE00000001, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFE00000002, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFE00000003, 0x0000000000000000, 0xFFFFFFFE00000002}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFE00000010, 0x0000000000000000, 0xFFFFFFFE00000002}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFE078644FA, 0x0000000000000000, 0xFFFFFFFE00000002}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0xFFFFFFFE00000002}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0xFFFFFFFE00000002}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFE80000000, 0x0000000000000000, 0xFFFFFFFE00000002}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0xFFFFFFFE00000002}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0xFFFFFFFE00000002}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0xFFFFFFFE00000002}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFF00000000, 0x0000000000000000, 0xFFFFFFFE00000002}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFF00000001, 0x0000000000000000, 0xFFFFFFFE00000002}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFF00000002, 0x0000000000000000, 0xFFFFFFFE00000002}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFF00000003, 0x0000000000000000, 0xFFFFFFFE00000002}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFF00000010, 0x0000000000000000, 0xFFFFFFFE00000002}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFE00000002}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFE00000002}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFE00000002}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFE00000002}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFE00000002}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFE00000002}, + [_]u64{0xFFFFFFFE00000002, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFE00000002}, + [_]u64{0xFFFFFFFE00000003, 0x0000000000000001, 0xFFFFFFFE00000003, 0x0000000000000000}, + [_]u64{0xFFFFFFFE00000003, 0x0000000000000002, 0x7FFFFFFF00000001, 0x0000000000000001}, + [_]u64{0xFFFFFFFE00000003, 0x0000000000000003, 0x55555554AAAAAAAB, 0x0000000000000002}, + [_]u64{0xFFFFFFFE00000003, 0x0000000000000010, 0x0FFFFFFFE0000000, 0x0000000000000003}, + [_]u64{0xFFFFFFFE00000003, 0x00000000078644FA, 0x0000002205B17AB9, 0x00000000003F0359}, + [_]u64{0xFFFFFFFE00000003, 0x000000000747AE14, 0x000000232A32A535, 0x00000000030E11DF}, + [_]u64{0xFFFFFFFE00000003, 0x000000007FFFFFFF, 0x0000000200000000, 0x0000000000000003}, + [_]u64{0xFFFFFFFE00000003, 0x0000000080000000, 0x00000001FFFFFFFC, 0x0000000000000003}, + [_]u64{0xFFFFFFFE00000003, 0x00000000FFFFFFFD, 0x0000000100000001, 0x0000000000000006}, + [_]u64{0xFFFFFFFE00000003, 0x00000000FFFFFFFE, 0x0000000100000000, 0x0000000000000003}, + [_]u64{0xFFFFFFFE00000003, 0x00000000FFFFFFFF, 0x00000000FFFFFFFF, 0x0000000000000002}, + [_]u64{0xFFFFFFFE00000003, 0x0000000100000000, 0x00000000FFFFFFFE, 0x0000000000000003}, + [_]u64{0xFFFFFFFE00000003, 0x0000000100000001, 0x00000000FFFFFFFD, 0x0000000000000006}, + [_]u64{0xFFFFFFFE00000003, 0x0000000100000002, 0x00000000FFFFFFFC, 0x000000000000000B}, + [_]u64{0xFFFFFFFE00000003, 0x0000000100000003, 0x00000000FFFFFFFB, 0x0000000000000012}, + [_]u64{0xFFFFFFFE00000003, 0x0000000100000010, 0x00000000FFFFFFEE, 0x0000000000000123}, + [_]u64{0xFFFFFFFE00000003, 0x00000001078644FA, 0x00000000F8B0BB5A, 0x00000000AA89221F}, + [_]u64{0xFFFFFFFE00000003, 0x000000010747AE14, 0x00000000F8EBDA58, 0x0000000048C32123}, + [_]u64{0xFFFFFFFE00000003, 0x000000017FFFFFFF, 0x00000000AAAAAAA9, 0x000000012AAAAAAC}, + [_]u64{0xFFFFFFFE00000003, 0x0000000180000000, 0x00000000AAAAAAA9, 0x0000000080000003}, + [_]u64{0xFFFFFFFE00000003, 0x00000001FFFFFFFD, 0x000000007FFFFFFF, 0x0000000180000000}, + [_]u64{0xFFFFFFFE00000003, 0x00000001FFFFFFFE, 0x000000007FFFFFFF, 0x0000000100000001}, + [_]u64{0xFFFFFFFE00000003, 0x00000001FFFFFFFF, 0x000000007FFFFFFF, 0x0000000080000002}, + [_]u64{0xFFFFFFFE00000003, 0x0000000200000000, 0x000000007FFFFFFF, 0x0000000000000003}, + [_]u64{0xFFFFFFFE00000003, 0x0000000200000001, 0x000000007FFFFFFE, 0x0000000180000005}, + [_]u64{0xFFFFFFFE00000003, 0x0000000200000002, 0x000000007FFFFFFE, 0x0000000100000007}, + [_]u64{0xFFFFFFFE00000003, 0x0000000200000003, 0x000000007FFFFFFE, 0x0000000080000009}, + [_]u64{0xFFFFFFFE00000003, 0x0000000200000010, 0x000000007FFFFFFB, 0x0000000000000053}, + [_]u64{0xFFFFFFFE00000003, 0x00000002078644FA, 0x000000007E256849, 0x000000004A8EC4B9}, + [_]u64{0xFFFFFFFE00000003, 0x000000020747AE14, 0x000000007E349CA6, 0x000000006560EF0B}, + [_]u64{0xFFFFFFFE00000003, 0x000000027FFFFFFF, 0x0000000066666665, 0x00000001E6666668}, + [_]u64{0xFFFFFFFE00000003, 0x0000000280000000, 0x0000000066666665, 0x0000000180000003}, + [_]u64{0xFFFFFFFE00000003, 0x00000002FFFFFFFD, 0x0000000055555555, 0x0000000000000002}, + [_]u64{0xFFFFFFFE00000003, 0x00000002FFFFFFFE, 0x0000000055555554, 0x00000002AAAAAAAB}, + [_]u64{0xFFFFFFFE00000003, 0x00000002FFFFFFFF, 0x0000000055555554, 0x0000000255555557}, + [_]u64{0xFFFFFFFE00000003, 0x0000000300000000, 0x0000000055555554, 0x0000000200000003}, + [_]u64{0xFFFFFFFE00000003, 0x0000000300000001, 0x0000000055555554, 0x00000001AAAAAAAF}, + [_]u64{0xFFFFFFFE00000003, 0x0000000300000002, 0x0000000055555554, 0x000000015555555B}, + [_]u64{0xFFFFFFFE00000003, 0x0000000300000003, 0x0000000055555554, 0x0000000100000007}, + [_]u64{0xFFFFFFFE00000003, 0x0000000300000010, 0x0000000055555552, 0x00000002AAAAAAE3}, + [_]u64{0xFFFFFFFE00000003, 0x00000003078644FA, 0x0000000054816147, 0x000000023FA624AD}, + [_]u64{0xFFFFFFFE00000003, 0x000000030747AE14, 0x00000000548833C6, 0x000000000C41608B}, + [_]u64{0xFFFFFFFE00000003, 0x000000037FFFFFFF, 0x0000000049249248, 0x000000024924924B}, + [_]u64{0xFFFFFFFE00000003, 0x0000000380000000, 0x0000000049249248, 0x0000000200000003}, + [_]u64{0xFFFFFFFE00000003, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x00000002C0000000}, + [_]u64{0xFFFFFFFE00000003, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x0000000280000001}, + [_]u64{0xFFFFFFFE00000003, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x0000000240000002}, + [_]u64{0xFFFFFFFE00000003, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000E00000003}, + [_]u64{0xFFFFFFFE00000003, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000DF0000004}, + [_]u64{0xFFFFFFFE00000003, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000DE0000005}, + [_]u64{0xFFFFFFFE00000003, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000DD0000006}, + [_]u64{0xFFFFFFFE00000003, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000D00000013}, + [_]u64{0xFFFFFFFE00000003, 0x00000010078644FA, 0x000000000FF87D43, 0x00000001FFFDE095}, + [_]u64{0xFFFFFFFE00000003, 0x000000100747AE14, 0x000000000FF8BBA0, 0x0000000447AA9783}, + [_]u64{0xFFFFFFFE00000003, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000020F83E0FB}, + [_]u64{0xFFFFFFFE00000003, 0x0000001080000000, 0x000000000F83E0F8, 0x0000000200000003}, + [_]u64{0xFFFFFFFE00000003, 0x00000010FFFFFFFD, 0x000000000F0F0F0E, 0x000000102D2D2D2D}, + [_]u64{0xFFFFFFFE00000003, 0x00000010FFFFFFFE, 0x000000000F0F0F0E, 0x000000101E1E1E1F}, + [_]u64{0xFFFFFFFE00000003, 0x00000010FFFFFFFF, 0x000000000F0F0F0E, 0x000000100F0F0F11}, + [_]u64{0xFFFFFFFE00000003, 0x078644FA00000000, 0x0000000000000022, 0x002AD6CA00000003}, + [_]u64{0xFFFFFFFE00000003, 0x078644FA00000001, 0x0000000000000022, 0x002AD6C9FFFFFFE1}, + [_]u64{0xFFFFFFFE00000003, 0x078644FA00000002, 0x0000000000000022, 0x002AD6C9FFFFFFBF}, + [_]u64{0xFFFFFFFE00000003, 0x078644FA00000003, 0x0000000000000022, 0x002AD6C9FFFFFF9D}, + [_]u64{0xFFFFFFFE00000003, 0x078644FA00000010, 0x0000000000000022, 0x002AD6C9FFFFFDE3}, + [_]u64{0xFFFFFFFE00000003, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6C9002AD6CF}, + [_]u64{0xFFFFFFFE00000003, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6C9087AE15B}, + [_]u64{0xFFFFFFFE00000003, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6B900000025}, + [_]u64{0xFFFFFFFE00000003, 0x078644FA80000000, 0x0000000000000022, 0x002AD6B900000003}, + [_]u64{0xFFFFFFFE00000003, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A800000069}, + [_]u64{0xFFFFFFFE00000003, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A800000047}, + [_]u64{0xFFFFFFFE00000003, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A800000025}, + [_]u64{0xFFFFFFFE00000003, 0x0747AE1400000000, 0x0000000000000023, 0x0133334200000003}, + [_]u64{0xFFFFFFFE00000003, 0x0747AE1400000001, 0x0000000000000023, 0x01333341FFFFFFE0}, + [_]u64{0xFFFFFFFE00000003, 0x0747AE1400000002, 0x0000000000000023, 0x01333341FFFFFFBD}, + [_]u64{0xFFFFFFFE00000003, 0x0747AE1400000003, 0x0000000000000023, 0x01333341FFFFFF9A}, + [_]u64{0xFFFFFFFE00000003, 0x0747AE1400000010, 0x0000000000000023, 0x01333341FFFFFDD3}, + [_]u64{0xFFFFFFFE00000003, 0x0747AE14078644FA, 0x0000000000000023, 0x01333340F8A491D5}, + [_]u64{0xFFFFFFFE00000003, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334101333347}, + [_]u64{0xFFFFFFFE00000003, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133333080000026}, + [_]u64{0xFFFFFFFE00000003, 0x0747AE1480000000, 0x0000000000000023, 0x0133333080000003}, + [_]u64{0xFFFFFFFE00000003, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133331F0000006C}, + [_]u64{0xFFFFFFFE00000003, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133331F00000049}, + [_]u64{0xFFFFFFFE00000003, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133331F00000026}, + [_]u64{0xFFFFFFFE00000003, 0x7FFFFFFF00000000, 0x0000000000000002, 0x0000000000000003}, + [_]u64{0xFFFFFFFE00000003, 0x7FFFFFFF00000001, 0x0000000000000002, 0x0000000000000001}, + [_]u64{0xFFFFFFFE00000003, 0x7FFFFFFF00000002, 0x0000000000000001, 0x7FFFFFFF00000001}, + [_]u64{0xFFFFFFFE00000003, 0x7FFFFFFF00000003, 0x0000000000000001, 0x7FFFFFFF00000000}, + [_]u64{0xFFFFFFFE00000003, 0x7FFFFFFF00000010, 0x0000000000000001, 0x7FFFFFFEFFFFFFF3}, + [_]u64{0xFFFFFFFE00000003, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x7FFFFFFEF879BB09}, + [_]u64{0xFFFFFFFE00000003, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x7FFFFFFEF8B851EF}, + [_]u64{0xFFFFFFFE00000003, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x7FFFFFFE80000004}, + [_]u64{0xFFFFFFFE00000003, 0x7FFFFFFF80000000, 0x0000000000000001, 0x7FFFFFFE80000003}, + [_]u64{0xFFFFFFFE00000003, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFE00000006}, + [_]u64{0xFFFFFFFE00000003, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFE00000005}, + [_]u64{0xFFFFFFFE00000003, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFE00000004}, + [_]u64{0xFFFFFFFE00000003, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFE00000003}, + [_]u64{0xFFFFFFFE00000003, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFE00000002}, + [_]u64{0xFFFFFFFE00000003, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFE00000001}, + [_]u64{0xFFFFFFFE00000003, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFE00000000}, + [_]u64{0xFFFFFFFE00000003, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFDFFFFFFF3}, + [_]u64{0xFFFFFFFE00000003, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFDF879BB09}, + [_]u64{0xFFFFFFFE00000003, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFDF8B851EF}, + [_]u64{0xFFFFFFFE00000003, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFD80000004}, + [_]u64{0xFFFFFFFE00000003, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFD80000003}, + [_]u64{0xFFFFFFFE00000003, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFD00000006}, + [_]u64{0xFFFFFFFE00000003, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFD00000005}, + [_]u64{0xFFFFFFFE00000003, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFD00000004}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFD00000000, 0x0000000000000001, 0x0000000100000003}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFD00000001, 0x0000000000000001, 0x0000000100000002}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFD00000002, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFD00000003, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFD00000010, 0x0000000000000001, 0x00000000FFFFFFF3}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x00000000F879BB09}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x00000000F8B851EF}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x0000000080000004}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFD80000000, 0x0000000000000001, 0x0000000080000003}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFDFFFFFFFD, 0x0000000000000001, 0x0000000000000006}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFDFFFFFFFE, 0x0000000000000001, 0x0000000000000005}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFDFFFFFFFF, 0x0000000000000001, 0x0000000000000004}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFE00000000, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFE00000001, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFE00000002, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFE00000003, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFE00000010, 0x0000000000000000, 0xFFFFFFFE00000003}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFE078644FA, 0x0000000000000000, 0xFFFFFFFE00000003}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0xFFFFFFFE00000003}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0xFFFFFFFE00000003}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFE80000000, 0x0000000000000000, 0xFFFFFFFE00000003}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0xFFFFFFFE00000003}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0xFFFFFFFE00000003}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0xFFFFFFFE00000003}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFF00000000, 0x0000000000000000, 0xFFFFFFFE00000003}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFF00000001, 0x0000000000000000, 0xFFFFFFFE00000003}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFF00000002, 0x0000000000000000, 0xFFFFFFFE00000003}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFF00000003, 0x0000000000000000, 0xFFFFFFFE00000003}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFF00000010, 0x0000000000000000, 0xFFFFFFFE00000003}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFE00000003}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFE00000003}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFE00000003}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFE00000003}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFE00000003}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFE00000003}, + [_]u64{0xFFFFFFFE00000003, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFE00000003}, + [_]u64{0xFFFFFFFE00000010, 0x0000000000000001, 0xFFFFFFFE00000010, 0x0000000000000000}, + [_]u64{0xFFFFFFFE00000010, 0x0000000000000002, 0x7FFFFFFF00000008, 0x0000000000000000}, + [_]u64{0xFFFFFFFE00000010, 0x0000000000000003, 0x55555554AAAAAAB0, 0x0000000000000000}, + [_]u64{0xFFFFFFFE00000010, 0x0000000000000010, 0x0FFFFFFFE0000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFE00000010, 0x00000000078644FA, 0x0000002205B17AB9, 0x00000000003F0366}, + [_]u64{0xFFFFFFFE00000010, 0x000000000747AE14, 0x000000232A32A535, 0x00000000030E11EC}, + [_]u64{0xFFFFFFFE00000010, 0x000000007FFFFFFF, 0x0000000200000000, 0x0000000000000010}, + [_]u64{0xFFFFFFFE00000010, 0x0000000080000000, 0x00000001FFFFFFFC, 0x0000000000000010}, + [_]u64{0xFFFFFFFE00000010, 0x00000000FFFFFFFD, 0x0000000100000001, 0x0000000000000013}, + [_]u64{0xFFFFFFFE00000010, 0x00000000FFFFFFFE, 0x0000000100000000, 0x0000000000000010}, + [_]u64{0xFFFFFFFE00000010, 0x00000000FFFFFFFF, 0x00000000FFFFFFFF, 0x000000000000000F}, + [_]u64{0xFFFFFFFE00000010, 0x0000000100000000, 0x00000000FFFFFFFE, 0x0000000000000010}, + [_]u64{0xFFFFFFFE00000010, 0x0000000100000001, 0x00000000FFFFFFFD, 0x0000000000000013}, + [_]u64{0xFFFFFFFE00000010, 0x0000000100000002, 0x00000000FFFFFFFC, 0x0000000000000018}, + [_]u64{0xFFFFFFFE00000010, 0x0000000100000003, 0x00000000FFFFFFFB, 0x000000000000001F}, + [_]u64{0xFFFFFFFE00000010, 0x0000000100000010, 0x00000000FFFFFFEE, 0x0000000000000130}, + [_]u64{0xFFFFFFFE00000010, 0x00000001078644FA, 0x00000000F8B0BB5A, 0x00000000AA89222C}, + [_]u64{0xFFFFFFFE00000010, 0x000000010747AE14, 0x00000000F8EBDA58, 0x0000000048C32130}, + [_]u64{0xFFFFFFFE00000010, 0x000000017FFFFFFF, 0x00000000AAAAAAA9, 0x000000012AAAAAB9}, + [_]u64{0xFFFFFFFE00000010, 0x0000000180000000, 0x00000000AAAAAAA9, 0x0000000080000010}, + [_]u64{0xFFFFFFFE00000010, 0x00000001FFFFFFFD, 0x000000007FFFFFFF, 0x000000018000000D}, + [_]u64{0xFFFFFFFE00000010, 0x00000001FFFFFFFE, 0x000000007FFFFFFF, 0x000000010000000E}, + [_]u64{0xFFFFFFFE00000010, 0x00000001FFFFFFFF, 0x000000007FFFFFFF, 0x000000008000000F}, + [_]u64{0xFFFFFFFE00000010, 0x0000000200000000, 0x000000007FFFFFFF, 0x0000000000000010}, + [_]u64{0xFFFFFFFE00000010, 0x0000000200000001, 0x000000007FFFFFFE, 0x0000000180000012}, + [_]u64{0xFFFFFFFE00000010, 0x0000000200000002, 0x000000007FFFFFFE, 0x0000000100000014}, + [_]u64{0xFFFFFFFE00000010, 0x0000000200000003, 0x000000007FFFFFFE, 0x0000000080000016}, + [_]u64{0xFFFFFFFE00000010, 0x0000000200000010, 0x000000007FFFFFFB, 0x0000000000000060}, + [_]u64{0xFFFFFFFE00000010, 0x00000002078644FA, 0x000000007E256849, 0x000000004A8EC4C6}, + [_]u64{0xFFFFFFFE00000010, 0x000000020747AE14, 0x000000007E349CA6, 0x000000006560EF18}, + [_]u64{0xFFFFFFFE00000010, 0x000000027FFFFFFF, 0x0000000066666665, 0x00000001E6666675}, + [_]u64{0xFFFFFFFE00000010, 0x0000000280000000, 0x0000000066666665, 0x0000000180000010}, + [_]u64{0xFFFFFFFE00000010, 0x00000002FFFFFFFD, 0x0000000055555555, 0x000000000000000F}, + [_]u64{0xFFFFFFFE00000010, 0x00000002FFFFFFFE, 0x0000000055555554, 0x00000002AAAAAAB8}, + [_]u64{0xFFFFFFFE00000010, 0x00000002FFFFFFFF, 0x0000000055555554, 0x0000000255555564}, + [_]u64{0xFFFFFFFE00000010, 0x0000000300000000, 0x0000000055555554, 0x0000000200000010}, + [_]u64{0xFFFFFFFE00000010, 0x0000000300000001, 0x0000000055555554, 0x00000001AAAAAABC}, + [_]u64{0xFFFFFFFE00000010, 0x0000000300000002, 0x0000000055555554, 0x0000000155555568}, + [_]u64{0xFFFFFFFE00000010, 0x0000000300000003, 0x0000000055555554, 0x0000000100000014}, + [_]u64{0xFFFFFFFE00000010, 0x0000000300000010, 0x0000000055555552, 0x00000002AAAAAAF0}, + [_]u64{0xFFFFFFFE00000010, 0x00000003078644FA, 0x0000000054816147, 0x000000023FA624BA}, + [_]u64{0xFFFFFFFE00000010, 0x000000030747AE14, 0x00000000548833C6, 0x000000000C416098}, + [_]u64{0xFFFFFFFE00000010, 0x000000037FFFFFFF, 0x0000000049249248, 0x0000000249249258}, + [_]u64{0xFFFFFFFE00000010, 0x0000000380000000, 0x0000000049249248, 0x0000000200000010}, + [_]u64{0xFFFFFFFE00000010, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x00000002C000000D}, + [_]u64{0xFFFFFFFE00000010, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x000000028000000E}, + [_]u64{0xFFFFFFFE00000010, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x000000024000000F}, + [_]u64{0xFFFFFFFE00000010, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000E00000010}, + [_]u64{0xFFFFFFFE00000010, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000DF0000011}, + [_]u64{0xFFFFFFFE00000010, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000DE0000012}, + [_]u64{0xFFFFFFFE00000010, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000DD0000013}, + [_]u64{0xFFFFFFFE00000010, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000D00000020}, + [_]u64{0xFFFFFFFE00000010, 0x00000010078644FA, 0x000000000FF87D43, 0x00000001FFFDE0A2}, + [_]u64{0xFFFFFFFE00000010, 0x000000100747AE14, 0x000000000FF8BBA0, 0x0000000447AA9790}, + [_]u64{0xFFFFFFFE00000010, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000020F83E108}, + [_]u64{0xFFFFFFFE00000010, 0x0000001080000000, 0x000000000F83E0F8, 0x0000000200000010}, + [_]u64{0xFFFFFFFE00000010, 0x00000010FFFFFFFD, 0x000000000F0F0F0E, 0x000000102D2D2D3A}, + [_]u64{0xFFFFFFFE00000010, 0x00000010FFFFFFFE, 0x000000000F0F0F0E, 0x000000101E1E1E2C}, + [_]u64{0xFFFFFFFE00000010, 0x00000010FFFFFFFF, 0x000000000F0F0F0E, 0x000000100F0F0F1E}, + [_]u64{0xFFFFFFFE00000010, 0x078644FA00000000, 0x0000000000000022, 0x002AD6CA00000010}, + [_]u64{0xFFFFFFFE00000010, 0x078644FA00000001, 0x0000000000000022, 0x002AD6C9FFFFFFEE}, + [_]u64{0xFFFFFFFE00000010, 0x078644FA00000002, 0x0000000000000022, 0x002AD6C9FFFFFFCC}, + [_]u64{0xFFFFFFFE00000010, 0x078644FA00000003, 0x0000000000000022, 0x002AD6C9FFFFFFAA}, + [_]u64{0xFFFFFFFE00000010, 0x078644FA00000010, 0x0000000000000022, 0x002AD6C9FFFFFDF0}, + [_]u64{0xFFFFFFFE00000010, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6C9002AD6DC}, + [_]u64{0xFFFFFFFE00000010, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6C9087AE168}, + [_]u64{0xFFFFFFFE00000010, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6B900000032}, + [_]u64{0xFFFFFFFE00000010, 0x078644FA80000000, 0x0000000000000022, 0x002AD6B900000010}, + [_]u64{0xFFFFFFFE00000010, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A800000076}, + [_]u64{0xFFFFFFFE00000010, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A800000054}, + [_]u64{0xFFFFFFFE00000010, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A800000032}, + [_]u64{0xFFFFFFFE00000010, 0x0747AE1400000000, 0x0000000000000023, 0x0133334200000010}, + [_]u64{0xFFFFFFFE00000010, 0x0747AE1400000001, 0x0000000000000023, 0x01333341FFFFFFED}, + [_]u64{0xFFFFFFFE00000010, 0x0747AE1400000002, 0x0000000000000023, 0x01333341FFFFFFCA}, + [_]u64{0xFFFFFFFE00000010, 0x0747AE1400000003, 0x0000000000000023, 0x01333341FFFFFFA7}, + [_]u64{0xFFFFFFFE00000010, 0x0747AE1400000010, 0x0000000000000023, 0x01333341FFFFFDE0}, + [_]u64{0xFFFFFFFE00000010, 0x0747AE14078644FA, 0x0000000000000023, 0x01333340F8A491E2}, + [_]u64{0xFFFFFFFE00000010, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334101333354}, + [_]u64{0xFFFFFFFE00000010, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133333080000033}, + [_]u64{0xFFFFFFFE00000010, 0x0747AE1480000000, 0x0000000000000023, 0x0133333080000010}, + [_]u64{0xFFFFFFFE00000010, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133331F00000079}, + [_]u64{0xFFFFFFFE00000010, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133331F00000056}, + [_]u64{0xFFFFFFFE00000010, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133331F00000033}, + [_]u64{0xFFFFFFFE00000010, 0x7FFFFFFF00000000, 0x0000000000000002, 0x0000000000000010}, + [_]u64{0xFFFFFFFE00000010, 0x7FFFFFFF00000001, 0x0000000000000002, 0x000000000000000E}, + [_]u64{0xFFFFFFFE00000010, 0x7FFFFFFF00000002, 0x0000000000000002, 0x000000000000000C}, + [_]u64{0xFFFFFFFE00000010, 0x7FFFFFFF00000003, 0x0000000000000002, 0x000000000000000A}, + [_]u64{0xFFFFFFFE00000010, 0x7FFFFFFF00000010, 0x0000000000000001, 0x7FFFFFFF00000000}, + [_]u64{0xFFFFFFFE00000010, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x7FFFFFFEF879BB16}, + [_]u64{0xFFFFFFFE00000010, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x7FFFFFFEF8B851FC}, + [_]u64{0xFFFFFFFE00000010, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x7FFFFFFE80000011}, + [_]u64{0xFFFFFFFE00000010, 0x7FFFFFFF80000000, 0x0000000000000001, 0x7FFFFFFE80000010}, + [_]u64{0xFFFFFFFE00000010, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFE00000013}, + [_]u64{0xFFFFFFFE00000010, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFE00000012}, + [_]u64{0xFFFFFFFE00000010, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFE00000011}, + [_]u64{0xFFFFFFFE00000010, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFE00000010}, + [_]u64{0xFFFFFFFE00000010, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFE0000000F}, + [_]u64{0xFFFFFFFE00000010, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFE0000000E}, + [_]u64{0xFFFFFFFE00000010, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFE0000000D}, + [_]u64{0xFFFFFFFE00000010, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFE00000000}, + [_]u64{0xFFFFFFFE00000010, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFDF879BB16}, + [_]u64{0xFFFFFFFE00000010, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFDF8B851FC}, + [_]u64{0xFFFFFFFE00000010, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFD80000011}, + [_]u64{0xFFFFFFFE00000010, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFD80000010}, + [_]u64{0xFFFFFFFE00000010, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFD00000013}, + [_]u64{0xFFFFFFFE00000010, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFD00000012}, + [_]u64{0xFFFFFFFE00000010, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFD00000011}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFD00000000, 0x0000000000000001, 0x0000000100000010}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFD00000001, 0x0000000000000001, 0x000000010000000F}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFD00000002, 0x0000000000000001, 0x000000010000000E}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFD00000003, 0x0000000000000001, 0x000000010000000D}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFD00000010, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x00000000F879BB16}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x00000000F8B851FC}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x0000000080000011}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFD80000000, 0x0000000000000001, 0x0000000080000010}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFDFFFFFFFD, 0x0000000000000001, 0x0000000000000013}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFDFFFFFFFE, 0x0000000000000001, 0x0000000000000012}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFDFFFFFFFF, 0x0000000000000001, 0x0000000000000011}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFE00000000, 0x0000000000000001, 0x0000000000000010}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFE00000001, 0x0000000000000001, 0x000000000000000F}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFE00000002, 0x0000000000000001, 0x000000000000000E}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFE00000003, 0x0000000000000001, 0x000000000000000D}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFE00000010, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFE078644FA, 0x0000000000000000, 0xFFFFFFFE00000010}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFE0747AE14, 0x0000000000000000, 0xFFFFFFFE00000010}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0xFFFFFFFE00000010}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFE80000000, 0x0000000000000000, 0xFFFFFFFE00000010}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0xFFFFFFFE00000010}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0xFFFFFFFE00000010}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0xFFFFFFFE00000010}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFF00000000, 0x0000000000000000, 0xFFFFFFFE00000010}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFF00000001, 0x0000000000000000, 0xFFFFFFFE00000010}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFF00000002, 0x0000000000000000, 0xFFFFFFFE00000010}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFF00000003, 0x0000000000000000, 0xFFFFFFFE00000010}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFF00000010, 0x0000000000000000, 0xFFFFFFFE00000010}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFE00000010}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFE00000010}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFE00000010}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFE00000010}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFE00000010}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFE00000010}, + [_]u64{0xFFFFFFFE00000010, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFE00000010}, + [_]u64{0xFFFFFFFE078644FA, 0x0000000000000001, 0xFFFFFFFE078644FA, 0x0000000000000000}, + [_]u64{0xFFFFFFFE078644FA, 0x0000000000000002, 0x7FFFFFFF03C3227D, 0x0000000000000000}, + [_]u64{0xFFFFFFFE078644FA, 0x0000000000000003, 0x55555554AD2CC1A8, 0x0000000000000002}, + [_]u64{0xFFFFFFFE078644FA, 0x0000000000000010, 0x0FFFFFFFE078644F, 0x000000000000000A}, + [_]u64{0xFFFFFFFE078644FA, 0x00000000078644FA, 0x0000002205B17ABA, 0x00000000003F0356}, + [_]u64{0xFFFFFFFE078644FA, 0x000000000747AE14, 0x000000232A32A536, 0x00000000034CA8C2}, + [_]u64{0xFFFFFFFE078644FA, 0x000000007FFFFFFF, 0x0000000200000000, 0x00000000078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0x0000000080000000, 0x00000001FFFFFFFC, 0x00000000078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0x00000000FFFFFFFD, 0x0000000100000001, 0x00000000078644FD}, + [_]u64{0xFFFFFFFE078644FA, 0x00000000FFFFFFFE, 0x0000000100000000, 0x00000000078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0x00000000FFFFFFFF, 0x00000000FFFFFFFF, 0x00000000078644F9}, + [_]u64{0xFFFFFFFE078644FA, 0x0000000100000000, 0x00000000FFFFFFFE, 0x00000000078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0x0000000100000001, 0x00000000FFFFFFFD, 0x00000000078644FD}, + [_]u64{0xFFFFFFFE078644FA, 0x0000000100000002, 0x00000000FFFFFFFC, 0x0000000007864502}, + [_]u64{0xFFFFFFFE078644FA, 0x0000000100000003, 0x00000000FFFFFFFB, 0x0000000007864509}, + [_]u64{0xFFFFFFFE078644FA, 0x0000000100000010, 0x00000000FFFFFFEE, 0x000000000786461A}, + [_]u64{0xFFFFFFFE078644FA, 0x00000001078644FA, 0x00000000F8B0BB5A, 0x00000000B20F6716}, + [_]u64{0xFFFFFFFE078644FA, 0x000000010747AE14, 0x00000000F8EBDA58, 0x000000005049661A}, + [_]u64{0xFFFFFFFE078644FA, 0x000000017FFFFFFF, 0x00000000AAAAAAA9, 0x000000013230EFA3}, + [_]u64{0xFFFFFFFE078644FA, 0x0000000180000000, 0x00000000AAAAAAA9, 0x00000000878644FA}, + [_]u64{0xFFFFFFFE078644FA, 0x00000001FFFFFFFD, 0x000000007FFFFFFF, 0x00000001878644F7}, + [_]u64{0xFFFFFFFE078644FA, 0x00000001FFFFFFFE, 0x000000007FFFFFFF, 0x00000001078644F8}, + [_]u64{0xFFFFFFFE078644FA, 0x00000001FFFFFFFF, 0x000000007FFFFFFF, 0x00000000878644F9}, + [_]u64{0xFFFFFFFE078644FA, 0x0000000200000000, 0x000000007FFFFFFF, 0x00000000078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0x0000000200000001, 0x000000007FFFFFFE, 0x00000001878644FC}, + [_]u64{0xFFFFFFFE078644FA, 0x0000000200000002, 0x000000007FFFFFFE, 0x00000001078644FE}, + [_]u64{0xFFFFFFFE078644FA, 0x0000000200000003, 0x000000007FFFFFFE, 0x0000000087864500}, + [_]u64{0xFFFFFFFE078644FA, 0x0000000200000010, 0x000000007FFFFFFB, 0x000000000786454A}, + [_]u64{0xFFFFFFFE078644FA, 0x00000002078644FA, 0x000000007E256849, 0x00000000521509B0}, + [_]u64{0xFFFFFFFE078644FA, 0x000000020747AE14, 0x000000007E349CA6, 0x000000006CE73402}, + [_]u64{0xFFFFFFFE078644FA, 0x000000027FFFFFFF, 0x0000000066666665, 0x00000001EDECAB5F}, + [_]u64{0xFFFFFFFE078644FA, 0x0000000280000000, 0x0000000066666665, 0x00000001878644FA}, + [_]u64{0xFFFFFFFE078644FA, 0x00000002FFFFFFFD, 0x0000000055555555, 0x00000000078644F9}, + [_]u64{0xFFFFFFFE078644FA, 0x00000002FFFFFFFE, 0x0000000055555554, 0x00000002B230EFA2}, + [_]u64{0xFFFFFFFE078644FA, 0x00000002FFFFFFFF, 0x0000000055555554, 0x000000025CDB9A4E}, + [_]u64{0xFFFFFFFE078644FA, 0x0000000300000000, 0x0000000055555554, 0x00000002078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0x0000000300000001, 0x0000000055555554, 0x00000001B230EFA6}, + [_]u64{0xFFFFFFFE078644FA, 0x0000000300000002, 0x0000000055555554, 0x000000015CDB9A52}, + [_]u64{0xFFFFFFFE078644FA, 0x0000000300000003, 0x0000000055555554, 0x00000001078644FE}, + [_]u64{0xFFFFFFFE078644FA, 0x0000000300000010, 0x0000000055555552, 0x00000002B230EFDA}, + [_]u64{0xFFFFFFFE078644FA, 0x00000003078644FA, 0x0000000054816147, 0x00000002472C69A4}, + [_]u64{0xFFFFFFFE078644FA, 0x000000030747AE14, 0x00000000548833C6, 0x0000000013C7A582}, + [_]u64{0xFFFFFFFE078644FA, 0x000000037FFFFFFF, 0x0000000049249248, 0x0000000250AAD742}, + [_]u64{0xFFFFFFFE078644FA, 0x0000000380000000, 0x0000000049249248, 0x00000002078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x00000002C78644F7}, + [_]u64{0xFFFFFFFE078644FA, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x00000002878644F8}, + [_]u64{0xFFFFFFFE078644FA, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x00000002478644F9}, + [_]u64{0xFFFFFFFE078644FA, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000E078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000DF78644FB}, + [_]u64{0xFFFFFFFE078644FA, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000DE78644FC}, + [_]u64{0xFFFFFFFE078644FA, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000DD78644FD}, + [_]u64{0xFFFFFFFE078644FA, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000D0786450A}, + [_]u64{0xFFFFFFFE078644FA, 0x00000010078644FA, 0x000000000FF87D43, 0x000000020784258C}, + [_]u64{0xFFFFFFFE078644FA, 0x000000100747AE14, 0x000000000FF8BBA0, 0x000000044F30DC7A}, + [_]u64{0xFFFFFFFE078644FA, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x00000002170A25F2}, + [_]u64{0xFFFFFFFE078644FA, 0x0000001080000000, 0x000000000F83E0F8, 0x00000002078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0x00000010FFFFFFFD, 0x000000000F0F0F0E, 0x0000001034B37224}, + [_]u64{0xFFFFFFFE078644FA, 0x00000010FFFFFFFE, 0x000000000F0F0F0E, 0x0000001025A46316}, + [_]u64{0xFFFFFFFE078644FA, 0x00000010FFFFFFFF, 0x000000000F0F0F0E, 0x0000001016955408}, + [_]u64{0xFFFFFFFE078644FA, 0x078644FA00000000, 0x0000000000000022, 0x002AD6CA078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0x078644FA00000001, 0x0000000000000022, 0x002AD6CA078644D8}, + [_]u64{0xFFFFFFFE078644FA, 0x078644FA00000002, 0x0000000000000022, 0x002AD6CA078644B6}, + [_]u64{0xFFFFFFFE078644FA, 0x078644FA00000003, 0x0000000000000022, 0x002AD6CA07864494}, + [_]u64{0xFFFFFFFE078644FA, 0x078644FA00000010, 0x0000000000000022, 0x002AD6CA078642DA}, + [_]u64{0xFFFFFFFE078644FA, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6C907B11BC6}, + [_]u64{0xFFFFFFFE078644FA, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6C910012652}, + [_]u64{0xFFFFFFFE078644FA, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6B90786451C}, + [_]u64{0xFFFFFFFE078644FA, 0x078644FA80000000, 0x0000000000000022, 0x002AD6B9078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A807864560}, + [_]u64{0xFFFFFFFE078644FA, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A80786453E}, + [_]u64{0xFFFFFFFE078644FA, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A80786451C}, + [_]u64{0xFFFFFFFE078644FA, 0x0747AE1400000000, 0x0000000000000023, 0x01333342078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0x0747AE1400000001, 0x0000000000000023, 0x01333342078644D7}, + [_]u64{0xFFFFFFFE078644FA, 0x0747AE1400000002, 0x0000000000000023, 0x01333342078644B4}, + [_]u64{0xFFFFFFFE078644FA, 0x0747AE1400000003, 0x0000000000000023, 0x0133334207864491}, + [_]u64{0xFFFFFFFE078644FA, 0x0747AE1400000010, 0x0000000000000023, 0x01333342078642CA}, + [_]u64{0xFFFFFFFE078644FA, 0x0747AE14078644FA, 0x0000000000000023, 0x01333341002AD6CC}, + [_]u64{0xFFFFFFFE078644FA, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334108B9783E}, + [_]u64{0xFFFFFFFE078644FA, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x013333308786451D}, + [_]u64{0xFFFFFFFE078644FA, 0x0747AE1480000000, 0x0000000000000023, 0x01333330878644FA}, + [_]u64{0xFFFFFFFE078644FA, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133331F07864563}, + [_]u64{0xFFFFFFFE078644FA, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133331F07864540}, + [_]u64{0xFFFFFFFE078644FA, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133331F0786451D}, + [_]u64{0xFFFFFFFE078644FA, 0x7FFFFFFF00000000, 0x0000000000000002, 0x00000000078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0x7FFFFFFF00000001, 0x0000000000000002, 0x00000000078644F8}, + [_]u64{0xFFFFFFFE078644FA, 0x7FFFFFFF00000002, 0x0000000000000002, 0x00000000078644F6}, + [_]u64{0xFFFFFFFE078644FA, 0x7FFFFFFF00000003, 0x0000000000000002, 0x00000000078644F4}, + [_]u64{0xFFFFFFFE078644FA, 0x7FFFFFFF00000010, 0x0000000000000002, 0x00000000078644DA}, + [_]u64{0xFFFFFFFE078644FA, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x7FFFFFFF00000000}, + [_]u64{0xFFFFFFFE078644FA, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x7FFFFFFF003E96E6}, + [_]u64{0xFFFFFFFE078644FA, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x7FFFFFFE878644FB}, + [_]u64{0xFFFFFFFE078644FA, 0x7FFFFFFF80000000, 0x0000000000000001, 0x7FFFFFFE878644FA}, + [_]u64{0xFFFFFFFE078644FA, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFE078644FD}, + [_]u64{0xFFFFFFFE078644FA, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFE078644FC}, + [_]u64{0xFFFFFFFE078644FA, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFE078644FB}, + [_]u64{0xFFFFFFFE078644FA, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFE078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFE078644F9}, + [_]u64{0xFFFFFFFE078644FA, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFE078644F8}, + [_]u64{0xFFFFFFFE078644FA, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFE078644F7}, + [_]u64{0xFFFFFFFE078644FA, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFE078644EA}, + [_]u64{0xFFFFFFFE078644FA, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFE00000000}, + [_]u64{0xFFFFFFFE078644FA, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFE003E96E6}, + [_]u64{0xFFFFFFFE078644FA, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFD878644FB}, + [_]u64{0xFFFFFFFE078644FA, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFD878644FA}, + [_]u64{0xFFFFFFFE078644FA, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFD078644FD}, + [_]u64{0xFFFFFFFE078644FA, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFD078644FC}, + [_]u64{0xFFFFFFFE078644FA, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFD078644FB}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFD00000000, 0x0000000000000001, 0x00000001078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFD00000001, 0x0000000000000001, 0x00000001078644F9}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFD00000002, 0x0000000000000001, 0x00000001078644F8}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFD00000003, 0x0000000000000001, 0x00000001078644F7}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFD00000010, 0x0000000000000001, 0x00000001078644EA}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x00000001003E96E6}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x00000000878644FB}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFD80000000, 0x0000000000000001, 0x00000000878644FA}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFDFFFFFFFD, 0x0000000000000001, 0x00000000078644FD}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFDFFFFFFFE, 0x0000000000000001, 0x00000000078644FC}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFDFFFFFFFF, 0x0000000000000001, 0x00000000078644FB}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFE00000000, 0x0000000000000001, 0x00000000078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFE00000001, 0x0000000000000001, 0x00000000078644F9}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFE00000002, 0x0000000000000001, 0x00000000078644F8}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFE00000003, 0x0000000000000001, 0x00000000078644F7}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFE00000010, 0x0000000000000001, 0x00000000078644EA}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFE078644FA, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFE0747AE14, 0x0000000000000001, 0x00000000003E96E6}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0xFFFFFFFE078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFE80000000, 0x0000000000000000, 0xFFFFFFFE078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0xFFFFFFFE078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0xFFFFFFFE078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0xFFFFFFFE078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFF00000000, 0x0000000000000000, 0xFFFFFFFE078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFF00000001, 0x0000000000000000, 0xFFFFFFFE078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFF00000002, 0x0000000000000000, 0xFFFFFFFE078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFF00000003, 0x0000000000000000, 0xFFFFFFFE078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFF00000010, 0x0000000000000000, 0xFFFFFFFE078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFE078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFE078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFE078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFE078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFE078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFE078644FA}, + [_]u64{0xFFFFFFFE078644FA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFE078644FA}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000000000000001, 0xFFFFFFFE0747AE14, 0x0000000000000000}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000000000000002, 0x7FFFFFFF03A3D70A, 0x0000000000000000}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000000000000003, 0x55555554AD17E4B1, 0x0000000000000001}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000000000000010, 0x0FFFFFFFE0747AE1, 0x0000000000000004}, + [_]u64{0xFFFFFFFE0747AE14, 0x00000000078644FA, 0x0000002205B17ABA, 0x0000000000006C70}, + [_]u64{0xFFFFFFFE0747AE14, 0x000000000747AE14, 0x000000232A32A536, 0x00000000030E11DC}, + [_]u64{0xFFFFFFFE0747AE14, 0x000000007FFFFFFF, 0x0000000200000000, 0x000000000747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000000080000000, 0x00000001FFFFFFFC, 0x000000000747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0x00000000FFFFFFFD, 0x0000000100000001, 0x000000000747AE17}, + [_]u64{0xFFFFFFFE0747AE14, 0x00000000FFFFFFFE, 0x0000000100000000, 0x000000000747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0x00000000FFFFFFFF, 0x00000000FFFFFFFF, 0x000000000747AE13}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000000100000000, 0x00000000FFFFFFFE, 0x000000000747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000000100000001, 0x00000000FFFFFFFD, 0x000000000747AE17}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000000100000002, 0x00000000FFFFFFFC, 0x000000000747AE1C}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000000100000003, 0x00000000FFFFFFFB, 0x000000000747AE23}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000000100000010, 0x00000000FFFFFFEE, 0x000000000747AF34}, + [_]u64{0xFFFFFFFE0747AE14, 0x00000001078644FA, 0x00000000F8B0BB5A, 0x00000000B1D0D030}, + [_]u64{0xFFFFFFFE0747AE14, 0x000000010747AE14, 0x00000000F8EBDA58, 0x00000000500ACF34}, + [_]u64{0xFFFFFFFE0747AE14, 0x000000017FFFFFFF, 0x00000000AAAAAAA9, 0x0000000131F258BD}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000000180000000, 0x00000000AAAAAAA9, 0x000000008747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0x00000001FFFFFFFD, 0x000000007FFFFFFF, 0x000000018747AE11}, + [_]u64{0xFFFFFFFE0747AE14, 0x00000001FFFFFFFE, 0x000000007FFFFFFF, 0x000000010747AE12}, + [_]u64{0xFFFFFFFE0747AE14, 0x00000001FFFFFFFF, 0x000000007FFFFFFF, 0x000000008747AE13}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000000200000000, 0x000000007FFFFFFF, 0x000000000747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000000200000001, 0x000000007FFFFFFE, 0x000000018747AE16}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000000200000002, 0x000000007FFFFFFE, 0x000000010747AE18}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000000200000003, 0x000000007FFFFFFE, 0x000000008747AE1A}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000000200000010, 0x000000007FFFFFFB, 0x000000000747AE64}, + [_]u64{0xFFFFFFFE0747AE14, 0x00000002078644FA, 0x000000007E256849, 0x0000000051D672CA}, + [_]u64{0xFFFFFFFE0747AE14, 0x000000020747AE14, 0x000000007E349CA6, 0x000000006CA89D1C}, + [_]u64{0xFFFFFFFE0747AE14, 0x000000027FFFFFFF, 0x0000000066666665, 0x00000001EDAE1479}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000000280000000, 0x0000000066666665, 0x000000018747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0x00000002FFFFFFFD, 0x0000000055555555, 0x000000000747AE13}, + [_]u64{0xFFFFFFFE0747AE14, 0x00000002FFFFFFFE, 0x0000000055555554, 0x00000002B1F258BC}, + [_]u64{0xFFFFFFFE0747AE14, 0x00000002FFFFFFFF, 0x0000000055555554, 0x000000025C9D0368}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000000300000000, 0x0000000055555554, 0x000000020747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000000300000001, 0x0000000055555554, 0x00000001B1F258C0}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000000300000002, 0x0000000055555554, 0x000000015C9D036C}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000000300000003, 0x0000000055555554, 0x000000010747AE18}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000000300000010, 0x0000000055555552, 0x00000002B1F258F4}, + [_]u64{0xFFFFFFFE0747AE14, 0x00000003078644FA, 0x0000000054816147, 0x0000000246EDD2BE}, + [_]u64{0xFFFFFFFE0747AE14, 0x000000030747AE14, 0x00000000548833C6, 0x0000000013890E9C}, + [_]u64{0xFFFFFFFE0747AE14, 0x000000037FFFFFFF, 0x0000000049249248, 0x00000002506C405C}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000000380000000, 0x0000000049249248, 0x000000020747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x00000002C747AE11}, + [_]u64{0xFFFFFFFE0747AE14, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x000000028747AE12}, + [_]u64{0xFFFFFFFE0747AE14, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x000000024747AE13}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000E0747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000DF747AE15}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000DE747AE16}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000DD747AE17}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000D0747AE24}, + [_]u64{0xFFFFFFFE0747AE14, 0x00000010078644FA, 0x000000000FF87D43, 0x0000000207458EA6}, + [_]u64{0xFFFFFFFE0747AE14, 0x000000100747AE14, 0x000000000FF8BBA0, 0x000000044EF24594}, + [_]u64{0xFFFFFFFE0747AE14, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x0000000216CB8F0C}, + [_]u64{0xFFFFFFFE0747AE14, 0x0000001080000000, 0x000000000F83E0F8, 0x000000020747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0x00000010FFFFFFFD, 0x000000000F0F0F0E, 0x000000103474DB3E}, + [_]u64{0xFFFFFFFE0747AE14, 0x00000010FFFFFFFE, 0x000000000F0F0F0E, 0x000000102565CC30}, + [_]u64{0xFFFFFFFE0747AE14, 0x00000010FFFFFFFF, 0x000000000F0F0F0E, 0x000000101656BD22}, + [_]u64{0xFFFFFFFE0747AE14, 0x078644FA00000000, 0x0000000000000022, 0x002AD6CA0747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0x078644FA00000001, 0x0000000000000022, 0x002AD6CA0747ADF2}, + [_]u64{0xFFFFFFFE0747AE14, 0x078644FA00000002, 0x0000000000000022, 0x002AD6CA0747ADD0}, + [_]u64{0xFFFFFFFE0747AE14, 0x078644FA00000003, 0x0000000000000022, 0x002AD6CA0747ADAE}, + [_]u64{0xFFFFFFFE0747AE14, 0x078644FA00000010, 0x0000000000000022, 0x002AD6CA0747ABF4}, + [_]u64{0xFFFFFFFE0747AE14, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6C9077284E0}, + [_]u64{0xFFFFFFFE0747AE14, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6C90FC28F6C}, + [_]u64{0xFFFFFFFE0747AE14, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6B90747AE36}, + [_]u64{0xFFFFFFFE0747AE14, 0x078644FA80000000, 0x0000000000000022, 0x002AD6B90747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A80747AE7A}, + [_]u64{0xFFFFFFFE0747AE14, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A80747AE58}, + [_]u64{0xFFFFFFFE0747AE14, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A80747AE36}, + [_]u64{0xFFFFFFFE0747AE14, 0x0747AE1400000000, 0x0000000000000023, 0x013333420747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0x0747AE1400000001, 0x0000000000000023, 0x013333420747ADF1}, + [_]u64{0xFFFFFFFE0747AE14, 0x0747AE1400000002, 0x0000000000000023, 0x013333420747ADCE}, + [_]u64{0xFFFFFFFE0747AE14, 0x0747AE1400000003, 0x0000000000000023, 0x013333420747ADAB}, + [_]u64{0xFFFFFFFE0747AE14, 0x0747AE1400000010, 0x0000000000000023, 0x013333420747ABE4}, + [_]u64{0xFFFFFFFE0747AE14, 0x0747AE14078644FA, 0x0000000000000023, 0x01333340FFEC3FE6}, + [_]u64{0xFFFFFFFE0747AE14, 0x0747AE140747AE14, 0x0000000000000023, 0x01333341087AE158}, + [_]u64{0xFFFFFFFE0747AE14, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x013333308747AE37}, + [_]u64{0xFFFFFFFE0747AE14, 0x0747AE1480000000, 0x0000000000000023, 0x013333308747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133331F0747AE7D}, + [_]u64{0xFFFFFFFE0747AE14, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133331F0747AE5A}, + [_]u64{0xFFFFFFFE0747AE14, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133331F0747AE37}, + [_]u64{0xFFFFFFFE0747AE14, 0x7FFFFFFF00000000, 0x0000000000000002, 0x000000000747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0x7FFFFFFF00000001, 0x0000000000000002, 0x000000000747AE12}, + [_]u64{0xFFFFFFFE0747AE14, 0x7FFFFFFF00000002, 0x0000000000000002, 0x000000000747AE10}, + [_]u64{0xFFFFFFFE0747AE14, 0x7FFFFFFF00000003, 0x0000000000000002, 0x000000000747AE0E}, + [_]u64{0xFFFFFFFE0747AE14, 0x7FFFFFFF00000010, 0x0000000000000002, 0x000000000747ADF4}, + [_]u64{0xFFFFFFFE0747AE14, 0x7FFFFFFF078644FA, 0x0000000000000001, 0x7FFFFFFEFFC1691A}, + [_]u64{0xFFFFFFFE0747AE14, 0x7FFFFFFF0747AE14, 0x0000000000000001, 0x7FFFFFFF00000000}, + [_]u64{0xFFFFFFFE0747AE14, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x7FFFFFFE8747AE15}, + [_]u64{0xFFFFFFFE0747AE14, 0x7FFFFFFF80000000, 0x0000000000000001, 0x7FFFFFFE8747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFE0747AE17}, + [_]u64{0xFFFFFFFE0747AE14, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFE0747AE16}, + [_]u64{0xFFFFFFFE0747AE14, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFE0747AE15}, + [_]u64{0xFFFFFFFE0747AE14, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFE0747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFE0747AE13}, + [_]u64{0xFFFFFFFE0747AE14, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFE0747AE12}, + [_]u64{0xFFFFFFFE0747AE14, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFE0747AE11}, + [_]u64{0xFFFFFFFE0747AE14, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFE0747AE04}, + [_]u64{0xFFFFFFFE0747AE14, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFDFFC1691A}, + [_]u64{0xFFFFFFFE0747AE14, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFE00000000}, + [_]u64{0xFFFFFFFE0747AE14, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFD8747AE15}, + [_]u64{0xFFFFFFFE0747AE14, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFD8747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFD0747AE17}, + [_]u64{0xFFFFFFFE0747AE14, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFD0747AE16}, + [_]u64{0xFFFFFFFE0747AE14, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFD0747AE15}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFD00000000, 0x0000000000000001, 0x000000010747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFD00000001, 0x0000000000000001, 0x000000010747AE13}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFD00000002, 0x0000000000000001, 0x000000010747AE12}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFD00000003, 0x0000000000000001, 0x000000010747AE11}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFD00000010, 0x0000000000000001, 0x000000010747AE04}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x00000000FFC1691A}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x000000008747AE15}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFD80000000, 0x0000000000000001, 0x000000008747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFDFFFFFFFD, 0x0000000000000001, 0x000000000747AE17}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFDFFFFFFFE, 0x0000000000000001, 0x000000000747AE16}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFDFFFFFFFF, 0x0000000000000001, 0x000000000747AE15}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFE00000000, 0x0000000000000001, 0x000000000747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFE00000001, 0x0000000000000001, 0x000000000747AE13}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFE00000002, 0x0000000000000001, 0x000000000747AE12}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFE00000003, 0x0000000000000001, 0x000000000747AE11}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFE00000010, 0x0000000000000001, 0x000000000747AE04}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFE078644FA, 0x0000000000000000, 0xFFFFFFFE0747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFE0747AE14, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000, 0xFFFFFFFE0747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFE80000000, 0x0000000000000000, 0xFFFFFFFE0747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0xFFFFFFFE0747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0xFFFFFFFE0747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0xFFFFFFFE0747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFF00000000, 0x0000000000000000, 0xFFFFFFFE0747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFF00000001, 0x0000000000000000, 0xFFFFFFFE0747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFF00000002, 0x0000000000000000, 0xFFFFFFFE0747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFF00000003, 0x0000000000000000, 0xFFFFFFFE0747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFF00000010, 0x0000000000000000, 0xFFFFFFFE0747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFE0747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFE0747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFE0747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFE0747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFE0747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFE0747AE14}, + [_]u64{0xFFFFFFFE0747AE14, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFE0747AE14}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000000000000001, 0xFFFFFFFE7FFFFFFF, 0x0000000000000000}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000000000000002, 0x7FFFFFFF3FFFFFFF, 0x0000000000000001}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000000000000003, 0x55555554D5555555, 0x0000000000000000}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000000000000010, 0x0FFFFFFFE7FFFFFF, 0x000000000000000F}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x00000000078644FA, 0x0000002205B17ACA, 0x0000000000546EBB}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x000000000747AE14, 0x000000232A32A547, 0x000000000003D473}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x000000007FFFFFFF, 0x0000000200000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000000080000000, 0x00000001FFFFFFFC, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x00000000FFFFFFFD, 0x0000000100000001, 0x0000000080000002}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x00000000FFFFFFFE, 0x0000000100000000, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x00000000FFFFFFFF, 0x00000000FFFFFFFF, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000000100000000, 0x00000000FFFFFFFE, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000000100000001, 0x00000000FFFFFFFD, 0x0000000080000002}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000000100000002, 0x00000000FFFFFFFC, 0x0000000080000007}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000000100000003, 0x00000000FFFFFFFB, 0x000000008000000E}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000000100000010, 0x00000000FFFFFFEE, 0x000000008000011F}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x00000001078644FA, 0x00000000F8B0BB5B, 0x000000002302DD21}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x000000010747AE14, 0x00000000F8EBDA58, 0x00000000C8C3211F}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x000000017FFFFFFF, 0x00000000AAAAAAAA, 0x000000002AAAAAA9}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000000180000000, 0x00000000AAAAAAA9, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x00000001FFFFFFFD, 0x000000007FFFFFFF, 0x00000001FFFFFFFC}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x00000001FFFFFFFE, 0x000000007FFFFFFF, 0x000000017FFFFFFD}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x00000001FFFFFFFF, 0x000000007FFFFFFF, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000000200000000, 0x000000007FFFFFFF, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000000200000001, 0x000000007FFFFFFF, 0x0000000000000000}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000000200000002, 0x000000007FFFFFFE, 0x0000000180000003}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000000200000003, 0x000000007FFFFFFE, 0x0000000100000005}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000000200000010, 0x000000007FFFFFFB, 0x000000008000004F}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x00000002078644FA, 0x000000007E256849, 0x00000000CA8EC4B5}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x000000020747AE14, 0x000000007E349CA6, 0x00000000E560EF07}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x000000027FFFFFFF, 0x0000000066666665, 0x0000000266666664}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000000280000000, 0x0000000066666665, 0x00000001FFFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x00000002FFFFFFFD, 0x0000000055555555, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x00000002FFFFFFFE, 0x0000000055555555, 0x000000002AAAAAA9}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x00000002FFFFFFFF, 0x0000000055555554, 0x00000002D5555553}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000000300000000, 0x0000000055555554, 0x000000027FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000000300000001, 0x0000000055555554, 0x000000022AAAAAAB}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000000300000002, 0x0000000055555554, 0x00000001D5555557}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000000300000003, 0x0000000055555554, 0x0000000180000003}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000000300000010, 0x0000000055555553, 0x000000002AAAAACF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x00000003078644FA, 0x0000000054816147, 0x00000002BFA624A9}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x000000030747AE14, 0x00000000548833C6, 0x000000008C416087}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x000000037FFFFFFF, 0x0000000049249248, 0x00000002C9249247}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000000380000000, 0x0000000049249248, 0x000000027FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x000000033FFFFFFC}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x00000002FFFFFFFD}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x00000002BFFFFFFE}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000E7FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000E70000000}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000E60000001}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000E50000002}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000D8000000F}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x00000010078644FA, 0x000000000FF87D43, 0x000000027FFDE091}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x000000100747AE14, 0x000000000FF8BBA0, 0x00000004C7AA977F}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000028F83E0F7}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0000001080000000, 0x000000000F83E0F8, 0x000000027FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x00000010FFFFFFFD, 0x000000000F0F0F0E, 0x00000010AD2D2D29}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x00000010FFFFFFFE, 0x000000000F0F0F0E, 0x000000109E1E1E1B}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x00000010FFFFFFFF, 0x000000000F0F0F0E, 0x000000108F0F0F0D}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x078644FA00000000, 0x0000000000000022, 0x002AD6CA7FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x078644FA00000001, 0x0000000000000022, 0x002AD6CA7FFFFFDD}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x078644FA00000002, 0x0000000000000022, 0x002AD6CA7FFFFFBB}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x078644FA00000003, 0x0000000000000022, 0x002AD6CA7FFFFF99}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x078644FA00000010, 0x0000000000000022, 0x002AD6CA7FFFFDDF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6C9802AD6CB}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6C9887AE157}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6B980000021}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x078644FA80000000, 0x0000000000000022, 0x002AD6B97FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A880000065}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A880000043}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A880000021}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0747AE1400000000, 0x0000000000000023, 0x013333427FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0747AE1400000001, 0x0000000000000023, 0x013333427FFFFFDC}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0747AE1400000002, 0x0000000000000023, 0x013333427FFFFFB9}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0747AE1400000003, 0x0000000000000023, 0x013333427FFFFF96}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0747AE1400000010, 0x0000000000000023, 0x013333427FFFFDCF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0747AE14078644FA, 0x0000000000000023, 0x0133334178A491D1}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334181333343}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133333100000022}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0747AE1480000000, 0x0000000000000023, 0x01333330FFFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133331F80000068}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133331F80000045}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133331F80000022}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x7FFFFFFF00000000, 0x0000000000000002, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x7FFFFFFF00000001, 0x0000000000000002, 0x000000007FFFFFFD}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x7FFFFFFF00000002, 0x0000000000000002, 0x000000007FFFFFFB}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x7FFFFFFF00000003, 0x0000000000000002, 0x000000007FFFFFF9}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x7FFFFFFF00000010, 0x0000000000000002, 0x000000007FFFFFDF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x7FFFFFFF078644FA, 0x0000000000000002, 0x0000000070F3760B}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x7FFFFFFF0747AE14, 0x0000000000000002, 0x000000007170A3D7}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x7FFFFFFF00000000}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x7FFFFFFF80000000, 0x0000000000000001, 0x7FFFFFFEFFFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFE80000002}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFE80000001}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFE80000000}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFE7FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFE7FFFFFFE}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFE7FFFFFFD}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFE7FFFFFFC}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFE7FFFFFEF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFE7879BB05}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFE78B851EB}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFE00000000}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFD80000002}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFD80000001}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFD80000000}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFD00000000, 0x0000000000000001, 0x000000017FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFD00000001, 0x0000000000000001, 0x000000017FFFFFFE}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFD00000002, 0x0000000000000001, 0x000000017FFFFFFD}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFD00000003, 0x0000000000000001, 0x000000017FFFFFFC}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFD00000010, 0x0000000000000001, 0x000000017FFFFFEF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x000000017879BB05}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x0000000178B851EB}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFD80000000, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFDFFFFFFFD, 0x0000000000000001, 0x0000000080000002}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFDFFFFFFFE, 0x0000000000000001, 0x0000000080000001}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFDFFFFFFFF, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFE00000000, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFE00000001, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFE00000002, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFE00000003, 0x0000000000000001, 0x000000007FFFFFFC}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFE00000010, 0x0000000000000001, 0x000000007FFFFFEF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFE078644FA, 0x0000000000000001, 0x000000007879BB05}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFE0747AE14, 0x0000000000000001, 0x0000000078B851EB}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFE7FFFFFFF, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFE80000000, 0x0000000000000000, 0xFFFFFFFE7FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0xFFFFFFFE7FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0xFFFFFFFE7FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0xFFFFFFFE7FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFF00000000, 0x0000000000000000, 0xFFFFFFFE7FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFF00000001, 0x0000000000000000, 0xFFFFFFFE7FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFF00000002, 0x0000000000000000, 0xFFFFFFFE7FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFF00000003, 0x0000000000000000, 0xFFFFFFFE7FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFF00000010, 0x0000000000000000, 0xFFFFFFFE7FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFE7FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFE7FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFE7FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFE7FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFE7FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFE7FFFFFFF}, + [_]u64{0xFFFFFFFE7FFFFFFF, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFE7FFFFFFF}, + [_]u64{0xFFFFFFFE80000000, 0x0000000000000001, 0xFFFFFFFE80000000, 0x0000000000000000}, + [_]u64{0xFFFFFFFE80000000, 0x0000000000000002, 0x7FFFFFFF40000000, 0x0000000000000000}, + [_]u64{0xFFFFFFFE80000000, 0x0000000000000003, 0x55555554D5555555, 0x0000000000000001}, + [_]u64{0xFFFFFFFE80000000, 0x0000000000000010, 0x0FFFFFFFE8000000, 0x0000000000000000}, + [_]u64{0xFFFFFFFE80000000, 0x00000000078644FA, 0x0000002205B17ACA, 0x0000000000546EBC}, + [_]u64{0xFFFFFFFE80000000, 0x000000000747AE14, 0x000000232A32A547, 0x000000000003D474}, + [_]u64{0xFFFFFFFE80000000, 0x000000007FFFFFFF, 0x0000000200000001, 0x0000000000000001}, + [_]u64{0xFFFFFFFE80000000, 0x0000000080000000, 0x00000001FFFFFFFD, 0x0000000000000000}, + [_]u64{0xFFFFFFFE80000000, 0x00000000FFFFFFFD, 0x0000000100000001, 0x0000000080000003}, + [_]u64{0xFFFFFFFE80000000, 0x00000000FFFFFFFE, 0x0000000100000000, 0x0000000080000000}, + [_]u64{0xFFFFFFFE80000000, 0x00000000FFFFFFFF, 0x00000000FFFFFFFF, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFE80000000, 0x0000000100000000, 0x00000000FFFFFFFE, 0x0000000080000000}, + [_]u64{0xFFFFFFFE80000000, 0x0000000100000001, 0x00000000FFFFFFFD, 0x0000000080000003}, + [_]u64{0xFFFFFFFE80000000, 0x0000000100000002, 0x00000000FFFFFFFC, 0x0000000080000008}, + [_]u64{0xFFFFFFFE80000000, 0x0000000100000003, 0x00000000FFFFFFFB, 0x000000008000000F}, + [_]u64{0xFFFFFFFE80000000, 0x0000000100000010, 0x00000000FFFFFFEE, 0x0000000080000120}, + [_]u64{0xFFFFFFFE80000000, 0x00000001078644FA, 0x00000000F8B0BB5B, 0x000000002302DD22}, + [_]u64{0xFFFFFFFE80000000, 0x000000010747AE14, 0x00000000F8EBDA58, 0x00000000C8C32120}, + [_]u64{0xFFFFFFFE80000000, 0x000000017FFFFFFF, 0x00000000AAAAAAAA, 0x000000002AAAAAAA}, + [_]u64{0xFFFFFFFE80000000, 0x0000000180000000, 0x00000000AAAAAAA9, 0x0000000100000000}, + [_]u64{0xFFFFFFFE80000000, 0x00000001FFFFFFFD, 0x0000000080000000, 0x0000000000000000}, + [_]u64{0xFFFFFFFE80000000, 0x00000001FFFFFFFE, 0x000000007FFFFFFF, 0x000000017FFFFFFE}, + [_]u64{0xFFFFFFFE80000000, 0x00000001FFFFFFFF, 0x000000007FFFFFFF, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFE80000000, 0x0000000200000000, 0x000000007FFFFFFF, 0x0000000080000000}, + [_]u64{0xFFFFFFFE80000000, 0x0000000200000001, 0x000000007FFFFFFF, 0x0000000000000001}, + [_]u64{0xFFFFFFFE80000000, 0x0000000200000002, 0x000000007FFFFFFE, 0x0000000180000004}, + [_]u64{0xFFFFFFFE80000000, 0x0000000200000003, 0x000000007FFFFFFE, 0x0000000100000006}, + [_]u64{0xFFFFFFFE80000000, 0x0000000200000010, 0x000000007FFFFFFB, 0x0000000080000050}, + [_]u64{0xFFFFFFFE80000000, 0x00000002078644FA, 0x000000007E256849, 0x00000000CA8EC4B6}, + [_]u64{0xFFFFFFFE80000000, 0x000000020747AE14, 0x000000007E349CA6, 0x00000000E560EF08}, + [_]u64{0xFFFFFFFE80000000, 0x000000027FFFFFFF, 0x0000000066666665, 0x0000000266666665}, + [_]u64{0xFFFFFFFE80000000, 0x0000000280000000, 0x0000000066666665, 0x0000000200000000}, + [_]u64{0xFFFFFFFE80000000, 0x00000002FFFFFFFD, 0x0000000055555555, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFE80000000, 0x00000002FFFFFFFE, 0x0000000055555555, 0x000000002AAAAAAA}, + [_]u64{0xFFFFFFFE80000000, 0x00000002FFFFFFFF, 0x0000000055555554, 0x00000002D5555554}, + [_]u64{0xFFFFFFFE80000000, 0x0000000300000000, 0x0000000055555554, 0x0000000280000000}, + [_]u64{0xFFFFFFFE80000000, 0x0000000300000001, 0x0000000055555554, 0x000000022AAAAAAC}, + [_]u64{0xFFFFFFFE80000000, 0x0000000300000002, 0x0000000055555554, 0x00000001D5555558}, + [_]u64{0xFFFFFFFE80000000, 0x0000000300000003, 0x0000000055555554, 0x0000000180000004}, + [_]u64{0xFFFFFFFE80000000, 0x0000000300000010, 0x0000000055555553, 0x000000002AAAAAD0}, + [_]u64{0xFFFFFFFE80000000, 0x00000003078644FA, 0x0000000054816147, 0x00000002BFA624AA}, + [_]u64{0xFFFFFFFE80000000, 0x000000030747AE14, 0x00000000548833C6, 0x000000008C416088}, + [_]u64{0xFFFFFFFE80000000, 0x000000037FFFFFFF, 0x0000000049249248, 0x00000002C9249248}, + [_]u64{0xFFFFFFFE80000000, 0x0000000380000000, 0x0000000049249248, 0x0000000280000000}, + [_]u64{0xFFFFFFFE80000000, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x000000033FFFFFFD}, + [_]u64{0xFFFFFFFE80000000, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x00000002FFFFFFFE}, + [_]u64{0xFFFFFFFE80000000, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x00000002BFFFFFFF}, + [_]u64{0xFFFFFFFE80000000, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000E80000000}, + [_]u64{0xFFFFFFFE80000000, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000E70000001}, + [_]u64{0xFFFFFFFE80000000, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000E60000002}, + [_]u64{0xFFFFFFFE80000000, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000E50000003}, + [_]u64{0xFFFFFFFE80000000, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000D80000010}, + [_]u64{0xFFFFFFFE80000000, 0x00000010078644FA, 0x000000000FF87D43, 0x000000027FFDE092}, + [_]u64{0xFFFFFFFE80000000, 0x000000100747AE14, 0x000000000FF8BBA0, 0x00000004C7AA9780}, + [_]u64{0xFFFFFFFE80000000, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000028F83E0F8}, + [_]u64{0xFFFFFFFE80000000, 0x0000001080000000, 0x000000000F83E0F8, 0x0000000280000000}, + [_]u64{0xFFFFFFFE80000000, 0x00000010FFFFFFFD, 0x000000000F0F0F0E, 0x00000010AD2D2D2A}, + [_]u64{0xFFFFFFFE80000000, 0x00000010FFFFFFFE, 0x000000000F0F0F0E, 0x000000109E1E1E1C}, + [_]u64{0xFFFFFFFE80000000, 0x00000010FFFFFFFF, 0x000000000F0F0F0E, 0x000000108F0F0F0E}, + [_]u64{0xFFFFFFFE80000000, 0x078644FA00000000, 0x0000000000000022, 0x002AD6CA80000000}, + [_]u64{0xFFFFFFFE80000000, 0x078644FA00000001, 0x0000000000000022, 0x002AD6CA7FFFFFDE}, + [_]u64{0xFFFFFFFE80000000, 0x078644FA00000002, 0x0000000000000022, 0x002AD6CA7FFFFFBC}, + [_]u64{0xFFFFFFFE80000000, 0x078644FA00000003, 0x0000000000000022, 0x002AD6CA7FFFFF9A}, + [_]u64{0xFFFFFFFE80000000, 0x078644FA00000010, 0x0000000000000022, 0x002AD6CA7FFFFDE0}, + [_]u64{0xFFFFFFFE80000000, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6C9802AD6CC}, + [_]u64{0xFFFFFFFE80000000, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6C9887AE158}, + [_]u64{0xFFFFFFFE80000000, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6B980000022}, + [_]u64{0xFFFFFFFE80000000, 0x078644FA80000000, 0x0000000000000022, 0x002AD6B980000000}, + [_]u64{0xFFFFFFFE80000000, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A880000066}, + [_]u64{0xFFFFFFFE80000000, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A880000044}, + [_]u64{0xFFFFFFFE80000000, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A880000022}, + [_]u64{0xFFFFFFFE80000000, 0x0747AE1400000000, 0x0000000000000023, 0x0133334280000000}, + [_]u64{0xFFFFFFFE80000000, 0x0747AE1400000001, 0x0000000000000023, 0x013333427FFFFFDD}, + [_]u64{0xFFFFFFFE80000000, 0x0747AE1400000002, 0x0000000000000023, 0x013333427FFFFFBA}, + [_]u64{0xFFFFFFFE80000000, 0x0747AE1400000003, 0x0000000000000023, 0x013333427FFFFF97}, + [_]u64{0xFFFFFFFE80000000, 0x0747AE1400000010, 0x0000000000000023, 0x013333427FFFFDD0}, + [_]u64{0xFFFFFFFE80000000, 0x0747AE14078644FA, 0x0000000000000023, 0x0133334178A491D2}, + [_]u64{0xFFFFFFFE80000000, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334181333344}, + [_]u64{0xFFFFFFFE80000000, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133333100000023}, + [_]u64{0xFFFFFFFE80000000, 0x0747AE1480000000, 0x0000000000000023, 0x0133333100000000}, + [_]u64{0xFFFFFFFE80000000, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133331F80000069}, + [_]u64{0xFFFFFFFE80000000, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133331F80000046}, + [_]u64{0xFFFFFFFE80000000, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133331F80000023}, + [_]u64{0xFFFFFFFE80000000, 0x7FFFFFFF00000000, 0x0000000000000002, 0x0000000080000000}, + [_]u64{0xFFFFFFFE80000000, 0x7FFFFFFF00000001, 0x0000000000000002, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFE80000000, 0x7FFFFFFF00000002, 0x0000000000000002, 0x000000007FFFFFFC}, + [_]u64{0xFFFFFFFE80000000, 0x7FFFFFFF00000003, 0x0000000000000002, 0x000000007FFFFFFA}, + [_]u64{0xFFFFFFFE80000000, 0x7FFFFFFF00000010, 0x0000000000000002, 0x000000007FFFFFE0}, + [_]u64{0xFFFFFFFE80000000, 0x7FFFFFFF078644FA, 0x0000000000000002, 0x0000000070F3760C}, + [_]u64{0xFFFFFFFE80000000, 0x7FFFFFFF0747AE14, 0x0000000000000002, 0x000000007170A3D8}, + [_]u64{0xFFFFFFFE80000000, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x7FFFFFFF00000001}, + [_]u64{0xFFFFFFFE80000000, 0x7FFFFFFF80000000, 0x0000000000000001, 0x7FFFFFFF00000000}, + [_]u64{0xFFFFFFFE80000000, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFE80000003}, + [_]u64{0xFFFFFFFE80000000, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFE80000002}, + [_]u64{0xFFFFFFFE80000000, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFE80000001}, + [_]u64{0xFFFFFFFE80000000, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFE80000000}, + [_]u64{0xFFFFFFFE80000000, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFE7FFFFFFF}, + [_]u64{0xFFFFFFFE80000000, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFE7FFFFFFE}, + [_]u64{0xFFFFFFFE80000000, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFE7FFFFFFD}, + [_]u64{0xFFFFFFFE80000000, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFE7FFFFFF0}, + [_]u64{0xFFFFFFFE80000000, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFE7879BB06}, + [_]u64{0xFFFFFFFE80000000, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFE78B851EC}, + [_]u64{0xFFFFFFFE80000000, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFE00000001}, + [_]u64{0xFFFFFFFE80000000, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFE00000000}, + [_]u64{0xFFFFFFFE80000000, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFD80000003}, + [_]u64{0xFFFFFFFE80000000, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFD80000002}, + [_]u64{0xFFFFFFFE80000000, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFD80000001}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFD00000000, 0x0000000000000001, 0x0000000180000000}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFD00000001, 0x0000000000000001, 0x000000017FFFFFFF}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFD00000002, 0x0000000000000001, 0x000000017FFFFFFE}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFD00000003, 0x0000000000000001, 0x000000017FFFFFFD}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFD00000010, 0x0000000000000001, 0x000000017FFFFFF0}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x000000017879BB06}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x0000000178B851EC}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFD80000000, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFDFFFFFFFD, 0x0000000000000001, 0x0000000080000003}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFDFFFFFFFE, 0x0000000000000001, 0x0000000080000002}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFDFFFFFFFF, 0x0000000000000001, 0x0000000080000001}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFE00000000, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFE00000001, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFE00000002, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFE00000003, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFE00000010, 0x0000000000000001, 0x000000007FFFFFF0}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFE078644FA, 0x0000000000000001, 0x000000007879BB06}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFE0747AE14, 0x0000000000000001, 0x0000000078B851EC}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFE7FFFFFFF, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFE80000000, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000, 0xFFFFFFFE80000000}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0xFFFFFFFE80000000}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0xFFFFFFFE80000000}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFF00000000, 0x0000000000000000, 0xFFFFFFFE80000000}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFF00000001, 0x0000000000000000, 0xFFFFFFFE80000000}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFF00000002, 0x0000000000000000, 0xFFFFFFFE80000000}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFF00000003, 0x0000000000000000, 0xFFFFFFFE80000000}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFF00000010, 0x0000000000000000, 0xFFFFFFFE80000000}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFE80000000}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFE80000000}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFE80000000}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFE80000000}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFE80000000}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFE80000000}, + [_]u64{0xFFFFFFFE80000000, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFE80000000}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000000000000001, 0xFFFFFFFEFFFFFFFD, 0x0000000000000000}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000000000000002, 0x7FFFFFFF7FFFFFFE, 0x0000000000000001}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000000000000003, 0x55555554FFFFFFFF, 0x0000000000000000}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000000000000010, 0x0FFFFFFFEFFFFFFF, 0x000000000000000D}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x00000000078644FA, 0x0000002205B17ADB, 0x000000000069DA1F}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x000000000747AE14, 0x000000232A32A558, 0x000000000441451D}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x000000007FFFFFFF, 0x0000000200000001, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000000080000000, 0x00000001FFFFFFFD, 0x000000007FFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x00000000FFFFFFFD, 0x0000000100000002, 0x0000000000000003}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x00000000FFFFFFFE, 0x0000000100000000, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x00000000FFFFFFFF, 0x00000000FFFFFFFF, 0x00000000FFFFFFFC}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000000100000000, 0x00000000FFFFFFFE, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000000100000001, 0x00000000FFFFFFFD, 0x0000000100000000}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000000100000002, 0x00000000FFFFFFFD, 0x0000000000000003}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000000100000003, 0x00000000FFFFFFFC, 0x0000000000000009}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000000100000010, 0x00000000FFFFFFEF, 0x000000000000010D}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x00000001078644FA, 0x00000000F8B0BB5B, 0x00000000A302DD1F}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x000000010747AE14, 0x00000000F8EBDA59, 0x00000000417B7309}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x000000017FFFFFFF, 0x00000000AAAAAAAA, 0x00000000AAAAAAA7}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000000180000000, 0x00000000AAAAAAA9, 0x000000017FFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x00000001FFFFFFFD, 0x0000000080000000, 0x000000007FFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x00000001FFFFFFFE, 0x000000007FFFFFFF, 0x00000001FFFFFFFB}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x00000001FFFFFFFF, 0x000000007FFFFFFF, 0x000000017FFFFFFC}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000000200000000, 0x000000007FFFFFFF, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000000200000001, 0x000000007FFFFFFF, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000000200000002, 0x000000007FFFFFFE, 0x0000000200000001}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000000200000003, 0x000000007FFFFFFE, 0x0000000180000003}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000000200000010, 0x000000007FFFFFFB, 0x000000010000004D}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x00000002078644FA, 0x000000007E256849, 0x000000014A8EC4B3}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x000000020747AE14, 0x000000007E349CA6, 0x000000016560EF05}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x000000027FFFFFFF, 0x0000000066666666, 0x0000000066666663}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000000280000000, 0x0000000066666665, 0x000000027FFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x00000002FFFFFFFD, 0x0000000055555555, 0x00000000FFFFFFFC}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x00000002FFFFFFFE, 0x0000000055555555, 0x00000000AAAAAAA7}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x00000002FFFFFFFF, 0x0000000055555555, 0x0000000055555552}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000000300000000, 0x0000000055555554, 0x00000002FFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000000300000001, 0x0000000055555554, 0x00000002AAAAAAA9}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000000300000002, 0x0000000055555554, 0x0000000255555555}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000000300000003, 0x0000000055555554, 0x0000000200000001}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000000300000010, 0x0000000055555553, 0x00000000AAAAAACD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x00000003078644FA, 0x0000000054816148, 0x00000000381FDFAD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x000000030747AE14, 0x00000000548833C6, 0x000000010C416085}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x000000037FFFFFFF, 0x0000000049249248, 0x0000000349249245}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000000380000000, 0x0000000049249248, 0x00000002FFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x00000003BFFFFFFA}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x000000037FFFFFFB}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x000000033FFFFFFC}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000EFFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000EEFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000EDFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000ED0000000}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000E0000000D}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x00000010078644FA, 0x000000000FF87D43, 0x00000002FFFDE08F}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x000000100747AE14, 0x000000000FF8BBA0, 0x0000000547AA977D}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000030F83E0F5}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0000001080000000, 0x000000000F83E0F8, 0x00000002FFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x00000010FFFFFFFD, 0x000000000F0F0F0F, 0x000000002D2D2D2A}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x00000010FFFFFFFE, 0x000000000F0F0F0F, 0x000000001E1E1E1B}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x00000010FFFFFFFF, 0x000000000F0F0F0F, 0x000000000F0F0F0C}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x078644FA00000000, 0x0000000000000022, 0x002AD6CAFFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x078644FA00000001, 0x0000000000000022, 0x002AD6CAFFFFFFDB}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x078644FA00000002, 0x0000000000000022, 0x002AD6CAFFFFFFB9}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x078644FA00000003, 0x0000000000000022, 0x002AD6CAFFFFFF97}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x078644FA00000010, 0x0000000000000022, 0x002AD6CAFFFFFDDD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6CA002AD6C9}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6CA087AE155}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6BA0000001F}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x078644FA80000000, 0x0000000000000022, 0x002AD6B9FFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A900000063}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A900000041}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A90000001F}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0747AE1400000000, 0x0000000000000023, 0x01333342FFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0747AE1400000001, 0x0000000000000023, 0x01333342FFFFFFDA}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0747AE1400000002, 0x0000000000000023, 0x01333342FFFFFFB7}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0747AE1400000003, 0x0000000000000023, 0x01333342FFFFFF94}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0747AE1400000010, 0x0000000000000023, 0x01333342FFFFFDCD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0747AE14078644FA, 0x0000000000000023, 0x01333341F8A491CF}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334201333341}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133333180000020}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0747AE1480000000, 0x0000000000000023, 0x013333317FFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133332000000066}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133332000000043}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133332000000020}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x7FFFFFFF00000000, 0x0000000000000002, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x7FFFFFFF00000001, 0x0000000000000002, 0x00000000FFFFFFFB}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x7FFFFFFF00000002, 0x0000000000000002, 0x00000000FFFFFFF9}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x7FFFFFFF00000003, 0x0000000000000002, 0x00000000FFFFFFF7}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x7FFFFFFF00000010, 0x0000000000000002, 0x00000000FFFFFFDD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x7FFFFFFF078644FA, 0x0000000000000002, 0x00000000F0F37609}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x7FFFFFFF0747AE14, 0x0000000000000002, 0x00000000F170A3D5}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001, 0x7FFFFFFF7FFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x7FFFFFFF80000000, 0x0000000000000001, 0x7FFFFFFF7FFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFF00000000}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFEFFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFEFFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFEFFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFEFFFFFFFC}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFEFFFFFFFB}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFEFFFFFFFA}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFEFFFFFFED}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFEF879BB03}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFEF8B851E9}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFE7FFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFE7FFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFE00000000}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFDFFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFD00000000, 0x0000000000000001, 0x00000001FFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFD00000001, 0x0000000000000001, 0x00000001FFFFFFFC}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFD00000002, 0x0000000000000001, 0x00000001FFFFFFFB}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFD00000003, 0x0000000000000001, 0x00000001FFFFFFFA}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFD00000010, 0x0000000000000001, 0x00000001FFFFFFED}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x00000001F879BB03}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x00000001F8B851E9}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x000000017FFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFD80000000, 0x0000000000000001, 0x000000017FFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFDFFFFFFFD, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFDFFFFFFFE, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFDFFFFFFFF, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFE00000000, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFE00000001, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFE00000002, 0x0000000000000001, 0x00000000FFFFFFFB}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFE00000003, 0x0000000000000001, 0x00000000FFFFFFFA}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFE00000010, 0x0000000000000001, 0x00000000FFFFFFED}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFE078644FA, 0x0000000000000001, 0x00000000F879BB03}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFE0747AE14, 0x0000000000000001, 0x00000000F8B851E9}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFE7FFFFFFF, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFE80000000, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFEFFFFFFFD, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000, 0xFFFFFFFEFFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0xFFFFFFFEFFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFF00000000, 0x0000000000000000, 0xFFFFFFFEFFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFF00000001, 0x0000000000000000, 0xFFFFFFFEFFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFF00000002, 0x0000000000000000, 0xFFFFFFFEFFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFF00000003, 0x0000000000000000, 0xFFFFFFFEFFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFF00000010, 0x0000000000000000, 0xFFFFFFFEFFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFEFFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFEFFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFEFFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFEFFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFEFFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFEFFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFD, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFEFFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000000000000001, 0xFFFFFFFEFFFFFFFE, 0x0000000000000000}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000000000000002, 0x7FFFFFFF7FFFFFFF, 0x0000000000000000}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000000000000003, 0x55555554FFFFFFFF, 0x0000000000000001}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000000000000010, 0x0FFFFFFFEFFFFFFF, 0x000000000000000E}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x00000000078644FA, 0x0000002205B17ADB, 0x000000000069DA20}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x000000000747AE14, 0x000000232A32A558, 0x000000000441451E}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x000000007FFFFFFF, 0x0000000200000002, 0x0000000000000000}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000000080000000, 0x00000001FFFFFFFD, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x00000000FFFFFFFD, 0x0000000100000002, 0x0000000000000004}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x00000000FFFFFFFE, 0x0000000100000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x00000000FFFFFFFF, 0x00000000FFFFFFFF, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000000100000000, 0x00000000FFFFFFFE, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000000100000001, 0x00000000FFFFFFFE, 0x0000000000000000}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000000100000002, 0x00000000FFFFFFFD, 0x0000000000000004}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000000100000003, 0x00000000FFFFFFFC, 0x000000000000000A}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000000100000010, 0x00000000FFFFFFEF, 0x000000000000010E}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x00000001078644FA, 0x00000000F8B0BB5B, 0x00000000A302DD20}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x000000010747AE14, 0x00000000F8EBDA59, 0x00000000417B730A}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x000000017FFFFFFF, 0x00000000AAAAAAAA, 0x00000000AAAAAAA8}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000000180000000, 0x00000000AAAAAAA9, 0x000000017FFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x00000001FFFFFFFD, 0x0000000080000000, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x00000001FFFFFFFE, 0x000000007FFFFFFF, 0x00000001FFFFFFFC}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x00000001FFFFFFFF, 0x000000007FFFFFFF, 0x000000017FFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000000200000000, 0x000000007FFFFFFF, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000000200000001, 0x000000007FFFFFFF, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000000200000002, 0x000000007FFFFFFF, 0x0000000000000000}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000000200000003, 0x000000007FFFFFFE, 0x0000000180000004}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000000200000010, 0x000000007FFFFFFB, 0x000000010000004E}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x00000002078644FA, 0x000000007E256849, 0x000000014A8EC4B4}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x000000020747AE14, 0x000000007E349CA6, 0x000000016560EF06}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x000000027FFFFFFF, 0x0000000066666666, 0x0000000066666664}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000000280000000, 0x0000000066666665, 0x000000027FFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x00000002FFFFFFFD, 0x0000000055555555, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x00000002FFFFFFFE, 0x0000000055555555, 0x00000000AAAAAAA8}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x00000002FFFFFFFF, 0x0000000055555555, 0x0000000055555553}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000000300000000, 0x0000000055555554, 0x00000002FFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000000300000001, 0x0000000055555554, 0x00000002AAAAAAAA}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000000300000002, 0x0000000055555554, 0x0000000255555556}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000000300000003, 0x0000000055555554, 0x0000000200000002}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000000300000010, 0x0000000055555553, 0x00000000AAAAAACE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x00000003078644FA, 0x0000000054816148, 0x00000000381FDFAE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x000000030747AE14, 0x00000000548833C6, 0x000000010C416086}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x000000037FFFFFFF, 0x0000000049249248, 0x0000000349249246}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000000380000000, 0x0000000049249248, 0x00000002FFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x00000003BFFFFFFB}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x000000037FFFFFFC}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x000000033FFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000EFFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000EEFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000EE0000000}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000ED0000001}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000E0000000E}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x00000010078644FA, 0x000000000FF87D43, 0x00000002FFFDE090}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x000000100747AE14, 0x000000000FF8BBA0, 0x0000000547AA977E}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000030F83E0F6}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0000001080000000, 0x000000000F83E0F8, 0x00000002FFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x00000010FFFFFFFD, 0x000000000F0F0F0F, 0x000000002D2D2D2B}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x00000010FFFFFFFE, 0x000000000F0F0F0F, 0x000000001E1E1E1C}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x00000010FFFFFFFF, 0x000000000F0F0F0F, 0x000000000F0F0F0D}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x078644FA00000000, 0x0000000000000022, 0x002AD6CAFFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x078644FA00000001, 0x0000000000000022, 0x002AD6CAFFFFFFDC}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x078644FA00000002, 0x0000000000000022, 0x002AD6CAFFFFFFBA}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x078644FA00000003, 0x0000000000000022, 0x002AD6CAFFFFFF98}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x078644FA00000010, 0x0000000000000022, 0x002AD6CAFFFFFDDE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6CA002AD6CA}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6CA087AE156}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6BA00000020}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x078644FA80000000, 0x0000000000000022, 0x002AD6B9FFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A900000064}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A900000042}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A900000020}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0747AE1400000000, 0x0000000000000023, 0x01333342FFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0747AE1400000001, 0x0000000000000023, 0x01333342FFFFFFDB}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0747AE1400000002, 0x0000000000000023, 0x01333342FFFFFFB8}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0747AE1400000003, 0x0000000000000023, 0x01333342FFFFFF95}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0747AE1400000010, 0x0000000000000023, 0x01333342FFFFFDCE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0747AE14078644FA, 0x0000000000000023, 0x01333341F8A491D0}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334201333342}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133333180000021}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0747AE1480000000, 0x0000000000000023, 0x013333317FFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133332000000067}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133332000000044}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133332000000021}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x7FFFFFFF00000000, 0x0000000000000002, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x7FFFFFFF00000001, 0x0000000000000002, 0x00000000FFFFFFFC}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x7FFFFFFF00000002, 0x0000000000000002, 0x00000000FFFFFFFA}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x7FFFFFFF00000003, 0x0000000000000002, 0x00000000FFFFFFF8}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x7FFFFFFF00000010, 0x0000000000000002, 0x00000000FFFFFFDE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x7FFFFFFF078644FA, 0x0000000000000002, 0x00000000F0F3760A}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x7FFFFFFF0747AE14, 0x0000000000000002, 0x00000000F170A3D6}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x7FFFFFFF7FFFFFFF, 0x0000000000000002, 0x0000000000000000}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x7FFFFFFF80000000, 0x0000000000000001, 0x7FFFFFFF7FFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFF00000001}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFF00000000}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFEFFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFEFFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFEFFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFEFFFFFFFC}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFEFFFFFFFB}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFEFFFFFFEE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFEF879BB04}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFEF8B851EA}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFE7FFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFE7FFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFE00000001}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFE00000000}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFDFFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFD00000000, 0x0000000000000001, 0x00000001FFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFD00000001, 0x0000000000000001, 0x00000001FFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFD00000002, 0x0000000000000001, 0x00000001FFFFFFFC}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFD00000003, 0x0000000000000001, 0x00000001FFFFFFFB}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFD00000010, 0x0000000000000001, 0x00000001FFFFFFEE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x00000001F879BB04}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x00000001F8B851EA}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x000000017FFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFD80000000, 0x0000000000000001, 0x000000017FFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFDFFFFFFFD, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFDFFFFFFFE, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFDFFFFFFFF, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFE00000000, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFE00000001, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFE00000002, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFE00000003, 0x0000000000000001, 0x00000000FFFFFFFB}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFE00000010, 0x0000000000000001, 0x00000000FFFFFFEE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFE078644FA, 0x0000000000000001, 0x00000000F879BB04}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFE0747AE14, 0x0000000000000001, 0x00000000F8B851EA}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFE7FFFFFFF, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFE80000000, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFEFFFFFFFD, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFEFFFFFFFE, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000, 0xFFFFFFFEFFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFF00000000, 0x0000000000000000, 0xFFFFFFFEFFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFF00000001, 0x0000000000000000, 0xFFFFFFFEFFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFF00000002, 0x0000000000000000, 0xFFFFFFFEFFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFF00000003, 0x0000000000000000, 0xFFFFFFFEFFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFF00000010, 0x0000000000000000, 0xFFFFFFFEFFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFEFFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFEFFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFEFFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFEFFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFEFFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFEFFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFE, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFEFFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000000000000001, 0xFFFFFFFEFFFFFFFF, 0x0000000000000000}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000000000000002, 0x7FFFFFFF7FFFFFFF, 0x0000000000000001}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000000000000003, 0x55555554FFFFFFFF, 0x0000000000000002}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000000000000010, 0x0FFFFFFFEFFFFFFF, 0x000000000000000F}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x00000000078644FA, 0x0000002205B17ADB, 0x000000000069DA21}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x000000000747AE14, 0x000000232A32A558, 0x000000000441451F}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x000000007FFFFFFF, 0x0000000200000002, 0x0000000000000001}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000000080000000, 0x00000001FFFFFFFD, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x00000000FFFFFFFD, 0x0000000100000002, 0x0000000000000005}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x00000000FFFFFFFE, 0x0000000100000001, 0x0000000000000001}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x00000000FFFFFFFF, 0x00000000FFFFFFFF, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000000100000000, 0x00000000FFFFFFFE, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000000100000001, 0x00000000FFFFFFFE, 0x0000000000000001}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000000100000002, 0x00000000FFFFFFFD, 0x0000000000000005}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000000100000003, 0x00000000FFFFFFFC, 0x000000000000000B}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000000100000010, 0x00000000FFFFFFEF, 0x000000000000010F}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x00000001078644FA, 0x00000000F8B0BB5B, 0x00000000A302DD21}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x000000010747AE14, 0x00000000F8EBDA59, 0x00000000417B730B}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x000000017FFFFFFF, 0x00000000AAAAAAAA, 0x00000000AAAAAAA9}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000000180000000, 0x00000000AAAAAAA9, 0x000000017FFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x00000001FFFFFFFD, 0x0000000080000000, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x00000001FFFFFFFE, 0x000000007FFFFFFF, 0x00000001FFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x00000001FFFFFFFF, 0x000000007FFFFFFF, 0x000000017FFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000000200000000, 0x000000007FFFFFFF, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000000200000001, 0x000000007FFFFFFF, 0x0000000080000000}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000000200000002, 0x000000007FFFFFFF, 0x0000000000000001}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000000200000003, 0x000000007FFFFFFE, 0x0000000180000005}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000000200000010, 0x000000007FFFFFFB, 0x000000010000004F}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x00000002078644FA, 0x000000007E256849, 0x000000014A8EC4B5}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x000000020747AE14, 0x000000007E349CA6, 0x000000016560EF07}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x000000027FFFFFFF, 0x0000000066666666, 0x0000000066666665}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000000280000000, 0x0000000066666665, 0x000000027FFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x00000002FFFFFFFD, 0x0000000055555555, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x00000002FFFFFFFE, 0x0000000055555555, 0x00000000AAAAAAA9}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x00000002FFFFFFFF, 0x0000000055555555, 0x0000000055555554}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000000300000000, 0x0000000055555554, 0x00000002FFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000000300000001, 0x0000000055555554, 0x00000002AAAAAAAB}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000000300000002, 0x0000000055555554, 0x0000000255555557}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000000300000003, 0x0000000055555554, 0x0000000200000003}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000000300000010, 0x0000000055555553, 0x00000000AAAAAACF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x00000003078644FA, 0x0000000054816148, 0x00000000381FDFAF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x000000030747AE14, 0x00000000548833C6, 0x000000010C416087}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x000000037FFFFFFF, 0x0000000049249248, 0x0000000349249247}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000000380000000, 0x0000000049249248, 0x00000002FFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x00000003BFFFFFFC}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x000000037FFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x000000033FFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000EFFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000EF0000000}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000EE0000001}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000ED0000002}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000E0000000F}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x00000010078644FA, 0x000000000FF87D43, 0x00000002FFFDE091}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x000000100747AE14, 0x000000000FF8BBA0, 0x0000000547AA977F}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000030F83E0F7}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0000001080000000, 0x000000000F83E0F8, 0x00000002FFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x00000010FFFFFFFD, 0x000000000F0F0F0F, 0x000000002D2D2D2C}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x00000010FFFFFFFE, 0x000000000F0F0F0F, 0x000000001E1E1E1D}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x00000010FFFFFFFF, 0x000000000F0F0F0F, 0x000000000F0F0F0E}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x078644FA00000000, 0x0000000000000022, 0x002AD6CAFFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x078644FA00000001, 0x0000000000000022, 0x002AD6CAFFFFFFDD}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x078644FA00000002, 0x0000000000000022, 0x002AD6CAFFFFFFBB}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x078644FA00000003, 0x0000000000000022, 0x002AD6CAFFFFFF99}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x078644FA00000010, 0x0000000000000022, 0x002AD6CAFFFFFDDF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6CA002AD6CB}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6CA087AE157}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6BA00000021}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x078644FA80000000, 0x0000000000000022, 0x002AD6B9FFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A900000065}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A900000043}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A900000021}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0747AE1400000000, 0x0000000000000023, 0x01333342FFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0747AE1400000001, 0x0000000000000023, 0x01333342FFFFFFDC}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0747AE1400000002, 0x0000000000000023, 0x01333342FFFFFFB9}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0747AE1400000003, 0x0000000000000023, 0x01333342FFFFFF96}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0747AE1400000010, 0x0000000000000023, 0x01333342FFFFFDCF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0747AE14078644FA, 0x0000000000000023, 0x01333341F8A491D1}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334201333343}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133333180000022}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0747AE1480000000, 0x0000000000000023, 0x013333317FFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133332000000068}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133332000000045}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133332000000022}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x7FFFFFFF00000000, 0x0000000000000002, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x7FFFFFFF00000001, 0x0000000000000002, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x7FFFFFFF00000002, 0x0000000000000002, 0x00000000FFFFFFFB}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x7FFFFFFF00000003, 0x0000000000000002, 0x00000000FFFFFFF9}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x7FFFFFFF00000010, 0x0000000000000002, 0x00000000FFFFFFDF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x7FFFFFFF078644FA, 0x0000000000000002, 0x00000000F0F3760B}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x7FFFFFFF0747AE14, 0x0000000000000002, 0x00000000F170A3D7}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x7FFFFFFF7FFFFFFF, 0x0000000000000002, 0x0000000000000001}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x7FFFFFFF80000000, 0x0000000000000001, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFF00000002}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFF00000001}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFF00000000}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFEFFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFEFFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFEFFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFEFFFFFFFC}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFEFFFFFFEF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFEF879BB05}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFEF8B851EB}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFE80000000}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFE7FFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFE00000002}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFE00000001}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFE00000000}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFD00000000, 0x0000000000000001, 0x00000001FFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFD00000001, 0x0000000000000001, 0x00000001FFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFD00000002, 0x0000000000000001, 0x00000001FFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFD00000003, 0x0000000000000001, 0x00000001FFFFFFFC}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFD00000010, 0x0000000000000001, 0x00000001FFFFFFEF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x00000001F879BB05}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x00000001F8B851EB}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x0000000180000000}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFD80000000, 0x0000000000000001, 0x000000017FFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFDFFFFFFFD, 0x0000000000000001, 0x0000000100000002}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFDFFFFFFFE, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFDFFFFFFFF, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFE00000000, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFE00000001, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFE00000002, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFE00000003, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFE00000010, 0x0000000000000001, 0x00000000FFFFFFEF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFE078644FA, 0x0000000000000001, 0x00000000F879BB05}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFE0747AE14, 0x0000000000000001, 0x00000000F8B851EB}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFE7FFFFFFF, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFE80000000, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFEFFFFFFFD, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFEFFFFFFFE, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFEFFFFFFFF, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFF00000000, 0x0000000000000000, 0xFFFFFFFEFFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFF00000001, 0x0000000000000000, 0xFFFFFFFEFFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFF00000002, 0x0000000000000000, 0xFFFFFFFEFFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFF00000003, 0x0000000000000000, 0xFFFFFFFEFFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFF00000010, 0x0000000000000000, 0xFFFFFFFEFFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFEFFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFEFFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFEFFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFEFFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFEFFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFEFFFFFFFF}, + [_]u64{0xFFFFFFFEFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFEFFFFFFFF}, + [_]u64{0xFFFFFFFF00000000, 0x0000000000000001, 0xFFFFFFFF00000000, 0x0000000000000000}, + [_]u64{0xFFFFFFFF00000000, 0x0000000000000002, 0x7FFFFFFF80000000, 0x0000000000000000}, + [_]u64{0xFFFFFFFF00000000, 0x0000000000000003, 0x5555555500000000, 0x0000000000000000}, + [_]u64{0xFFFFFFFF00000000, 0x0000000000000010, 0x0FFFFFFFF0000000, 0x0000000000000000}, + [_]u64{0xFFFFFFFF00000000, 0x00000000078644FA, 0x0000002205B17ADB, 0x000000000069DA22}, + [_]u64{0xFFFFFFFF00000000, 0x000000000747AE14, 0x000000232A32A558, 0x0000000004414520}, + [_]u64{0xFFFFFFFF00000000, 0x000000007FFFFFFF, 0x0000000200000002, 0x0000000000000002}, + [_]u64{0xFFFFFFFF00000000, 0x0000000080000000, 0x00000001FFFFFFFE, 0x0000000000000000}, + [_]u64{0xFFFFFFFF00000000, 0x00000000FFFFFFFD, 0x0000000100000002, 0x0000000000000006}, + [_]u64{0xFFFFFFFF00000000, 0x00000000FFFFFFFE, 0x0000000100000001, 0x0000000000000002}, + [_]u64{0xFFFFFFFF00000000, 0x00000000FFFFFFFF, 0x0000000100000000, 0x0000000000000000}, + [_]u64{0xFFFFFFFF00000000, 0x0000000100000000, 0x00000000FFFFFFFF, 0x0000000000000000}, + [_]u64{0xFFFFFFFF00000000, 0x0000000100000001, 0x00000000FFFFFFFE, 0x0000000000000002}, + [_]u64{0xFFFFFFFF00000000, 0x0000000100000002, 0x00000000FFFFFFFD, 0x0000000000000006}, + [_]u64{0xFFFFFFFF00000000, 0x0000000100000003, 0x00000000FFFFFFFC, 0x000000000000000C}, + [_]u64{0xFFFFFFFF00000000, 0x0000000100000010, 0x00000000FFFFFFEF, 0x0000000000000110}, + [_]u64{0xFFFFFFFF00000000, 0x00000001078644FA, 0x00000000F8B0BB5B, 0x00000000A302DD22}, + [_]u64{0xFFFFFFFF00000000, 0x000000010747AE14, 0x00000000F8EBDA59, 0x00000000417B730C}, + [_]u64{0xFFFFFFFF00000000, 0x000000017FFFFFFF, 0x00000000AAAAAAAA, 0x00000000AAAAAAAA}, + [_]u64{0xFFFFFFFF00000000, 0x0000000180000000, 0x00000000AAAAAAAA, 0x0000000000000000}, + [_]u64{0xFFFFFFFF00000000, 0x00000001FFFFFFFD, 0x0000000080000000, 0x0000000080000000}, + [_]u64{0xFFFFFFFF00000000, 0x00000001FFFFFFFE, 0x0000000080000000, 0x0000000000000000}, + [_]u64{0xFFFFFFFF00000000, 0x00000001FFFFFFFF, 0x000000007FFFFFFF, 0x000000017FFFFFFF}, + [_]u64{0xFFFFFFFF00000000, 0x0000000200000000, 0x000000007FFFFFFF, 0x0000000100000000}, + [_]u64{0xFFFFFFFF00000000, 0x0000000200000001, 0x000000007FFFFFFF, 0x0000000080000001}, + [_]u64{0xFFFFFFFF00000000, 0x0000000200000002, 0x000000007FFFFFFF, 0x0000000000000002}, + [_]u64{0xFFFFFFFF00000000, 0x0000000200000003, 0x000000007FFFFFFE, 0x0000000180000006}, + [_]u64{0xFFFFFFFF00000000, 0x0000000200000010, 0x000000007FFFFFFB, 0x0000000100000050}, + [_]u64{0xFFFFFFFF00000000, 0x00000002078644FA, 0x000000007E256849, 0x000000014A8EC4B6}, + [_]u64{0xFFFFFFFF00000000, 0x000000020747AE14, 0x000000007E349CA6, 0x000000016560EF08}, + [_]u64{0xFFFFFFFF00000000, 0x000000027FFFFFFF, 0x0000000066666666, 0x0000000066666666}, + [_]u64{0xFFFFFFFF00000000, 0x0000000280000000, 0x0000000066666666, 0x0000000000000000}, + [_]u64{0xFFFFFFFF00000000, 0x00000002FFFFFFFD, 0x0000000055555555, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFF00000000, 0x00000002FFFFFFFE, 0x0000000055555555, 0x00000000AAAAAAAA}, + [_]u64{0xFFFFFFFF00000000, 0x00000002FFFFFFFF, 0x0000000055555555, 0x0000000055555555}, + [_]u64{0xFFFFFFFF00000000, 0x0000000300000000, 0x0000000055555555, 0x0000000000000000}, + [_]u64{0xFFFFFFFF00000000, 0x0000000300000001, 0x0000000055555554, 0x00000002AAAAAAAC}, + [_]u64{0xFFFFFFFF00000000, 0x0000000300000002, 0x0000000055555554, 0x0000000255555558}, + [_]u64{0xFFFFFFFF00000000, 0x0000000300000003, 0x0000000055555554, 0x0000000200000004}, + [_]u64{0xFFFFFFFF00000000, 0x0000000300000010, 0x0000000055555553, 0x00000000AAAAAAD0}, + [_]u64{0xFFFFFFFF00000000, 0x00000003078644FA, 0x0000000054816148, 0x00000000381FDFB0}, + [_]u64{0xFFFFFFFF00000000, 0x000000030747AE14, 0x00000000548833C6, 0x000000010C416088}, + [_]u64{0xFFFFFFFF00000000, 0x000000037FFFFFFF, 0x0000000049249248, 0x0000000349249248}, + [_]u64{0xFFFFFFFF00000000, 0x0000000380000000, 0x0000000049249248, 0x0000000300000000}, + [_]u64{0xFFFFFFFF00000000, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x00000003BFFFFFFD}, + [_]u64{0xFFFFFFFF00000000, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x000000037FFFFFFE}, + [_]u64{0xFFFFFFFF00000000, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x000000033FFFFFFF}, + [_]u64{0xFFFFFFFF00000000, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000F00000000}, + [_]u64{0xFFFFFFFF00000000, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000EF0000001}, + [_]u64{0xFFFFFFFF00000000, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000EE0000002}, + [_]u64{0xFFFFFFFF00000000, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000ED0000003}, + [_]u64{0xFFFFFFFF00000000, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000E00000010}, + [_]u64{0xFFFFFFFF00000000, 0x00000010078644FA, 0x000000000FF87D43, 0x00000002FFFDE092}, + [_]u64{0xFFFFFFFF00000000, 0x000000100747AE14, 0x000000000FF8BBA0, 0x0000000547AA9780}, + [_]u64{0xFFFFFFFF00000000, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000030F83E0F8}, + [_]u64{0xFFFFFFFF00000000, 0x0000001080000000, 0x000000000F83E0F8, 0x0000000300000000}, + [_]u64{0xFFFFFFFF00000000, 0x00000010FFFFFFFD, 0x000000000F0F0F0F, 0x000000002D2D2D2D}, + [_]u64{0xFFFFFFFF00000000, 0x00000010FFFFFFFE, 0x000000000F0F0F0F, 0x000000001E1E1E1E}, + [_]u64{0xFFFFFFFF00000000, 0x00000010FFFFFFFF, 0x000000000F0F0F0F, 0x000000000F0F0F0F}, + [_]u64{0xFFFFFFFF00000000, 0x078644FA00000000, 0x0000000000000022, 0x002AD6CB00000000}, + [_]u64{0xFFFFFFFF00000000, 0x078644FA00000001, 0x0000000000000022, 0x002AD6CAFFFFFFDE}, + [_]u64{0xFFFFFFFF00000000, 0x078644FA00000002, 0x0000000000000022, 0x002AD6CAFFFFFFBC}, + [_]u64{0xFFFFFFFF00000000, 0x078644FA00000003, 0x0000000000000022, 0x002AD6CAFFFFFF9A}, + [_]u64{0xFFFFFFFF00000000, 0x078644FA00000010, 0x0000000000000022, 0x002AD6CAFFFFFDE0}, + [_]u64{0xFFFFFFFF00000000, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6CA002AD6CC}, + [_]u64{0xFFFFFFFF00000000, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6CA087AE158}, + [_]u64{0xFFFFFFFF00000000, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6BA00000022}, + [_]u64{0xFFFFFFFF00000000, 0x078644FA80000000, 0x0000000000000022, 0x002AD6BA00000000}, + [_]u64{0xFFFFFFFF00000000, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A900000066}, + [_]u64{0xFFFFFFFF00000000, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A900000044}, + [_]u64{0xFFFFFFFF00000000, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A900000022}, + [_]u64{0xFFFFFFFF00000000, 0x0747AE1400000000, 0x0000000000000023, 0x0133334300000000}, + [_]u64{0xFFFFFFFF00000000, 0x0747AE1400000001, 0x0000000000000023, 0x01333342FFFFFFDD}, + [_]u64{0xFFFFFFFF00000000, 0x0747AE1400000002, 0x0000000000000023, 0x01333342FFFFFFBA}, + [_]u64{0xFFFFFFFF00000000, 0x0747AE1400000003, 0x0000000000000023, 0x01333342FFFFFF97}, + [_]u64{0xFFFFFFFF00000000, 0x0747AE1400000010, 0x0000000000000023, 0x01333342FFFFFDD0}, + [_]u64{0xFFFFFFFF00000000, 0x0747AE14078644FA, 0x0000000000000023, 0x01333341F8A491D2}, + [_]u64{0xFFFFFFFF00000000, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334201333344}, + [_]u64{0xFFFFFFFF00000000, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133333180000023}, + [_]u64{0xFFFFFFFF00000000, 0x0747AE1480000000, 0x0000000000000023, 0x0133333180000000}, + [_]u64{0xFFFFFFFF00000000, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133332000000069}, + [_]u64{0xFFFFFFFF00000000, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133332000000046}, + [_]u64{0xFFFFFFFF00000000, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133332000000023}, + [_]u64{0xFFFFFFFF00000000, 0x7FFFFFFF00000000, 0x0000000000000002, 0x0000000100000000}, + [_]u64{0xFFFFFFFF00000000, 0x7FFFFFFF00000001, 0x0000000000000002, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFF00000000, 0x7FFFFFFF00000002, 0x0000000000000002, 0x00000000FFFFFFFC}, + [_]u64{0xFFFFFFFF00000000, 0x7FFFFFFF00000003, 0x0000000000000002, 0x00000000FFFFFFFA}, + [_]u64{0xFFFFFFFF00000000, 0x7FFFFFFF00000010, 0x0000000000000002, 0x00000000FFFFFFE0}, + [_]u64{0xFFFFFFFF00000000, 0x7FFFFFFF078644FA, 0x0000000000000002, 0x00000000F0F3760C}, + [_]u64{0xFFFFFFFF00000000, 0x7FFFFFFF0747AE14, 0x0000000000000002, 0x00000000F170A3D8}, + [_]u64{0xFFFFFFFF00000000, 0x7FFFFFFF7FFFFFFF, 0x0000000000000002, 0x0000000000000002}, + [_]u64{0xFFFFFFFF00000000, 0x7FFFFFFF80000000, 0x0000000000000002, 0x0000000000000000}, + [_]u64{0xFFFFFFFF00000000, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFF00000003}, + [_]u64{0xFFFFFFFF00000000, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFF00000002}, + [_]u64{0xFFFFFFFF00000000, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFF00000001}, + [_]u64{0xFFFFFFFF00000000, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFF00000000}, + [_]u64{0xFFFFFFFF00000000, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFEFFFFFFFF}, + [_]u64{0xFFFFFFFF00000000, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFEFFFFFFFE}, + [_]u64{0xFFFFFFFF00000000, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFEFFFFFFFD}, + [_]u64{0xFFFFFFFF00000000, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFEFFFFFFF0}, + [_]u64{0xFFFFFFFF00000000, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFEF879BB06}, + [_]u64{0xFFFFFFFF00000000, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFEF8B851EC}, + [_]u64{0xFFFFFFFF00000000, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFE80000001}, + [_]u64{0xFFFFFFFF00000000, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFE80000000}, + [_]u64{0xFFFFFFFF00000000, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFE00000003}, + [_]u64{0xFFFFFFFF00000000, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFE00000002}, + [_]u64{0xFFFFFFFF00000000, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFE00000001}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFD00000000, 0x0000000000000001, 0x0000000200000000}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFD00000001, 0x0000000000000001, 0x00000001FFFFFFFF}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFD00000002, 0x0000000000000001, 0x00000001FFFFFFFE}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFD00000003, 0x0000000000000001, 0x00000001FFFFFFFD}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFD00000010, 0x0000000000000001, 0x00000001FFFFFFF0}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x00000001F879BB06}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x00000001F8B851EC}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x0000000180000001}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFD80000000, 0x0000000000000001, 0x0000000180000000}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFDFFFFFFFD, 0x0000000000000001, 0x0000000100000003}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFDFFFFFFFE, 0x0000000000000001, 0x0000000100000002}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFDFFFFFFFF, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFE00000000, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFE00000001, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFE00000002, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFE00000003, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFE00000010, 0x0000000000000001, 0x00000000FFFFFFF0}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFE078644FA, 0x0000000000000001, 0x00000000F879BB06}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFE0747AE14, 0x0000000000000001, 0x00000000F8B851EC}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFE7FFFFFFF, 0x0000000000000001, 0x0000000080000001}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFE80000000, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFEFFFFFFFD, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFEFFFFFFFE, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFEFFFFFFFF, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFF00000000, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFF00000001, 0x0000000000000000, 0xFFFFFFFF00000000}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFF00000002, 0x0000000000000000, 0xFFFFFFFF00000000}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFF00000003, 0x0000000000000000, 0xFFFFFFFF00000000}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFF00000010, 0x0000000000000000, 0xFFFFFFFF00000000}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFF00000000}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFF00000000}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFF00000000}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFF00000000}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFF00000000}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFF00000000}, + [_]u64{0xFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFF00000000}, + [_]u64{0xFFFFFFFF00000001, 0x0000000000000001, 0xFFFFFFFF00000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFF00000001, 0x0000000000000002, 0x7FFFFFFF80000000, 0x0000000000000001}, + [_]u64{0xFFFFFFFF00000001, 0x0000000000000003, 0x5555555500000000, 0x0000000000000001}, + [_]u64{0xFFFFFFFF00000001, 0x0000000000000010, 0x0FFFFFFFF0000000, 0x0000000000000001}, + [_]u64{0xFFFFFFFF00000001, 0x00000000078644FA, 0x0000002205B17ADB, 0x000000000069DA23}, + [_]u64{0xFFFFFFFF00000001, 0x000000000747AE14, 0x000000232A32A558, 0x0000000004414521}, + [_]u64{0xFFFFFFFF00000001, 0x000000007FFFFFFF, 0x0000000200000002, 0x0000000000000003}, + [_]u64{0xFFFFFFFF00000001, 0x0000000080000000, 0x00000001FFFFFFFE, 0x0000000000000001}, + [_]u64{0xFFFFFFFF00000001, 0x00000000FFFFFFFD, 0x0000000100000002, 0x0000000000000007}, + [_]u64{0xFFFFFFFF00000001, 0x00000000FFFFFFFE, 0x0000000100000001, 0x0000000000000003}, + [_]u64{0xFFFFFFFF00000001, 0x00000000FFFFFFFF, 0x0000000100000000, 0x0000000000000001}, + [_]u64{0xFFFFFFFF00000001, 0x0000000100000000, 0x00000000FFFFFFFF, 0x0000000000000001}, + [_]u64{0xFFFFFFFF00000001, 0x0000000100000001, 0x00000000FFFFFFFE, 0x0000000000000003}, + [_]u64{0xFFFFFFFF00000001, 0x0000000100000002, 0x00000000FFFFFFFD, 0x0000000000000007}, + [_]u64{0xFFFFFFFF00000001, 0x0000000100000003, 0x00000000FFFFFFFC, 0x000000000000000D}, + [_]u64{0xFFFFFFFF00000001, 0x0000000100000010, 0x00000000FFFFFFEF, 0x0000000000000111}, + [_]u64{0xFFFFFFFF00000001, 0x00000001078644FA, 0x00000000F8B0BB5B, 0x00000000A302DD23}, + [_]u64{0xFFFFFFFF00000001, 0x000000010747AE14, 0x00000000F8EBDA59, 0x00000000417B730D}, + [_]u64{0xFFFFFFFF00000001, 0x000000017FFFFFFF, 0x00000000AAAAAAAA, 0x00000000AAAAAAAB}, + [_]u64{0xFFFFFFFF00000001, 0x0000000180000000, 0x00000000AAAAAAAA, 0x0000000000000001}, + [_]u64{0xFFFFFFFF00000001, 0x00000001FFFFFFFD, 0x0000000080000000, 0x0000000080000001}, + [_]u64{0xFFFFFFFF00000001, 0x00000001FFFFFFFE, 0x0000000080000000, 0x0000000000000001}, + [_]u64{0xFFFFFFFF00000001, 0x00000001FFFFFFFF, 0x000000007FFFFFFF, 0x0000000180000000}, + [_]u64{0xFFFFFFFF00000001, 0x0000000200000000, 0x000000007FFFFFFF, 0x0000000100000001}, + [_]u64{0xFFFFFFFF00000001, 0x0000000200000001, 0x000000007FFFFFFF, 0x0000000080000002}, + [_]u64{0xFFFFFFFF00000001, 0x0000000200000002, 0x000000007FFFFFFF, 0x0000000000000003}, + [_]u64{0xFFFFFFFF00000001, 0x0000000200000003, 0x000000007FFFFFFE, 0x0000000180000007}, + [_]u64{0xFFFFFFFF00000001, 0x0000000200000010, 0x000000007FFFFFFB, 0x0000000100000051}, + [_]u64{0xFFFFFFFF00000001, 0x00000002078644FA, 0x000000007E256849, 0x000000014A8EC4B7}, + [_]u64{0xFFFFFFFF00000001, 0x000000020747AE14, 0x000000007E349CA6, 0x000000016560EF09}, + [_]u64{0xFFFFFFFF00000001, 0x000000027FFFFFFF, 0x0000000066666666, 0x0000000066666667}, + [_]u64{0xFFFFFFFF00000001, 0x0000000280000000, 0x0000000066666666, 0x0000000000000001}, + [_]u64{0xFFFFFFFF00000001, 0x00000002FFFFFFFD, 0x0000000055555555, 0x0000000100000000}, + [_]u64{0xFFFFFFFF00000001, 0x00000002FFFFFFFE, 0x0000000055555555, 0x00000000AAAAAAAB}, + [_]u64{0xFFFFFFFF00000001, 0x00000002FFFFFFFF, 0x0000000055555555, 0x0000000055555556}, + [_]u64{0xFFFFFFFF00000001, 0x0000000300000000, 0x0000000055555555, 0x0000000000000001}, + [_]u64{0xFFFFFFFF00000001, 0x0000000300000001, 0x0000000055555554, 0x00000002AAAAAAAD}, + [_]u64{0xFFFFFFFF00000001, 0x0000000300000002, 0x0000000055555554, 0x0000000255555559}, + [_]u64{0xFFFFFFFF00000001, 0x0000000300000003, 0x0000000055555554, 0x0000000200000005}, + [_]u64{0xFFFFFFFF00000001, 0x0000000300000010, 0x0000000055555553, 0x00000000AAAAAAD1}, + [_]u64{0xFFFFFFFF00000001, 0x00000003078644FA, 0x0000000054816148, 0x00000000381FDFB1}, + [_]u64{0xFFFFFFFF00000001, 0x000000030747AE14, 0x00000000548833C6, 0x000000010C416089}, + [_]u64{0xFFFFFFFF00000001, 0x000000037FFFFFFF, 0x0000000049249248, 0x0000000349249249}, + [_]u64{0xFFFFFFFF00000001, 0x0000000380000000, 0x0000000049249248, 0x0000000300000001}, + [_]u64{0xFFFFFFFF00000001, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x00000003BFFFFFFE}, + [_]u64{0xFFFFFFFF00000001, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x000000037FFFFFFF}, + [_]u64{0xFFFFFFFF00000001, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x0000000340000000}, + [_]u64{0xFFFFFFFF00000001, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000F00000001}, + [_]u64{0xFFFFFFFF00000001, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000EF0000002}, + [_]u64{0xFFFFFFFF00000001, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000EE0000003}, + [_]u64{0xFFFFFFFF00000001, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000ED0000004}, + [_]u64{0xFFFFFFFF00000001, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000E00000011}, + [_]u64{0xFFFFFFFF00000001, 0x00000010078644FA, 0x000000000FF87D43, 0x00000002FFFDE093}, + [_]u64{0xFFFFFFFF00000001, 0x000000100747AE14, 0x000000000FF8BBA0, 0x0000000547AA9781}, + [_]u64{0xFFFFFFFF00000001, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000030F83E0F9}, + [_]u64{0xFFFFFFFF00000001, 0x0000001080000000, 0x000000000F83E0F8, 0x0000000300000001}, + [_]u64{0xFFFFFFFF00000001, 0x00000010FFFFFFFD, 0x000000000F0F0F0F, 0x000000002D2D2D2E}, + [_]u64{0xFFFFFFFF00000001, 0x00000010FFFFFFFE, 0x000000000F0F0F0F, 0x000000001E1E1E1F}, + [_]u64{0xFFFFFFFF00000001, 0x00000010FFFFFFFF, 0x000000000F0F0F0F, 0x000000000F0F0F10}, + [_]u64{0xFFFFFFFF00000001, 0x078644FA00000000, 0x0000000000000022, 0x002AD6CB00000001}, + [_]u64{0xFFFFFFFF00000001, 0x078644FA00000001, 0x0000000000000022, 0x002AD6CAFFFFFFDF}, + [_]u64{0xFFFFFFFF00000001, 0x078644FA00000002, 0x0000000000000022, 0x002AD6CAFFFFFFBD}, + [_]u64{0xFFFFFFFF00000001, 0x078644FA00000003, 0x0000000000000022, 0x002AD6CAFFFFFF9B}, + [_]u64{0xFFFFFFFF00000001, 0x078644FA00000010, 0x0000000000000022, 0x002AD6CAFFFFFDE1}, + [_]u64{0xFFFFFFFF00000001, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6CA002AD6CD}, + [_]u64{0xFFFFFFFF00000001, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6CA087AE159}, + [_]u64{0xFFFFFFFF00000001, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6BA00000023}, + [_]u64{0xFFFFFFFF00000001, 0x078644FA80000000, 0x0000000000000022, 0x002AD6BA00000001}, + [_]u64{0xFFFFFFFF00000001, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A900000067}, + [_]u64{0xFFFFFFFF00000001, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A900000045}, + [_]u64{0xFFFFFFFF00000001, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A900000023}, + [_]u64{0xFFFFFFFF00000001, 0x0747AE1400000000, 0x0000000000000023, 0x0133334300000001}, + [_]u64{0xFFFFFFFF00000001, 0x0747AE1400000001, 0x0000000000000023, 0x01333342FFFFFFDE}, + [_]u64{0xFFFFFFFF00000001, 0x0747AE1400000002, 0x0000000000000023, 0x01333342FFFFFFBB}, + [_]u64{0xFFFFFFFF00000001, 0x0747AE1400000003, 0x0000000000000023, 0x01333342FFFFFF98}, + [_]u64{0xFFFFFFFF00000001, 0x0747AE1400000010, 0x0000000000000023, 0x01333342FFFFFDD1}, + [_]u64{0xFFFFFFFF00000001, 0x0747AE14078644FA, 0x0000000000000023, 0x01333341F8A491D3}, + [_]u64{0xFFFFFFFF00000001, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334201333345}, + [_]u64{0xFFFFFFFF00000001, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133333180000024}, + [_]u64{0xFFFFFFFF00000001, 0x0747AE1480000000, 0x0000000000000023, 0x0133333180000001}, + [_]u64{0xFFFFFFFF00000001, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x013333200000006A}, + [_]u64{0xFFFFFFFF00000001, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133332000000047}, + [_]u64{0xFFFFFFFF00000001, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133332000000024}, + [_]u64{0xFFFFFFFF00000001, 0x7FFFFFFF00000000, 0x0000000000000002, 0x0000000100000001}, + [_]u64{0xFFFFFFFF00000001, 0x7FFFFFFF00000001, 0x0000000000000002, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFF00000001, 0x7FFFFFFF00000002, 0x0000000000000002, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFF00000001, 0x7FFFFFFF00000003, 0x0000000000000002, 0x00000000FFFFFFFB}, + [_]u64{0xFFFFFFFF00000001, 0x7FFFFFFF00000010, 0x0000000000000002, 0x00000000FFFFFFE1}, + [_]u64{0xFFFFFFFF00000001, 0x7FFFFFFF078644FA, 0x0000000000000002, 0x00000000F0F3760D}, + [_]u64{0xFFFFFFFF00000001, 0x7FFFFFFF0747AE14, 0x0000000000000002, 0x00000000F170A3D9}, + [_]u64{0xFFFFFFFF00000001, 0x7FFFFFFF7FFFFFFF, 0x0000000000000002, 0x0000000000000003}, + [_]u64{0xFFFFFFFF00000001, 0x7FFFFFFF80000000, 0x0000000000000002, 0x0000000000000001}, + [_]u64{0xFFFFFFFF00000001, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFF00000004}, + [_]u64{0xFFFFFFFF00000001, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFF00000003}, + [_]u64{0xFFFFFFFF00000001, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFF00000002}, + [_]u64{0xFFFFFFFF00000001, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFF00000001}, + [_]u64{0xFFFFFFFF00000001, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFF00000000}, + [_]u64{0xFFFFFFFF00000001, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFEFFFFFFFF}, + [_]u64{0xFFFFFFFF00000001, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFEFFFFFFFE}, + [_]u64{0xFFFFFFFF00000001, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFEFFFFFFF1}, + [_]u64{0xFFFFFFFF00000001, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFEF879BB07}, + [_]u64{0xFFFFFFFF00000001, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFEF8B851ED}, + [_]u64{0xFFFFFFFF00000001, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFE80000002}, + [_]u64{0xFFFFFFFF00000001, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFE80000001}, + [_]u64{0xFFFFFFFF00000001, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFE00000004}, + [_]u64{0xFFFFFFFF00000001, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFE00000003}, + [_]u64{0xFFFFFFFF00000001, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFE00000002}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFD00000000, 0x0000000000000001, 0x0000000200000001}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFD00000001, 0x0000000000000001, 0x0000000200000000}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFD00000002, 0x0000000000000001, 0x00000001FFFFFFFF}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFD00000003, 0x0000000000000001, 0x00000001FFFFFFFE}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFD00000010, 0x0000000000000001, 0x00000001FFFFFFF1}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x00000001F879BB07}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x00000001F8B851ED}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x0000000180000002}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFD80000000, 0x0000000000000001, 0x0000000180000001}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFDFFFFFFFD, 0x0000000000000001, 0x0000000100000004}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFDFFFFFFFE, 0x0000000000000001, 0x0000000100000003}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFDFFFFFFFF, 0x0000000000000001, 0x0000000100000002}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFE00000000, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFE00000001, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFE00000002, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFE00000003, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFE00000010, 0x0000000000000001, 0x00000000FFFFFFF1}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFE078644FA, 0x0000000000000001, 0x00000000F879BB07}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFE0747AE14, 0x0000000000000001, 0x00000000F8B851ED}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFE7FFFFFFF, 0x0000000000000001, 0x0000000080000002}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFE80000000, 0x0000000000000001, 0x0000000080000001}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFEFFFFFFFD, 0x0000000000000001, 0x0000000000000004}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFEFFFFFFFE, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFEFFFFFFFF, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFF00000000, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFF00000001, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFF00000002, 0x0000000000000000, 0xFFFFFFFF00000001}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFF00000003, 0x0000000000000000, 0xFFFFFFFF00000001}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFF00000010, 0x0000000000000000, 0xFFFFFFFF00000001}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFF00000001}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFF00000001}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFF00000001}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFF00000001}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFF00000001}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFF00000001}, + [_]u64{0xFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFF00000001}, + [_]u64{0xFFFFFFFF00000002, 0x0000000000000001, 0xFFFFFFFF00000002, 0x0000000000000000}, + [_]u64{0xFFFFFFFF00000002, 0x0000000000000002, 0x7FFFFFFF80000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFF00000002, 0x0000000000000003, 0x5555555500000000, 0x0000000000000002}, + [_]u64{0xFFFFFFFF00000002, 0x0000000000000010, 0x0FFFFFFFF0000000, 0x0000000000000002}, + [_]u64{0xFFFFFFFF00000002, 0x00000000078644FA, 0x0000002205B17ADB, 0x000000000069DA24}, + [_]u64{0xFFFFFFFF00000002, 0x000000000747AE14, 0x000000232A32A558, 0x0000000004414522}, + [_]u64{0xFFFFFFFF00000002, 0x000000007FFFFFFF, 0x0000000200000002, 0x0000000000000004}, + [_]u64{0xFFFFFFFF00000002, 0x0000000080000000, 0x00000001FFFFFFFE, 0x0000000000000002}, + [_]u64{0xFFFFFFFF00000002, 0x00000000FFFFFFFD, 0x0000000100000002, 0x0000000000000008}, + [_]u64{0xFFFFFFFF00000002, 0x00000000FFFFFFFE, 0x0000000100000001, 0x0000000000000004}, + [_]u64{0xFFFFFFFF00000002, 0x00000000FFFFFFFF, 0x0000000100000000, 0x0000000000000002}, + [_]u64{0xFFFFFFFF00000002, 0x0000000100000000, 0x00000000FFFFFFFF, 0x0000000000000002}, + [_]u64{0xFFFFFFFF00000002, 0x0000000100000001, 0x00000000FFFFFFFE, 0x0000000000000004}, + [_]u64{0xFFFFFFFF00000002, 0x0000000100000002, 0x00000000FFFFFFFD, 0x0000000000000008}, + [_]u64{0xFFFFFFFF00000002, 0x0000000100000003, 0x00000000FFFFFFFC, 0x000000000000000E}, + [_]u64{0xFFFFFFFF00000002, 0x0000000100000010, 0x00000000FFFFFFEF, 0x0000000000000112}, + [_]u64{0xFFFFFFFF00000002, 0x00000001078644FA, 0x00000000F8B0BB5B, 0x00000000A302DD24}, + [_]u64{0xFFFFFFFF00000002, 0x000000010747AE14, 0x00000000F8EBDA59, 0x00000000417B730E}, + [_]u64{0xFFFFFFFF00000002, 0x000000017FFFFFFF, 0x00000000AAAAAAAA, 0x00000000AAAAAAAC}, + [_]u64{0xFFFFFFFF00000002, 0x0000000180000000, 0x00000000AAAAAAAA, 0x0000000000000002}, + [_]u64{0xFFFFFFFF00000002, 0x00000001FFFFFFFD, 0x0000000080000000, 0x0000000080000002}, + [_]u64{0xFFFFFFFF00000002, 0x00000001FFFFFFFE, 0x0000000080000000, 0x0000000000000002}, + [_]u64{0xFFFFFFFF00000002, 0x00000001FFFFFFFF, 0x000000007FFFFFFF, 0x0000000180000001}, + [_]u64{0xFFFFFFFF00000002, 0x0000000200000000, 0x000000007FFFFFFF, 0x0000000100000002}, + [_]u64{0xFFFFFFFF00000002, 0x0000000200000001, 0x000000007FFFFFFF, 0x0000000080000003}, + [_]u64{0xFFFFFFFF00000002, 0x0000000200000002, 0x000000007FFFFFFF, 0x0000000000000004}, + [_]u64{0xFFFFFFFF00000002, 0x0000000200000003, 0x000000007FFFFFFE, 0x0000000180000008}, + [_]u64{0xFFFFFFFF00000002, 0x0000000200000010, 0x000000007FFFFFFB, 0x0000000100000052}, + [_]u64{0xFFFFFFFF00000002, 0x00000002078644FA, 0x000000007E256849, 0x000000014A8EC4B8}, + [_]u64{0xFFFFFFFF00000002, 0x000000020747AE14, 0x000000007E349CA6, 0x000000016560EF0A}, + [_]u64{0xFFFFFFFF00000002, 0x000000027FFFFFFF, 0x0000000066666666, 0x0000000066666668}, + [_]u64{0xFFFFFFFF00000002, 0x0000000280000000, 0x0000000066666666, 0x0000000000000002}, + [_]u64{0xFFFFFFFF00000002, 0x00000002FFFFFFFD, 0x0000000055555555, 0x0000000100000001}, + [_]u64{0xFFFFFFFF00000002, 0x00000002FFFFFFFE, 0x0000000055555555, 0x00000000AAAAAAAC}, + [_]u64{0xFFFFFFFF00000002, 0x00000002FFFFFFFF, 0x0000000055555555, 0x0000000055555557}, + [_]u64{0xFFFFFFFF00000002, 0x0000000300000000, 0x0000000055555555, 0x0000000000000002}, + [_]u64{0xFFFFFFFF00000002, 0x0000000300000001, 0x0000000055555554, 0x00000002AAAAAAAE}, + [_]u64{0xFFFFFFFF00000002, 0x0000000300000002, 0x0000000055555554, 0x000000025555555A}, + [_]u64{0xFFFFFFFF00000002, 0x0000000300000003, 0x0000000055555554, 0x0000000200000006}, + [_]u64{0xFFFFFFFF00000002, 0x0000000300000010, 0x0000000055555553, 0x00000000AAAAAAD2}, + [_]u64{0xFFFFFFFF00000002, 0x00000003078644FA, 0x0000000054816148, 0x00000000381FDFB2}, + [_]u64{0xFFFFFFFF00000002, 0x000000030747AE14, 0x00000000548833C6, 0x000000010C41608A}, + [_]u64{0xFFFFFFFF00000002, 0x000000037FFFFFFF, 0x0000000049249248, 0x000000034924924A}, + [_]u64{0xFFFFFFFF00000002, 0x0000000380000000, 0x0000000049249248, 0x0000000300000002}, + [_]u64{0xFFFFFFFF00000002, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x00000003BFFFFFFF}, + [_]u64{0xFFFFFFFF00000002, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x0000000380000000}, + [_]u64{0xFFFFFFFF00000002, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x0000000340000001}, + [_]u64{0xFFFFFFFF00000002, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000F00000002}, + [_]u64{0xFFFFFFFF00000002, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000EF0000003}, + [_]u64{0xFFFFFFFF00000002, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000EE0000004}, + [_]u64{0xFFFFFFFF00000002, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000ED0000005}, + [_]u64{0xFFFFFFFF00000002, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000E00000012}, + [_]u64{0xFFFFFFFF00000002, 0x00000010078644FA, 0x000000000FF87D43, 0x00000002FFFDE094}, + [_]u64{0xFFFFFFFF00000002, 0x000000100747AE14, 0x000000000FF8BBA0, 0x0000000547AA9782}, + [_]u64{0xFFFFFFFF00000002, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000030F83E0FA}, + [_]u64{0xFFFFFFFF00000002, 0x0000001080000000, 0x000000000F83E0F8, 0x0000000300000002}, + [_]u64{0xFFFFFFFF00000002, 0x00000010FFFFFFFD, 0x000000000F0F0F0F, 0x000000002D2D2D2F}, + [_]u64{0xFFFFFFFF00000002, 0x00000010FFFFFFFE, 0x000000000F0F0F0F, 0x000000001E1E1E20}, + [_]u64{0xFFFFFFFF00000002, 0x00000010FFFFFFFF, 0x000000000F0F0F0F, 0x000000000F0F0F11}, + [_]u64{0xFFFFFFFF00000002, 0x078644FA00000000, 0x0000000000000022, 0x002AD6CB00000002}, + [_]u64{0xFFFFFFFF00000002, 0x078644FA00000001, 0x0000000000000022, 0x002AD6CAFFFFFFE0}, + [_]u64{0xFFFFFFFF00000002, 0x078644FA00000002, 0x0000000000000022, 0x002AD6CAFFFFFFBE}, + [_]u64{0xFFFFFFFF00000002, 0x078644FA00000003, 0x0000000000000022, 0x002AD6CAFFFFFF9C}, + [_]u64{0xFFFFFFFF00000002, 0x078644FA00000010, 0x0000000000000022, 0x002AD6CAFFFFFDE2}, + [_]u64{0xFFFFFFFF00000002, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6CA002AD6CE}, + [_]u64{0xFFFFFFFF00000002, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6CA087AE15A}, + [_]u64{0xFFFFFFFF00000002, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6BA00000024}, + [_]u64{0xFFFFFFFF00000002, 0x078644FA80000000, 0x0000000000000022, 0x002AD6BA00000002}, + [_]u64{0xFFFFFFFF00000002, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A900000068}, + [_]u64{0xFFFFFFFF00000002, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A900000046}, + [_]u64{0xFFFFFFFF00000002, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A900000024}, + [_]u64{0xFFFFFFFF00000002, 0x0747AE1400000000, 0x0000000000000023, 0x0133334300000002}, + [_]u64{0xFFFFFFFF00000002, 0x0747AE1400000001, 0x0000000000000023, 0x01333342FFFFFFDF}, + [_]u64{0xFFFFFFFF00000002, 0x0747AE1400000002, 0x0000000000000023, 0x01333342FFFFFFBC}, + [_]u64{0xFFFFFFFF00000002, 0x0747AE1400000003, 0x0000000000000023, 0x01333342FFFFFF99}, + [_]u64{0xFFFFFFFF00000002, 0x0747AE1400000010, 0x0000000000000023, 0x01333342FFFFFDD2}, + [_]u64{0xFFFFFFFF00000002, 0x0747AE14078644FA, 0x0000000000000023, 0x01333341F8A491D4}, + [_]u64{0xFFFFFFFF00000002, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334201333346}, + [_]u64{0xFFFFFFFF00000002, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133333180000025}, + [_]u64{0xFFFFFFFF00000002, 0x0747AE1480000000, 0x0000000000000023, 0x0133333180000002}, + [_]u64{0xFFFFFFFF00000002, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x013333200000006B}, + [_]u64{0xFFFFFFFF00000002, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133332000000048}, + [_]u64{0xFFFFFFFF00000002, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133332000000025}, + [_]u64{0xFFFFFFFF00000002, 0x7FFFFFFF00000000, 0x0000000000000002, 0x0000000100000002}, + [_]u64{0xFFFFFFFF00000002, 0x7FFFFFFF00000001, 0x0000000000000002, 0x0000000100000000}, + [_]u64{0xFFFFFFFF00000002, 0x7FFFFFFF00000002, 0x0000000000000002, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFF00000002, 0x7FFFFFFF00000003, 0x0000000000000002, 0x00000000FFFFFFFC}, + [_]u64{0xFFFFFFFF00000002, 0x7FFFFFFF00000010, 0x0000000000000002, 0x00000000FFFFFFE2}, + [_]u64{0xFFFFFFFF00000002, 0x7FFFFFFF078644FA, 0x0000000000000002, 0x00000000F0F3760E}, + [_]u64{0xFFFFFFFF00000002, 0x7FFFFFFF0747AE14, 0x0000000000000002, 0x00000000F170A3DA}, + [_]u64{0xFFFFFFFF00000002, 0x7FFFFFFF7FFFFFFF, 0x0000000000000002, 0x0000000000000004}, + [_]u64{0xFFFFFFFF00000002, 0x7FFFFFFF80000000, 0x0000000000000002, 0x0000000000000002}, + [_]u64{0xFFFFFFFF00000002, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFF00000005}, + [_]u64{0xFFFFFFFF00000002, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFF00000004}, + [_]u64{0xFFFFFFFF00000002, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFF00000003}, + [_]u64{0xFFFFFFFF00000002, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFF00000002}, + [_]u64{0xFFFFFFFF00000002, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFF00000001}, + [_]u64{0xFFFFFFFF00000002, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFF00000000}, + [_]u64{0xFFFFFFFF00000002, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFEFFFFFFFF}, + [_]u64{0xFFFFFFFF00000002, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFEFFFFFFF2}, + [_]u64{0xFFFFFFFF00000002, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFEF879BB08}, + [_]u64{0xFFFFFFFF00000002, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFEF8B851EE}, + [_]u64{0xFFFFFFFF00000002, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFE80000003}, + [_]u64{0xFFFFFFFF00000002, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFE80000002}, + [_]u64{0xFFFFFFFF00000002, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFE00000005}, + [_]u64{0xFFFFFFFF00000002, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFE00000004}, + [_]u64{0xFFFFFFFF00000002, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFE00000003}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFD00000000, 0x0000000000000001, 0x0000000200000002}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFD00000001, 0x0000000000000001, 0x0000000200000001}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFD00000002, 0x0000000000000001, 0x0000000200000000}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFD00000003, 0x0000000000000001, 0x00000001FFFFFFFF}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFD00000010, 0x0000000000000001, 0x00000001FFFFFFF2}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x00000001F879BB08}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x00000001F8B851EE}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x0000000180000003}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFD80000000, 0x0000000000000001, 0x0000000180000002}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFDFFFFFFFD, 0x0000000000000001, 0x0000000100000005}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFDFFFFFFFE, 0x0000000000000001, 0x0000000100000004}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFDFFFFFFFF, 0x0000000000000001, 0x0000000100000003}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFE00000000, 0x0000000000000001, 0x0000000100000002}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFE00000001, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFE00000002, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFE00000003, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFE00000010, 0x0000000000000001, 0x00000000FFFFFFF2}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFE078644FA, 0x0000000000000001, 0x00000000F879BB08}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFE0747AE14, 0x0000000000000001, 0x00000000F8B851EE}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFE7FFFFFFF, 0x0000000000000001, 0x0000000080000003}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFE80000000, 0x0000000000000001, 0x0000000080000002}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFEFFFFFFFD, 0x0000000000000001, 0x0000000000000005}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFEFFFFFFFE, 0x0000000000000001, 0x0000000000000004}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFEFFFFFFFF, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFF00000000, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFF00000001, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFF00000002, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFF00000003, 0x0000000000000000, 0xFFFFFFFF00000002}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFF00000010, 0x0000000000000000, 0xFFFFFFFF00000002}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFF00000002}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFF00000002}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFF00000002}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFF00000002}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFF00000002}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFF00000002}, + [_]u64{0xFFFFFFFF00000002, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFF00000002}, + [_]u64{0xFFFFFFFF00000003, 0x0000000000000001, 0xFFFFFFFF00000003, 0x0000000000000000}, + [_]u64{0xFFFFFFFF00000003, 0x0000000000000002, 0x7FFFFFFF80000001, 0x0000000000000001}, + [_]u64{0xFFFFFFFF00000003, 0x0000000000000003, 0x5555555500000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFF00000003, 0x0000000000000010, 0x0FFFFFFFF0000000, 0x0000000000000003}, + [_]u64{0xFFFFFFFF00000003, 0x00000000078644FA, 0x0000002205B17ADB, 0x000000000069DA25}, + [_]u64{0xFFFFFFFF00000003, 0x000000000747AE14, 0x000000232A32A558, 0x0000000004414523}, + [_]u64{0xFFFFFFFF00000003, 0x000000007FFFFFFF, 0x0000000200000002, 0x0000000000000005}, + [_]u64{0xFFFFFFFF00000003, 0x0000000080000000, 0x00000001FFFFFFFE, 0x0000000000000003}, + [_]u64{0xFFFFFFFF00000003, 0x00000000FFFFFFFD, 0x0000000100000002, 0x0000000000000009}, + [_]u64{0xFFFFFFFF00000003, 0x00000000FFFFFFFE, 0x0000000100000001, 0x0000000000000005}, + [_]u64{0xFFFFFFFF00000003, 0x00000000FFFFFFFF, 0x0000000100000000, 0x0000000000000003}, + [_]u64{0xFFFFFFFF00000003, 0x0000000100000000, 0x00000000FFFFFFFF, 0x0000000000000003}, + [_]u64{0xFFFFFFFF00000003, 0x0000000100000001, 0x00000000FFFFFFFE, 0x0000000000000005}, + [_]u64{0xFFFFFFFF00000003, 0x0000000100000002, 0x00000000FFFFFFFD, 0x0000000000000009}, + [_]u64{0xFFFFFFFF00000003, 0x0000000100000003, 0x00000000FFFFFFFC, 0x000000000000000F}, + [_]u64{0xFFFFFFFF00000003, 0x0000000100000010, 0x00000000FFFFFFEF, 0x0000000000000113}, + [_]u64{0xFFFFFFFF00000003, 0x00000001078644FA, 0x00000000F8B0BB5B, 0x00000000A302DD25}, + [_]u64{0xFFFFFFFF00000003, 0x000000010747AE14, 0x00000000F8EBDA59, 0x00000000417B730F}, + [_]u64{0xFFFFFFFF00000003, 0x000000017FFFFFFF, 0x00000000AAAAAAAA, 0x00000000AAAAAAAD}, + [_]u64{0xFFFFFFFF00000003, 0x0000000180000000, 0x00000000AAAAAAAA, 0x0000000000000003}, + [_]u64{0xFFFFFFFF00000003, 0x00000001FFFFFFFD, 0x0000000080000000, 0x0000000080000003}, + [_]u64{0xFFFFFFFF00000003, 0x00000001FFFFFFFE, 0x0000000080000000, 0x0000000000000003}, + [_]u64{0xFFFFFFFF00000003, 0x00000001FFFFFFFF, 0x000000007FFFFFFF, 0x0000000180000002}, + [_]u64{0xFFFFFFFF00000003, 0x0000000200000000, 0x000000007FFFFFFF, 0x0000000100000003}, + [_]u64{0xFFFFFFFF00000003, 0x0000000200000001, 0x000000007FFFFFFF, 0x0000000080000004}, + [_]u64{0xFFFFFFFF00000003, 0x0000000200000002, 0x000000007FFFFFFF, 0x0000000000000005}, + [_]u64{0xFFFFFFFF00000003, 0x0000000200000003, 0x000000007FFFFFFE, 0x0000000180000009}, + [_]u64{0xFFFFFFFF00000003, 0x0000000200000010, 0x000000007FFFFFFB, 0x0000000100000053}, + [_]u64{0xFFFFFFFF00000003, 0x00000002078644FA, 0x000000007E256849, 0x000000014A8EC4B9}, + [_]u64{0xFFFFFFFF00000003, 0x000000020747AE14, 0x000000007E349CA6, 0x000000016560EF0B}, + [_]u64{0xFFFFFFFF00000003, 0x000000027FFFFFFF, 0x0000000066666666, 0x0000000066666669}, + [_]u64{0xFFFFFFFF00000003, 0x0000000280000000, 0x0000000066666666, 0x0000000000000003}, + [_]u64{0xFFFFFFFF00000003, 0x00000002FFFFFFFD, 0x0000000055555555, 0x0000000100000002}, + [_]u64{0xFFFFFFFF00000003, 0x00000002FFFFFFFE, 0x0000000055555555, 0x00000000AAAAAAAD}, + [_]u64{0xFFFFFFFF00000003, 0x00000002FFFFFFFF, 0x0000000055555555, 0x0000000055555558}, + [_]u64{0xFFFFFFFF00000003, 0x0000000300000000, 0x0000000055555555, 0x0000000000000003}, + [_]u64{0xFFFFFFFF00000003, 0x0000000300000001, 0x0000000055555554, 0x00000002AAAAAAAF}, + [_]u64{0xFFFFFFFF00000003, 0x0000000300000002, 0x0000000055555554, 0x000000025555555B}, + [_]u64{0xFFFFFFFF00000003, 0x0000000300000003, 0x0000000055555554, 0x0000000200000007}, + [_]u64{0xFFFFFFFF00000003, 0x0000000300000010, 0x0000000055555553, 0x00000000AAAAAAD3}, + [_]u64{0xFFFFFFFF00000003, 0x00000003078644FA, 0x0000000054816148, 0x00000000381FDFB3}, + [_]u64{0xFFFFFFFF00000003, 0x000000030747AE14, 0x00000000548833C6, 0x000000010C41608B}, + [_]u64{0xFFFFFFFF00000003, 0x000000037FFFFFFF, 0x0000000049249248, 0x000000034924924B}, + [_]u64{0xFFFFFFFF00000003, 0x0000000380000000, 0x0000000049249248, 0x0000000300000003}, + [_]u64{0xFFFFFFFF00000003, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x00000003C0000000}, + [_]u64{0xFFFFFFFF00000003, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x0000000380000001}, + [_]u64{0xFFFFFFFF00000003, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x0000000340000002}, + [_]u64{0xFFFFFFFF00000003, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000F00000003}, + [_]u64{0xFFFFFFFF00000003, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000EF0000004}, + [_]u64{0xFFFFFFFF00000003, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000EE0000005}, + [_]u64{0xFFFFFFFF00000003, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000ED0000006}, + [_]u64{0xFFFFFFFF00000003, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000E00000013}, + [_]u64{0xFFFFFFFF00000003, 0x00000010078644FA, 0x000000000FF87D43, 0x00000002FFFDE095}, + [_]u64{0xFFFFFFFF00000003, 0x000000100747AE14, 0x000000000FF8BBA0, 0x0000000547AA9783}, + [_]u64{0xFFFFFFFF00000003, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000030F83E0FB}, + [_]u64{0xFFFFFFFF00000003, 0x0000001080000000, 0x000000000F83E0F8, 0x0000000300000003}, + [_]u64{0xFFFFFFFF00000003, 0x00000010FFFFFFFD, 0x000000000F0F0F0F, 0x000000002D2D2D30}, + [_]u64{0xFFFFFFFF00000003, 0x00000010FFFFFFFE, 0x000000000F0F0F0F, 0x000000001E1E1E21}, + [_]u64{0xFFFFFFFF00000003, 0x00000010FFFFFFFF, 0x000000000F0F0F0F, 0x000000000F0F0F12}, + [_]u64{0xFFFFFFFF00000003, 0x078644FA00000000, 0x0000000000000022, 0x002AD6CB00000003}, + [_]u64{0xFFFFFFFF00000003, 0x078644FA00000001, 0x0000000000000022, 0x002AD6CAFFFFFFE1}, + [_]u64{0xFFFFFFFF00000003, 0x078644FA00000002, 0x0000000000000022, 0x002AD6CAFFFFFFBF}, + [_]u64{0xFFFFFFFF00000003, 0x078644FA00000003, 0x0000000000000022, 0x002AD6CAFFFFFF9D}, + [_]u64{0xFFFFFFFF00000003, 0x078644FA00000010, 0x0000000000000022, 0x002AD6CAFFFFFDE3}, + [_]u64{0xFFFFFFFF00000003, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6CA002AD6CF}, + [_]u64{0xFFFFFFFF00000003, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6CA087AE15B}, + [_]u64{0xFFFFFFFF00000003, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6BA00000025}, + [_]u64{0xFFFFFFFF00000003, 0x078644FA80000000, 0x0000000000000022, 0x002AD6BA00000003}, + [_]u64{0xFFFFFFFF00000003, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A900000069}, + [_]u64{0xFFFFFFFF00000003, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A900000047}, + [_]u64{0xFFFFFFFF00000003, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A900000025}, + [_]u64{0xFFFFFFFF00000003, 0x0747AE1400000000, 0x0000000000000023, 0x0133334300000003}, + [_]u64{0xFFFFFFFF00000003, 0x0747AE1400000001, 0x0000000000000023, 0x01333342FFFFFFE0}, + [_]u64{0xFFFFFFFF00000003, 0x0747AE1400000002, 0x0000000000000023, 0x01333342FFFFFFBD}, + [_]u64{0xFFFFFFFF00000003, 0x0747AE1400000003, 0x0000000000000023, 0x01333342FFFFFF9A}, + [_]u64{0xFFFFFFFF00000003, 0x0747AE1400000010, 0x0000000000000023, 0x01333342FFFFFDD3}, + [_]u64{0xFFFFFFFF00000003, 0x0747AE14078644FA, 0x0000000000000023, 0x01333341F8A491D5}, + [_]u64{0xFFFFFFFF00000003, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334201333347}, + [_]u64{0xFFFFFFFF00000003, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133333180000026}, + [_]u64{0xFFFFFFFF00000003, 0x0747AE1480000000, 0x0000000000000023, 0x0133333180000003}, + [_]u64{0xFFFFFFFF00000003, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x013333200000006C}, + [_]u64{0xFFFFFFFF00000003, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133332000000049}, + [_]u64{0xFFFFFFFF00000003, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133332000000026}, + [_]u64{0xFFFFFFFF00000003, 0x7FFFFFFF00000000, 0x0000000000000002, 0x0000000100000003}, + [_]u64{0xFFFFFFFF00000003, 0x7FFFFFFF00000001, 0x0000000000000002, 0x0000000100000001}, + [_]u64{0xFFFFFFFF00000003, 0x7FFFFFFF00000002, 0x0000000000000002, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFF00000003, 0x7FFFFFFF00000003, 0x0000000000000002, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFF00000003, 0x7FFFFFFF00000010, 0x0000000000000002, 0x00000000FFFFFFE3}, + [_]u64{0xFFFFFFFF00000003, 0x7FFFFFFF078644FA, 0x0000000000000002, 0x00000000F0F3760F}, + [_]u64{0xFFFFFFFF00000003, 0x7FFFFFFF0747AE14, 0x0000000000000002, 0x00000000F170A3DB}, + [_]u64{0xFFFFFFFF00000003, 0x7FFFFFFF7FFFFFFF, 0x0000000000000002, 0x0000000000000005}, + [_]u64{0xFFFFFFFF00000003, 0x7FFFFFFF80000000, 0x0000000000000002, 0x0000000000000003}, + [_]u64{0xFFFFFFFF00000003, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFF00000006}, + [_]u64{0xFFFFFFFF00000003, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFF00000005}, + [_]u64{0xFFFFFFFF00000003, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFF00000004}, + [_]u64{0xFFFFFFFF00000003, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFF00000003}, + [_]u64{0xFFFFFFFF00000003, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFF00000002}, + [_]u64{0xFFFFFFFF00000003, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFF00000001}, + [_]u64{0xFFFFFFFF00000003, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFF00000000}, + [_]u64{0xFFFFFFFF00000003, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFEFFFFFFF3}, + [_]u64{0xFFFFFFFF00000003, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFEF879BB09}, + [_]u64{0xFFFFFFFF00000003, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFEF8B851EF}, + [_]u64{0xFFFFFFFF00000003, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFE80000004}, + [_]u64{0xFFFFFFFF00000003, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFE80000003}, + [_]u64{0xFFFFFFFF00000003, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFE00000006}, + [_]u64{0xFFFFFFFF00000003, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFE00000005}, + [_]u64{0xFFFFFFFF00000003, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFE00000004}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFD00000000, 0x0000000000000001, 0x0000000200000003}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFD00000001, 0x0000000000000001, 0x0000000200000002}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFD00000002, 0x0000000000000001, 0x0000000200000001}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFD00000003, 0x0000000000000001, 0x0000000200000000}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFD00000010, 0x0000000000000001, 0x00000001FFFFFFF3}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x00000001F879BB09}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x00000001F8B851EF}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x0000000180000004}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFD80000000, 0x0000000000000001, 0x0000000180000003}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFDFFFFFFFD, 0x0000000000000001, 0x0000000100000006}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFDFFFFFFFE, 0x0000000000000001, 0x0000000100000005}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFDFFFFFFFF, 0x0000000000000001, 0x0000000100000004}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFE00000000, 0x0000000000000001, 0x0000000100000003}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFE00000001, 0x0000000000000001, 0x0000000100000002}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFE00000002, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFE00000003, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFE00000010, 0x0000000000000001, 0x00000000FFFFFFF3}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFE078644FA, 0x0000000000000001, 0x00000000F879BB09}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFE0747AE14, 0x0000000000000001, 0x00000000F8B851EF}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFE7FFFFFFF, 0x0000000000000001, 0x0000000080000004}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFE80000000, 0x0000000000000001, 0x0000000080000003}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFEFFFFFFFD, 0x0000000000000001, 0x0000000000000006}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFEFFFFFFFE, 0x0000000000000001, 0x0000000000000005}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFEFFFFFFFF, 0x0000000000000001, 0x0000000000000004}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFF00000000, 0x0000000000000001, 0x0000000000000003}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFF00000001, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFF00000002, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFF00000003, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFF00000010, 0x0000000000000000, 0xFFFFFFFF00000003}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFF00000003}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFF00000003}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFF00000003}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFF00000003}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFF00000003}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFF00000003}, + [_]u64{0xFFFFFFFF00000003, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFF00000003}, + [_]u64{0xFFFFFFFF00000010, 0x0000000000000001, 0xFFFFFFFF00000010, 0x0000000000000000}, + [_]u64{0xFFFFFFFF00000010, 0x0000000000000002, 0x7FFFFFFF80000008, 0x0000000000000000}, + [_]u64{0xFFFFFFFF00000010, 0x0000000000000003, 0x5555555500000005, 0x0000000000000001}, + [_]u64{0xFFFFFFFF00000010, 0x0000000000000010, 0x0FFFFFFFF0000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFF00000010, 0x00000000078644FA, 0x0000002205B17ADB, 0x000000000069DA32}, + [_]u64{0xFFFFFFFF00000010, 0x000000000747AE14, 0x000000232A32A558, 0x0000000004414530}, + [_]u64{0xFFFFFFFF00000010, 0x000000007FFFFFFF, 0x0000000200000002, 0x0000000000000012}, + [_]u64{0xFFFFFFFF00000010, 0x0000000080000000, 0x00000001FFFFFFFE, 0x0000000000000010}, + [_]u64{0xFFFFFFFF00000010, 0x00000000FFFFFFFD, 0x0000000100000002, 0x0000000000000016}, + [_]u64{0xFFFFFFFF00000010, 0x00000000FFFFFFFE, 0x0000000100000001, 0x0000000000000012}, + [_]u64{0xFFFFFFFF00000010, 0x00000000FFFFFFFF, 0x0000000100000000, 0x0000000000000010}, + [_]u64{0xFFFFFFFF00000010, 0x0000000100000000, 0x00000000FFFFFFFF, 0x0000000000000010}, + [_]u64{0xFFFFFFFF00000010, 0x0000000100000001, 0x00000000FFFFFFFE, 0x0000000000000012}, + [_]u64{0xFFFFFFFF00000010, 0x0000000100000002, 0x00000000FFFFFFFD, 0x0000000000000016}, + [_]u64{0xFFFFFFFF00000010, 0x0000000100000003, 0x00000000FFFFFFFC, 0x000000000000001C}, + [_]u64{0xFFFFFFFF00000010, 0x0000000100000010, 0x00000000FFFFFFEF, 0x0000000000000120}, + [_]u64{0xFFFFFFFF00000010, 0x00000001078644FA, 0x00000000F8B0BB5B, 0x00000000A302DD32}, + [_]u64{0xFFFFFFFF00000010, 0x000000010747AE14, 0x00000000F8EBDA59, 0x00000000417B731C}, + [_]u64{0xFFFFFFFF00000010, 0x000000017FFFFFFF, 0x00000000AAAAAAAA, 0x00000000AAAAAABA}, + [_]u64{0xFFFFFFFF00000010, 0x0000000180000000, 0x00000000AAAAAAAA, 0x0000000000000010}, + [_]u64{0xFFFFFFFF00000010, 0x00000001FFFFFFFD, 0x0000000080000000, 0x0000000080000010}, + [_]u64{0xFFFFFFFF00000010, 0x00000001FFFFFFFE, 0x0000000080000000, 0x0000000000000010}, + [_]u64{0xFFFFFFFF00000010, 0x00000001FFFFFFFF, 0x000000007FFFFFFF, 0x000000018000000F}, + [_]u64{0xFFFFFFFF00000010, 0x0000000200000000, 0x000000007FFFFFFF, 0x0000000100000010}, + [_]u64{0xFFFFFFFF00000010, 0x0000000200000001, 0x000000007FFFFFFF, 0x0000000080000011}, + [_]u64{0xFFFFFFFF00000010, 0x0000000200000002, 0x000000007FFFFFFF, 0x0000000000000012}, + [_]u64{0xFFFFFFFF00000010, 0x0000000200000003, 0x000000007FFFFFFE, 0x0000000180000016}, + [_]u64{0xFFFFFFFF00000010, 0x0000000200000010, 0x000000007FFFFFFB, 0x0000000100000060}, + [_]u64{0xFFFFFFFF00000010, 0x00000002078644FA, 0x000000007E256849, 0x000000014A8EC4C6}, + [_]u64{0xFFFFFFFF00000010, 0x000000020747AE14, 0x000000007E349CA6, 0x000000016560EF18}, + [_]u64{0xFFFFFFFF00000010, 0x000000027FFFFFFF, 0x0000000066666666, 0x0000000066666676}, + [_]u64{0xFFFFFFFF00000010, 0x0000000280000000, 0x0000000066666666, 0x0000000000000010}, + [_]u64{0xFFFFFFFF00000010, 0x00000002FFFFFFFD, 0x0000000055555555, 0x000000010000000F}, + [_]u64{0xFFFFFFFF00000010, 0x00000002FFFFFFFE, 0x0000000055555555, 0x00000000AAAAAABA}, + [_]u64{0xFFFFFFFF00000010, 0x00000002FFFFFFFF, 0x0000000055555555, 0x0000000055555565}, + [_]u64{0xFFFFFFFF00000010, 0x0000000300000000, 0x0000000055555555, 0x0000000000000010}, + [_]u64{0xFFFFFFFF00000010, 0x0000000300000001, 0x0000000055555554, 0x00000002AAAAAABC}, + [_]u64{0xFFFFFFFF00000010, 0x0000000300000002, 0x0000000055555554, 0x0000000255555568}, + [_]u64{0xFFFFFFFF00000010, 0x0000000300000003, 0x0000000055555554, 0x0000000200000014}, + [_]u64{0xFFFFFFFF00000010, 0x0000000300000010, 0x0000000055555553, 0x00000000AAAAAAE0}, + [_]u64{0xFFFFFFFF00000010, 0x00000003078644FA, 0x0000000054816148, 0x00000000381FDFC0}, + [_]u64{0xFFFFFFFF00000010, 0x000000030747AE14, 0x00000000548833C6, 0x000000010C416098}, + [_]u64{0xFFFFFFFF00000010, 0x000000037FFFFFFF, 0x0000000049249248, 0x0000000349249258}, + [_]u64{0xFFFFFFFF00000010, 0x0000000380000000, 0x0000000049249248, 0x0000000300000010}, + [_]u64{0xFFFFFFFF00000010, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x00000003C000000D}, + [_]u64{0xFFFFFFFF00000010, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x000000038000000E}, + [_]u64{0xFFFFFFFF00000010, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x000000034000000F}, + [_]u64{0xFFFFFFFF00000010, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000F00000010}, + [_]u64{0xFFFFFFFF00000010, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000EF0000011}, + [_]u64{0xFFFFFFFF00000010, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000EE0000012}, + [_]u64{0xFFFFFFFF00000010, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000ED0000013}, + [_]u64{0xFFFFFFFF00000010, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000E00000020}, + [_]u64{0xFFFFFFFF00000010, 0x00000010078644FA, 0x000000000FF87D43, 0x00000002FFFDE0A2}, + [_]u64{0xFFFFFFFF00000010, 0x000000100747AE14, 0x000000000FF8BBA0, 0x0000000547AA9790}, + [_]u64{0xFFFFFFFF00000010, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000030F83E108}, + [_]u64{0xFFFFFFFF00000010, 0x0000001080000000, 0x000000000F83E0F8, 0x0000000300000010}, + [_]u64{0xFFFFFFFF00000010, 0x00000010FFFFFFFD, 0x000000000F0F0F0F, 0x000000002D2D2D3D}, + [_]u64{0xFFFFFFFF00000010, 0x00000010FFFFFFFE, 0x000000000F0F0F0F, 0x000000001E1E1E2E}, + [_]u64{0xFFFFFFFF00000010, 0x00000010FFFFFFFF, 0x000000000F0F0F0F, 0x000000000F0F0F1F}, + [_]u64{0xFFFFFFFF00000010, 0x078644FA00000000, 0x0000000000000022, 0x002AD6CB00000010}, + [_]u64{0xFFFFFFFF00000010, 0x078644FA00000001, 0x0000000000000022, 0x002AD6CAFFFFFFEE}, + [_]u64{0xFFFFFFFF00000010, 0x078644FA00000002, 0x0000000000000022, 0x002AD6CAFFFFFFCC}, + [_]u64{0xFFFFFFFF00000010, 0x078644FA00000003, 0x0000000000000022, 0x002AD6CAFFFFFFAA}, + [_]u64{0xFFFFFFFF00000010, 0x078644FA00000010, 0x0000000000000022, 0x002AD6CAFFFFFDF0}, + [_]u64{0xFFFFFFFF00000010, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6CA002AD6DC}, + [_]u64{0xFFFFFFFF00000010, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6CA087AE168}, + [_]u64{0xFFFFFFFF00000010, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6BA00000032}, + [_]u64{0xFFFFFFFF00000010, 0x078644FA80000000, 0x0000000000000022, 0x002AD6BA00000010}, + [_]u64{0xFFFFFFFF00000010, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A900000076}, + [_]u64{0xFFFFFFFF00000010, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A900000054}, + [_]u64{0xFFFFFFFF00000010, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A900000032}, + [_]u64{0xFFFFFFFF00000010, 0x0747AE1400000000, 0x0000000000000023, 0x0133334300000010}, + [_]u64{0xFFFFFFFF00000010, 0x0747AE1400000001, 0x0000000000000023, 0x01333342FFFFFFED}, + [_]u64{0xFFFFFFFF00000010, 0x0747AE1400000002, 0x0000000000000023, 0x01333342FFFFFFCA}, + [_]u64{0xFFFFFFFF00000010, 0x0747AE1400000003, 0x0000000000000023, 0x01333342FFFFFFA7}, + [_]u64{0xFFFFFFFF00000010, 0x0747AE1400000010, 0x0000000000000023, 0x01333342FFFFFDE0}, + [_]u64{0xFFFFFFFF00000010, 0x0747AE14078644FA, 0x0000000000000023, 0x01333341F8A491E2}, + [_]u64{0xFFFFFFFF00000010, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334201333354}, + [_]u64{0xFFFFFFFF00000010, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133333180000033}, + [_]u64{0xFFFFFFFF00000010, 0x0747AE1480000000, 0x0000000000000023, 0x0133333180000010}, + [_]u64{0xFFFFFFFF00000010, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133332000000079}, + [_]u64{0xFFFFFFFF00000010, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133332000000056}, + [_]u64{0xFFFFFFFF00000010, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133332000000033}, + [_]u64{0xFFFFFFFF00000010, 0x7FFFFFFF00000000, 0x0000000000000002, 0x0000000100000010}, + [_]u64{0xFFFFFFFF00000010, 0x7FFFFFFF00000001, 0x0000000000000002, 0x000000010000000E}, + [_]u64{0xFFFFFFFF00000010, 0x7FFFFFFF00000002, 0x0000000000000002, 0x000000010000000C}, + [_]u64{0xFFFFFFFF00000010, 0x7FFFFFFF00000003, 0x0000000000000002, 0x000000010000000A}, + [_]u64{0xFFFFFFFF00000010, 0x7FFFFFFF00000010, 0x0000000000000002, 0x00000000FFFFFFF0}, + [_]u64{0xFFFFFFFF00000010, 0x7FFFFFFF078644FA, 0x0000000000000002, 0x00000000F0F3761C}, + [_]u64{0xFFFFFFFF00000010, 0x7FFFFFFF0747AE14, 0x0000000000000002, 0x00000000F170A3E8}, + [_]u64{0xFFFFFFFF00000010, 0x7FFFFFFF7FFFFFFF, 0x0000000000000002, 0x0000000000000012}, + [_]u64{0xFFFFFFFF00000010, 0x7FFFFFFF80000000, 0x0000000000000002, 0x0000000000000010}, + [_]u64{0xFFFFFFFF00000010, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFF00000013}, + [_]u64{0xFFFFFFFF00000010, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFF00000012}, + [_]u64{0xFFFFFFFF00000010, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFF00000011}, + [_]u64{0xFFFFFFFF00000010, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFF00000010}, + [_]u64{0xFFFFFFFF00000010, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFF0000000F}, + [_]u64{0xFFFFFFFF00000010, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFF0000000E}, + [_]u64{0xFFFFFFFF00000010, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFF0000000D}, + [_]u64{0xFFFFFFFF00000010, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFF00000000}, + [_]u64{0xFFFFFFFF00000010, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFEF879BB16}, + [_]u64{0xFFFFFFFF00000010, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFEF8B851FC}, + [_]u64{0xFFFFFFFF00000010, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFE80000011}, + [_]u64{0xFFFFFFFF00000010, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFE80000010}, + [_]u64{0xFFFFFFFF00000010, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFE00000013}, + [_]u64{0xFFFFFFFF00000010, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFE00000012}, + [_]u64{0xFFFFFFFF00000010, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFE00000011}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFD00000000, 0x0000000000000001, 0x0000000200000010}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFD00000001, 0x0000000000000001, 0x000000020000000F}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFD00000002, 0x0000000000000001, 0x000000020000000E}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFD00000003, 0x0000000000000001, 0x000000020000000D}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFD00000010, 0x0000000000000001, 0x0000000200000000}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x00000001F879BB16}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x00000001F8B851FC}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x0000000180000011}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFD80000000, 0x0000000000000001, 0x0000000180000010}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFDFFFFFFFD, 0x0000000000000001, 0x0000000100000013}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFDFFFFFFFE, 0x0000000000000001, 0x0000000100000012}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFDFFFFFFFF, 0x0000000000000001, 0x0000000100000011}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFE00000000, 0x0000000000000001, 0x0000000100000010}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFE00000001, 0x0000000000000001, 0x000000010000000F}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFE00000002, 0x0000000000000001, 0x000000010000000E}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFE00000003, 0x0000000000000001, 0x000000010000000D}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFE00000010, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFE078644FA, 0x0000000000000001, 0x00000000F879BB16}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFE0747AE14, 0x0000000000000001, 0x00000000F8B851FC}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFE7FFFFFFF, 0x0000000000000001, 0x0000000080000011}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFE80000000, 0x0000000000000001, 0x0000000080000010}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFEFFFFFFFD, 0x0000000000000001, 0x0000000000000013}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFEFFFFFFFE, 0x0000000000000001, 0x0000000000000012}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFEFFFFFFFF, 0x0000000000000001, 0x0000000000000011}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFF00000000, 0x0000000000000001, 0x0000000000000010}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFF00000001, 0x0000000000000001, 0x000000000000000F}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFF00000002, 0x0000000000000001, 0x000000000000000E}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFF00000003, 0x0000000000000001, 0x000000000000000D}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFF00000010, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFF00000010}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFF0747AE14, 0x0000000000000000, 0xFFFFFFFF00000010}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFF00000010}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFF00000010}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFF00000010}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFF00000010}, + [_]u64{0xFFFFFFFF00000010, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFF00000010}, + [_]u64{0xFFFFFFFF078644FA, 0x0000000000000001, 0xFFFFFFFF078644FA, 0x0000000000000000}, + [_]u64{0xFFFFFFFF078644FA, 0x0000000000000002, 0x7FFFFFFF83C3227D, 0x0000000000000000}, + [_]u64{0xFFFFFFFF078644FA, 0x0000000000000003, 0x55555555028216FE, 0x0000000000000000}, + [_]u64{0xFFFFFFFF078644FA, 0x0000000000000010, 0x0FFFFFFFF078644F, 0x000000000000000A}, + [_]u64{0xFFFFFFFF078644FA, 0x00000000078644FA, 0x0000002205B17ADC, 0x000000000069DA22}, + [_]u64{0xFFFFFFFF078644FA, 0x000000000747AE14, 0x000000232A32A559, 0x00000000047FDC06}, + [_]u64{0xFFFFFFFF078644FA, 0x000000007FFFFFFF, 0x0000000200000002, 0x00000000078644FC}, + [_]u64{0xFFFFFFFF078644FA, 0x0000000080000000, 0x00000001FFFFFFFE, 0x00000000078644FA}, + [_]u64{0xFFFFFFFF078644FA, 0x00000000FFFFFFFD, 0x0000000100000002, 0x0000000007864500}, + [_]u64{0xFFFFFFFF078644FA, 0x00000000FFFFFFFE, 0x0000000100000001, 0x00000000078644FC}, + [_]u64{0xFFFFFFFF078644FA, 0x00000000FFFFFFFF, 0x0000000100000000, 0x00000000078644FA}, + [_]u64{0xFFFFFFFF078644FA, 0x0000000100000000, 0x00000000FFFFFFFF, 0x00000000078644FA}, + [_]u64{0xFFFFFFFF078644FA, 0x0000000100000001, 0x00000000FFFFFFFE, 0x00000000078644FC}, + [_]u64{0xFFFFFFFF078644FA, 0x0000000100000002, 0x00000000FFFFFFFD, 0x0000000007864500}, + [_]u64{0xFFFFFFFF078644FA, 0x0000000100000003, 0x00000000FFFFFFFC, 0x0000000007864506}, + [_]u64{0xFFFFFFFF078644FA, 0x0000000100000010, 0x00000000FFFFFFEF, 0x000000000786460A}, + [_]u64{0xFFFFFFFF078644FA, 0x00000001078644FA, 0x00000000F8B0BB5B, 0x00000000AA89221C}, + [_]u64{0xFFFFFFFF078644FA, 0x000000010747AE14, 0x00000000F8EBDA59, 0x000000004901B806}, + [_]u64{0xFFFFFFFF078644FA, 0x000000017FFFFFFF, 0x00000000AAAAAAAA, 0x00000000B230EFA4}, + [_]u64{0xFFFFFFFF078644FA, 0x0000000180000000, 0x00000000AAAAAAAA, 0x00000000078644FA}, + [_]u64{0xFFFFFFFF078644FA, 0x00000001FFFFFFFD, 0x0000000080000000, 0x00000000878644FA}, + [_]u64{0xFFFFFFFF078644FA, 0x00000001FFFFFFFE, 0x0000000080000000, 0x00000000078644FA}, + [_]u64{0xFFFFFFFF078644FA, 0x00000001FFFFFFFF, 0x000000007FFFFFFF, 0x00000001878644F9}, + [_]u64{0xFFFFFFFF078644FA, 0x0000000200000000, 0x000000007FFFFFFF, 0x00000001078644FA}, + [_]u64{0xFFFFFFFF078644FA, 0x0000000200000001, 0x000000007FFFFFFF, 0x00000000878644FB}, + [_]u64{0xFFFFFFFF078644FA, 0x0000000200000002, 0x000000007FFFFFFF, 0x00000000078644FC}, + [_]u64{0xFFFFFFFF078644FA, 0x0000000200000003, 0x000000007FFFFFFE, 0x0000000187864500}, + [_]u64{0xFFFFFFFF078644FA, 0x0000000200000010, 0x000000007FFFFFFB, 0x000000010786454A}, + [_]u64{0xFFFFFFFF078644FA, 0x00000002078644FA, 0x000000007E256849, 0x00000001521509B0}, + [_]u64{0xFFFFFFFF078644FA, 0x000000020747AE14, 0x000000007E349CA6, 0x000000016CE73402}, + [_]u64{0xFFFFFFFF078644FA, 0x000000027FFFFFFF, 0x0000000066666666, 0x000000006DECAB60}, + [_]u64{0xFFFFFFFF078644FA, 0x0000000280000000, 0x0000000066666666, 0x00000000078644FA}, + [_]u64{0xFFFFFFFF078644FA, 0x00000002FFFFFFFD, 0x0000000055555555, 0x00000001078644F9}, + [_]u64{0xFFFFFFFF078644FA, 0x00000002FFFFFFFE, 0x0000000055555555, 0x00000000B230EFA4}, + [_]u64{0xFFFFFFFF078644FA, 0x00000002FFFFFFFF, 0x0000000055555555, 0x000000005CDB9A4F}, + [_]u64{0xFFFFFFFF078644FA, 0x0000000300000000, 0x0000000055555555, 0x00000000078644FA}, + [_]u64{0xFFFFFFFF078644FA, 0x0000000300000001, 0x0000000055555554, 0x00000002B230EFA6}, + [_]u64{0xFFFFFFFF078644FA, 0x0000000300000002, 0x0000000055555554, 0x000000025CDB9A52}, + [_]u64{0xFFFFFFFF078644FA, 0x0000000300000003, 0x0000000055555554, 0x00000002078644FE}, + [_]u64{0xFFFFFFFF078644FA, 0x0000000300000010, 0x0000000055555553, 0x00000000B230EFCA}, + [_]u64{0xFFFFFFFF078644FA, 0x00000003078644FA, 0x0000000054816148, 0x000000003FA624AA}, + [_]u64{0xFFFFFFFF078644FA, 0x000000030747AE14, 0x00000000548833C6, 0x0000000113C7A582}, + [_]u64{0xFFFFFFFF078644FA, 0x000000037FFFFFFF, 0x0000000049249248, 0x0000000350AAD742}, + [_]u64{0xFFFFFFFF078644FA, 0x0000000380000000, 0x0000000049249248, 0x00000003078644FA}, + [_]u64{0xFFFFFFFF078644FA, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x00000003C78644F7}, + [_]u64{0xFFFFFFFF078644FA, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x00000003878644F8}, + [_]u64{0xFFFFFFFF078644FA, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x00000003478644F9}, + [_]u64{0xFFFFFFFF078644FA, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000F078644FA}, + [_]u64{0xFFFFFFFF078644FA, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000EF78644FB}, + [_]u64{0xFFFFFFFF078644FA, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000EE78644FC}, + [_]u64{0xFFFFFFFF078644FA, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000ED78644FD}, + [_]u64{0xFFFFFFFF078644FA, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000E0786450A}, + [_]u64{0xFFFFFFFF078644FA, 0x00000010078644FA, 0x000000000FF87D43, 0x000000030784258C}, + [_]u64{0xFFFFFFFF078644FA, 0x000000100747AE14, 0x000000000FF8BBA0, 0x000000054F30DC7A}, + [_]u64{0xFFFFFFFF078644FA, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x00000003170A25F2}, + [_]u64{0xFFFFFFFF078644FA, 0x0000001080000000, 0x000000000F83E0F8, 0x00000003078644FA}, + [_]u64{0xFFFFFFFF078644FA, 0x00000010FFFFFFFD, 0x000000000F0F0F0F, 0x0000000034B37227}, + [_]u64{0xFFFFFFFF078644FA, 0x00000010FFFFFFFE, 0x000000000F0F0F0F, 0x0000000025A46318}, + [_]u64{0xFFFFFFFF078644FA, 0x00000010FFFFFFFF, 0x000000000F0F0F0F, 0x0000000016955409}, + [_]u64{0xFFFFFFFF078644FA, 0x078644FA00000000, 0x0000000000000022, 0x002AD6CB078644FA}, + [_]u64{0xFFFFFFFF078644FA, 0x078644FA00000001, 0x0000000000000022, 0x002AD6CB078644D8}, + [_]u64{0xFFFFFFFF078644FA, 0x078644FA00000002, 0x0000000000000022, 0x002AD6CB078644B6}, + [_]u64{0xFFFFFFFF078644FA, 0x078644FA00000003, 0x0000000000000022, 0x002AD6CB07864494}, + [_]u64{0xFFFFFFFF078644FA, 0x078644FA00000010, 0x0000000000000022, 0x002AD6CB078642DA}, + [_]u64{0xFFFFFFFF078644FA, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6CA07B11BC6}, + [_]u64{0xFFFFFFFF078644FA, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6CA10012652}, + [_]u64{0xFFFFFFFF078644FA, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6BA0786451C}, + [_]u64{0xFFFFFFFF078644FA, 0x078644FA80000000, 0x0000000000000022, 0x002AD6BA078644FA}, + [_]u64{0xFFFFFFFF078644FA, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A907864560}, + [_]u64{0xFFFFFFFF078644FA, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A90786453E}, + [_]u64{0xFFFFFFFF078644FA, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A90786451C}, + [_]u64{0xFFFFFFFF078644FA, 0x0747AE1400000000, 0x0000000000000023, 0x01333343078644FA}, + [_]u64{0xFFFFFFFF078644FA, 0x0747AE1400000001, 0x0000000000000023, 0x01333343078644D7}, + [_]u64{0xFFFFFFFF078644FA, 0x0747AE1400000002, 0x0000000000000023, 0x01333343078644B4}, + [_]u64{0xFFFFFFFF078644FA, 0x0747AE1400000003, 0x0000000000000023, 0x0133334307864491}, + [_]u64{0xFFFFFFFF078644FA, 0x0747AE1400000010, 0x0000000000000023, 0x01333343078642CA}, + [_]u64{0xFFFFFFFF078644FA, 0x0747AE14078644FA, 0x0000000000000023, 0x01333342002AD6CC}, + [_]u64{0xFFFFFFFF078644FA, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334208B9783E}, + [_]u64{0xFFFFFFFF078644FA, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x013333318786451D}, + [_]u64{0xFFFFFFFF078644FA, 0x0747AE1480000000, 0x0000000000000023, 0x01333331878644FA}, + [_]u64{0xFFFFFFFF078644FA, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133332007864563}, + [_]u64{0xFFFFFFFF078644FA, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133332007864540}, + [_]u64{0xFFFFFFFF078644FA, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x013333200786451D}, + [_]u64{0xFFFFFFFF078644FA, 0x7FFFFFFF00000000, 0x0000000000000002, 0x00000001078644FA}, + [_]u64{0xFFFFFFFF078644FA, 0x7FFFFFFF00000001, 0x0000000000000002, 0x00000001078644F8}, + [_]u64{0xFFFFFFFF078644FA, 0x7FFFFFFF00000002, 0x0000000000000002, 0x00000001078644F6}, + [_]u64{0xFFFFFFFF078644FA, 0x7FFFFFFF00000003, 0x0000000000000002, 0x00000001078644F4}, + [_]u64{0xFFFFFFFF078644FA, 0x7FFFFFFF00000010, 0x0000000000000002, 0x00000001078644DA}, + [_]u64{0xFFFFFFFF078644FA, 0x7FFFFFFF078644FA, 0x0000000000000002, 0x00000000F879BB06}, + [_]u64{0xFFFFFFFF078644FA, 0x7FFFFFFF0747AE14, 0x0000000000000002, 0x00000000F8F6E8D2}, + [_]u64{0xFFFFFFFF078644FA, 0x7FFFFFFF7FFFFFFF, 0x0000000000000002, 0x00000000078644FC}, + [_]u64{0xFFFFFFFF078644FA, 0x7FFFFFFF80000000, 0x0000000000000002, 0x00000000078644FA}, + [_]u64{0xFFFFFFFF078644FA, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFF078644FD}, + [_]u64{0xFFFFFFFF078644FA, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFF078644FC}, + [_]u64{0xFFFFFFFF078644FA, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFF078644FB}, + [_]u64{0xFFFFFFFF078644FA, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFF078644FA}, + [_]u64{0xFFFFFFFF078644FA, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFF078644F9}, + [_]u64{0xFFFFFFFF078644FA, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFF078644F8}, + [_]u64{0xFFFFFFFF078644FA, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFF078644F7}, + [_]u64{0xFFFFFFFF078644FA, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFF078644EA}, + [_]u64{0xFFFFFFFF078644FA, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFF00000000}, + [_]u64{0xFFFFFFFF078644FA, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFF003E96E6}, + [_]u64{0xFFFFFFFF078644FA, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFE878644FB}, + [_]u64{0xFFFFFFFF078644FA, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFE878644FA}, + [_]u64{0xFFFFFFFF078644FA, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFE078644FD}, + [_]u64{0xFFFFFFFF078644FA, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFE078644FC}, + [_]u64{0xFFFFFFFF078644FA, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFE078644FB}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFD00000000, 0x0000000000000001, 0x00000002078644FA}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFD00000001, 0x0000000000000001, 0x00000002078644F9}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFD00000002, 0x0000000000000001, 0x00000002078644F8}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFD00000003, 0x0000000000000001, 0x00000002078644F7}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFD00000010, 0x0000000000000001, 0x00000002078644EA}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x0000000200000000}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x00000002003E96E6}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x00000001878644FB}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFD80000000, 0x0000000000000001, 0x00000001878644FA}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFDFFFFFFFD, 0x0000000000000001, 0x00000001078644FD}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFDFFFFFFFE, 0x0000000000000001, 0x00000001078644FC}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFDFFFFFFFF, 0x0000000000000001, 0x00000001078644FB}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFE00000000, 0x0000000000000001, 0x00000001078644FA}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFE00000001, 0x0000000000000001, 0x00000001078644F9}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFE00000002, 0x0000000000000001, 0x00000001078644F8}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFE00000003, 0x0000000000000001, 0x00000001078644F7}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFE00000010, 0x0000000000000001, 0x00000001078644EA}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFE078644FA, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFE0747AE14, 0x0000000000000001, 0x00000001003E96E6}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFE7FFFFFFF, 0x0000000000000001, 0x00000000878644FB}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFE80000000, 0x0000000000000001, 0x00000000878644FA}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFEFFFFFFFD, 0x0000000000000001, 0x00000000078644FD}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFEFFFFFFFE, 0x0000000000000001, 0x00000000078644FC}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFEFFFFFFFF, 0x0000000000000001, 0x00000000078644FB}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFF00000000, 0x0000000000000001, 0x00000000078644FA}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFF00000001, 0x0000000000000001, 0x00000000078644F9}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFF00000002, 0x0000000000000001, 0x00000000078644F8}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFF00000003, 0x0000000000000001, 0x00000000078644F7}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFF00000010, 0x0000000000000001, 0x00000000078644EA}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFF078644FA, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFF0747AE14, 0x0000000000000001, 0x00000000003E96E6}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFF078644FA}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFF078644FA}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFF078644FA}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFF078644FA}, + [_]u64{0xFFFFFFFF078644FA, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFF078644FA}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000000000000001, 0xFFFFFFFF0747AE14, 0x0000000000000000}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000000000000002, 0x7FFFFFFF83A3D70A, 0x0000000000000000}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000000000000003, 0x55555555026D3A06, 0x0000000000000002}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000000000000010, 0x0FFFFFFFF0747AE1, 0x0000000000000004}, + [_]u64{0xFFFFFFFF0747AE14, 0x00000000078644FA, 0x0000002205B17ADC, 0x00000000002B433C}, + [_]u64{0xFFFFFFFF0747AE14, 0x000000000747AE14, 0x000000232A32A559, 0x0000000004414520}, + [_]u64{0xFFFFFFFF0747AE14, 0x000000007FFFFFFF, 0x0000000200000002, 0x000000000747AE16}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000000080000000, 0x00000001FFFFFFFE, 0x000000000747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0x00000000FFFFFFFD, 0x0000000100000002, 0x000000000747AE1A}, + [_]u64{0xFFFFFFFF0747AE14, 0x00000000FFFFFFFE, 0x0000000100000001, 0x000000000747AE16}, + [_]u64{0xFFFFFFFF0747AE14, 0x00000000FFFFFFFF, 0x0000000100000000, 0x000000000747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000000100000000, 0x00000000FFFFFFFF, 0x000000000747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000000100000001, 0x00000000FFFFFFFE, 0x000000000747AE16}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000000100000002, 0x00000000FFFFFFFD, 0x000000000747AE1A}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000000100000003, 0x00000000FFFFFFFC, 0x000000000747AE20}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000000100000010, 0x00000000FFFFFFEF, 0x000000000747AF24}, + [_]u64{0xFFFFFFFF0747AE14, 0x00000001078644FA, 0x00000000F8B0BB5B, 0x00000000AA4A8B36}, + [_]u64{0xFFFFFFFF0747AE14, 0x000000010747AE14, 0x00000000F8EBDA59, 0x0000000048C32120}, + [_]u64{0xFFFFFFFF0747AE14, 0x000000017FFFFFFF, 0x00000000AAAAAAAA, 0x00000000B1F258BE}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000000180000000, 0x00000000AAAAAAAA, 0x000000000747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0x00000001FFFFFFFD, 0x0000000080000000, 0x000000008747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0x00000001FFFFFFFE, 0x0000000080000000, 0x000000000747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0x00000001FFFFFFFF, 0x000000007FFFFFFF, 0x000000018747AE13}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000000200000000, 0x000000007FFFFFFF, 0x000000010747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000000200000001, 0x000000007FFFFFFF, 0x000000008747AE15}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000000200000002, 0x000000007FFFFFFF, 0x000000000747AE16}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000000200000003, 0x000000007FFFFFFE, 0x000000018747AE1A}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000000200000010, 0x000000007FFFFFFB, 0x000000010747AE64}, + [_]u64{0xFFFFFFFF0747AE14, 0x00000002078644FA, 0x000000007E256849, 0x0000000151D672CA}, + [_]u64{0xFFFFFFFF0747AE14, 0x000000020747AE14, 0x000000007E349CA6, 0x000000016CA89D1C}, + [_]u64{0xFFFFFFFF0747AE14, 0x000000027FFFFFFF, 0x0000000066666666, 0x000000006DAE147A}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000000280000000, 0x0000000066666666, 0x000000000747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0x00000002FFFFFFFD, 0x0000000055555555, 0x000000010747AE13}, + [_]u64{0xFFFFFFFF0747AE14, 0x00000002FFFFFFFE, 0x0000000055555555, 0x00000000B1F258BE}, + [_]u64{0xFFFFFFFF0747AE14, 0x00000002FFFFFFFF, 0x0000000055555555, 0x000000005C9D0369}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000000300000000, 0x0000000055555555, 0x000000000747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000000300000001, 0x0000000055555554, 0x00000002B1F258C0}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000000300000002, 0x0000000055555554, 0x000000025C9D036C}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000000300000003, 0x0000000055555554, 0x000000020747AE18}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000000300000010, 0x0000000055555553, 0x00000000B1F258E4}, + [_]u64{0xFFFFFFFF0747AE14, 0x00000003078644FA, 0x0000000054816148, 0x000000003F678DC4}, + [_]u64{0xFFFFFFFF0747AE14, 0x000000030747AE14, 0x00000000548833C6, 0x0000000113890E9C}, + [_]u64{0xFFFFFFFF0747AE14, 0x000000037FFFFFFF, 0x0000000049249248, 0x00000003506C405C}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000000380000000, 0x0000000049249248, 0x000000030747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0x00000003FFFFFFFD, 0x000000003FFFFFFF, 0x00000003C747AE11}, + [_]u64{0xFFFFFFFF0747AE14, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x000000038747AE12}, + [_]u64{0xFFFFFFFF0747AE14, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x000000034747AE13}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000F0747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000EF747AE15}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000EE747AE16}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000ED747AE17}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000E0747AE24}, + [_]u64{0xFFFFFFFF0747AE14, 0x00000010078644FA, 0x000000000FF87D43, 0x0000000307458EA6}, + [_]u64{0xFFFFFFFF0747AE14, 0x000000100747AE14, 0x000000000FF8BBA0, 0x000000054EF24594}, + [_]u64{0xFFFFFFFF0747AE14, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x0000000316CB8F0C}, + [_]u64{0xFFFFFFFF0747AE14, 0x0000001080000000, 0x000000000F83E0F8, 0x000000030747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0x00000010FFFFFFFD, 0x000000000F0F0F0F, 0x000000003474DB41}, + [_]u64{0xFFFFFFFF0747AE14, 0x00000010FFFFFFFE, 0x000000000F0F0F0F, 0x000000002565CC32}, + [_]u64{0xFFFFFFFF0747AE14, 0x00000010FFFFFFFF, 0x000000000F0F0F0F, 0x000000001656BD23}, + [_]u64{0xFFFFFFFF0747AE14, 0x078644FA00000000, 0x0000000000000022, 0x002AD6CB0747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0x078644FA00000001, 0x0000000000000022, 0x002AD6CB0747ADF2}, + [_]u64{0xFFFFFFFF0747AE14, 0x078644FA00000002, 0x0000000000000022, 0x002AD6CB0747ADD0}, + [_]u64{0xFFFFFFFF0747AE14, 0x078644FA00000003, 0x0000000000000022, 0x002AD6CB0747ADAE}, + [_]u64{0xFFFFFFFF0747AE14, 0x078644FA00000010, 0x0000000000000022, 0x002AD6CB0747ABF4}, + [_]u64{0xFFFFFFFF0747AE14, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6CA077284E0}, + [_]u64{0xFFFFFFFF0747AE14, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6CA0FC28F6C}, + [_]u64{0xFFFFFFFF0747AE14, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6BA0747AE36}, + [_]u64{0xFFFFFFFF0747AE14, 0x078644FA80000000, 0x0000000000000022, 0x002AD6BA0747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A90747AE7A}, + [_]u64{0xFFFFFFFF0747AE14, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A90747AE58}, + [_]u64{0xFFFFFFFF0747AE14, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A90747AE36}, + [_]u64{0xFFFFFFFF0747AE14, 0x0747AE1400000000, 0x0000000000000023, 0x013333430747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0x0747AE1400000001, 0x0000000000000023, 0x013333430747ADF1}, + [_]u64{0xFFFFFFFF0747AE14, 0x0747AE1400000002, 0x0000000000000023, 0x013333430747ADCE}, + [_]u64{0xFFFFFFFF0747AE14, 0x0747AE1400000003, 0x0000000000000023, 0x013333430747ADAB}, + [_]u64{0xFFFFFFFF0747AE14, 0x0747AE1400000010, 0x0000000000000023, 0x013333430747ABE4}, + [_]u64{0xFFFFFFFF0747AE14, 0x0747AE14078644FA, 0x0000000000000023, 0x01333341FFEC3FE6}, + [_]u64{0xFFFFFFFF0747AE14, 0x0747AE140747AE14, 0x0000000000000023, 0x01333342087AE158}, + [_]u64{0xFFFFFFFF0747AE14, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x013333318747AE37}, + [_]u64{0xFFFFFFFF0747AE14, 0x0747AE1480000000, 0x0000000000000023, 0x013333318747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x013333200747AE7D}, + [_]u64{0xFFFFFFFF0747AE14, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x013333200747AE5A}, + [_]u64{0xFFFFFFFF0747AE14, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x013333200747AE37}, + [_]u64{0xFFFFFFFF0747AE14, 0x7FFFFFFF00000000, 0x0000000000000002, 0x000000010747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0x7FFFFFFF00000001, 0x0000000000000002, 0x000000010747AE12}, + [_]u64{0xFFFFFFFF0747AE14, 0x7FFFFFFF00000002, 0x0000000000000002, 0x000000010747AE10}, + [_]u64{0xFFFFFFFF0747AE14, 0x7FFFFFFF00000003, 0x0000000000000002, 0x000000010747AE0E}, + [_]u64{0xFFFFFFFF0747AE14, 0x7FFFFFFF00000010, 0x0000000000000002, 0x000000010747ADF4}, + [_]u64{0xFFFFFFFF0747AE14, 0x7FFFFFFF078644FA, 0x0000000000000002, 0x00000000F83B2420}, + [_]u64{0xFFFFFFFF0747AE14, 0x7FFFFFFF0747AE14, 0x0000000000000002, 0x00000000F8B851EC}, + [_]u64{0xFFFFFFFF0747AE14, 0x7FFFFFFF7FFFFFFF, 0x0000000000000002, 0x000000000747AE16}, + [_]u64{0xFFFFFFFF0747AE14, 0x7FFFFFFF80000000, 0x0000000000000002, 0x000000000747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFF0747AE17}, + [_]u64{0xFFFFFFFF0747AE14, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFF0747AE16}, + [_]u64{0xFFFFFFFF0747AE14, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFF0747AE15}, + [_]u64{0xFFFFFFFF0747AE14, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFF0747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFF0747AE13}, + [_]u64{0xFFFFFFFF0747AE14, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFF0747AE12}, + [_]u64{0xFFFFFFFF0747AE14, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFF0747AE11}, + [_]u64{0xFFFFFFFF0747AE14, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFF0747AE04}, + [_]u64{0xFFFFFFFF0747AE14, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFEFFC1691A}, + [_]u64{0xFFFFFFFF0747AE14, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFF00000000}, + [_]u64{0xFFFFFFFF0747AE14, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFE8747AE15}, + [_]u64{0xFFFFFFFF0747AE14, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFE8747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFE0747AE17}, + [_]u64{0xFFFFFFFF0747AE14, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFE0747AE16}, + [_]u64{0xFFFFFFFF0747AE14, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFE0747AE15}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFD00000000, 0x0000000000000001, 0x000000020747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFD00000001, 0x0000000000000001, 0x000000020747AE13}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFD00000002, 0x0000000000000001, 0x000000020747AE12}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFD00000003, 0x0000000000000001, 0x000000020747AE11}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFD00000010, 0x0000000000000001, 0x000000020747AE04}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x00000001FFC1691A}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x0000000200000000}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x000000018747AE15}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFD80000000, 0x0000000000000001, 0x000000018747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFDFFFFFFFD, 0x0000000000000001, 0x000000010747AE17}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFDFFFFFFFE, 0x0000000000000001, 0x000000010747AE16}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFDFFFFFFFF, 0x0000000000000001, 0x000000010747AE15}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFE00000000, 0x0000000000000001, 0x000000010747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFE00000001, 0x0000000000000001, 0x000000010747AE13}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFE00000002, 0x0000000000000001, 0x000000010747AE12}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFE00000003, 0x0000000000000001, 0x000000010747AE11}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFE00000010, 0x0000000000000001, 0x000000010747AE04}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFE078644FA, 0x0000000000000001, 0x00000000FFC1691A}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFE0747AE14, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFE7FFFFFFF, 0x0000000000000001, 0x000000008747AE15}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFE80000000, 0x0000000000000001, 0x000000008747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFEFFFFFFFD, 0x0000000000000001, 0x000000000747AE17}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFEFFFFFFFE, 0x0000000000000001, 0x000000000747AE16}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFEFFFFFFFF, 0x0000000000000001, 0x000000000747AE15}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFF00000000, 0x0000000000000001, 0x000000000747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFF00000001, 0x0000000000000001, 0x000000000747AE13}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFF00000002, 0x0000000000000001, 0x000000000747AE12}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFF00000003, 0x0000000000000001, 0x000000000747AE11}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFF00000010, 0x0000000000000001, 0x000000000747AE04}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFF078644FA, 0x0000000000000000, 0xFFFFFFFF0747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFF0747AE14, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000, 0xFFFFFFFF0747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFF0747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFF0747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFF0747AE14}, + [_]u64{0xFFFFFFFF0747AE14, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFF0747AE14}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000000000000001, 0xFFFFFFFF7FFFFFFF, 0x0000000000000000}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000000000000002, 0x7FFFFFFFBFFFFFFF, 0x0000000000000001}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000000000000003, 0x555555552AAAAAAA, 0x0000000000000001}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000000000000010, 0x0FFFFFFFF7FFFFFF, 0x000000000000000F}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x00000000078644FA, 0x0000002205B17AEC, 0x00000000007F4587}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x000000000747AE14, 0x000000232A32A56A, 0x00000000013707B7}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x000000007FFFFFFF, 0x0000000200000003, 0x0000000000000002}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000000080000000, 0x00000001FFFFFFFE, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x00000000FFFFFFFD, 0x0000000100000002, 0x0000000080000005}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x00000000FFFFFFFE, 0x0000000100000001, 0x0000000080000001}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x00000000FFFFFFFF, 0x0000000100000000, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000000100000000, 0x00000000FFFFFFFF, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000000100000001, 0x00000000FFFFFFFE, 0x0000000080000001}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000000100000002, 0x00000000FFFFFFFD, 0x0000000080000005}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000000100000003, 0x00000000FFFFFFFC, 0x000000008000000B}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000000100000010, 0x00000000FFFFFFEF, 0x000000008000010F}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x00000001078644FA, 0x00000000F8B0BB5C, 0x000000001B7C9827}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x000000010747AE14, 0x00000000F8EBDA59, 0x00000000C17B730B}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x000000017FFFFFFF, 0x00000000AAAAAAAA, 0x000000012AAAAAA9}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000000180000000, 0x00000000AAAAAAAA, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x00000001FFFFFFFD, 0x0000000080000000, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x00000001FFFFFFFE, 0x0000000080000000, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x00000001FFFFFFFF, 0x000000007FFFFFFF, 0x00000001FFFFFFFE}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000000200000000, 0x000000007FFFFFFF, 0x000000017FFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000000200000001, 0x000000007FFFFFFF, 0x0000000100000000}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000000200000002, 0x000000007FFFFFFF, 0x0000000080000001}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000000200000003, 0x000000007FFFFFFF, 0x0000000000000002}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000000200000010, 0x000000007FFFFFFB, 0x000000018000004F}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x00000002078644FA, 0x000000007E256849, 0x00000001CA8EC4B5}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x000000020747AE14, 0x000000007E349CA6, 0x00000001E560EF07}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x000000027FFFFFFF, 0x0000000066666666, 0x00000000E6666665}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000000280000000, 0x0000000066666666, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x00000002FFFFFFFD, 0x0000000055555555, 0x000000017FFFFFFE}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x00000002FFFFFFFE, 0x0000000055555555, 0x000000012AAAAAA9}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x00000002FFFFFFFF, 0x0000000055555555, 0x00000000D5555554}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000000300000000, 0x0000000055555555, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000000300000001, 0x0000000055555555, 0x000000002AAAAAAA}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000000300000002, 0x0000000055555554, 0x00000002D5555557}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000000300000003, 0x0000000055555554, 0x0000000280000003}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000000300000010, 0x0000000055555553, 0x000000012AAAAACF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x00000003078644FA, 0x0000000054816148, 0x00000000B81FDFAF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x000000030747AE14, 0x00000000548833C6, 0x000000018C416087}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x000000037FFFFFFF, 0x0000000049249249, 0x0000000049249248}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000000380000000, 0x0000000049249248, 0x000000037FFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x00000003FFFFFFFD, 0x0000000040000000, 0x000000003FFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x00000003FFFFFFFE, 0x000000003FFFFFFF, 0x00000003FFFFFFFD}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x00000003BFFFFFFE}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000F7FFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000F70000000}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000F60000001}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000F50000002}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000E8000000F}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x00000010078644FA, 0x000000000FF87D43, 0x000000037FFDE091}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x000000100747AE14, 0x000000000FF8BBA0, 0x00000005C7AA977F}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000038F83E0F7}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0000001080000000, 0x000000000F83E0F8, 0x000000037FFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x00000010FFFFFFFD, 0x000000000F0F0F0F, 0x00000000AD2D2D2C}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x00000010FFFFFFFE, 0x000000000F0F0F0F, 0x000000009E1E1E1D}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x00000010FFFFFFFF, 0x000000000F0F0F0F, 0x000000008F0F0F0E}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x078644FA00000000, 0x0000000000000022, 0x002AD6CB7FFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x078644FA00000001, 0x0000000000000022, 0x002AD6CB7FFFFFDD}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x078644FA00000002, 0x0000000000000022, 0x002AD6CB7FFFFFBB}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x078644FA00000003, 0x0000000000000022, 0x002AD6CB7FFFFF99}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x078644FA00000010, 0x0000000000000022, 0x002AD6CB7FFFFDDF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6CA802AD6CB}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6CA887AE157}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6BA80000021}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x078644FA80000000, 0x0000000000000022, 0x002AD6BA7FFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A980000065}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A980000043}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A980000021}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0747AE1400000000, 0x0000000000000023, 0x013333437FFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0747AE1400000001, 0x0000000000000023, 0x013333437FFFFFDC}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0747AE1400000002, 0x0000000000000023, 0x013333437FFFFFB9}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0747AE1400000003, 0x0000000000000023, 0x013333437FFFFF96}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0747AE1400000010, 0x0000000000000023, 0x013333437FFFFDCF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0747AE14078644FA, 0x0000000000000023, 0x0133334278A491D1}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334281333343}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133333200000022}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0747AE1480000000, 0x0000000000000023, 0x01333331FFFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133332080000068}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133332080000045}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133332080000022}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x7FFFFFFF00000000, 0x0000000000000002, 0x000000017FFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x7FFFFFFF00000001, 0x0000000000000002, 0x000000017FFFFFFD}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x7FFFFFFF00000002, 0x0000000000000002, 0x000000017FFFFFFB}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x7FFFFFFF00000003, 0x0000000000000002, 0x000000017FFFFFF9}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x7FFFFFFF00000010, 0x0000000000000002, 0x000000017FFFFFDF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x7FFFFFFF078644FA, 0x0000000000000002, 0x0000000170F3760B}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x7FFFFFFF0747AE14, 0x0000000000000002, 0x000000017170A3D7}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x7FFFFFFF7FFFFFFF, 0x0000000000000002, 0x0000000080000001}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x7FFFFFFF80000000, 0x0000000000000002, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFF80000002}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFF80000001}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFF80000000}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFF7FFFFFFE}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFF7FFFFFFD}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFF7FFFFFFC}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFF7FFFFFEF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFF7879BB05}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFF78B851EB}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFF00000000}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFEFFFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFE80000002}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFE80000001}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFE80000000}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFD00000000, 0x0000000000000001, 0x000000027FFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFD00000001, 0x0000000000000001, 0x000000027FFFFFFE}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFD00000002, 0x0000000000000001, 0x000000027FFFFFFD}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFD00000003, 0x0000000000000001, 0x000000027FFFFFFC}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFD00000010, 0x0000000000000001, 0x000000027FFFFFEF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x000000027879BB05}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x0000000278B851EB}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x0000000200000000}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFD80000000, 0x0000000000000001, 0x00000001FFFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFDFFFFFFFD, 0x0000000000000001, 0x0000000180000002}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFDFFFFFFFE, 0x0000000000000001, 0x0000000180000001}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFDFFFFFFFF, 0x0000000000000001, 0x0000000180000000}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFE00000000, 0x0000000000000001, 0x000000017FFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFE00000001, 0x0000000000000001, 0x000000017FFFFFFE}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFE00000002, 0x0000000000000001, 0x000000017FFFFFFD}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFE00000003, 0x0000000000000001, 0x000000017FFFFFFC}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFE00000010, 0x0000000000000001, 0x000000017FFFFFEF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFE078644FA, 0x0000000000000001, 0x000000017879BB05}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFE0747AE14, 0x0000000000000001, 0x0000000178B851EB}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFE7FFFFFFF, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFE80000000, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFEFFFFFFFD, 0x0000000000000001, 0x0000000080000002}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFEFFFFFFFE, 0x0000000000000001, 0x0000000080000001}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFEFFFFFFFF, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFF00000000, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFF00000001, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFF00000002, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFF00000003, 0x0000000000000001, 0x000000007FFFFFFC}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFF00000010, 0x0000000000000001, 0x000000007FFFFFEF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFF078644FA, 0x0000000000000001, 0x000000007879BB05}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFF0747AE14, 0x0000000000000001, 0x0000000078B851EB}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFF7FFFFFFF, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFF80000000, 0x0000000000000000, 0xFFFFFFFF7FFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFF7FFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFF7FFFFFFF}, + [_]u64{0xFFFFFFFF7FFFFFFF, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFF7FFFFFFF}, + [_]u64{0xFFFFFFFF80000000, 0x0000000000000001, 0xFFFFFFFF80000000, 0x0000000000000000}, + [_]u64{0xFFFFFFFF80000000, 0x0000000000000002, 0x7FFFFFFFC0000000, 0x0000000000000000}, + [_]u64{0xFFFFFFFF80000000, 0x0000000000000003, 0x555555552AAAAAAA, 0x0000000000000002}, + [_]u64{0xFFFFFFFF80000000, 0x0000000000000010, 0x0FFFFFFFF8000000, 0x0000000000000000}, + [_]u64{0xFFFFFFFF80000000, 0x00000000078644FA, 0x0000002205B17AEC, 0x00000000007F4588}, + [_]u64{0xFFFFFFFF80000000, 0x000000000747AE14, 0x000000232A32A56A, 0x00000000013707B8}, + [_]u64{0xFFFFFFFF80000000, 0x000000007FFFFFFF, 0x0000000200000003, 0x0000000000000003}, + [_]u64{0xFFFFFFFF80000000, 0x0000000080000000, 0x00000001FFFFFFFF, 0x0000000000000000}, + [_]u64{0xFFFFFFFF80000000, 0x00000000FFFFFFFD, 0x0000000100000002, 0x0000000080000006}, + [_]u64{0xFFFFFFFF80000000, 0x00000000FFFFFFFE, 0x0000000100000001, 0x0000000080000002}, + [_]u64{0xFFFFFFFF80000000, 0x00000000FFFFFFFF, 0x0000000100000000, 0x0000000080000000}, + [_]u64{0xFFFFFFFF80000000, 0x0000000100000000, 0x00000000FFFFFFFF, 0x0000000080000000}, + [_]u64{0xFFFFFFFF80000000, 0x0000000100000001, 0x00000000FFFFFFFE, 0x0000000080000002}, + [_]u64{0xFFFFFFFF80000000, 0x0000000100000002, 0x00000000FFFFFFFD, 0x0000000080000006}, + [_]u64{0xFFFFFFFF80000000, 0x0000000100000003, 0x00000000FFFFFFFC, 0x000000008000000C}, + [_]u64{0xFFFFFFFF80000000, 0x0000000100000010, 0x00000000FFFFFFEF, 0x0000000080000110}, + [_]u64{0xFFFFFFFF80000000, 0x00000001078644FA, 0x00000000F8B0BB5C, 0x000000001B7C9828}, + [_]u64{0xFFFFFFFF80000000, 0x000000010747AE14, 0x00000000F8EBDA59, 0x00000000C17B730C}, + [_]u64{0xFFFFFFFF80000000, 0x000000017FFFFFFF, 0x00000000AAAAAAAA, 0x000000012AAAAAAA}, + [_]u64{0xFFFFFFFF80000000, 0x0000000180000000, 0x00000000AAAAAAAA, 0x0000000080000000}, + [_]u64{0xFFFFFFFF80000000, 0x00000001FFFFFFFD, 0x0000000080000000, 0x0000000100000000}, + [_]u64{0xFFFFFFFF80000000, 0x00000001FFFFFFFE, 0x0000000080000000, 0x0000000080000000}, + [_]u64{0xFFFFFFFF80000000, 0x00000001FFFFFFFF, 0x0000000080000000, 0x0000000000000000}, + [_]u64{0xFFFFFFFF80000000, 0x0000000200000000, 0x000000007FFFFFFF, 0x0000000180000000}, + [_]u64{0xFFFFFFFF80000000, 0x0000000200000001, 0x000000007FFFFFFF, 0x0000000100000001}, + [_]u64{0xFFFFFFFF80000000, 0x0000000200000002, 0x000000007FFFFFFF, 0x0000000080000002}, + [_]u64{0xFFFFFFFF80000000, 0x0000000200000003, 0x000000007FFFFFFF, 0x0000000000000003}, + [_]u64{0xFFFFFFFF80000000, 0x0000000200000010, 0x000000007FFFFFFB, 0x0000000180000050}, + [_]u64{0xFFFFFFFF80000000, 0x00000002078644FA, 0x000000007E256849, 0x00000001CA8EC4B6}, + [_]u64{0xFFFFFFFF80000000, 0x000000020747AE14, 0x000000007E349CA6, 0x00000001E560EF08}, + [_]u64{0xFFFFFFFF80000000, 0x000000027FFFFFFF, 0x0000000066666666, 0x00000000E6666666}, + [_]u64{0xFFFFFFFF80000000, 0x0000000280000000, 0x0000000066666666, 0x0000000080000000}, + [_]u64{0xFFFFFFFF80000000, 0x00000002FFFFFFFD, 0x0000000055555555, 0x000000017FFFFFFF}, + [_]u64{0xFFFFFFFF80000000, 0x00000002FFFFFFFE, 0x0000000055555555, 0x000000012AAAAAAA}, + [_]u64{0xFFFFFFFF80000000, 0x00000002FFFFFFFF, 0x0000000055555555, 0x00000000D5555555}, + [_]u64{0xFFFFFFFF80000000, 0x0000000300000000, 0x0000000055555555, 0x0000000080000000}, + [_]u64{0xFFFFFFFF80000000, 0x0000000300000001, 0x0000000055555555, 0x000000002AAAAAAB}, + [_]u64{0xFFFFFFFF80000000, 0x0000000300000002, 0x0000000055555554, 0x00000002D5555558}, + [_]u64{0xFFFFFFFF80000000, 0x0000000300000003, 0x0000000055555554, 0x0000000280000004}, + [_]u64{0xFFFFFFFF80000000, 0x0000000300000010, 0x0000000055555553, 0x000000012AAAAAD0}, + [_]u64{0xFFFFFFFF80000000, 0x00000003078644FA, 0x0000000054816148, 0x00000000B81FDFB0}, + [_]u64{0xFFFFFFFF80000000, 0x000000030747AE14, 0x00000000548833C6, 0x000000018C416088}, + [_]u64{0xFFFFFFFF80000000, 0x000000037FFFFFFF, 0x0000000049249249, 0x0000000049249249}, + [_]u64{0xFFFFFFFF80000000, 0x0000000380000000, 0x0000000049249249, 0x0000000000000000}, + [_]u64{0xFFFFFFFF80000000, 0x00000003FFFFFFFD, 0x0000000040000000, 0x0000000040000000}, + [_]u64{0xFFFFFFFF80000000, 0x00000003FFFFFFFE, 0x0000000040000000, 0x0000000000000000}, + [_]u64{0xFFFFFFFF80000000, 0x00000003FFFFFFFF, 0x000000003FFFFFFF, 0x00000003BFFFFFFF}, + [_]u64{0xFFFFFFFF80000000, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000F80000000}, + [_]u64{0xFFFFFFFF80000000, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000F70000001}, + [_]u64{0xFFFFFFFF80000000, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000F60000002}, + [_]u64{0xFFFFFFFF80000000, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000F50000003}, + [_]u64{0xFFFFFFFF80000000, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000E80000010}, + [_]u64{0xFFFFFFFF80000000, 0x00000010078644FA, 0x000000000FF87D43, 0x000000037FFDE092}, + [_]u64{0xFFFFFFFF80000000, 0x000000100747AE14, 0x000000000FF8BBA0, 0x00000005C7AA9780}, + [_]u64{0xFFFFFFFF80000000, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000038F83E0F8}, + [_]u64{0xFFFFFFFF80000000, 0x0000001080000000, 0x000000000F83E0F8, 0x0000000380000000}, + [_]u64{0xFFFFFFFF80000000, 0x00000010FFFFFFFD, 0x000000000F0F0F0F, 0x00000000AD2D2D2D}, + [_]u64{0xFFFFFFFF80000000, 0x00000010FFFFFFFE, 0x000000000F0F0F0F, 0x000000009E1E1E1E}, + [_]u64{0xFFFFFFFF80000000, 0x00000010FFFFFFFF, 0x000000000F0F0F0F, 0x000000008F0F0F0F}, + [_]u64{0xFFFFFFFF80000000, 0x078644FA00000000, 0x0000000000000022, 0x002AD6CB80000000}, + [_]u64{0xFFFFFFFF80000000, 0x078644FA00000001, 0x0000000000000022, 0x002AD6CB7FFFFFDE}, + [_]u64{0xFFFFFFFF80000000, 0x078644FA00000002, 0x0000000000000022, 0x002AD6CB7FFFFFBC}, + [_]u64{0xFFFFFFFF80000000, 0x078644FA00000003, 0x0000000000000022, 0x002AD6CB7FFFFF9A}, + [_]u64{0xFFFFFFFF80000000, 0x078644FA00000010, 0x0000000000000022, 0x002AD6CB7FFFFDE0}, + [_]u64{0xFFFFFFFF80000000, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6CA802AD6CC}, + [_]u64{0xFFFFFFFF80000000, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6CA887AE158}, + [_]u64{0xFFFFFFFF80000000, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6BA80000022}, + [_]u64{0xFFFFFFFF80000000, 0x078644FA80000000, 0x0000000000000022, 0x002AD6BA80000000}, + [_]u64{0xFFFFFFFF80000000, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6A980000066}, + [_]u64{0xFFFFFFFF80000000, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6A980000044}, + [_]u64{0xFFFFFFFF80000000, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6A980000022}, + [_]u64{0xFFFFFFFF80000000, 0x0747AE1400000000, 0x0000000000000023, 0x0133334380000000}, + [_]u64{0xFFFFFFFF80000000, 0x0747AE1400000001, 0x0000000000000023, 0x013333437FFFFFDD}, + [_]u64{0xFFFFFFFF80000000, 0x0747AE1400000002, 0x0000000000000023, 0x013333437FFFFFBA}, + [_]u64{0xFFFFFFFF80000000, 0x0747AE1400000003, 0x0000000000000023, 0x013333437FFFFF97}, + [_]u64{0xFFFFFFFF80000000, 0x0747AE1400000010, 0x0000000000000023, 0x013333437FFFFDD0}, + [_]u64{0xFFFFFFFF80000000, 0x0747AE14078644FA, 0x0000000000000023, 0x0133334278A491D2}, + [_]u64{0xFFFFFFFF80000000, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334281333344}, + [_]u64{0xFFFFFFFF80000000, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133333200000023}, + [_]u64{0xFFFFFFFF80000000, 0x0747AE1480000000, 0x0000000000000023, 0x0133333200000000}, + [_]u64{0xFFFFFFFF80000000, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133332080000069}, + [_]u64{0xFFFFFFFF80000000, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133332080000046}, + [_]u64{0xFFFFFFFF80000000, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133332080000023}, + [_]u64{0xFFFFFFFF80000000, 0x7FFFFFFF00000000, 0x0000000000000002, 0x0000000180000000}, + [_]u64{0xFFFFFFFF80000000, 0x7FFFFFFF00000001, 0x0000000000000002, 0x000000017FFFFFFE}, + [_]u64{0xFFFFFFFF80000000, 0x7FFFFFFF00000002, 0x0000000000000002, 0x000000017FFFFFFC}, + [_]u64{0xFFFFFFFF80000000, 0x7FFFFFFF00000003, 0x0000000000000002, 0x000000017FFFFFFA}, + [_]u64{0xFFFFFFFF80000000, 0x7FFFFFFF00000010, 0x0000000000000002, 0x000000017FFFFFE0}, + [_]u64{0xFFFFFFFF80000000, 0x7FFFFFFF078644FA, 0x0000000000000002, 0x0000000170F3760C}, + [_]u64{0xFFFFFFFF80000000, 0x7FFFFFFF0747AE14, 0x0000000000000002, 0x000000017170A3D8}, + [_]u64{0xFFFFFFFF80000000, 0x7FFFFFFF7FFFFFFF, 0x0000000000000002, 0x0000000080000002}, + [_]u64{0xFFFFFFFF80000000, 0x7FFFFFFF80000000, 0x0000000000000002, 0x0000000080000000}, + [_]u64{0xFFFFFFFF80000000, 0x7FFFFFFFFFFFFFFD, 0x0000000000000001, 0x7FFFFFFF80000003}, + [_]u64{0xFFFFFFFF80000000, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001, 0x7FFFFFFF80000002}, + [_]u64{0xFFFFFFFF80000000, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFF80000001}, + [_]u64{0xFFFFFFFF80000000, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFF80000000}, + [_]u64{0xFFFFFFFF80000000, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0xFFFFFFFF80000000, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFF7FFFFFFE}, + [_]u64{0xFFFFFFFF80000000, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFF7FFFFFFD}, + [_]u64{0xFFFFFFFF80000000, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFF7FFFFFF0}, + [_]u64{0xFFFFFFFF80000000, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFF7879BB06}, + [_]u64{0xFFFFFFFF80000000, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFF78B851EC}, + [_]u64{0xFFFFFFFF80000000, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFF00000001}, + [_]u64{0xFFFFFFFF80000000, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFF00000000}, + [_]u64{0xFFFFFFFF80000000, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFE80000003}, + [_]u64{0xFFFFFFFF80000000, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFE80000002}, + [_]u64{0xFFFFFFFF80000000, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFE80000001}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFD00000000, 0x0000000000000001, 0x0000000280000000}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFD00000001, 0x0000000000000001, 0x000000027FFFFFFF}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFD00000002, 0x0000000000000001, 0x000000027FFFFFFE}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFD00000003, 0x0000000000000001, 0x000000027FFFFFFD}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFD00000010, 0x0000000000000001, 0x000000027FFFFFF0}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x000000027879BB06}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x0000000278B851EC}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x0000000200000001}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFD80000000, 0x0000000000000001, 0x0000000200000000}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFDFFFFFFFD, 0x0000000000000001, 0x0000000180000003}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFDFFFFFFFE, 0x0000000000000001, 0x0000000180000002}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFDFFFFFFFF, 0x0000000000000001, 0x0000000180000001}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFE00000000, 0x0000000000000001, 0x0000000180000000}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFE00000001, 0x0000000000000001, 0x000000017FFFFFFF}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFE00000002, 0x0000000000000001, 0x000000017FFFFFFE}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFE00000003, 0x0000000000000001, 0x000000017FFFFFFD}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFE00000010, 0x0000000000000001, 0x000000017FFFFFF0}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFE078644FA, 0x0000000000000001, 0x000000017879BB06}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFE0747AE14, 0x0000000000000001, 0x0000000178B851EC}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFE7FFFFFFF, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFE80000000, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFEFFFFFFFD, 0x0000000000000001, 0x0000000080000003}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFEFFFFFFFE, 0x0000000000000001, 0x0000000080000002}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFEFFFFFFFF, 0x0000000000000001, 0x0000000080000001}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFF00000000, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFF00000001, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFF00000002, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFF00000003, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFF00000010, 0x0000000000000001, 0x000000007FFFFFF0}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFF078644FA, 0x0000000000000001, 0x000000007879BB06}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFF0747AE14, 0x0000000000000001, 0x0000000078B851EC}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFF7FFFFFFF, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFF80000000, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000, 0xFFFFFFFF80000000}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFF80000000}, + [_]u64{0xFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFF80000000}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000000000000001, 0xFFFFFFFFFFFFFFFD, 0x0000000000000000}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000000000000002, 0x7FFFFFFFFFFFFFFE, 0x0000000000000001}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000000000000003, 0x5555555555555554, 0x0000000000000001}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000000000000010, 0x0FFFFFFFFFFFFFFF, 0x000000000000000D}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x00000000078644FA, 0x0000002205B17AFD, 0x000000000094B0EB}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x000000000747AE14, 0x000000232A32A57B, 0x0000000005747861}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x000000007FFFFFFF, 0x0000000200000004, 0x0000000000000001}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000000080000000, 0x00000001FFFFFFFF, 0x000000007FFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x00000000FFFFFFFD, 0x0000000100000003, 0x0000000000000006}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x00000000FFFFFFFE, 0x0000000100000002, 0x0000000000000001}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x00000000FFFFFFFF, 0x0000000100000000, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000000100000000, 0x00000000FFFFFFFF, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000000100000001, 0x00000000FFFFFFFE, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000000100000002, 0x00000000FFFFFFFE, 0x0000000000000001}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000000100000003, 0x00000000FFFFFFFD, 0x0000000000000006}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000000100000010, 0x00000000FFFFFFF0, 0x00000000000000FD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x00000001078644FA, 0x00000000F8B0BB5C, 0x000000009B7C9825}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x000000010747AE14, 0x00000000F8EBDA5A, 0x000000003A33C4F5}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x000000017FFFFFFF, 0x00000000AAAAAAAB, 0x000000002AAAAAA8}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000000180000000, 0x00000000AAAAAAAA, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x00000001FFFFFFFD, 0x0000000080000000, 0x000000017FFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x00000001FFFFFFFE, 0x0000000080000000, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x00000001FFFFFFFF, 0x0000000080000000, 0x000000007FFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000000200000000, 0x000000007FFFFFFF, 0x00000001FFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000000200000001, 0x000000007FFFFFFF, 0x000000017FFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000000200000002, 0x000000007FFFFFFF, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000000200000003, 0x000000007FFFFFFF, 0x0000000080000000}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000000200000010, 0x000000007FFFFFFC, 0x000000000000003D}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x00000002078644FA, 0x000000007E25684A, 0x0000000043087FB9}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x000000020747AE14, 0x000000007E349CA7, 0x000000005E1940F1}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x000000027FFFFFFF, 0x0000000066666666, 0x0000000166666663}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000000280000000, 0x0000000066666666, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x00000002FFFFFFFD, 0x0000000055555555, 0x00000001FFFFFFFC}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x00000002FFFFFFFE, 0x0000000055555555, 0x00000001AAAAAAA7}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x00000002FFFFFFFF, 0x0000000055555555, 0x0000000155555552}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000000300000000, 0x0000000055555555, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000000300000001, 0x0000000055555555, 0x00000000AAAAAAA8}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000000300000002, 0x0000000055555555, 0x0000000055555553}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000000300000003, 0x0000000055555554, 0x0000000300000001}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000000300000010, 0x0000000055555553, 0x00000001AAAAAACD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x00000003078644FA, 0x0000000054816148, 0x00000001381FDFAD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x000000030747AE14, 0x00000000548833C6, 0x000000020C416085}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x000000037FFFFFFF, 0x0000000049249249, 0x00000000C9249246}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000000380000000, 0x0000000049249249, 0x000000007FFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x00000003FFFFFFFD, 0x0000000040000000, 0x00000000BFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x00000003FFFFFFFE, 0x0000000040000000, 0x000000007FFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x00000003FFFFFFFF, 0x0000000040000000, 0x000000003FFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000FFFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000FEFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000FDFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000FD0000000}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000F0000000D}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x00000010078644FA, 0x000000000FF87D43, 0x00000003FFFDE08F}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x000000100747AE14, 0x000000000FF8BBA0, 0x0000000647AA977D}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000040F83E0F5}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0000001080000000, 0x000000000F83E0F8, 0x00000003FFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x00000010FFFFFFFD, 0x000000000F0F0F0F, 0x000000012D2D2D2A}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x00000010FFFFFFFE, 0x000000000F0F0F0F, 0x000000011E1E1E1B}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x00000010FFFFFFFF, 0x000000000F0F0F0F, 0x000000010F0F0F0C}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x078644FA00000000, 0x0000000000000022, 0x002AD6CBFFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x078644FA00000001, 0x0000000000000022, 0x002AD6CBFFFFFFDB}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x078644FA00000002, 0x0000000000000022, 0x002AD6CBFFFFFFB9}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x078644FA00000003, 0x0000000000000022, 0x002AD6CBFFFFFF97}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x078644FA00000010, 0x0000000000000022, 0x002AD6CBFFFFFDDD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6CB002AD6C9}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6CB087AE155}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6BB0000001F}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x078644FA80000000, 0x0000000000000022, 0x002AD6BAFFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6AA00000063}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6AA00000041}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6AA0000001F}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0747AE1400000000, 0x0000000000000023, 0x01333343FFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0747AE1400000001, 0x0000000000000023, 0x01333343FFFFFFDA}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0747AE1400000002, 0x0000000000000023, 0x01333343FFFFFFB7}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0747AE1400000003, 0x0000000000000023, 0x01333343FFFFFF94}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0747AE1400000010, 0x0000000000000023, 0x01333343FFFFFDCD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0747AE14078644FA, 0x0000000000000023, 0x01333342F8A491CF}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334301333341}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133333280000020}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0747AE1480000000, 0x0000000000000023, 0x013333327FFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133332100000066}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133332100000043}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133332100000020}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x7FFFFFFF00000000, 0x0000000000000002, 0x00000001FFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x7FFFFFFF00000001, 0x0000000000000002, 0x00000001FFFFFFFB}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x7FFFFFFF00000002, 0x0000000000000002, 0x00000001FFFFFFF9}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x7FFFFFFF00000003, 0x0000000000000002, 0x00000001FFFFFFF7}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x7FFFFFFF00000010, 0x0000000000000002, 0x00000001FFFFFFDD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x7FFFFFFF078644FA, 0x0000000000000002, 0x00000001F0F37609}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x7FFFFFFF0747AE14, 0x0000000000000002, 0x00000001F170A3D5}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x7FFFFFFF7FFFFFFF, 0x0000000000000002, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x7FFFFFFF80000000, 0x0000000000000002, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x7FFFFFFFFFFFFFFD, 0x0000000000000002, 0x0000000000000003}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x7FFFFFFFFFFFFFFE, 0x0000000000000002, 0x0000000000000001}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFFFFFFFFFC}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFFFFFFFFFB}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFFFFFFFFFA}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFFFFFFFFED}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFFF879BB03}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFFF8B851E9}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFF7FFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFF7FFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFF00000000}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFEFFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFEFFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFD00000000, 0x0000000000000001, 0x00000002FFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFD00000001, 0x0000000000000001, 0x00000002FFFFFFFC}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFD00000002, 0x0000000000000001, 0x00000002FFFFFFFB}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFD00000003, 0x0000000000000001, 0x00000002FFFFFFFA}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFD00000010, 0x0000000000000001, 0x00000002FFFFFFED}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x00000002F879BB03}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x00000002F8B851E9}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x000000027FFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFD80000000, 0x0000000000000001, 0x000000027FFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFDFFFFFFFD, 0x0000000000000001, 0x0000000200000000}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFDFFFFFFFE, 0x0000000000000001, 0x00000001FFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFDFFFFFFFF, 0x0000000000000001, 0x00000001FFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFE00000000, 0x0000000000000001, 0x00000001FFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFE00000001, 0x0000000000000001, 0x00000001FFFFFFFC}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFE00000002, 0x0000000000000001, 0x00000001FFFFFFFB}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFE00000003, 0x0000000000000001, 0x00000001FFFFFFFA}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFE00000010, 0x0000000000000001, 0x00000001FFFFFFED}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFE078644FA, 0x0000000000000001, 0x00000001F879BB03}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFE0747AE14, 0x0000000000000001, 0x00000001F8B851E9}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFE7FFFFFFF, 0x0000000000000001, 0x000000017FFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFE80000000, 0x0000000000000001, 0x000000017FFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFEFFFFFFFD, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFEFFFFFFFE, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFEFFFFFFFF, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFF00000000, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFF00000001, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFF00000002, 0x0000000000000001, 0x00000000FFFFFFFB}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFF00000003, 0x0000000000000001, 0x00000000FFFFFFFA}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFF00000010, 0x0000000000000001, 0x00000000FFFFFFED}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFF078644FA, 0x0000000000000001, 0x00000000F879BB03}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFF0747AE14, 0x0000000000000001, 0x00000000F8B851E9}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFF7FFFFFFF, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFF80000000, 0x0000000000000001, 0x000000007FFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFFFFFFFFFD, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000, 0xFFFFFFFFFFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFD, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFFFFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000000000000001, 0xFFFFFFFFFFFFFFFE, 0x0000000000000000}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000000000000002, 0x7FFFFFFFFFFFFFFF, 0x0000000000000000}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000000000000003, 0x5555555555555554, 0x0000000000000002}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000000000000010, 0x0FFFFFFFFFFFFFFF, 0x000000000000000E}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x00000000078644FA, 0x0000002205B17AFD, 0x000000000094B0EC}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x000000000747AE14, 0x000000232A32A57B, 0x0000000005747862}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x000000007FFFFFFF, 0x0000000200000004, 0x0000000000000002}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000000080000000, 0x00000001FFFFFFFF, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x00000000FFFFFFFD, 0x0000000100000003, 0x0000000000000007}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x00000000FFFFFFFE, 0x0000000100000002, 0x0000000000000002}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x00000000FFFFFFFF, 0x0000000100000000, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000000100000000, 0x00000000FFFFFFFF, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000000100000001, 0x00000000FFFFFFFE, 0x0000000100000000}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000000100000002, 0x00000000FFFFFFFE, 0x0000000000000002}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000000100000003, 0x00000000FFFFFFFD, 0x0000000000000007}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000000100000010, 0x00000000FFFFFFF0, 0x00000000000000FE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x00000001078644FA, 0x00000000F8B0BB5C, 0x000000009B7C9826}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x000000010747AE14, 0x00000000F8EBDA5A, 0x000000003A33C4F6}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x000000017FFFFFFF, 0x00000000AAAAAAAB, 0x000000002AAAAAA9}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000000180000000, 0x00000000AAAAAAAA, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x00000001FFFFFFFD, 0x0000000080000000, 0x000000017FFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x00000001FFFFFFFE, 0x0000000080000000, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x00000001FFFFFFFF, 0x0000000080000000, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000000200000000, 0x000000007FFFFFFF, 0x00000001FFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000000200000001, 0x000000007FFFFFFF, 0x000000017FFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000000200000002, 0x000000007FFFFFFF, 0x0000000100000000}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000000200000003, 0x000000007FFFFFFF, 0x0000000080000001}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000000200000010, 0x000000007FFFFFFC, 0x000000000000003E}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x00000002078644FA, 0x000000007E25684A, 0x0000000043087FBA}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x000000020747AE14, 0x000000007E349CA7, 0x000000005E1940F2}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x000000027FFFFFFF, 0x0000000066666666, 0x0000000166666664}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000000280000000, 0x0000000066666666, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x00000002FFFFFFFD, 0x0000000055555555, 0x00000001FFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x00000002FFFFFFFE, 0x0000000055555555, 0x00000001AAAAAAA8}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x00000002FFFFFFFF, 0x0000000055555555, 0x0000000155555553}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000000300000000, 0x0000000055555555, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000000300000001, 0x0000000055555555, 0x00000000AAAAAAA9}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000000300000002, 0x0000000055555555, 0x0000000055555554}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000000300000003, 0x0000000055555554, 0x0000000300000002}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000000300000010, 0x0000000055555553, 0x00000001AAAAAACE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x00000003078644FA, 0x0000000054816148, 0x00000001381FDFAE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x000000030747AE14, 0x00000000548833C6, 0x000000020C416086}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x000000037FFFFFFF, 0x0000000049249249, 0x00000000C9249247}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000000380000000, 0x0000000049249249, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x00000003FFFFFFFD, 0x0000000040000000, 0x00000000BFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x00000003FFFFFFFE, 0x0000000040000000, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x00000003FFFFFFFF, 0x0000000040000000, 0x000000003FFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000FFFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000FEFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000FE0000000}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000FD0000001}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000F0000000E}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x00000010078644FA, 0x000000000FF87D43, 0x00000003FFFDE090}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x000000100747AE14, 0x000000000FF8BBA0, 0x0000000647AA977E}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000040F83E0F6}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0000001080000000, 0x000000000F83E0F8, 0x00000003FFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x00000010FFFFFFFD, 0x000000000F0F0F0F, 0x000000012D2D2D2B}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x00000010FFFFFFFE, 0x000000000F0F0F0F, 0x000000011E1E1E1C}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x00000010FFFFFFFF, 0x000000000F0F0F0F, 0x000000010F0F0F0D}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x078644FA00000000, 0x0000000000000022, 0x002AD6CBFFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x078644FA00000001, 0x0000000000000022, 0x002AD6CBFFFFFFDC}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x078644FA00000002, 0x0000000000000022, 0x002AD6CBFFFFFFBA}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x078644FA00000003, 0x0000000000000022, 0x002AD6CBFFFFFF98}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x078644FA00000010, 0x0000000000000022, 0x002AD6CBFFFFFDDE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6CB002AD6CA}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6CB087AE156}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6BB00000020}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x078644FA80000000, 0x0000000000000022, 0x002AD6BAFFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6AA00000064}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6AA00000042}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6AA00000020}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0747AE1400000000, 0x0000000000000023, 0x01333343FFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0747AE1400000001, 0x0000000000000023, 0x01333343FFFFFFDB}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0747AE1400000002, 0x0000000000000023, 0x01333343FFFFFFB8}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0747AE1400000003, 0x0000000000000023, 0x01333343FFFFFF95}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0747AE1400000010, 0x0000000000000023, 0x01333343FFFFFDCE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0747AE14078644FA, 0x0000000000000023, 0x01333342F8A491D0}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334301333342}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133333280000021}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0747AE1480000000, 0x0000000000000023, 0x013333327FFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133332100000067}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133332100000044}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133332100000021}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x7FFFFFFF00000000, 0x0000000000000002, 0x00000001FFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x7FFFFFFF00000001, 0x0000000000000002, 0x00000001FFFFFFFC}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x7FFFFFFF00000002, 0x0000000000000002, 0x00000001FFFFFFFA}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x7FFFFFFF00000003, 0x0000000000000002, 0x00000001FFFFFFF8}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x7FFFFFFF00000010, 0x0000000000000002, 0x00000001FFFFFFDE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x7FFFFFFF078644FA, 0x0000000000000002, 0x00000001F0F3760A}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x7FFFFFFF0747AE14, 0x0000000000000002, 0x00000001F170A3D6}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x7FFFFFFF7FFFFFFF, 0x0000000000000002, 0x0000000100000000}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x7FFFFFFF80000000, 0x0000000000000002, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x7FFFFFFFFFFFFFFD, 0x0000000000000002, 0x0000000000000004}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x7FFFFFFFFFFFFFFE, 0x0000000000000002, 0x0000000000000002}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x7FFFFFFFFFFFFFFF, 0x0000000000000002, 0x0000000000000000}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFFFFFFFFFC}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFFFFFFFFFB}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFFFFFFFFEE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFFF879BB04}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFFF8B851EA}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFF7FFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFF00000001}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFF00000000}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFEFFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFD00000000, 0x0000000000000001, 0x00000002FFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFD00000001, 0x0000000000000001, 0x00000002FFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFD00000002, 0x0000000000000001, 0x00000002FFFFFFFC}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFD00000003, 0x0000000000000001, 0x00000002FFFFFFFB}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFD00000010, 0x0000000000000001, 0x00000002FFFFFFEE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x00000002F879BB04}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x00000002F8B851EA}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x000000027FFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFD80000000, 0x0000000000000001, 0x000000027FFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFDFFFFFFFD, 0x0000000000000001, 0x0000000200000001}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFDFFFFFFFE, 0x0000000000000001, 0x0000000200000000}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFDFFFFFFFF, 0x0000000000000001, 0x00000001FFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFE00000000, 0x0000000000000001, 0x00000001FFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFE00000001, 0x0000000000000001, 0x00000001FFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFE00000002, 0x0000000000000001, 0x00000001FFFFFFFC}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFE00000003, 0x0000000000000001, 0x00000001FFFFFFFB}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFE00000010, 0x0000000000000001, 0x00000001FFFFFFEE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFE078644FA, 0x0000000000000001, 0x00000001F879BB04}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFE0747AE14, 0x0000000000000001, 0x00000001F8B851EA}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFE7FFFFFFF, 0x0000000000000001, 0x000000017FFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFE80000000, 0x0000000000000001, 0x000000017FFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFEFFFFFFFD, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFEFFFFFFFE, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFEFFFFFFFF, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFF00000000, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFF00000001, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFF00000002, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFF00000003, 0x0000000000000001, 0x00000000FFFFFFFB}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFF00000010, 0x0000000000000001, 0x00000000FFFFFFEE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFF078644FA, 0x0000000000000001, 0x00000000F879BB04}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFF0747AE14, 0x0000000000000001, 0x00000000F8B851EA}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFF7FFFFFFF, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFF80000000, 0x0000000000000001, 0x000000007FFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFFFFFFFFFD, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFFFFFFFFFE, 0x0000000000000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFFFFFFFFFE, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000, 0xFFFFFFFFFFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000000000000001, 0xFFFFFFFFFFFFFFFF, 0x0000000000000000}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000000000000002, 0x7FFFFFFFFFFFFFFF, 0x0000000000000001}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000000000000003, 0x5555555555555555, 0x0000000000000000}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000000000000010, 0x0FFFFFFFFFFFFFFF, 0x000000000000000F}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x00000000078644FA, 0x0000002205B17AFD, 0x000000000094B0ED}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x000000000747AE14, 0x000000232A32A57B, 0x0000000005747863}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x000000007FFFFFFF, 0x0000000200000004, 0x0000000000000003}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000000080000000, 0x00000001FFFFFFFF, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFD, 0x0000000100000003, 0x0000000000000008}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFE, 0x0000000100000002, 0x0000000000000003}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF, 0x0000000100000001, 0x0000000000000000}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000000100000000, 0x00000000FFFFFFFF, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000000100000001, 0x00000000FFFFFFFF, 0x0000000000000000}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000000100000002, 0x00000000FFFFFFFE, 0x0000000000000003}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000000100000003, 0x00000000FFFFFFFD, 0x0000000000000008}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000000100000010, 0x00000000FFFFFFF0, 0x00000000000000FF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x00000001078644FA, 0x00000000F8B0BB5C, 0x000000009B7C9827}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x000000010747AE14, 0x00000000F8EBDA5A, 0x000000003A33C4F7}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x000000017FFFFFFF, 0x00000000AAAAAAAB, 0x000000002AAAAAAA}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000000180000000, 0x00000000AAAAAAAA, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFD, 0x0000000080000000, 0x000000017FFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFE, 0x0000000080000000, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF, 0x0000000080000000, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000000200000000, 0x000000007FFFFFFF, 0x00000001FFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000000200000001, 0x000000007FFFFFFF, 0x0000000180000000}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000000200000002, 0x000000007FFFFFFF, 0x0000000100000001}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000000200000003, 0x000000007FFFFFFF, 0x0000000080000002}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000000200000010, 0x000000007FFFFFFC, 0x000000000000003F}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x00000002078644FA, 0x000000007E25684A, 0x0000000043087FBB}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x000000020747AE14, 0x000000007E349CA7, 0x000000005E1940F3}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x000000027FFFFFFF, 0x0000000066666666, 0x0000000166666665}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000000280000000, 0x0000000066666666, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x00000002FFFFFFFD, 0x0000000055555555, 0x00000001FFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x00000002FFFFFFFE, 0x0000000055555555, 0x00000001AAAAAAA9}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x00000002FFFFFFFF, 0x0000000055555555, 0x0000000155555554}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000000300000000, 0x0000000055555555, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000000300000001, 0x0000000055555555, 0x00000000AAAAAAAA}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000000300000002, 0x0000000055555555, 0x0000000055555555}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000000300000003, 0x0000000055555555, 0x0000000000000000}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000000300000010, 0x0000000055555553, 0x00000001AAAAAACF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x00000003078644FA, 0x0000000054816148, 0x00000001381FDFAF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x000000030747AE14, 0x00000000548833C6, 0x000000020C416087}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x000000037FFFFFFF, 0x0000000049249249, 0x00000000C9249248}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000000380000000, 0x0000000049249249, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x00000003FFFFFFFD, 0x0000000040000000, 0x00000000BFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x00000003FFFFFFFE, 0x0000000040000000, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x00000003FFFFFFFF, 0x0000000040000000, 0x000000003FFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000001000000000, 0x000000000FFFFFFF, 0x0000000FFFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000001000000001, 0x000000000FFFFFFF, 0x0000000FF0000000}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000001000000002, 0x000000000FFFFFFF, 0x0000000FE0000001}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000001000000003, 0x000000000FFFFFFF, 0x0000000FD0000002}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000001000000010, 0x000000000FFFFFFF, 0x0000000F0000000F}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x00000010078644FA, 0x000000000FF87D43, 0x00000003FFFDE091}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x000000100747AE14, 0x000000000FF8BBA0, 0x0000000647AA977F}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x000000107FFFFFFF, 0x000000000F83E0F8, 0x000000040F83E0F7}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0000001080000000, 0x000000000F83E0F8, 0x00000003FFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x00000010FFFFFFFD, 0x000000000F0F0F0F, 0x000000012D2D2D2C}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x00000010FFFFFFFE, 0x000000000F0F0F0F, 0x000000011E1E1E1D}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x00000010FFFFFFFF, 0x000000000F0F0F0F, 0x000000010F0F0F0E}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x078644FA00000000, 0x0000000000000022, 0x002AD6CBFFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x078644FA00000001, 0x0000000000000022, 0x002AD6CBFFFFFFDD}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x078644FA00000002, 0x0000000000000022, 0x002AD6CBFFFFFFBB}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x078644FA00000003, 0x0000000000000022, 0x002AD6CBFFFFFF99}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x078644FA00000010, 0x0000000000000022, 0x002AD6CBFFFFFDDF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x078644FA078644FA, 0x0000000000000022, 0x002AD6CB002AD6CB}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x078644FA0747AE14, 0x0000000000000022, 0x002AD6CB087AE157}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x078644FA7FFFFFFF, 0x0000000000000022, 0x002AD6BB00000021}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x078644FA80000000, 0x0000000000000022, 0x002AD6BAFFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x078644FAFFFFFFFD, 0x0000000000000022, 0x002AD6AA00000065}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x078644FAFFFFFFFE, 0x0000000000000022, 0x002AD6AA00000043}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x078644FAFFFFFFFF, 0x0000000000000022, 0x002AD6AA00000021}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0747AE1400000000, 0x0000000000000023, 0x01333343FFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0747AE1400000001, 0x0000000000000023, 0x01333343FFFFFFDC}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0747AE1400000002, 0x0000000000000023, 0x01333343FFFFFFB9}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0747AE1400000003, 0x0000000000000023, 0x01333343FFFFFF96}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0747AE1400000010, 0x0000000000000023, 0x01333343FFFFFDCF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0747AE14078644FA, 0x0000000000000023, 0x01333342F8A491D1}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0747AE140747AE14, 0x0000000000000023, 0x0133334301333343}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0747AE147FFFFFFF, 0x0000000000000023, 0x0133333280000022}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0747AE1480000000, 0x0000000000000023, 0x013333327FFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0747AE14FFFFFFFD, 0x0000000000000023, 0x0133332100000068}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0747AE14FFFFFFFE, 0x0000000000000023, 0x0133332100000045}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x0747AE14FFFFFFFF, 0x0000000000000023, 0x0133332100000022}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x7FFFFFFF00000000, 0x0000000000000002, 0x00000001FFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x7FFFFFFF00000001, 0x0000000000000002, 0x00000001FFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x7FFFFFFF00000002, 0x0000000000000002, 0x00000001FFFFFFFB}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x7FFFFFFF00000003, 0x0000000000000002, 0x00000001FFFFFFF9}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x7FFFFFFF00000010, 0x0000000000000002, 0x00000001FFFFFFDF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x7FFFFFFF078644FA, 0x0000000000000002, 0x00000001F0F3760B}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x7FFFFFFF0747AE14, 0x0000000000000002, 0x00000001F170A3D7}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x7FFFFFFF7FFFFFFF, 0x0000000000000002, 0x0000000100000001}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x7FFFFFFF80000000, 0x0000000000000002, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x7FFFFFFFFFFFFFFD, 0x0000000000000002, 0x0000000000000005}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x7FFFFFFFFFFFFFFE, 0x0000000000000002, 0x0000000000000003}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x7FFFFFFFFFFFFFFF, 0x0000000000000002, 0x0000000000000001}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x8000000000000000, 0x0000000000000001, 0x7FFFFFFFFFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x8000000000000001, 0x0000000000000001, 0x7FFFFFFFFFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x8000000000000002, 0x0000000000000001, 0x7FFFFFFFFFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x8000000000000003, 0x0000000000000001, 0x7FFFFFFFFFFFFFFC}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x8000000000000010, 0x0000000000000001, 0x7FFFFFFFFFFFFFEF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x80000000078644FA, 0x0000000000000001, 0x7FFFFFFFF879BB05}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x800000000747AE14, 0x0000000000000001, 0x7FFFFFFFF8B851EB}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x800000007FFFFFFF, 0x0000000000000001, 0x7FFFFFFF80000000}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x8000000080000000, 0x0000000000000001, 0x7FFFFFFF7FFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFD, 0x0000000000000001, 0x7FFFFFFF00000002}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFE, 0x0000000000000001, 0x7FFFFFFF00000001}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF, 0x0000000000000001, 0x7FFFFFFF00000000}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFD00000000, 0x0000000000000001, 0x00000002FFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFD00000001, 0x0000000000000001, 0x00000002FFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFD00000002, 0x0000000000000001, 0x00000002FFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFD00000003, 0x0000000000000001, 0x00000002FFFFFFFC}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFD00000010, 0x0000000000000001, 0x00000002FFFFFFEF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFD078644FA, 0x0000000000000001, 0x00000002F879BB05}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFD0747AE14, 0x0000000000000001, 0x00000002F8B851EB}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFD7FFFFFFF, 0x0000000000000001, 0x0000000280000000}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFD80000000, 0x0000000000000001, 0x000000027FFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFDFFFFFFFD, 0x0000000000000001, 0x0000000200000002}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFDFFFFFFFE, 0x0000000000000001, 0x0000000200000001}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFDFFFFFFFF, 0x0000000000000001, 0x0000000200000000}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFE00000000, 0x0000000000000001, 0x00000001FFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFE00000001, 0x0000000000000001, 0x00000001FFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFE00000002, 0x0000000000000001, 0x00000001FFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFE00000003, 0x0000000000000001, 0x00000001FFFFFFFC}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFE00000010, 0x0000000000000001, 0x00000001FFFFFFEF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFE078644FA, 0x0000000000000001, 0x00000001F879BB05}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFE0747AE14, 0x0000000000000001, 0x00000001F8B851EB}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFE7FFFFFFF, 0x0000000000000001, 0x0000000180000000}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFE80000000, 0x0000000000000001, 0x000000017FFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFEFFFFFFFD, 0x0000000000000001, 0x0000000100000002}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFEFFFFFFFE, 0x0000000000000001, 0x0000000100000001}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFEFFFFFFFF, 0x0000000000000001, 0x0000000100000000}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000, 0x0000000000000001, 0x00000000FFFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001, 0x0000000000000001, 0x00000000FFFFFFFE}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000002, 0x0000000000000001, 0x00000000FFFFFFFD}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000003, 0x0000000000000001, 0x00000000FFFFFFFC}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000010, 0x0000000000000001, 0x00000000FFFFFFEF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFF078644FA, 0x0000000000000001, 0x00000000F879BB05}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFF0747AE14, 0x0000000000000001, 0x00000000F8B851EB}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFF7FFFFFFF, 0x0000000000000001, 0x0000000080000000}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000, 0x0000000000000001, 0x000000007FFFFFFF}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFD, 0x0000000000000001, 0x0000000000000002}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFE, 0x0000000000000001, 0x0000000000000001}, + [_]u64{0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0x0000000000000001, 0x0000000000000000}, +}; diff --git a/lib/std/special/compiler_rt/udivmodti4.zig b/lib/std/special/compiler_rt/udivmodti4.zig new file mode 100644 index 0000000000..c74dff512d --- /dev/null +++ b/lib/std/special/compiler_rt/udivmodti4.zig @@ -0,0 +1,18 @@ +const udivmod = @import("udivmod.zig").udivmod; +const builtin = @import("builtin"); +const compiler_rt = @import("../compiler_rt.zig"); + +pub extern fn __udivmodti4(a: u128, b: u128, maybe_rem: ?*u128) u128 { + @setRuntimeSafety(builtin.is_test); + return udivmod(u128, a, b, maybe_rem); +} + +const v128 = @Vector(2, u64); +pub extern fn __udivmodti4_windows_x86_64(a: v128, b: v128, maybe_rem: ?*u128) v128 { + @setRuntimeSafety(builtin.is_test); + return @bitCast(v128, udivmod(u128, @bitCast(u128, a), @bitCast(u128, b), maybe_rem)); +} + +test "import udivmodti4" { + _ = @import("udivmodti4_test.zig"); +} diff --git a/lib/std/special/compiler_rt/udivmodti4_test.zig b/lib/std/special/compiler_rt/udivmodti4_test.zig new file mode 100644 index 0000000000..fdeae7c02b --- /dev/null +++ b/lib/std/special/compiler_rt/udivmodti4_test.zig @@ -0,0 +1,65300 @@ +// Disable formatting to avoid unnecessary source repository bloat. +// zig fmt: off +const __udivmodti4 = @import("udivmodti4.zig").__udivmodti4; +const testing = @import("std").testing; + +fn test__udivmodti4(a: u128, b: u128, expected_q: u128, expected_r: u128) void { + var r: u128 = undefined; + const q = __udivmodti4(a, b, &r); + testing.expect(q == expected_q); + testing.expect(r == expected_r); +} + +test "udivmodti4" { + for (cases) |case| { + test__udivmodti4(case[0], case[1], case[2], case[3]); + } +} + +const cases = [_][4]u128{ + [_]u128{0x00000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000000000000000000000000002, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000100000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000000000000000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000002}, + [_]u128{0x00000000000000000000000100000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000100000001, 0x00000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000000000000000000000000003, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000000000000000000000180000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000000000000000000000180000000, 0x00000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000000000000180000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000000000003, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000000000010000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000000000018000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000000000018000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000000000018000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x00000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000000000000000000080000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000000000000000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0x00000000000000008000000000000000, 0x00000000000000000000000180000000, 0x00000000000000000000000055555555, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000008000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000000000000000000040000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000008000000000000001, 0x00000000000000000000000080000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000080000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000000000000000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000000000000080000002}, + [_]u128{0x00000000000000008000000000000001, 0x00000000000000000000000180000000, 0x00000000000000000000000055555555, 0x00000000000000000000000080000001}, + [_]u128{0x00000000000000008000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000000000000000000040000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000008000000000000001, 0x00000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000000000000000000080000000, 0x00000000000000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000008000000080000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000000000000000000180000000, 0x00000000000000000000000055555555, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000000000000000000000C0000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000000000008000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000000000000008000000080000000, 0x00000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000008000000080000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000100000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000000000000080000000}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000000000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000180000000, 0x00000000000000000000000055555555, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000000000000000000013FFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000000000010000000180000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000000000018000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000000000018000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000000000018000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000000000000000000002}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000000000000000000003}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000000000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000000000000000000180000000}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000000000000080000002}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000080000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x00000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000000000000000000080000000, 0x00000000000000000000000200000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000010000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000010000000000000000, 0x00000000000000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000010000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000000000008000000000000000, 0x00000000000000000000000000000002, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000000000000010000000000000000, 0x00000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000000000000010000000000000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000010000000000000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000000000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000010000000000000001, 0x00000000000000000000000080000000, 0x00000000000000000000000200000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000000000000000000002}, + [_]u128{0x00000000000000010000000000000001, 0x00000000000000000000000100000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000002}, + [_]u128{0x00000000000000010000000000000001, 0x00000000000000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000010000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000080000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000000000008000000000000000, 0x00000000000000000000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000010000000000000001, 0x00000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x00000000000000010000000000000001, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000002}, + [_]u128{0x00000000000000010000000000000001, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000010000000000000001, 0x00000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000010000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000000000000000000080000000, 0x00000000000000000000000200000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000010000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000000000000010000000080000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0x00000000000000010000000080000000, 0x00000000000000000000000180000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000010000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000000000008000000000000000, 0x00000000000000000000000000000002, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000000000008000000000000001, 0x00000000000000000000000000000002, 0x0000000000000000000000007FFFFFFE}, + [_]u128{0x00000000000000010000000080000000, 0x00000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000010000000080000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000000000000010000000080000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000000000010000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000000000000010000000080000000, 0x00000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000010000000080000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000000000000010000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000200000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000002, 0x00000000000000000000000000000001}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000180000000, 0x000000000000000000000000AAAAAAAB, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFD}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000000000010000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000000000018000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000000000018000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000000000018000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x00000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000010000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000000000000000000080000000, 0x00000000000000000000000200000002, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000002, 0x00000000000000000000000000000002}, + [_]u128{0x00000000000000010000000100000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000000000000000000100000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000000000000000000180000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000010000000100000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000000000008000000000000000, 0x00000000000000000000000000000002, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000000000008000000000000001, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x00000000000000010000000100000000, 0x00000000000000008000000080000000, 0x00000000000000000000000000000002, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000010000000100000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000200000000}, + [_]u128{0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000010000000100000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000000000010000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000000000010000000100000000, 0x00000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000010000000100000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000010000000100000000, 0x00000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000000000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000000000010000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000010000000100000001, 0x00000000000000000000000080000000, 0x00000000000000000000000200000002, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000002, 0x00000000000000000000000000000003}, + [_]u128{0x00000000000000010000000100000001, 0x00000000000000000000000100000000, 0x00000000000000000000000100000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000000000000000000100000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000000000000000000180000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000000000000080000001}, + [_]u128{0x00000000000000010000000100000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000180000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000000000008000000000000000, 0x00000000000000000000000000000002, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000000000008000000000000001, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000000000010000000100000001, 0x00000000000000008000000080000000, 0x00000000000000000000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000010000000100000001, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000002}, + [_]u128{0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000200000001}, + [_]u128{0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000000000000200000000}, + [_]u128{0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000001}, + [_]u128{0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000002}, + [_]u128{0x00000000000000010000000100000001, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000010000000100000001, 0x00000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000000000000010000000100000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000002}, + [_]u128{0x00000000000000010000000100000001, 0x00000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000010000000100000001, 0x00000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000100000001}, + [_]u128{0x00000000000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000000000010000000180000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000000000000000000080000000, 0x00000000000000000000000200000003, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000002, 0x00000000000000000000000080000002}, + [_]u128{0x00000000000000010000000180000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000000000000000000100000001, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000000000000000000180000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000010000000180000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000010000000180000000, 0x00000000000000008000000000000000, 0x00000000000000000000000000000002, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000000000008000000000000001, 0x00000000000000000000000000000002, 0x0000000000000000000000017FFFFFFE}, + [_]u128{0x00000000000000010000000180000000, 0x00000000000000008000000080000000, 0x00000000000000000000000000000002, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000010000000180000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000080000001}, + [_]u128{0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000280000000}, + [_]u128{0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000200000000}, + [_]u128{0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000180000001}, + [_]u128{0x00000000000000010000000180000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000000000010000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x00000000000000010000000180000000, 0x00000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000000000000010000000180000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000000000000010000000180000000, 0x00000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000000000010000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000000000000010000000180000000, 0x00000000000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000010000000180000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000000000000010000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000010000000180000000}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000200000003, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000003, 0x00000000000000000000000000000002}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000100000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000180000000, 0x000000000000000000000000AAAAAAAB, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000000000000080000000}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000000000002, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000000000000000000002, 0x000000000000000000000001FFFFFFFD}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000002FFFFFFFE}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000200000000}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000000000010000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000000000018000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000000000018000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000000000018000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x00000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000018000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000000000000000000080000000, 0x00000000000000000000000300000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000180000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000000000000018000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000180000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000000000000000000100000001, 0x0000000000000000000000017FFFFFFE, 0x00000000000000000000000080000002}, + [_]u128{0x00000000000000018000000000000000, 0x00000000000000000000000180000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000000000000000000000C0000000, 0x000000000000000000000000C0000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000000000008000000000000000, 0x00000000000000000000000000000003, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000000000008000000000000001, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x00000000000000018000000000000000, 0x00000000000000008000000080000000, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000000000000018000000000000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x00000000000000018000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x00000000000000018000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x00000000000000018000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000018000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000018000000000000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000000000000018000000000000000, 0x00000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000000000000018000000000000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000000000000018000000000000000, 0x00000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x00000000000000018000000000000000, 0x00000000000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x00000000000000018000000000000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x00000000000000018000000000000000, 0x00000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000000000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000000000018000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000018000000000000001, 0x00000000000000000000000080000000, 0x00000000000000000000000300000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000180000001, 0x00000000000000000000000080000002}, + [_]u128{0x00000000000000018000000000000001, 0x00000000000000000000000100000000, 0x00000000000000000000000180000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000000000000000000100000001, 0x0000000000000000000000017FFFFFFE, 0x00000000000000000000000080000003}, + [_]u128{0x00000000000000018000000000000001, 0x00000000000000000000000180000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x000000000000000000000001FFFFFFFF, 0x000000000000000000000000C0000000, 0x000000000000000000000000C0000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000000000008000000000000000, 0x00000000000000000000000000000003, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000000000008000000000000001, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000000000000018000000000000001, 0x00000000000000008000000080000000, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000000000000018000000000000001, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFE00000003}, + [_]u128{0x00000000000000018000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000008000000100000001}, + [_]u128{0x00000000000000018000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x00000000000000018000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000001}, + [_]u128{0x00000000000000018000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000002}, + [_]u128{0x00000000000000018000000000000001, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000018000000000000001, 0x00000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x00000000000000018000000000000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0x00000000000000018000000000000001, 0x00000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000000000000018000000000000001, 0x00000000000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x00000000000000018000000000000001, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x00000000000000018000000000000001, 0x00000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000018000000000000001, 0x00000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000000000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000000000018000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000000000000000000080000000, 0x00000000000000000000000300000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000018000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000180000002, 0x00000000000000000000000000000002}, + [_]u128{0x00000000000000018000000080000000, 0x00000000000000000000000100000000, 0x00000000000000000000000180000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000000000000000000100000001, 0x0000000000000000000000017FFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x00000000000000018000000080000000, 0x00000000000000000000000180000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x000000000000000000000001FFFFFFFF, 0x000000000000000000000000C0000000, 0x00000000000000000000000140000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000000000008000000000000000, 0x00000000000000000000000000000003, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000000000008000000000000001, 0x00000000000000000000000000000003, 0x0000000000000000000000007FFFFFFD}, + [_]u128{0x00000000000000018000000080000000, 0x00000000000000008000000080000000, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000000000000018000000080000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFE80000002}, + [_]u128{0x00000000000000018000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000008000000180000000}, + [_]u128{0x00000000000000018000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x00000000000000018000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x00000000000000018000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000080000001}, + [_]u128{0x00000000000000018000000080000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000000000010000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x00000000000000018000000080000000, 0x00000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000000000000018000000080000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x00000000000000018000000080000000, 0x00000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x00000000000000018000000080000000, 0x00000000000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000000000000018000000080000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x00000000000000018000000080000000, 0x00000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000000000018000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000000000000018000000080000000, 0x00000000000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000000000018000000080000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000000000000018000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000000000018000000080000000}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000300000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000180000002, 0x00000000000000000000000080000001}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000180000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000100000001, 0x0000000000000000000000017FFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000180000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000000000000000000000C0000000, 0x000000000000000000000001BFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000000000003, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000000000000000000003, 0x000000000000000000000000FFFFFFFC}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000080000001FFFFFFFE}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFE}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000000000018000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000000000018000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000000000018000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000000000000000000003FFFFFFFE, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000200000001, 0x00000000000000000000000000000001}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000000000000000000003}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000180000000, 0x00000000000000000000000155555554, 0x00000000000000000000000100000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000000000008000000000000000, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000000000008000000000000001, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFEFFFFFFFD}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000000000008000000080000000, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFD80000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFC00000003}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000002, 0x00000000000000000000000100000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000002, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000000000010000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000000000010000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000000000010000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000000000010000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFDFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000000000010000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x000000000000000000000003FFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000200000001, 0x00000000000000000000000000000002}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000000000000000000004}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000180000000, 0x00000000000000000000000155555554, 0x00000000000000000000000100000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000000000008000000000000000, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000000000008000000000000001, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFEFFFFFFFE}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000000000008000000080000000, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFD80000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFC00000004}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000002, 0x00000000000000000000000100000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000000000010000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000000000010000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000000000010000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000000000010000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000000000010000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000000000000000000003FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000200000001, 0x00000000000000000000000080000001}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000000000000080000003}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000180000000, 0x00000000000000000000000155555555, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000000000008000000000000000, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000000000008000000000000001, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFF7FFFFFFD}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000000000008000000080000000, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFE00000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFC80000003}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000002, 0x00000000000000000000000180000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000002, 0x0000000000000000000000017FFFFFFE}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000002, 0x00000000000000000000000080000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000000000010000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000000000010000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000000000010000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000000000010000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000000000010000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x000000000000000000000003FFFFFFFF, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000200000002, 0x00000000000000000000000000000001}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000, 0x00000000000000000000000155555555, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFFFFFFFFFC}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFE7FFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFD00000002}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000002, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000002, 0x000000000000000000000001FFFFFFFD}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFE}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000010000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000000000000000000080000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFF80000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000000000000000000180000000, 0x00000000000000005555555555555555, 0x00000000000000000000000080000000}, + [_]u128{0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000004000000020000000, 0x00000000000000000000000020000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000000000008000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000000800000000000000000000000, 0x00000000000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x00000000800000000000000000000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000002FFFFFFFE}, + [_]u128{0x00000000800000000000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000000800000000000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000004000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x00000000800000000000000000000000, 0x00000000000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000000C000000080000000}, + [_]u128{0x00000000800000000000000000000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x00000000800000000000000000000000, 0x00000000000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000008000000100000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000008000000080000001}, + [_]u128{0x00000000800000000000000000000000, 0x00000000000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000004000000180000000}, + [_]u128{0x00000000800000000000000000000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x00000000800000000000000000000000, 0x00000000000000018000000000000000, 0x00000000000000000000000055555555, 0x00000000000000008000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000000000018000000000000001, 0x00000000000000000000000055555555, 0x00000000000000007FFFFFFFAAAAAAAB}, + [_]u128{0x00000000800000000000000000000000, 0x00000000000000018000000080000000, 0x00000000000000000000000055555555, 0x00000000000000005555555580000000}, + [_]u128{0x00000000800000000000000000000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000000000002AAAAAAB55555555}, + [_]u128{0x00000000800000000000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000004000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000000000003FFFFFFFC0000000}, + [_]u128{0x00000000800000000000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000002000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000000000000000000040000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000000}, + [_]u128{0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000000000000000000001, 0x00000000000000000000000080000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000000000000080000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x00000000000000008000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFF80000000, 0x00000000000000000000000080000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000000000000000000180000000, 0x00000000000000005555555555555555, 0x00000000000000000000000080000001}, + [_]u128{0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000004000000020000000, 0x00000000000000000000000020000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000000000008000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0x00000000800000000000000000000001, 0x00000000000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0x00000000800000000000000000000001, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x00000000800000000000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x00000000800000000000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000004000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000080000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x0000000000000000FFFFFFFF80000002}, + [_]u128{0x00000000800000000000000000000001, 0x00000000000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000000C000000080000001}, + [_]u128{0x00000000800000000000000000000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000000000008000000180000000}, + [_]u128{0x00000000800000000000000000000001, 0x00000000000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000008000000100000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000008000000080000002}, + [_]u128{0x00000000800000000000000000000001, 0x00000000000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000004000000180000001}, + [_]u128{0x00000000800000000000000000000001, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000000000000000000280000000}, + [_]u128{0x00000000800000000000000000000001, 0x00000000000000018000000000000000, 0x00000000000000000000000055555555, 0x00000000000000008000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000000000018000000000000001, 0x00000000000000000000000055555555, 0x00000000000000007FFFFFFFAAAAAAAC}, + [_]u128{0x00000000800000000000000000000001, 0x00000000000000018000000080000000, 0x00000000000000000000000055555555, 0x00000000000000005555555580000001}, + [_]u128{0x00000000800000000000000000000001, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000000000002AAAAAAB55555556}, + [_]u128{0x00000000800000000000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000004000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000000000003FFFFFFFC0000001}, + [_]u128{0x00000000800000000000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000002000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000000000000000000040000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000000000000000000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000000000001}, + [_]u128{0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000000000000000000080000000, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFF80000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000000000000000000180000000, 0x00000000000000005555555555555555, 0x00000000000000000000000100000000}, + [_]u128{0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000004000000020000000, 0x000000000000000000000000A0000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000000000008000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x00000000800000000000000080000000, 0x00000000000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0x00000000800000000000000080000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000000000000037FFFFFFE}, + [_]u128{0x00000000800000000000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000800000000000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000004000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000000000010000000000000001, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000000C000000100000000}, + [_]u128{0x00000000800000000000000080000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x00000000800000000000000080000000, 0x00000000000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000008000000180000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000008000000100000001}, + [_]u128{0x00000000800000000000000080000000, 0x00000000000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000004000000200000000}, + [_]u128{0x00000000800000000000000080000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x00000000800000000000000080000000, 0x00000000000000018000000000000000, 0x00000000000000000000000055555555, 0x00000000000000008000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000000000018000000000000001, 0x00000000000000000000000055555555, 0x0000000000000000800000002AAAAAAB}, + [_]u128{0x00000000800000000000000080000000, 0x00000000000000018000000080000000, 0x00000000000000000000000055555555, 0x00000000000000005555555600000000}, + [_]u128{0x00000000800000000000000080000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000000000002AAAAAABD5555555}, + [_]u128{0x00000000800000000000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000004000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000000000004000000040000000}, + [_]u128{0x00000000800000000000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000002000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x000000000000000000000000C0000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000000800000000000000080000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000000000000080000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x00000000800000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000080000000}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000010000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000001, 0x00000000000000000000000080000000}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000008000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFF80000001, 0x0000000000000000000000007FFFFFFE}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000180000000, 0x00000000000000005555555555555555, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000000000004000000020000000, 0x0000000000000000000000011FFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000000}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000003FFFFFFFD}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000000000000040000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000000C00000017FFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000000800000027FFFFFFE}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000008000000180000000}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000000400000027FFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000000000000037FFFFFFE}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000000000018000000000000000, 0x00000000000000000000000055555555, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000000000018000000000000001, 0x00000000000000000000000055555555, 0x000000000000000080000000AAAAAAAA}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000000000018000000080000000, 0x00000000000000000000000055555555, 0x0000000000000000555555567FFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000000000002AAAAAAC55555554}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000040000000, 0x000000000000000040000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000040000000, 0x000000000000000040000000BFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000040000000, 0x000000000000000020000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000000000000000000013FFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000000000000000000080000000, 0x00000000000000010000000000000002, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFF80000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000000800000000000000100000000, 0x00000000000000000000000180000000, 0x00000000000000005555555555555556, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000004000000020000000, 0x00000000000000000000000120000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000000000008000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000000000008000000000000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000180000000}, + [_]u128{0x00000000800000000000000100000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000003FFFFFFFE}, + [_]u128{0x00000000800000000000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000008000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000800000000000000100000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000004000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000000000010000000000000001, 0x00000000000000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000000C000000180000000}, + [_]u128{0x00000000800000000000000100000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000000800000027FFFFFFF}, + [_]u128{0x00000000800000000000000100000000, 0x00000000000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000008000000200000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000008000000180000001}, + [_]u128{0x00000000800000000000000100000000, 0x00000000000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000004000000280000000}, + [_]u128{0x00000000800000000000000100000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000000000000037FFFFFFF}, + [_]u128{0x00000000800000000000000100000000, 0x00000000000000018000000000000000, 0x00000000000000000000000055555555, 0x00000000000000008000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000000000018000000000000001, 0x00000000000000000000000055555555, 0x000000000000000080000000AAAAAAAB}, + [_]u128{0x00000000800000000000000100000000, 0x00000000000000018000000080000000, 0x00000000000000000000000055555555, 0x00000000000000005555555680000000}, + [_]u128{0x00000000800000000000000100000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000000000002AAAAAAC55555555}, + [_]u128{0x00000000800000000000000100000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000004000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000040000000, 0x000000000000000040000000C0000000}, + [_]u128{0x00000000800000000000000100000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000002000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000000000000000000140000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000800000000000000100000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000000800000000000000100000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000800000000000000100000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000000}, + [_]u128{0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000000000000100000001, 0x00000000000000000000000080000000, 0x00000000000000010000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0x00000000800000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000001, 0x00000000000000000000000080000002}, + [_]u128{0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x00000000000000008000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFF80000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000000800000000000000100000001, 0x00000000000000000000000180000000, 0x00000000000000005555555555555556, 0x00000000000000000000000000000001}, + [_]u128{0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000004000000020000000, 0x00000000000000000000000120000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000000000008000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000000000008000000000000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000180000001}, + [_]u128{0x00000000800000000000000100000001, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000003FFFFFFFF}, + [_]u128{0x00000000800000000000000100000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000008000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000008000000080000001}, + [_]u128{0x00000000800000000000000100000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000004000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000180000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000000000010000000000000001, 0x00000000000000000000000080000000, 0x00000000000000000000000080000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000000C000000180000001}, + [_]u128{0x00000000800000000000000100000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000000000008000000280000000}, + [_]u128{0x00000000800000000000000100000001, 0x00000000000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000008000000200000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000008000000180000002}, + [_]u128{0x00000000800000000000000100000001, 0x00000000000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000004000000280000001}, + [_]u128{0x00000000800000000000000100000001, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000000000000000000380000000}, + [_]u128{0x00000000800000000000000100000001, 0x00000000000000018000000000000000, 0x00000000000000000000000055555555, 0x00000000000000008000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000000000018000000000000001, 0x00000000000000000000000055555555, 0x000000000000000080000000AAAAAAAC}, + [_]u128{0x00000000800000000000000100000001, 0x00000000000000018000000080000000, 0x00000000000000000000000055555555, 0x00000000000000005555555680000001}, + [_]u128{0x00000000800000000000000100000001, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000000000002AAAAAAC55555556}, + [_]u128{0x00000000800000000000000100000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000004000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000040000000, 0x000000000000000040000000C0000001}, + [_]u128{0x00000000800000000000000100000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000002000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000000000000000000140000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000000800000000000000100000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000000800000000000000100000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000002}, + [_]u128{0x00000000800000000000000100000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000000000000100000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000100000001}, + [_]u128{0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000000000000000000080000000, 0x00000000000000010000000000000003, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000002, 0x00000000000000000000000000000002}, + [_]u128{0x00000000800000000000000180000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFF80000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000800000000000000180000000, 0x00000000000000000000000180000000, 0x00000000000000005555555555555556, 0x00000000000000000000000080000000}, + [_]u128{0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000004000000020000000, 0x000000000000000000000001A0000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000000000008000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000000000008000000000000001, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000200000000}, + [_]u128{0x00000000800000000000000180000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000000000000047FFFFFFE}, + [_]u128{0x00000000800000000000000180000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000008000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000008000000100000000}, + [_]u128{0x00000000800000000000000180000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000004000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000200000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000000000010000000000000001, 0x00000000000000000000000080000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000000C000000200000000}, + [_]u128{0x00000000800000000000000180000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000000000000080000002FFFFFFFF}, + [_]u128{0x00000000800000000000000180000000, 0x00000000000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000008000000280000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000008000000200000001}, + [_]u128{0x00000000800000000000000180000000, 0x00000000000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000004000000300000000}, + [_]u128{0x00000000800000000000000180000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000000000000000000003FFFFFFFF}, + [_]u128{0x00000000800000000000000180000000, 0x00000000000000018000000000000000, 0x00000000000000000000000055555555, 0x00000000000000008000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000000000018000000000000001, 0x00000000000000000000000055555555, 0x0000000000000000800000012AAAAAAB}, + [_]u128{0x00000000800000000000000180000000, 0x00000000000000018000000080000000, 0x00000000000000000000000055555555, 0x00000000000000005555555700000000}, + [_]u128{0x00000000800000000000000180000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000000000002AAAAAACD5555555}, + [_]u128{0x00000000800000000000000180000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000004000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000000000004000000140000000}, + [_]u128{0x00000000800000000000000180000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000002000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x000000000000000000000001C0000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x00000000800000000000000180000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000000800000000000000180000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000000800000000000000180000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000000800000000000000180000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000000000000180000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x00000000800000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000000000000180000000}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000010000000000000003, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000002, 0x00000000000000000000000080000001}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000008000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFF80000002, 0x0000000000000000000000007FFFFFFD}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000180000000, 0x00000000000000005555555555555556, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000000000004000000020000001, 0x00000000000000000000000020000000}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000100000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000004FFFFFFFD}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000000000000040000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000000C00000027FFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000000800000037FFFFFFE}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000000000000080000002FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000008000000280000000}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000000400000037FFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000000000000047FFFFFFE}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000000000018000000000000000, 0x00000000000000000000000055555555, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000000000018000000000000001, 0x00000000000000000000000055555555, 0x000000000000000080000001AAAAAAAA}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000000000018000000080000000, 0x00000000000000000000000055555555, 0x0000000000000000555555577FFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000000000002AAAAAAD55555554}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000040000000, 0x000000000000000040000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000040000000, 0x000000000000000040000001BFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000040000000, 0x000000000000000020000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000000000000000000023FFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000000000000000000080000000, 0x00000000000000010000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x00000000000000008000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000000000000000000100000001, 0x00000000000000008000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000000000000000000180000000, 0x000000000000000055555555AAAAAAAA, 0x00000000000000000000000100000000}, + [_]u128{0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000004000000060000000, 0x00000000000000000000000060000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000000000008000000000000000, 0x00000000000000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000000000008000000000000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000000000008000000080000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x00000000800000008000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000080000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000000800000008000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000080000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000000800000008000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000000000000C000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000000000010000000000000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000000000010000000080000000, 0x00000000000000000000000080000000, 0x00000000000000004000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000000000010000000100000000, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000010000000080000001}, + [_]u128{0x00000000800000008000000000000000, 0x00000000000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000000C000000180000000}, + [_]u128{0x00000000800000008000000000000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000000800000027FFFFFFF}, + [_]u128{0x00000000800000008000000000000000, 0x00000000000000018000000000000000, 0x00000000000000000000000055555555, 0x00000000000000010000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000000000018000000000000001, 0x00000000000000000000000055555555, 0x0000000000000000FFFFFFFFAAAAAAAB}, + [_]u128{0x00000000800000008000000000000000, 0x00000000000000018000000080000000, 0x00000000000000000000000055555555, 0x0000000000000000D555555580000000}, + [_]u128{0x00000000800000008000000000000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000000000000AAAAAAAB55555555}, + [_]u128{0x00000000800000008000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000040000000, 0x0000000000000000C000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000040000000, 0x0000000000000000BFFFFFFFC0000000}, + [_]u128{0x00000000800000008000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000040000000, 0x0000000000000000A000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000000000008000000040000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000000800000008000000000000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000000800000008000000000000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000000800000008000000000000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x00000000800000008000000000000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x00000000800000008000000000000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x00000000800000008000000000000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000000}, + [_]u128{0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000008000000000000001, 0x00000000000000000000000080000000, 0x00000000000000010000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000001, 0x00000000000000000000000000000002}, + [_]u128{0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x00000000000000008000000080000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000000000000000000100000001, 0x00000000000000008000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000000000000000000180000000, 0x000000000000000055555555AAAAAAAA, 0x00000000000000000000000100000001}, + [_]u128{0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000004000000060000000, 0x00000000000000000000000060000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000000000008000000000000000, 0x00000000000000000000000100000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000000000008000000000000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000000000008000000080000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000200000000}, + [_]u128{0x00000000800000008000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000080000001, 0x00000000000000000000000100000001}, + [_]u128{0x00000000800000008000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000080000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000000800000008000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000000000000C000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000008000000080000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000000000010000000000000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000000000010000000080000000, 0x00000000000000000000000080000000, 0x00000000000000004000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000080000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000000000010000000100000000, 0x00000000000000000000000080000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000010000000080000002}, + [_]u128{0x00000000800000008000000000000001, 0x00000000000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000000C000000180000001}, + [_]u128{0x00000000800000008000000000000001, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000000000008000000280000000}, + [_]u128{0x00000000800000008000000000000001, 0x00000000000000018000000000000000, 0x00000000000000000000000055555555, 0x00000000000000010000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000000000018000000000000001, 0x00000000000000000000000055555555, 0x0000000000000000FFFFFFFFAAAAAAAC}, + [_]u128{0x00000000800000008000000000000001, 0x00000000000000018000000080000000, 0x00000000000000000000000055555555, 0x0000000000000000D555555580000001}, + [_]u128{0x00000000800000008000000000000001, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000000000000AAAAAAAB55555556}, + [_]u128{0x00000000800000008000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000040000000, 0x0000000000000000C000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000040000000, 0x0000000000000000BFFFFFFFC0000001}, + [_]u128{0x00000000800000008000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000040000000, 0x0000000000000000A000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000000000008000000040000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000000800000008000000000000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x00000000800000008000000000000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0x00000000800000008000000000000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000000800000008000000000000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x00000000800000008000000000000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x00000000800000008000000000000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000008000000000000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000000000001}, + [_]u128{0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000000000000000000080000000, 0x00000000000000010000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000000800000008000000080000000, 0x00000000000000000000000100000000, 0x00000000000000008000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000000000000000000100000001, 0x00000000000000008000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000000000000000000180000000, 0x000000000000000055555555AAAAAAAB, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000004000000060000000, 0x000000000000000000000000E0000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000000000008000000000000000, 0x00000000000000000000000100000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000000000008000000000000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000000000008000000080000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x00000000800000008000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000080000001, 0x00000000000000000000000180000000}, + [_]u128{0x00000000800000008000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000080000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000800000008000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000000000000C000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000008000000100000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000000000010000000000000001, 0x00000000000000000000000080000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000000000010000000080000000, 0x00000000000000000000000080000000, 0x00000000000000004000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000000000010000000100000000, 0x00000000000000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000000000010000000100000001, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000000C000000200000000}, + [_]u128{0x00000000800000008000000080000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000000000000080000002FFFFFFFF}, + [_]u128{0x00000000800000008000000080000000, 0x00000000000000018000000000000000, 0x00000000000000000000000055555555, 0x00000000000000010000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000000000018000000000000001, 0x00000000000000000000000055555555, 0x0000000000000001000000002AAAAAAB}, + [_]u128{0x00000000800000008000000080000000, 0x00000000000000018000000080000000, 0x00000000000000000000000055555555, 0x0000000000000000D555555600000000}, + [_]u128{0x00000000800000008000000080000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000000000000AAAAAAABD5555555}, + [_]u128{0x00000000800000008000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000040000000, 0x0000000000000000C000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000040000000, 0x0000000000000000C000000040000000}, + [_]u128{0x00000000800000008000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000040000000, 0x0000000000000000A000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x000000000000000080000000C0000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x00000000800000008000000080000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000000800000008000000080000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x00000000800000008000000080000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x00000000800000008000000080000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000000800000008000000080000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x00000000800000008000000080000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000000800000008000000080000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000800000008000000080000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x00000000800000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000800000008000000080000000}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000010000000100000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000002, 0x00000000000000000000000000000001}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000008000000080000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000008000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000180000000, 0x000000000000000055555555AAAAAAAB, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000000000004000000060000000, 0x0000000000000000000000015FFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000100000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000002FFFFFFFE}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000080000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000080000001, 0x0000000000000000000000017FFFFFFE}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000000000000C0000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000000000000080000000, 0x000000000000000040000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000000000000080000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000000000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000000C00000027FFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000000800000037FFFFFFE}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000000000018000000000000000, 0x00000000000000000000000055555555, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000000000018000000000000001, 0x00000000000000000000000055555555, 0x000000000000000100000000AAAAAAAA}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000000000018000000080000000, 0x00000000000000000000000055555555, 0x0000000000000000D55555567FFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000000000000AAAAAAAC55555554}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000040000000, 0x0000000000000000C0000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000040000000, 0x0000000000000000C0000000BFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000040000000, 0x0000000000000000A0000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000000000000800000013FFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFE}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000000000000100000001FFFFFFFE, 0x00000000000000000000000000000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000180000000, 0x00000000000000000000000080000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000100000001, 0x0000000000000000800000007FFFFFFE, 0x00000000000000000000000080000002}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000180000000, 0x000000000000000055555555FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000400000009FFFFFFF, 0x0000000000000000000000019FFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000000000008000000000000000, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000000000008000000000000001, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFDFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000000000008000000080000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000080000001, 0x00000000000000008000000000000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000080000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000080000001, 0x00000000000000003FFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000000000010000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000000000010000000080000000, 0x00000000000000000000000080000000, 0x0000000000000000BFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000000000010000000100000000, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000000000010000000100000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000000000010000000180000000, 0x00000000000000000000000080000000, 0x00000000000000003FFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000001000000017FFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000000000018000000000000000, 0x00000000000000000000000055555555, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000000000018000000000000001, 0x00000000000000000000000055555555, 0x00000000000000017FFFFFFEAAAAAAAB}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000000000018000000080000000, 0x00000000000000000000000055555555, 0x00000000000000015555555480000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000000000012AAAAAAA55555555}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000013FFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000000000013FFFFFFEC0000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000011FFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000000000000FFFFFFFF40000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFDFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x000000000000000100000001FFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000180000000, 0x00000000000000000000000080000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000100000001, 0x0000000000000000800000007FFFFFFE, 0x00000000000000000000000080000003}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000180000000, 0x000000000000000055555555FFFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000400000009FFFFFFF, 0x000000000000000000000001A0000000}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000000000008000000000000000, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000000000008000000000000001, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFE00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000000000008000000080000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000080000001, 0x00000000000000008000000000000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000080000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000080000001, 0x00000000000000003FFFFFFF80000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000000000010000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000000000010000000080000000, 0x00000000000000000000000080000000, 0x0000000000000000BFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000000000010000000100000000, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000000000010000000100000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000000000010000000180000000, 0x00000000000000000000000080000000, 0x00000000000000003FFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000000000010000000180000000}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000000000018000000000000000, 0x00000000000000000000000055555555, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000000000018000000000000001, 0x00000000000000000000000055555555, 0x00000000000000017FFFFFFEAAAAAAAC}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000000000018000000080000000, 0x00000000000000000000000055555555, 0x00000000000000015555555480000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000000000012AAAAAAA55555556}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000013FFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000000000013FFFFFFEC0000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000011FFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000000000000FFFFFFFF40000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000180000001, 0x00000000000000000000000000000001}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000100000001, 0x0000000000000000800000007FFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000180000000, 0x000000000000000055555555FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFF, 0x000000000000000040000000A0000000, 0x00000000000000000000000020000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000000000008000000000000000, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000000000008000000000000001, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFE7FFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000000000008000000080000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000080000001, 0x00000000000000008000000080000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000080000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000080000001, 0x00000000000000004000000000000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000000000000000000001}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000000000010000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000000000010000000080000000, 0x00000000000000000000000080000000, 0x0000000000000000BFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000008000000000000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000000000010000000100000000, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000000000010000000100000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000000000010000000180000000, 0x00000000000000000000000080000000, 0x00000000000000003FFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000000000018000000000000000, 0x00000000000000000000000055555555, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000000000018000000000000001, 0x00000000000000000000000055555555, 0x00000000000000017FFFFFFF2AAAAAAB}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000000000018000000080000000, 0x00000000000000000000000055555555, 0x00000000000000015555555500000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000000000012AAAAAAAD5555555}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000013FFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000000000013FFFFFFF40000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000011FFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000000000000FFFFFFFFC0000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000180000001, 0x00000000000000000000000080000000}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x0000000000000000800000007FFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000, 0x000000000000000055555555FFFFFFFF, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000000000000040000000A0000000, 0x0000000000000000000000009FFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFEFFFFFFFE}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000080000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000080000001, 0x0000000000000000800000007FFFFFFE}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000080000001, 0x0000000000000000400000007FFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000000000000080000000}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000000000000080000000, 0x0000000000000000BFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000180000000, 0x00000000000000000000000080000000, 0x00000000000000003FFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000018000000000000000, 0x00000000000000000000000055555555, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000018000000000000001, 0x00000000000000000000000055555555, 0x00000000000000017FFFFFFFAAAAAAAA}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000018000000080000000, 0x00000000000000000000000055555555, 0x0000000000000001555555557FFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000000000012AAAAAAB55555554}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000013FFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000000000013FFFFFFFBFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000011FFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000000000001000000003FFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFE}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFE00000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFE00000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFFBFFFFFFF, 0x000000000000000000000001BFFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000000000008000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000000000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000007FFFFFFE00000003}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000000000000200000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000000000007FFFFFFFA}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000008000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000002FFFFFFFE}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000000000000200000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000000000000100000002}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000008000000480000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000000000006FFFFFFFD}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAA9, 0x00000000000000017FFFFFFF55555557}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAA9, 0x00000000000000012AAAAAAB80000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x0000000000000000D5555557AAAAAAA9}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000013FFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFEFFFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE80000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE00000001}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFE00000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFE00000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFFBFFFFFFF, 0x000000000000000000000001C0000000}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000000000008000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000000000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000007FFFFFFE00000004}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000000000000200000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000000000007FFFFFFFB}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000000FFFFFFFF00000003}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000008000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000000000000200000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000000000000100000003}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000008000000480000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000000000006FFFFFFFE}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAA9, 0x00000000000000017FFFFFFF55555558}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAA9, 0x00000000000000012AAAAAAB80000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x0000000000000000D5555557AAAAAAAA}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000017FFFFFFE80000002}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000013FFFFFFF80000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000000000010000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE80000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE00000002}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF80000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF00000002}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000080000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000000000002}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFE00000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000000000007FFFFFFE}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000000000000040000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000000000008000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000000000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000007FFFFFFE80000003}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000000000000280000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x0000000000000000000000087FFFFFFA}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000000FFFFFFFF80000002}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000008000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000000000000037FFFFFFE}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000000000000280000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000000000000180000002}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000008000000500000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000000000000000000077FFFFFFD}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAA9, 0x00000000000000017FFFFFFFD5555557}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAA9, 0x00000000000000012AAAAAAC00000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x0000000000000000D55555582AAAAAA9}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000014000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE80000001}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF80000001}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE000000017FFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000080000001}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFE00000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFE00000002, 0x000000000000000000000000FFFFFFFD}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAA00000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFFC0000000, 0x000000000000000000000000BFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000008000000000000000, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000000000008FFFFFFF9}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000003FFFFFFFD}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000000000000200000001}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000000800000057FFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000000000007FFFFFFFC}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000055555555}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAA9, 0x00000000000000012AAAAAAC7FFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x0000000000000000D5555558AAAAAAA8}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000001400000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000001000000017FFFFFFE}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFE}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000000FFFFFFFE}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000001FFFFFFFE}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE000000017FFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFE00000002, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFE00000002, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFFC0000000, 0x000000000000000000000000C0000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000000000008000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000000000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000007FFFFFFF00000003}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000000000000300000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000000000008FFFFFFFA}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000008000000200000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000003FFFFFFFE}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000000000000300000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000000000000200000002}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000008000000580000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000000000007FFFFFFFD}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000055555556}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAA9, 0x00000000000000012AAAAAAC80000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x0000000000000000D5555558AAAAAAA9}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x0000000000000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000018000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000017FFFFFFF80000001}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000014000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000001000000017FFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFE00000002, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000000000002}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFE00000002, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFFC0000000, 0x000000000000000000000000C0000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000000000008000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000000000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000007FFFFFFF00000004}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000000000000300000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000000000008FFFFFFFB}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000200000000}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000002}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000008000000200000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000003FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000000000000300000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000000000000200000003}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000008000000580000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000000000007FFFFFFFE}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000055555557}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAA9, 0x00000000000000012AAAAAAC80000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x0000000000000000D5555558AAAAAAAA}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x0000000000000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000018000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000017FFFFFFF80000002}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000014000000080000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000000000010000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000002}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000002}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000180000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000002}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000002}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFE00000003, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000000000007FFFFFFD}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAA00000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000000000000140000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000000000008000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000000000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000007FFFFFFF80000003}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000000000000380000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x0000000000000000000000097FFFFFFA}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000008000000280000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000000000000047FFFFFFE}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000000000000380000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000000000000280000002}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000008000000600000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000000000000000000087FFFFFFD}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAA, 0x000000000000000000000000D5555556}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAA9, 0x00000000000000012AAAAAAD00000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x0000000000000000D55555592AAAAAA9}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x0000000000000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000018000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000018000000000000001}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000014000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000280000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE000000027FFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000180000001}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFE00000003, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFE00000003, 0x000000000000000000000000FFFFFFFC}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAA00000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFFC0000000, 0x000000000000000000000001BFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000008000000000000000, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000008000000000000001, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x000000000000000000000003FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000000000009FFFFFFF9}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000002FFFFFFFE}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000080000002FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000004FFFFFFFD}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000003FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000000000000300000001}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000000800000067FFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000000000008FFFFFFFC}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000155555555}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAA9, 0x00000000000000012AAAAAAD7FFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x0000000000000000D5555559AAAAAAA8}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000018000000080000000}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000001400000017FFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000001000000027FFFFFFE}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000001FFFFFFFE}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000001FFFFFFFE}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000002FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000002FFFFFFFE}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE000000027FFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFE80000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAA55555555, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000000000008000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000000000008000000000000001, 0x000000000000000000000001FFFFFFFE, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000000000000180000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x000000000000000000000006FFFFFFFB}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000000000010000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000080000002FFFFFFFE}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000008000000200000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000008000000100000002}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000000000000300000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000080000006FFFFFFFD}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000008000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000007FFFFFFF55555556}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000002AAAAAAB00000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000000000000155555557AAAAAAA9}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000000000001FFFFFFFE80000001}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000001BFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000001800000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE00000001}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000000000000080000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFE80000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAA55555555, 0x00000000000000000000000080000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000000000008000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000000000008000000000000001, 0x000000000000000000000001FFFFFFFE, 0x00000000000000007FFFFFFE00000003}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000000000000180000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x000000000000000000000006FFFFFFFC}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000000}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000000000010000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000080000002FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000008000000200000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000008000000100000003}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000000000000300000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000080000006FFFFFFFE}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000008000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000007FFFFFFF55555557}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000002AAAAAAB00000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000000000000155555557AAAAAAAA}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000000000001FFFFFFFE80000002}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000001BFFFFFFF80000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000000000018000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000002}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE00000002}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000002}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000080000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFE80000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAA55555555, 0x00000000000000000000000100000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000000000008000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000000000008000000000000001, 0x000000000000000000000001FFFFFFFE, 0x00000000000000007FFFFFFE80000002}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000000000000200000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x0000000000000000000000077FFFFFFB}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000000000010000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000000800000037FFFFFFE}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000008000000280000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000008000000180000002}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000000000000380000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000000000000800000077FFFFFFD}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000008000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000007FFFFFFFD5555556}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000002AAAAAAB80000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x0000000000000001555555582AAAAAA9}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000001C000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000080000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFE80000002, 0x0000000000000000000000007FFFFFFD}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAA55555555, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000008000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000008000000000000001, 0x000000000000000000000001FFFFFFFE, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x000000000000000000000007FFFFFFFA}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000001FFFFFFFE}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000000}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000010000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000080000003FFFFFFFD}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000080000002FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000008000000200000001}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000003FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000080000007FFFFFFFC}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000008000000055555555}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000002AAAAAABFFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000000000000155555558AAAAAAA8}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000001C00000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000001800000017FFFFFFE}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFE}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000001FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000001FFFFFFFE}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFE}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFE, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAAAAAAAAAA, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000800000003FFFFFFF, 0x0000000000000000000000013FFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000008000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000008000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFD00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000000000004FFFFFFFC}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000010000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000010000000000000002}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000008000000200000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000003FFFFFFFE}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000FFFFFFFE55555556}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000AAAAAAAA00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000055555555AAAAAAAA}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000003FFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000001FFFFFFFF7FFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFDFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFDFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAAAAAAAAAA, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000800000003FFFFFFF, 0x00000000000000000000000140000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000008000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000008000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFD00000002}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000000000004FFFFFFFD}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000010000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000010000000000000003}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000008000000200000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000003FFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000FFFFFFFE55555557}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000AAAAAAAA00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000055555555AAAAAAAB}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000003FFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000002}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD80000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD00000002}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE00000002}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAAAAAAAAAA, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000800000003FFFFFFF, 0x000000000000000000000001BFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000008000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000008000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFD80000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x0000000000000000000000057FFFFFFC}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000010000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000010000000080000002}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000008000000280000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000000000000047FFFFFFE}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000FFFFFFFED5555556}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000AAAAAAAA80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000555555562AAAAAAA}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000003FFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD80000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAAAAAAAAAA, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000040000000, 0x0000000000000000000000003FFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFE00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000000000005FFFFFFFB}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000010000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000080000002FFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000004FFFFFFFD}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000FFFFFFFF55555555}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000AAAAAAAAFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000055555556AAAAAAA9}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000003FFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFE}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFEFFFFFFFE}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFE}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000000000020000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000000000000000000000, 0x00000000000000000000000100000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAAAAAAAAAA, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000040000000, 0x00000000000000000000000040000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000000000000008000000000000000, 0x00000000000000000000000200000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000000000000008000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x00000001000000000000000000000000, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000000000000000000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000000000005FFFFFFFC}, + [_]u128{0x00000001000000000000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000000000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000001000000000000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000000000000010000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000000000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x00000001000000000000000000000000, 0x00000000000000010000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000000}, + [_]u128{0x00000001000000000000000000000000, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x00000001000000000000000000000000, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000000000000000000000, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000008000000300000000}, + [_]u128{0x00000001000000000000000000000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000004FFFFFFFE}, + [_]u128{0x00000001000000000000000000000000, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000010000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000FFFFFFFF55555556}, + [_]u128{0x00000001000000000000000000000000, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000AAAAAAAB00000000}, + [_]u128{0x00000001000000000000000000000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000055555556AAAAAAAA}, + [_]u128{0x00000001000000000000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000001000000000000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000004000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000000000000000000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001000000000000000000000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001000000000000000000000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0x00000001000000000000000000000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0x00000001000000000000000000000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000001}, + [_]u128{0x00000001000000000000000000000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000000000000000000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x00000001000000000000000000000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0x00000001000000000000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x00000001000000000000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001000000000000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x00000001000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x00000001000000000000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000000000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x00000001000000000000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x00000001000000000000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x00000001000000000000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000000000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000001000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000000000000000000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000000}, + [_]u128{0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000000000020000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000000000000000000002}, + [_]u128{0x00000001000000000000000000000001, 0x00000000000000000000000100000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000000000000000000001, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAAAAAAAAAA, 0x00000000000000000000000100000001}, + [_]u128{0x00000001000000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000040000000, 0x00000000000000000000000040000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000000000000008000000000000000, 0x00000000000000000000000200000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000000000000008000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x00000001000000000000000000000001, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000100000001}, + [_]u128{0x00000001000000000000000000000001, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000000000005FFFFFFFD}, + [_]u128{0x00000001000000000000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000001, 0x00000000000000000000000100000001}, + [_]u128{0x00000001000000000000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000000000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000000000000010000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000000000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0x00000001000000000000000000000001, 0x00000000000000010000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000001}, + [_]u128{0x00000001000000000000000000000001, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000200000000}, + [_]u128{0x00000001000000000000000000000001, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000002}, + [_]u128{0x00000001000000000000000000000001, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000008000000300000001}, + [_]u128{0x00000001000000000000000000000001, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000004FFFFFFFF}, + [_]u128{0x00000001000000000000000000000001, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000010000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000FFFFFFFF55555557}, + [_]u128{0x00000001000000000000000000000001, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000AAAAAAAB00000001}, + [_]u128{0x00000001000000000000000000000001, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000055555556AAAAAAAB}, + [_]u128{0x00000001000000000000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x00000001000000000000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000004000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000080000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x00000001000000000000000000000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x00000001000000000000000000000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000002}, + [_]u128{0x00000001000000000000000000000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001000000000000000000000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000001}, + [_]u128{0x00000001000000000000000000000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000002}, + [_]u128{0x00000001000000000000000000000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x00000001000000000000000000000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0x00000001000000000000000000000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000002}, + [_]u128{0x00000001000000000000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0x00000001000000000000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x00000001000000000000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0x00000001000000000000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000002}, + [_]u128{0x00000001000000000000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x00000001000000000000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0x00000001000000000000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000001000000000000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0x00000001000000000000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000001000000000000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0x00000001000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000002}, + [_]u128{0x00000001000000000000000000000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000000000000000000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000000000001}, + [_]u128{0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x00000000000000020000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000001000000000000000080000000, 0x00000000000000000000000100000000, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001000000000000000080000000, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAAAAAAAAAB, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000000000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000040000000, 0x000000000000000000000000C0000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000000000000008000000000000000, 0x00000000000000000000000200000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000000000000008000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x00000001000000000000000080000000, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000180000000}, + [_]u128{0x00000001000000000000000080000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x0000000000000000000000067FFFFFFC}, + [_]u128{0x00000001000000000000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000001, 0x00000000000000000000000180000000}, + [_]u128{0x00000001000000000000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001000000000000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000000000000010000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000000000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x00000001000000000000000080000000, 0x00000000000000010000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000000}, + [_]u128{0x00000001000000000000000080000000, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x00000001000000000000000080000000, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000180000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0x00000001000000000000000080000000, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000008000000380000000}, + [_]u128{0x00000001000000000000000080000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000000000000057FFFFFFE}, + [_]u128{0x00000001000000000000000080000000, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000010000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000FFFFFFFFD5555556}, + [_]u128{0x00000001000000000000000080000000, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000AAAAAAAB80000000}, + [_]u128{0x00000001000000000000000080000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000555555572AAAAAAA}, + [_]u128{0x00000001000000000000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000001000000000000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000004000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x0000000000000000000000007FFFFFFE}, + [_]u128{0x00000001000000000000000080000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x00000001000000000000000080000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x00000001000000000000000080000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0x00000001000000000000000080000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001000000000000000080000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000001}, + [_]u128{0x00000001000000000000000080000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0x00000001000000000000000080000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x00000001000000000000000080000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0x00000001000000000000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0x00000001000000000000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0x00000001000000000000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x00000001000000000000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0x00000001000000000000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x00000001000000000000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x00000001000000000000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x00000001000000000000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x00000001000000000000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x00000001000000000000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x00000001000000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x00000001000000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000001000000000000000080000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001000000000000000080000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000000000000080000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x00000001000000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000080000000}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000020000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000100000002, 0x00000000000000000000000000000001}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAAAAAAAAAB, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000040000000, 0x0000000000000000000000013FFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000200000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000000000008000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000000000006FFFFFFFB}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000000}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000000000010000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000002FFFFFFFE}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000080000003FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000005FFFFFFFD}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000010000000055555555}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000AAAAAAABFFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000055555557AAAAAAA9}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000000000000040000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFD}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFE}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFE}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000001FFFFFFFE}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFE}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFE}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000000000020000000000000002, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000100000002, 0x00000000000000000000000000000002}, + [_]u128{0x00000001000000000000000100000000, 0x00000000000000000000000100000000, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001000000000000000100000000, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAAAAAAAAAB, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000000000000100000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000040000000, 0x00000000000000000000000140000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000000000000008000000000000000, 0x00000000000000000000000200000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000000000000008000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000001000000000000000100000000, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000200000000}, + [_]u128{0x00000001000000000000000100000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000000000006FFFFFFFC}, + [_]u128{0x00000001000000000000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000001, 0x00000000000000000000000200000000}, + [_]u128{0x00000001000000000000000100000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001000000000000000100000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000008000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000200000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000000000000010000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000000000000010000000000000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000000000000010000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000180000000}, + [_]u128{0x00000001000000000000000100000000, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x00000001000000000000000100000000, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000200000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000001}, + [_]u128{0x00000001000000000000000100000000, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000008000000400000000}, + [_]u128{0x00000001000000000000000100000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000005FFFFFFFE}, + [_]u128{0x00000001000000000000000100000000, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000010000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000010000000055555556}, + [_]u128{0x00000001000000000000000100000000, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000AAAAAAAC00000000}, + [_]u128{0x00000001000000000000000100000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000055555557AAAAAAAA}, + [_]u128{0x00000001000000000000000100000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000008000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000001000000000000000100000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000004000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x00000001000000000000000100000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000000000000100000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000000000001}, + [_]u128{0x00000001000000000000000100000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000000000000100000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001000000000000000100000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001000000000000000100000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001000000000000000100000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x00000001000000000000000100000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0x00000001000000000000000100000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0x00000001000000000000000100000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001000000000000000100000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0x00000001000000000000000100000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0x00000001000000000000000100000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x00000001000000000000000100000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000010000000080000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000000000001}, + [_]u128{0x00000001000000000000000100000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000000000000100000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x00000001000000000000000100000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x00000001000000000000000100000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0x00000001000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000200000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x00000001000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000001}, + [_]u128{0x00000001000000000000000100000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001000000000000000100000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000000000000100000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000000000000100000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000000}, + [_]u128{0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000000000020000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000100000002, 0x00000000000000000000000000000003}, + [_]u128{0x00000001000000000000000100000001, 0x00000000000000000000000100000000, 0x00000000000000010000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000000000000100000001, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAAAAAAAAAB, 0x00000000000000000000000080000001}, + [_]u128{0x00000001000000000000000100000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000040000000, 0x00000000000000000000000140000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000000000000008000000000000000, 0x00000000000000000000000200000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000000000000008000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0x00000001000000000000000100000001, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000200000001}, + [_]u128{0x00000001000000000000000100000001, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000000000006FFFFFFFD}, + [_]u128{0x00000001000000000000000100000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000001, 0x00000000000000000000000200000001}, + [_]u128{0x00000001000000000000000100000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000000000000100000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000008000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000200000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000000000000010000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000000000000010000000000000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000000000000010000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000180000001}, + [_]u128{0x00000001000000000000000100000001, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000300000000}, + [_]u128{0x00000001000000000000000100000001, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000200000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000002}, + [_]u128{0x00000001000000000000000100000001, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000008000000400000001}, + [_]u128{0x00000001000000000000000100000001, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000005FFFFFFFF}, + [_]u128{0x00000001000000000000000100000001, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000010000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000010000000055555557}, + [_]u128{0x00000001000000000000000100000001, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000AAAAAAAC00000001}, + [_]u128{0x00000001000000000000000100000001, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000055555557AAAAAAAB}, + [_]u128{0x00000001000000000000000100000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000008000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000008000000080000001}, + [_]u128{0x00000001000000000000000100000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000004000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000180000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x00000000000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001000000000000000100000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000000000000100000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000000000002}, + [_]u128{0x00000001000000000000000100000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x00000001000000000000000100000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x00000001000000000000000100000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000002}, + [_]u128{0x00000001000000000000000100000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x00000001000000000000000100000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0x00000001000000000000000100000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000002}, + [_]u128{0x00000001000000000000000100000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000200000001}, + [_]u128{0x00000001000000000000000100000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0x00000001000000000000000100000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000180000001}, + [_]u128{0x00000001000000000000000100000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000002}, + [_]u128{0x00000001000000000000000100000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000000000010000000100000000}, + [_]u128{0x00000001000000000000000100000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000010000000080000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000000000002}, + [_]u128{0x00000001000000000000000100000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x00000001000000000000000100000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0x00000001000000000000000100000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x00000001000000000000000100000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000002}, + [_]u128{0x00000001000000000000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000200000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000000000000200000000}, + [_]u128{0x00000001000000000000000100000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000002}, + [_]u128{0x00000001000000000000000100000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000000000000100000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000001000000000000000100000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000002}, + [_]u128{0x00000001000000000000000100000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000000000000100000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000100000001}, + [_]u128{0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000000000020000000000000003, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000100000002, 0x00000000000000000000000080000002}, + [_]u128{0x00000001000000000000000180000000, 0x00000000000000000000000100000000, 0x00000000000000010000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF00000002, 0x0000000000000000000000007FFFFFFE}, + [_]u128{0x00000001000000000000000180000000, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAAAAAAAAAB, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000000000000180000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000040000000, 0x000000000000000000000001C0000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000000000000008000000000000000, 0x00000000000000000000000200000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000000000000008000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x00000001000000000000000180000000, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000280000000}, + [_]u128{0x00000001000000000000000180000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x0000000000000000000000077FFFFFFC}, + [_]u128{0x00000001000000000000000180000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000001, 0x00000000000000000000000280000000}, + [_]u128{0x00000001000000000000000180000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x00000001000000000000000180000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000008000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000280000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000000000000010000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000000000000010000000000000001, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000000000000010000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000200000000}, + [_]u128{0x00000001000000000000000180000000, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000037FFFFFFF}, + [_]u128{0x00000001000000000000000180000000, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000280000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000180000001}, + [_]u128{0x00000001000000000000000180000000, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000008000000480000000}, + [_]u128{0x00000001000000000000000180000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000000000000067FFFFFFE}, + [_]u128{0x00000001000000000000000180000000, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000010000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAA, 0x000000000000000100000000D5555556}, + [_]u128{0x00000001000000000000000180000000, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000AAAAAAAC80000000}, + [_]u128{0x00000001000000000000000180000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000555555582AAAAAAA}, + [_]u128{0x00000001000000000000000180000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000008000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000008000000100000000}, + [_]u128{0x00000001000000000000000180000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000004000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000200000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x00000000000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x0000000000000000000000017FFFFFFE}, + [_]u128{0x00000001000000000000000180000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000000000000180000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000080000001}, + [_]u128{0x00000001000000000000000180000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000800000000000000080000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x00000001000000000000000180000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x00000001000000000000000180000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x00000001000000000000000180000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0x00000001000000000000000180000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x00000001000000000000000180000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0x00000001000000000000000180000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000280000000}, + [_]u128{0x00000001000000000000000180000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000027FFFFFFF}, + [_]u128{0x00000001000000000000000180000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0x00000001000000000000000180000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000180000001}, + [_]u128{0x00000001000000000000000180000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001000000017FFFFFFF}, + [_]u128{0x00000001000000000000000180000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000010000000100000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000080000001}, + [_]u128{0x00000001000000000000000180000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000010000000080000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x00000001000000000000000180000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x00000001000000000000000180000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x00000001000000000000000180000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000080000001}, + [_]u128{0x00000001000000000000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000280000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x00000001000000000000000180000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000200000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000180000001}, + [_]u128{0x00000001000000000000000180000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x00000001000000000000000180000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000000000000180000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000001000000000000000180000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001000000000000000180000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000000000000180000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x00000001000000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000000000000180000000}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000020000000000000003, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000100000003, 0x00000000000000000000000000000002}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000010000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF00000002, 0x000000000000000000000000FFFFFFFD}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAAAAAAAAAB, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000040000001, 0x00000000000000000000000040000000}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000200000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000000000008000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000000000000}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000000000007FFFFFFFB}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000001, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000001, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000100000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000000000010000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000027FFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000003FFFFFFFE}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000200000000}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000080000004FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000006FFFFFFFD}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000010000000155555555}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000AAAAAAACFFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000055555558AAAAAAA9}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000000000000040000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x000000000000000000000001FFFFFFFD}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFE}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000001FFFFFFFE}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000002FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000002FFFFFFFE}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000027FFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x000000000000000100000001FFFFFFFE}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001000000017FFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000100000000}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFE}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x000000000000000080000001FFFFFFFE}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000002FFFFFFFE}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000200000000}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x000000010000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x00000000000000020000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000180000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000001000000008000000000000000, 0x00000000000000000000000100000000, 0x00000000000000010000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAB00000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000000000000008000000000000000, 0x00000000000000000000000200000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000000000000008000000000000001, 0x00000000000000000000000200000000, 0x00000000000000007FFFFFFE00000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000008000000000000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000000000000000000004FFFFFFFD}, + [_]u128{0x00000001000000008000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000001, 0x00000000000000008000000100000000}, + [_]u128{0x00000001000000008000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000008000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000008000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000008000000100000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000000000000010000000000000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000000000000010000000000000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000000000000010000000080000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x00000001000000008000000000000000, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000001}, + [_]u128{0x00000001000000008000000000000000, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000180000000}, + [_]u128{0x00000001000000008000000000000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000080000004FFFFFFFE}, + [_]u128{0x00000001000000008000000000000000, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000017FFFFFFF55555556}, + [_]u128{0x00000001000000008000000000000000, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000012AAAAAAB00000000}, + [_]u128{0x00000001000000008000000000000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000D5555556AAAAAAAA}, + [_]u128{0x00000001000000008000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x00000001000000008000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000000000000C000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x00000000000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x00000001000000008000000000000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001000000008000000000000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x00000001000000008000000000000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFE00000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFDFFFFFFFE}, + [_]u128{0x00000001000000008000000000000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFD00000000}, + [_]u128{0x00000001000000008000000000000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFC00000002}, + [_]u128{0x00000001000000008000000000000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000008000000000000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001000000008000000000000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001000000008000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x00000001000000008000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001000000008000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x00000001000000008000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0x00000001000000008000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000018000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000008000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x00000001000000008000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFEFFFFFFFF}, + [_]u128{0x00000001000000008000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE80000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE00000001}, + [_]u128{0x00000001000000008000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000008000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x00000001000000008000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x00000001000000008000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0x00000001000000008000000000000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000008000000000000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000001000000008000000000000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000001000000008000000000000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x00000001000000008000000000000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x00000001000000008000000000000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x00000001000000008000000000000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000000}, + [_]u128{0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x00000000000000020000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000180000001, 0x00000000000000000000000080000002}, + [_]u128{0x00000001000000008000000000000001, 0x00000000000000000000000100000000, 0x00000000000000010000000080000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000080000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAB00000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000000000000080000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000000000000008000000000000000, 0x00000000000000000000000200000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000000000000008000000000000001, 0x00000000000000000000000200000000, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0x00000001000000008000000000000001, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000000000000000000004FFFFFFFE}, + [_]u128{0x00000001000000008000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000001, 0x00000000000000008000000100000001}, + [_]u128{0x00000001000000008000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000001000000008000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000001000000008000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000008000000100000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000000000000010000000000000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000000000000010000000000000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000000000000010000000080000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000200000000}, + [_]u128{0x00000001000000008000000000000001, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000002}, + [_]u128{0x00000001000000008000000000000001, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000180000001}, + [_]u128{0x00000001000000008000000000000001, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000080000004FFFFFFFF}, + [_]u128{0x00000001000000008000000000000001, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000017FFFFFFF55555557}, + [_]u128{0x00000001000000008000000000000001, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000012AAAAAAB00000001}, + [_]u128{0x00000001000000008000000000000001, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000D5555556AAAAAAAB}, + [_]u128{0x00000001000000008000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x00000001000000008000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000000000000C000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000008000000080000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x00000000000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000008000000000000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000001000000008000000000000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFE00000003}, + [_]u128{0x00000001000000008000000000000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFDFFFFFFFF}, + [_]u128{0x00000001000000008000000000000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFD00000001}, + [_]u128{0x00000001000000008000000000000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFC00000003}, + [_]u128{0x00000001000000008000000000000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x00000001000000008000000000000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x00000001000000008000000000000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000002}, + [_]u128{0x00000001000000008000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000001}, + [_]u128{0x00000001000000008000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x00000001000000008000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0x00000001000000008000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000002}, + [_]u128{0x00000001000000008000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000018000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000000000018000000000000000}, + [_]u128{0x00000001000000008000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF80000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000002}, + [_]u128{0x00000001000000008000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x00000001000000008000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE00000002}, + [_]u128{0x00000001000000008000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x00000001000000008000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0x00000001000000008000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000008000000100000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x00000001000000008000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000002}, + [_]u128{0x00000001000000008000000000000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000001000000008000000000000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x00000001000000008000000000000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0x00000001000000008000000000000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001000000008000000000000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x00000001000000008000000000000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x00000001000000008000000000000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000008000000000000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000000000001}, + [_]u128{0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x00000000000000020000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000180000002, 0x00000000000000000000000000000002}, + [_]u128{0x00000001000000008000000080000000, 0x00000000000000000000000100000000, 0x00000000000000010000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAB00000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000000000000008000000000000000, 0x00000000000000000000000200000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000000000000008000000000000001, 0x00000000000000000000000200000000, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000008000000080000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x0000000000000000000000057FFFFFFD}, + [_]u128{0x00000001000000008000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000001, 0x00000000000000008000000180000000}, + [_]u128{0x00000001000000008000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x00000001000000008000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000008000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000008000000180000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000000000000010000000000000000, 0x00000000000000000000000100000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000000000000010000000000000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000000000000010000000080000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000027FFFFFFF}, + [_]u128{0x00000001000000008000000080000000, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000180000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000001}, + [_]u128{0x00000001000000008000000080000000, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000200000000}, + [_]u128{0x00000001000000008000000080000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000000800000057FFFFFFE}, + [_]u128{0x00000001000000008000000080000000, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000017FFFFFFFD5555556}, + [_]u128{0x00000001000000008000000080000000, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000012AAAAAAB80000000}, + [_]u128{0x00000001000000008000000080000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000D55555572AAAAAAA}, + [_]u128{0x00000001000000008000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000001000000008000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000000000000C000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000008000000100000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x00000000000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x0000000000000000800000007FFFFFFE}, + [_]u128{0x00000001000000008000000080000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000001000000008000000080000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFE80000002}, + [_]u128{0x00000001000000008000000080000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFE7FFFFFFE}, + [_]u128{0x00000001000000008000000080000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFD80000000}, + [_]u128{0x00000001000000008000000080000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFC80000002}, + [_]u128{0x00000001000000008000000080000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x00000001000000008000000080000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x00000001000000008000000080000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x00000001000000008000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0x00000001000000008000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0x00000001000000008000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x00000001000000008000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0x00000001000000008000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000018000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001800000007FFFFFFF}, + [_]u128{0x00000001000000008000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000018000000000000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF80000001}, + [_]u128{0x00000001000000008000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF7FFFFFFF}, + [_]u128{0x00000001000000008000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0x00000001000000008000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x00000001000000008000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x00000001000000008000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000008000000180000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x00000001000000008000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000080000001}, + [_]u128{0x00000001000000008000000080000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x00000001000000008000000080000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000001000000008000000080000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x00000001000000008000000080000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x00000001000000008000000080000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001000000008000000080000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x00000001000000008000000080000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001000000008000000080000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000008000000080000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x00000001000000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000008000000080000000}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000020000000100000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000180000002, 0x00000000000000000000000080000001}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000010000000080000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF80000001, 0x0000000000000000000000007FFFFFFE}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAB00000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000080000000, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000200000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000000000000200000000, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000000000000000000005FFFFFFFC}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000001, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000001, 0x000000000000000080000000FFFFFFFE}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000100000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000002FFFFFFFE}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000000}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000080000005FFFFFFFD}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAB, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAB, 0x00000000000000000000000055555554}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000012AAAAAABFFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000D5555557AAAAAAA9}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000000000000C0000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x000000000000000080000000FFFFFFFD}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFEFFFFFFFD}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFDFFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFD00000001}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFE}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000001FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000001FFFFFFFE}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x000000000000000180000000FFFFFFFE}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001800000007FFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000018000000000000000}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFFFFFFFFFE}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF7FFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFE}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000080000001FFFFFFFE}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFE}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x000000010000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000000000000200000001FFFFFFFE, 0x00000000000000000000000000000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000200000001, 0x00000000000000000000000000000001}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAB55555554, 0x00000000000000000000000100000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFF, 0x000000000000000080000000BFFFFFFF, 0x000000000000000000000001BFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000000000008000000000000000, 0x00000000000000000000000200000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000000000008000000000000001, 0x00000000000000000000000200000001, 0x00000000000000007FFFFFFCFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000002FFFFFFFE}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000002, 0x00000000000000000000000100000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000000000000000000001}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000000000010000000000000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000000000010000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000000000010000000080000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAB, 0x00000000000000007FFFFFFE55555555}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000002AAAAAA980000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000155555555AAAAAAAA}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFE80000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000013FFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFEFFFFFFFE}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFD00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFCFFFFFFFE}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFC00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFB00000002}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFEFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE80000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE80000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFD80000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFD00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFEFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE80000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFDFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x000000000000000200000001FFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000200000001, 0x00000000000000000000000000000002}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000002}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAB55555554, 0x00000000000000000000000100000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFF, 0x000000000000000080000000BFFFFFFF, 0x000000000000000000000001C0000000}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000000000008000000000000000, 0x00000000000000000000000200000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000000000008000000000000001, 0x00000000000000000000000200000001, 0x00000000000000007FFFFFFD00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000002, 0x00000000000000000000000100000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000000000000000000002}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000000000010000000000000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000000000010000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000000000010000000080000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000200000000}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAB, 0x00000000000000007FFFFFFE55555556}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000002AAAAAA980000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000155555555AAAAAAAB}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000013FFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFD00000003}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFD00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFCFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFC00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFB00000003}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE80000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE00000002}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000002}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE80000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000002}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFD80000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFD00000002}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE00000002}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000000000000200000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000200000001, 0x00000000000000000000000080000001}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAB55555555, 0x00000000000000000000000000000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFF, 0x000000000000000080000000C0000000, 0x00000000000000000000000040000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000000000008000000000000000, 0x00000000000000000000000200000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000000000008000000000000001, 0x00000000000000000000000200000001, 0x00000000000000007FFFFFFD7FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000000000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000000000037FFFFFFE}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000002, 0x00000000000000000000000180000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000002, 0x0000000000000000000000007FFFFFFE}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000001, 0x00000000000000008000000000000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000000000000080000001}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000000000010000000000000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000000000010000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000000000010000000080000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000080000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAB, 0x00000000000000007FFFFFFED5555555}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000002AAAAAAA00000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000000000001555555562AAAAAAA}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000013FFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000010000000000000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF7FFFFFFE}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFD80000002}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFD80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFD7FFFFFFE}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFC80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFB80000002}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF7FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE80000001}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000000000000080000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF7FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE80000001}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE7FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFD80000001}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF7FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000010000000080000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x000000000000000200000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000200000002, 0x00000000000000000000000000000001}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAB55555555, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000000000000080000000C0000000, 0x000000000000000000000000BFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000200000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000000000000200000001, 0x00000000000000007FFFFFFDFFFFFFFE}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000003FFFFFFFD}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000002, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000002, 0x000000000000000000000000FFFFFFFD}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000000000000100000000}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000000}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000002FFFFFFFE}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAB, 0x00000000000000007FFFFFFF55555554}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000002AAAAAAA7FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000155555556AAAAAAA9}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFF7FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000013FFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFFFFFFFFFD}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFDFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFDFFFFFFFD}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFCFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFC00000001}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFFFFFFFFFE}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF7FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFE}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFE}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF7FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFE}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE7FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000000}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFFFFFFFFFE}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF7FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFE}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFE}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x00000000000000020000000200000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000200000002, 0x00000000000000000000000000000002}, + [_]u128{0x00000001000000010000000000000000, 0x00000000000000000000000100000000, 0x00000000000000010000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000000000000000000000100000001, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAB55555555, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000010000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000000000000080000000C0000000, 0x000000000000000000000000C0000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000000000000008000000000000000, 0x00000000000000000000000200000002, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000000000000008000000000000001, 0x00000000000000000000000200000001, 0x00000000000000007FFFFFFDFFFFFFFF}, + [_]u128{0x00000001000000010000000000000000, 0x00000000000000008000000080000000, 0x00000000000000000000000200000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000003FFFFFFFE}, + [_]u128{0x00000001000000010000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000002, 0x00000000000000000000000200000000}, + [_]u128{0x00000001000000010000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000002, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x00000001000000010000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000001, 0x00000000000000008000000080000000}, + [_]u128{0x00000001000000010000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000000000000100000001}, + [_]u128{0x00000001000000010000000000000000, 0x00000000000000010000000000000000, 0x00000000000000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000000000000010000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000000000000010000000080000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000000000000010000000100000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000001}, + [_]u128{0x00000001000000010000000000000000, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000180000000}, + [_]u128{0x00000001000000010000000000000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x00000001000000010000000000000000, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000008000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAB, 0x00000000000000007FFFFFFF55555555}, + [_]u128{0x00000001000000010000000000000000, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000002AAAAAAA80000000}, + [_]u128{0x00000001000000010000000000000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000155555556AAAAAAAA}, + [_]u128{0x00000001000000010000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x00000001000000010000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000014000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000010000000080000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x00000000000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFFFFFFFFFE}, + [_]u128{0x00000001000000010000000000000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000001000000010000000000000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0x00000001000000010000000000000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFDFFFFFFFE}, + [_]u128{0x00000001000000010000000000000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFD00000000}, + [_]u128{0x00000001000000010000000000000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFC00000002}, + [_]u128{0x00000001000000010000000000000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000010000000000000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0x00000001000000010000000000000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000001}, + [_]u128{0x00000001000000010000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000000000000100000000}, + [_]u128{0x00000001000000010000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x00000001000000010000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000800000000000000080000000}, + [_]u128{0x00000001000000010000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000000000001}, + [_]u128{0x00000001000000010000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000020000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000010000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x00000001000000010000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFF}, + [_]u128{0x00000001000000010000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE80000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000001}, + [_]u128{0x00000001000000010000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000018000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000010000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x00000001000000010000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000010000000100000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x00000001000000010000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000010000000080000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000000000001}, + [_]u128{0x00000001000000010000000000000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000010000000000000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x00000001000000010000000000000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x00000001000000010000000000000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x00000001000000010000000000000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x00000001000000010000000000000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x00000001000000010000000000000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000010000000000000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000001000000010000000000000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000001000000010000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000010000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001000000010000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000010000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000010000000000000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000000}, + [_]u128{0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x00000000000000020000000200000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000200000002, 0x00000000000000000000000000000003}, + [_]u128{0x00000001000000010000000000000001, 0x00000000000000000000000100000000, 0x00000000000000010000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000000000000000000000100000001, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAB55555555, 0x00000000000000000000000080000001}, + [_]u128{0x00000001000000010000000000000001, 0x000000000000000000000001FFFFFFFF, 0x000000000000000080000000C0000000, 0x000000000000000000000000C0000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000000000000008000000000000000, 0x00000000000000000000000200000002, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000000000000008000000000000001, 0x00000000000000000000000200000001, 0x00000000000000007FFFFFFE00000000}, + [_]u128{0x00000001000000010000000000000001, 0x00000000000000008000000080000000, 0x00000000000000000000000200000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000003FFFFFFFF}, + [_]u128{0x00000001000000010000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000002, 0x00000000000000000000000200000001}, + [_]u128{0x00000001000000010000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000002, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001000000010000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000001, 0x00000000000000008000000080000001}, + [_]u128{0x00000001000000010000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000000000000100000002}, + [_]u128{0x00000001000000010000000000000001, 0x00000000000000010000000000000000, 0x00000000000000000000000100000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000000000000010000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000000000000010000000080000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000000000000010000000100000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000002}, + [_]u128{0x00000001000000010000000000000001, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000180000001}, + [_]u128{0x00000001000000010000000000000001, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000300000000}, + [_]u128{0x00000001000000010000000000000001, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000008000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAB, 0x00000000000000007FFFFFFF55555556}, + [_]u128{0x00000001000000010000000000000001, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000002AAAAAAA80000001}, + [_]u128{0x00000001000000010000000000000001, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000155555556AAAAAAAB}, + [_]u128{0x00000001000000010000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000018000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFF80000001}, + [_]u128{0x00000001000000010000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000014000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000010000000080000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x00000000000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000010000000000000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x00000001000000010000000000000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE00000003}, + [_]u128{0x00000001000000010000000000000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFDFFFFFFFF}, + [_]u128{0x00000001000000010000000000000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFD00000001}, + [_]u128{0x00000001000000010000000000000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFC00000003}, + [_]u128{0x00000001000000010000000000000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001, 0x00000000800000008000000000000000}, + [_]u128{0x00000001000000010000000000000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF80000001}, + [_]u128{0x00000001000000010000000000000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000002}, + [_]u128{0x00000001000000010000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000000000000100000001}, + [_]u128{0x00000001000000010000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000800000000000000100000000}, + [_]u128{0x00000001000000010000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000800000000000000080000001}, + [_]u128{0x00000001000000010000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000000000002}, + [_]u128{0x00000001000000010000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000020000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000000000020000000000000000}, + [_]u128{0x00000001000000010000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF80000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000002}, + [_]u128{0x00000001000000010000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x00000001000000010000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE80000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000002}, + [_]u128{0x00000001000000010000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000018000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000018000000000000000}, + [_]u128{0x00000001000000010000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF80000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000002}, + [_]u128{0x00000001000000010000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000010000000100000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000010000000100000000}, + [_]u128{0x00000001000000010000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000010000000080000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000000000002}, + [_]u128{0x00000001000000010000000000000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x00000001000000010000000000000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x00000001000000010000000000000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0x00000001000000010000000000000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000001000000010000000000000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x00000001000000010000000000000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0x00000001000000010000000000000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000001000000010000000000000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x00000001000000010000000000000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0x00000001000000010000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000001}, + [_]u128{0x00000001000000010000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000010000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000001000000010000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000002}, + [_]u128{0x00000001000000010000000000000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000000000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000000000001}, + [_]u128{0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000000000000000000000080000000, 0x00000000000000020000000200000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000200000002, 0x00000000000000000000000080000002}, + [_]u128{0x00000001000000010000000080000000, 0x00000000000000000000000100000000, 0x00000000000000010000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000000000000000000000100000001, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAB55555555, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000010000000080000000, 0x000000000000000000000001FFFFFFFF, 0x000000000000000080000000C0000000, 0x00000000000000000000000140000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000000000000008000000000000000, 0x00000000000000000000000200000002, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000000000000008000000000000001, 0x00000000000000000000000200000001, 0x00000000000000007FFFFFFE7FFFFFFF}, + [_]u128{0x00000001000000010000000080000000, 0x00000000000000008000000080000000, 0x00000000000000000000000200000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000000000047FFFFFFE}, + [_]u128{0x00000001000000010000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000002, 0x00000000000000000000000280000000}, + [_]u128{0x00000001000000010000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000002, 0x0000000000000000000000017FFFFFFE}, + [_]u128{0x00000001000000010000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000001, 0x00000000000000008000000100000000}, + [_]u128{0x00000001000000010000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000000000000180000001}, + [_]u128{0x00000001000000010000000080000000, 0x00000000000000010000000000000000, 0x00000000000000000000000100000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000000000000010000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000000000000010000000080000000, 0x00000000000000000000000100000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000000000000010000000100000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000080000001}, + [_]u128{0x00000001000000010000000080000000, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000200000000}, + [_]u128{0x00000001000000010000000080000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000037FFFFFFF}, + [_]u128{0x00000001000000010000000080000000, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000008000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAB, 0x00000000000000007FFFFFFFD5555555}, + [_]u128{0x00000001000000010000000080000000, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000002AAAAAAB00000000}, + [_]u128{0x00000001000000010000000080000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000000000001555555572AAAAAAA}, + [_]u128{0x00000001000000010000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000018000000000000000}, + [_]u128{0x00000001000000010000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000014000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000010000000100000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x00000000000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x0000000000000001000000007FFFFFFE}, + [_]u128{0x00000001000000010000000080000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x00000001000000010000000080000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE80000002}, + [_]u128{0x00000001000000010000000080000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE7FFFFFFE}, + [_]u128{0x00000001000000010000000080000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFD80000000}, + [_]u128{0x00000001000000010000000080000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFC80000002}, + [_]u128{0x00000001000000010000000080000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x0000000000000000000000007FFFFFFE}, + [_]u128{0x00000001000000010000000080000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000800000008000000000000000}, + [_]u128{0x00000001000000010000000080000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF80000001}, + [_]u128{0x00000001000000010000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000000000000180000000}, + [_]u128{0x00000001000000010000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000080000000000000017FFFFFFF}, + [_]u128{0x00000001000000010000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000800000000000000100000000}, + [_]u128{0x00000001000000010000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000080000001}, + [_]u128{0x00000001000000010000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000020000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000002000000007FFFFFFF}, + [_]u128{0x00000001000000010000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000020000000000000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF80000001}, + [_]u128{0x00000001000000010000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF7FFFFFFF}, + [_]u128{0x00000001000000010000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE80000001}, + [_]u128{0x00000001000000010000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000018000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001800000007FFFFFFF}, + [_]u128{0x00000001000000010000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000018000000000000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF80000001}, + [_]u128{0x00000001000000010000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000010000000180000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000001000000017FFFFFFF}, + [_]u128{0x00000001000000010000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000010000000100000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000080000001}, + [_]u128{0x00000001000000010000000080000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x00000001000000010000000080000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x00000001000000010000000080000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x00000001000000010000000080000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x00000001000000010000000080000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000001000000010000000080000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x00000001000000010000000080000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x00000001000000010000000080000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000001000000010000000080000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x00000001000000010000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000000}, + [_]u128{0x00000001000000010000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x00000001000000010000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000010000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000001000000010000000080000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001000000010000000080000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000080000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x00000001000000010000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000080000000}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000020000000200000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000200000003, 0x00000000000000000000000000000002}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAB55555555, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000000000000080000000C0000000, 0x000000000000000000000001BFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000200000002, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000000000000200000001, 0x00000000000000007FFFFFFEFFFFFFFE}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000000000000200000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000004FFFFFFFD}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000002, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000002, 0x000000000000000000000001FFFFFFFD}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000001, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000000000000200000000}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000100000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000000000000100000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000100000000}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000027FFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000003FFFFFFFE}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAB, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAB, 0x00000000000000008000000055555554}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000002AAAAAAB7FFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000155555557AAAAAAA9}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000001800000007FFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000000000000140000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000001000000017FFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x000000000000000100000000FFFFFFFD}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFEFFFFFFFD}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFDFFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFD00000001}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFD}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000800000007FFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000008000000000000000}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000008000000000000001FFFFFFFE}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000080000000000000017FFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000100000000}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x000000000000000200000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x000000000000000200000000FFFFFFFE}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000002000000007FFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000020000000000000000}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFE}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF7FFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x000000000000000180000000FFFFFFFE}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001800000007FFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000018000000000000000}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000100000001FFFFFFFE}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000001000000017FFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000100000000}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFE}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFE}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000000000000000000000080000000, 0x00000000000000020000000200000002, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000200000003, 0x00000000000000000000000000000003}, + [_]u128{0x00000001000000010000000100000000, 0x00000000000000000000000100000000, 0x00000000000000010000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000000000000000000000100000001, 0x00000000000000010000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAB55555556, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000100000000, 0x000000000000000000000001FFFFFFFF, 0x000000000000000080000000C0000000, 0x000000000000000000000001C0000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000000000000008000000000000000, 0x00000000000000000000000200000002, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000000000000008000000000000001, 0x00000000000000000000000200000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x00000001000000010000000100000000, 0x00000000000000008000000080000000, 0x00000000000000000000000200000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000004FFFFFFFE}, + [_]u128{0x00000001000000010000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000002, 0x00000000000000000000000300000000}, + [_]u128{0x00000001000000010000000100000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000002, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0x00000001000000010000000100000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000001, 0x00000000000000008000000180000000}, + [_]u128{0x00000001000000010000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000000000000200000001}, + [_]u128{0x00000001000000010000000100000000, 0x00000000000000010000000000000000, 0x00000000000000000000000100000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000000000000010000000000000001, 0x00000000000000000000000100000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000000000000010000000080000000, 0x00000000000000000000000100000000, 0x00000000000000008000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000200000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000000000000010000000100000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000000000000010000000100000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000280000000}, + [_]u128{0x00000001000000010000000100000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000003FFFFFFFF}, + [_]u128{0x00000001000000010000000100000000, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000008000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAB, 0x00000000000000008000000055555555}, + [_]u128{0x00000001000000010000000100000000, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000002AAAAAAB80000000}, + [_]u128{0x00000001000000010000000100000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000155555557AAAAAAAA}, + [_]u128{0x00000001000000010000000100000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000018000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000001000000010000000100000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000014000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000010000000180000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x00000000000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x000000000000000100000000FFFFFFFE}, + [_]u128{0x00000001000000010000000100000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x00000000000000010000000000000000}, + [_]u128{0x00000001000000010000000100000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0x00000001000000010000000100000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFEFFFFFFFE}, + [_]u128{0x00000001000000010000000100000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x00000001000000010000000100000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0x00000001000000010000000100000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x00000001000000010000000100000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000002, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000100000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000008000000000000001}, + [_]u128{0x00000001000000010000000100000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000000000000200000000}, + [_]u128{0x00000001000000010000000100000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x00000001000000010000000100000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000800000000000000180000000}, + [_]u128{0x00000001000000010000000100000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000100000001}, + [_]u128{0x00000001000000010000000100000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000020000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x000000000000000200000000FFFFFFFF}, + [_]u128{0x00000001000000010000000100000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000020000000080000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000020000000000000001}, + [_]u128{0x00000001000000010000000100000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000020000000000000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000010000000100000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x00000001000000010000000100000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000018000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x00000001000000010000000100000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000018000000080000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000018000000000000001}, + [_]u128{0x00000001000000010000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000010000000200000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x00000001000000010000000100000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000010000000180000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000100000001}, + [_]u128{0x00000001000000010000000100000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x00000001000000010000000100000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000010000000080000000}, + [_]u128{0x00000001000000010000000100000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000000000001}, + [_]u128{0x00000001000000010000000100000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000010000000100000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x00000001000000010000000100000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x00000001000000010000000100000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x00000001000000010000000100000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0x00000001000000010000000100000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0x00000001000000010000000100000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000200000000}, + [_]u128{0x00000001000000010000000100000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x00000001000000010000000100000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000000}, + [_]u128{0x00000001000000010000000100000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000001}, + [_]u128{0x00000001000000010000000100000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001000000010000000100000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000010000000100000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000010000000100000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000000}, + [_]u128{0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000100000001, 0x00000000000000000000000080000000, 0x00000000000000020000000200000002, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000200000003, 0x00000000000000000000000000000004}, + [_]u128{0x00000001000000010000000100000001, 0x00000000000000000000000100000000, 0x00000000000000010000000100000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000000000000000000000100000001, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000100000001, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAB55555556, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000010000000100000001, 0x000000000000000000000001FFFFFFFF, 0x000000000000000080000000C0000000, 0x000000000000000000000001C0000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000000000000008000000000000000, 0x00000000000000000000000200000002, 0x00000000000000000000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000000000000008000000000000001, 0x00000000000000000000000200000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001000000010000000100000001, 0x00000000000000008000000080000000, 0x00000000000000000000000200000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000004FFFFFFFF}, + [_]u128{0x00000001000000010000000100000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000002, 0x00000000000000000000000300000001}, + [_]u128{0x00000001000000010000000100000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000002, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x00000001000000010000000100000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000001, 0x00000000000000008000000180000001}, + [_]u128{0x00000001000000010000000100000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000000000000200000002}, + [_]u128{0x00000001000000010000000100000001, 0x00000000000000010000000000000000, 0x00000000000000000000000100000001, 0x00000000000000000000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000000000000010000000000000001, 0x00000000000000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000100000001, 0x00000000000000010000000080000000, 0x00000000000000000000000100000000, 0x00000000000000008000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000200000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000000000000010000000100000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000000000000010000000100000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000280000001}, + [_]u128{0x00000001000000010000000100000001, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000400000000}, + [_]u128{0x00000001000000010000000100000001, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000008000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAB, 0x00000000000000008000000055555556}, + [_]u128{0x00000001000000010000000100000001, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000002AAAAAAB80000001}, + [_]u128{0x00000001000000010000000100000001, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000155555557AAAAAAAB}, + [_]u128{0x00000001000000010000000100000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000018000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000018000000080000001}, + [_]u128{0x00000001000000010000000100000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000014000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000010000000180000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x00000000000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x00000001000000010000000100000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x00000000000000010000000000000001}, + [_]u128{0x00000001000000010000000100000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF00000003}, + [_]u128{0x00000001000000010000000100000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x00000001000000010000000100000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x00000001000000010000000100000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFD00000003}, + [_]u128{0x00000001000000010000000100000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x00000000000000000000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001000000010000000100000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000010000000100000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000008000000000000002}, + [_]u128{0x00000001000000010000000100000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000000000000200000001}, + [_]u128{0x00000001000000010000000100000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000800000000000000200000000}, + [_]u128{0x00000001000000010000000100000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000800000000000000180000001}, + [_]u128{0x00000001000000010000000100000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000100000002}, + [_]u128{0x00000001000000010000000100000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000020000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000000000020000000100000000}, + [_]u128{0x00000001000000010000000100000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000020000000080000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000020000000000000002}, + [_]u128{0x00000001000000010000000100000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000020000000000000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000020000000000000000}, + [_]u128{0x00000001000000010000000100000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF80000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000002}, + [_]u128{0x00000001000000010000000100000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000018000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000018000000100000000}, + [_]u128{0x00000001000000010000000100000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000018000000080000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000018000000000000002}, + [_]u128{0x00000001000000010000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000010000000200000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000010000000200000000}, + [_]u128{0x00000001000000010000000100000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000010000000180000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000100000002}, + [_]u128{0x00000001000000010000000100000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000010000000100000000}, + [_]u128{0x00000001000000010000000100000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000010000000080000001}, + [_]u128{0x00000001000000010000000100000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000000000002}, + [_]u128{0x00000001000000010000000100000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x00000001000000010000000100000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x00000001000000010000000100000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0x00000001000000010000000100000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x00000001000000010000000100000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000001}, + [_]u128{0x00000001000000010000000100000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000002}, + [_]u128{0x00000001000000010000000100000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000200000001}, + [_]u128{0x00000001000000010000000100000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000000000000200000000}, + [_]u128{0x00000001000000010000000100000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000001}, + [_]u128{0x00000001000000010000000100000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000002}, + [_]u128{0x00000001000000010000000100000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000010000000100000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000001000000010000000100000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000002}, + [_]u128{0x00000001000000010000000100000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000100000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000100000001}, + [_]u128{0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000000000000000000000080000000, 0x00000000000000020000000200000003, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000200000003, 0x00000000000000000000000080000003}, + [_]u128{0x00000001000000010000000180000000, 0x00000000000000000000000100000000, 0x00000000000000010000000100000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000000000000000000000100000001, 0x00000000000000010000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001000000010000000180000000, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAB55555556, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000010000000180000000, 0x000000000000000000000001FFFFFFFF, 0x000000000000000080000000C0000001, 0x00000000000000000000000040000001}, + [_]u128{0x00000001000000010000000180000000, 0x00000000000000008000000000000000, 0x00000000000000000000000200000002, 0x00000000000000000000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000000000000008000000000000001, 0x00000000000000000000000200000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x00000001000000010000000180000000, 0x00000000000000008000000080000000, 0x00000000000000000000000200000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000000000057FFFFFFE}, + [_]u128{0x00000001000000010000000180000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000002, 0x00000000000000000000000380000000}, + [_]u128{0x00000001000000010000000180000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000002, 0x0000000000000000000000027FFFFFFE}, + [_]u128{0x00000001000000010000000180000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000001, 0x00000000000000008000000200000000}, + [_]u128{0x00000001000000010000000180000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000000000000280000001}, + [_]u128{0x00000001000000010000000180000000, 0x00000000000000010000000000000000, 0x00000000000000000000000100000001, 0x00000000000000000000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000000000000010000000000000001, 0x00000000000000000000000100000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001000000010000000180000000, 0x00000000000000010000000080000000, 0x00000000000000000000000100000000, 0x00000000000000008000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000280000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000000000000010000000100000000, 0x00000000000000000000000100000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000000000000010000000100000001, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000300000000}, + [_]u128{0x00000001000000010000000180000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000047FFFFFFF}, + [_]u128{0x00000001000000010000000180000000, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000008000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAB, 0x000000000000000080000000D5555555}, + [_]u128{0x00000001000000010000000180000000, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000002AAAAAAC00000000}, + [_]u128{0x00000001000000010000000180000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000000000001555555582AAAAAAA}, + [_]u128{0x00000001000000010000000180000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000018000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000018000000100000000}, + [_]u128{0x00000001000000010000000180000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000014000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000010000000200000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x00000000000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x0000000000000001000000017FFFFFFE}, + [_]u128{0x00000001000000010000000180000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x00000000000000010000000080000000}, + [_]u128{0x00000001000000010000000180000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF80000002}, + [_]u128{0x00000001000000010000000180000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF7FFFFFFE}, + [_]u128{0x00000001000000010000000180000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x00000001000000010000000180000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFD80000002}, + [_]u128{0x00000001000000010000000180000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x00000000000000000000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x0000000000000000000000017FFFFFFE}, + [_]u128{0x00000001000000010000000180000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000002, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000010000000180000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000008000000080000001}, + [_]u128{0x00000001000000010000000180000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000000000000280000000}, + [_]u128{0x00000001000000010000000180000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000080000000000000027FFFFFFF}, + [_]u128{0x00000001000000010000000180000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000800000000000000200000000}, + [_]u128{0x00000001000000010000000180000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000180000001}, + [_]u128{0x00000001000000010000000180000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000020000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000002000000017FFFFFFF}, + [_]u128{0x00000001000000010000000180000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000020000000100000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000020000000080000001}, + [_]u128{0x00000001000000010000000180000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000020000000080000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000002000000007FFFFFFF}, + [_]u128{0x00000001000000010000000180000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000020000000000000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF80000001}, + [_]u128{0x00000001000000010000000180000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000018000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001800000017FFFFFFF}, + [_]u128{0x00000001000000010000000180000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000018000000100000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000018000000080000001}, + [_]u128{0x00000001000000010000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000010000000280000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000001000000027FFFFFFF}, + [_]u128{0x00000001000000010000000180000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000010000000200000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000180000001}, + [_]u128{0x00000001000000010000000180000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001000000017FFFFFFF}, + [_]u128{0x00000001000000010000000180000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000010000000100000000}, + [_]u128{0x00000001000000010000000180000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000080000001}, + [_]u128{0x00000001000000010000000180000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000010000000080000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x00000001000000010000000180000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x00000001000000010000000180000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x00000001000000010000000180000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x00000001000000010000000180000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x00000001000000010000000180000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000080000001}, + [_]u128{0x00000001000000010000000180000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000280000000}, + [_]u128{0x00000001000000010000000180000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x00000001000000010000000180000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000200000000}, + [_]u128{0x00000001000000010000000180000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000180000001}, + [_]u128{0x00000001000000010000000180000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x00000001000000010000000180000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000010000000180000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000001000000010000000180000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001000000010000000180000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000010000000180000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x00000001000000010000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000010000000180000000}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000020000000200000003, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000200000004, 0x00000000000000000000000000000003}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000010000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAAB55555556, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000000000000080000000C0000001, 0x000000000000000000000000C0000000}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000200000002, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000000000000200000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000000000000200000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000005FFFFFFFD}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000002, 0x000000000000000000000003FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000002, 0x000000000000000000000002FFFFFFFD}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000001, 0x0000000000000000800000027FFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000000000000300000000}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000100000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000100000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000000000000100000000, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000000000000100000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000037FFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000004FFFFFFFE}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAB, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAB, 0x00000000000000008000000155555554}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000002AAAAAAC7FFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000155555558AAAAAAA9}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000000000000180000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000001800000017FFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000000000000140000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000001000000027FFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x000000000000000100000001FFFFFFFD}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000010000000000000001}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFFFFFFFFFD}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x000000000000000000000001FFFFFFFD}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000008000000000000002FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000008000000000000002FFFFFFFE}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000080000000000000027FFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000200000000}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x000000000000000200000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x000000000000000200000001FFFFFFFE}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000002000000017FFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000020000000100000000}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x000000000000000200000000FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x000000000000000200000000FFFFFFFE}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000002000000007FFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000020000000000000000}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x000000000000000180000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x000000000000000180000001FFFFFFFE}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001800000017FFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000018000000100000000}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000100000002FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000100000002FFFFFFFE}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000001000000027FFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000200000000}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000100000001FFFFFFFE}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001000000017FFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000100000000}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFE}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x000000000000000080000001FFFFFFFE}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000002FFFFFFFE}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000200000000}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x000000010000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000000000000000000000080000000, 0x00000000000000020000000300000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000280000002, 0x00000000000000000000000080000002}, + [_]u128{0x00000001000000018000000000000000, 0x00000000000000000000000100000000, 0x00000000000000010000000180000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000000000000000000000100000001, 0x0000000000000001000000007FFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0x00000001000000018000000000000000, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAABAAAAAAAA, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000018000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000100000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000000000000008000000000000000, 0x00000000000000000000000200000003, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000000000000008000000000000001, 0x00000000000000000000000200000002, 0x00000000000000007FFFFFFDFFFFFFFE}, + [_]u128{0x00000001000000018000000000000000, 0x00000000000000008000000080000000, 0x00000000000000000000000200000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x00000001000000018000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000002, 0x00000000000000008000000200000000}, + [_]u128{0x00000001000000018000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000002, 0x000000000000000080000000FFFFFFFE}, + [_]u128{0x00000001000000018000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000002, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000018000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000008000000100000001}, + [_]u128{0x00000001000000018000000000000000, 0x00000000000000010000000000000000, 0x00000000000000000000000100000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000000000000010000000000000001, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x00000001000000018000000000000000, 0x00000000000000010000000080000000, 0x00000000000000000000000100000000, 0x00000000000000010000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000008000000100000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000000000000010000000100000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000000000000010000000100000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000000000000010000000180000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000002FFFFFFFF}, + [_]u128{0x00000001000000018000000000000000, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000010000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAB, 0x0000000000000000FFFFFFFF55555555}, + [_]u128{0x00000001000000018000000000000000, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAB, 0x0000000000000000AAAAAAAA80000000}, + [_]u128{0x00000001000000018000000000000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAB, 0x000000000000000055555555AAAAAAAB}, + [_]u128{0x00000001000000018000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000001000000018000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001000000018000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000000000001C000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000018000000080000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x00000000000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFFFFFFFFFE}, + [_]u128{0x00000001000000018000000000000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x00000001000000018000000000000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFE00000002}, + [_]u128{0x00000001000000018000000000000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFE00000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFDFFFFFFFE}, + [_]u128{0x00000001000000018000000000000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFD00000000}, + [_]u128{0x00000001000000018000000000000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFC00000002}, + [_]u128{0x00000001000000018000000000000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x00000000000000008000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x00000001000000018000000000000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001000000018000000000000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x00000001000000018000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000008000000100000000}, + [_]u128{0x00000001000000018000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x00000001000000018000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000800000008000000080000000}, + [_]u128{0x00000001000000018000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000008000000000000001}, + [_]u128{0x00000001000000018000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000028000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000018000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFF80000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFF00000001}, + [_]u128{0x00000001000000018000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFF00000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFEFFFFFFFF}, + [_]u128{0x00000001000000018000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFE80000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFE00000001}, + [_]u128{0x00000001000000018000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000020000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000018000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x00000001000000018000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000018000000100000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x00000001000000018000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000018000000080000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000018000000000000001}, + [_]u128{0x00000001000000018000000000000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000018000000000000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x00000001000000018000000000000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x00000001000000018000000000000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFEFFFFFFFF}, + [_]u128{0x00000001000000018000000000000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE80000000}, + [_]u128{0x00000001000000018000000000000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE00000001}, + [_]u128{0x00000001000000018000000000000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000018000000000000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x00000001000000018000000000000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x00000001000000018000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x00000001000000018000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x00000001000000018000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0x00000001000000018000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0x00000001000000018000000000000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000018000000000000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000001000000018000000000000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000001000000018000000000000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x00000001000000018000000000000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x00000001000000018000000000000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x00000001000000018000000000000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000000}, + [_]u128{0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000018000000000000001, 0x00000000000000000000000080000000, 0x00000000000000020000000300000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000280000002, 0x00000000000000000000000080000003}, + [_]u128{0x00000001000000018000000000000001, 0x00000000000000000000000100000000, 0x00000000000000010000000180000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000000000000000000000100000001, 0x0000000000000001000000007FFFFFFF, 0x00000000000000000000000080000002}, + [_]u128{0x00000001000000018000000000000001, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAABAAAAAAAA, 0x00000000000000000000000100000001}, + [_]u128{0x00000001000000018000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000100000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000000000000008000000000000000, 0x00000000000000000000000200000003, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000000000000008000000000000001, 0x00000000000000000000000200000002, 0x00000000000000007FFFFFFDFFFFFFFF}, + [_]u128{0x00000001000000018000000000000001, 0x00000000000000008000000080000000, 0x00000000000000000000000200000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000300000000}, + [_]u128{0x00000001000000018000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000002, 0x00000000000000008000000200000001}, + [_]u128{0x00000001000000018000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000002, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x00000001000000018000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000002, 0x00000000000000000000000100000001}, + [_]u128{0x00000001000000018000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000008000000100000002}, + [_]u128{0x00000001000000018000000000000001, 0x00000000000000010000000000000000, 0x00000000000000000000000100000001, 0x00000000000000008000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000000000000010000000000000001, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001000000018000000000000001, 0x00000000000000010000000080000000, 0x00000000000000000000000100000000, 0x00000000000000010000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000008000000100000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000000000000010000000100000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000000000000010000000100000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000000000000010000000180000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000300000000}, + [_]u128{0x00000001000000018000000000000001, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000010000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAB, 0x0000000000000000FFFFFFFF55555556}, + [_]u128{0x00000001000000018000000000000001, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAB, 0x0000000000000000AAAAAAAA80000001}, + [_]u128{0x00000001000000018000000000000001, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAB, 0x000000000000000055555555AAAAAAAC}, + [_]u128{0x00000001000000018000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000001, 0x00000000000000000000000100000001}, + [_]u128{0x00000001000000018000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000018000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000000000001C000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000018000000080000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x00000000000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000018000000000000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x00000001000000018000000000000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFE00000003}, + [_]u128{0x00000001000000018000000000000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFE00000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFDFFFFFFFF}, + [_]u128{0x00000001000000018000000000000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFD00000001}, + [_]u128{0x00000001000000018000000000000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFC00000003}, + [_]u128{0x00000001000000018000000000000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x00000000000000008000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000001000000018000000000000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000001000000018000000000000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFE00000003}, + [_]u128{0x00000001000000018000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000008000000100000001}, + [_]u128{0x00000001000000018000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000800000008000000100000000}, + [_]u128{0x00000001000000018000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000800000008000000080000001}, + [_]u128{0x00000001000000018000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000008000000000000002}, + [_]u128{0x00000001000000018000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000028000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000000000028000000000000000}, + [_]u128{0x00000001000000018000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFF80000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFF00000002}, + [_]u128{0x00000001000000018000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFF00000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFF00000000}, + [_]u128{0x00000001000000018000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFE80000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFE00000002}, + [_]u128{0x00000001000000018000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000020000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000020000000000000000}, + [_]u128{0x00000001000000018000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF80000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000002}, + [_]u128{0x00000001000000018000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000018000000100000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000018000000100000000}, + [_]u128{0x00000001000000018000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000018000000080000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000018000000000000002}, + [_]u128{0x00000001000000018000000000000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000018000000000000000}, + [_]u128{0x00000001000000018000000000000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF80000001}, + [_]u128{0x00000001000000018000000000000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000002}, + [_]u128{0x00000001000000018000000000000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x00000001000000018000000000000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0x00000001000000018000000000000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE00000002}, + [_]u128{0x00000001000000018000000000000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x00000001000000018000000000000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x00000001000000018000000000000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0x00000001000000018000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000008000000100000001}, + [_]u128{0x00000001000000018000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x00000001000000018000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000001}, + [_]u128{0x00000001000000018000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000002}, + [_]u128{0x00000001000000018000000000000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000001000000018000000000000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x00000001000000018000000000000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0x00000001000000018000000000000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001000000018000000000000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x00000001000000018000000000000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x00000001000000018000000000000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000018000000000000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000000000001}, + [_]u128{0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000000000000000000000080000000, 0x00000000000000020000000300000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000280000003, 0x00000000000000000000000000000003}, + [_]u128{0x00000001000000018000000080000000, 0x00000000000000000000000100000000, 0x00000000000000010000000180000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000000000000000000000100000001, 0x00000000000000010000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAABAAAAAAAB, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000018000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000100000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000000000000008000000000000000, 0x00000000000000000000000200000003, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000000000000008000000000000001, 0x00000000000000000000000200000002, 0x00000000000000007FFFFFFE7FFFFFFE}, + [_]u128{0x00000001000000018000000080000000, 0x00000000000000008000000080000000, 0x00000000000000000000000200000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000018000000080000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000000000037FFFFFFF}, + [_]u128{0x00000001000000018000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000002, 0x00000000000000008000000280000000}, + [_]u128{0x00000001000000018000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000002, 0x0000000000000000800000017FFFFFFE}, + [_]u128{0x00000001000000018000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000002, 0x00000000000000000000000180000000}, + [_]u128{0x00000001000000018000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000008000000180000001}, + [_]u128{0x00000001000000018000000080000000, 0x00000000000000010000000000000000, 0x00000000000000000000000100000001, 0x00000000000000008000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000000000000010000000000000001, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x00000001000000018000000080000000, 0x00000000000000010000000080000000, 0x00000000000000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000018000000080000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000008000000180000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000000000000010000000100000000, 0x00000000000000000000000100000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000000000000010000000100000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000000000000010000000180000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000037FFFFFFF}, + [_]u128{0x00000001000000018000000080000000, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000010000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAB, 0x0000000000000000FFFFFFFFD5555555}, + [_]u128{0x00000001000000018000000080000000, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAB, 0x0000000000000000AAAAAAAB00000000}, + [_]u128{0x00000001000000018000000080000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAB, 0x0000000000000000555555562AAAAAAB}, + [_]u128{0x00000001000000018000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000001, 0x00000000000000000000000180000000}, + [_]u128{0x00000001000000018000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001000000018000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000000000001C000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000018000000100000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x00000000000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x0000000000000001800000007FFFFFFE}, + [_]u128{0x00000001000000018000000080000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x00000001000000018000000080000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFE80000002}, + [_]u128{0x00000001000000018000000080000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFE80000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFE7FFFFFFE}, + [_]u128{0x00000001000000018000000080000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFD80000000}, + [_]u128{0x00000001000000018000000080000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFC80000002}, + [_]u128{0x00000001000000018000000080000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x00000000000000008000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x0000000000000000800000007FFFFFFE}, + [_]u128{0x00000001000000018000000080000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000001000000018000000080000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFE80000002}, + [_]u128{0x00000001000000018000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000008000000180000000}, + [_]u128{0x00000001000000018000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000080000000800000017FFFFFFF}, + [_]u128{0x00000001000000018000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000800000008000000100000000}, + [_]u128{0x00000001000000018000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000008000000080000001}, + [_]u128{0x00000001000000018000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000028000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000002800000007FFFFFFF}, + [_]u128{0x00000001000000018000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000028000000000000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFF80000001}, + [_]u128{0x00000001000000018000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFF80000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFF7FFFFFFF}, + [_]u128{0x00000001000000018000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFF00000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFE80000001}, + [_]u128{0x00000001000000018000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000020000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x0000000000000002000000007FFFFFFF}, + [_]u128{0x00000001000000018000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000020000000000000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF80000001}, + [_]u128{0x00000001000000018000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000018000000180000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000001800000017FFFFFFF}, + [_]u128{0x00000001000000018000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000018000000100000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000018000000080000001}, + [_]u128{0x00000001000000018000000080000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001800000007FFFFFFF}, + [_]u128{0x00000001000000018000000080000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000018000000000000000}, + [_]u128{0x00000001000000018000000080000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF80000001}, + [_]u128{0x00000001000000018000000080000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF7FFFFFFF}, + [_]u128{0x00000001000000018000000080000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x00000001000000018000000080000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0x00000001000000018000000080000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x00000001000000018000000080000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x00000001000000018000000080000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x00000001000000018000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000008000000180000000}, + [_]u128{0x00000001000000018000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x00000001000000018000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x00000001000000018000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000080000001}, + [_]u128{0x00000001000000018000000080000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x00000001000000018000000080000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000001000000018000000080000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x00000001000000018000000080000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x00000001000000018000000080000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001000000018000000080000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x00000001000000018000000080000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001000000018000000080000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001000000018000000080000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x00000001000000018000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001000000018000000080000000}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000020000000300000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000280000003, 0x00000000000000000000000080000002}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000010000000180000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000010000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAABAAAAAAAB, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000200000003, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000000000000200000002, 0x00000000000000007FFFFFFEFFFFFFFD}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000000000000200000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000000000000000000003FFFFFFFE}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000002, 0x000000000000000080000002FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000002, 0x000000000000000080000001FFFFFFFD}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000002, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000008000000200000000}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000100000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000000000000100000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000000000000100000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000000000010000000180000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000003FFFFFFFE}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAB, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAB, 0x00000000000000010000000055555554}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAB, 0x0000000000000000AAAAAAAB7FFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAB, 0x000000000000000055555556AAAAAAAA}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000001, 0x0000000000000000000000017FFFFFFE}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000000000001C0000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000001800000017FFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x000000000000000180000000FFFFFFFD}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFEFFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFEFFFFFFFD}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFDFFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFD00000001}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x000000000000000080000000FFFFFFFD}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000008000000080000001FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000008000000080000001FFFFFFFE}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000080000000800000017FFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000008000000100000000}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x000000000000000280000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x000000000000000280000000FFFFFFFE}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000002800000007FFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000028000000000000000}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFFFFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFFFFFFFFFE}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFF7FFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFF00000000}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x000000000000000200000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x000000000000000200000000FFFFFFFE}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x0000000000000002000000007FFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000020000000000000000}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000180000001FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000180000001FFFFFFFE}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000001800000017FFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000018000000100000000}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000180000000FFFFFFFE}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001800000007FFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000018000000000000000}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFFFFFFFFFE}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF7FFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFE}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000080000001FFFFFFFE}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFE}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x000000010000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000000000000200000003FFFFFFFE, 0x00000000000000000000000000000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000300000002, 0x00000000000000000000000000000002}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000100000001, 0x000000000000000100000000FFFFFFFE, 0x00000000000000000000000000000002}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAABFFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000140000000, 0x00000000000000000000000040000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000000000008000000000000000, 0x00000000000000000000000200000003, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000000000008000000000000001, 0x00000000000000000000000200000003, 0x00000000000000007FFFFFFCFFFFFFFD}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000000000008000000080000000, 0x00000000000000000000000200000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000200000000, 0x00000000000000000000000100000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000003, 0x00000000000000000000000200000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000003, 0x000000000000000000000000FFFFFFFD}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000002, 0x00000000000000008000000000000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000002, 0x00000000000000000000000000000002}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000000000010000000000000000, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000000000010000000000000001, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFDFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000000000010000000080000000, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000010000000000000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000000000010000000100000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000000000010000000100000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000000000010000000180000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAB, 0x00000000000000017FFFFFFE55555555}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000012AAAAAA980000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAB, 0x0000000000000000D5555554AAAAAAAB}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000001, 0x00000000000000008000000000000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000001, 0x00000000000000003FFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFEFFFFFFFE}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFE00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFD00000002}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFD00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFCFFFFFFFE}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFC00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFB00000002}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFEFFFFFFFE}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000002, 0x00000000000000000000000100000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000002, 0x00000000000000000000000000000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFE80000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFE00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFE00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFDFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFD80000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFD00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFEFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFE80000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFE00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000020000000000000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE80000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFD80000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFD00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFEFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE80000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFDFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x000000000000000200000003FFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000300000002, 0x00000000000000000000000000000003}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000100000001, 0x000000000000000100000000FFFFFFFE, 0x00000000000000000000000000000003}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAABFFFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000140000000, 0x00000000000000000000000040000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000000000008000000000000000, 0x00000000000000000000000200000003, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000000000008000000000000001, 0x00000000000000000000000200000003, 0x00000000000000007FFFFFFCFFFFFFFE}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000000000008000000080000000, 0x00000000000000000000000200000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000200000000, 0x00000000000000000000000100000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000003, 0x00000000000000000000000200000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000003, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000002, 0x00000000000000008000000000000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000002, 0x00000000000000000000000000000003}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000000000010000000000000000, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000000000010000000000000001, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000000000010000000080000000, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000010000000000000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000000000010000000100000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000000000010000000100000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000000000010000000180000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAB, 0x00000000000000017FFFFFFE55555556}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000012AAAAAA980000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAB, 0x0000000000000000D5555554AAAAAAAC}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000001, 0x00000000000000008000000000000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000001, 0x00000000000000003FFFFFFF80000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFF80000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFE00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFD00000003}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFD00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFCFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFC00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFB00000003}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFD00000003}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000002, 0x00000000000000000000000100000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000002}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFE80000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFE00000002}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFE00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFE00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFD80000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFD00000002}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFE80000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFE00000002}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000020000000000000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000020000000000000000}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF80000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000002}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE80000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000002}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFD80000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFD00000002}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE00000002}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000000000000200000003FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000300000002, 0x00000000000000000000000080000002}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000100000001, 0x000000000000000100000000FFFFFFFE, 0x00000000000000000000000080000002}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAABFFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000140000000, 0x000000000000000000000000C0000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000000000008000000000000000, 0x00000000000000000000000200000003, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000000000008000000000000001, 0x00000000000000000000000200000003, 0x00000000000000007FFFFFFD7FFFFFFD}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000000000008000000080000000, 0x00000000000000000000000200000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000200000000, 0x00000000000000000000000180000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000003, 0x00000000000000000000000280000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000003, 0x0000000000000000000000017FFFFFFD}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000002, 0x00000000000000008000000080000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000002, 0x00000000000000000000000080000002}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000000000010000000000000000, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000000000010000000000000001, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000000000010000000080000000, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000010000000080000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000000000010000000100000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000000000010000000100000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000000000010000000180000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAB, 0x00000000000000017FFFFFFED5555555}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000012AAAAAAA00000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAB, 0x0000000000000000D55555552AAAAAAB}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000001, 0x00000000000000008000000080000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000001, 0x00000000000000004000000000000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000000000000000000001}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFF7FFFFFFE}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFE80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFD80000002}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFD80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFD7FFFFFFE}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFC80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFB80000002}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF7FFFFFFE}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFD80000002}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000002, 0x00000000000000000000000180000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000002, 0x0000000000000000000000017FFFFFFE}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000002, 0x00000000000000000000000080000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF80000001}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFF7FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFE80000001}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFE80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFE7FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFE00000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFD80000001}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFF7FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFE80000001}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000020000000080000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000002000000007FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000020000000000000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF80000001}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF7FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE80000001}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE7FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFD80000001}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF7FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000010000000080000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x000000000000000200000003FFFFFFFF, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000300000003, 0x00000000000000000000000000000002}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000, 0x0000000000000000AAAAAAABFFFFFFFF, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000140000000, 0x0000000000000000000000013FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000200000003, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000000000000200000003, 0x00000000000000007FFFFFFDFFFFFFFC}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000000000000200000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000200000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000003, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000003, 0x000000000000000000000001FFFFFFFC}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000002, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000002, 0x00000000000000000000000100000001}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFEFFFFFFFE}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000010000000180000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000018000000000000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000018000000000000001, 0x000000000000000000000000AAAAAAAB, 0x00000000000000017FFFFFFF55555554}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000018000000080000000, 0x000000000000000000000000AAAAAAAB, 0x00000000000000012AAAAAAA7FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000AAAAAAAB, 0x0000000000000000D5555555AAAAAAAA}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000001, 0x0000000000000000800000007FFFFFFE}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000001, 0x0000000000000000400000007FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000000000000080000000}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFFFFFFFFFD}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFE00000001}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFDFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFDFFFFFFFD}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFCFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFC00000001}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFFFFFFFFFD}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000002, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000002, 0x000000000000000000000001FFFFFFFD}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFFFFFFFFFE}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFF7FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFEFFFFFFFE}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFE7FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000002FFFFFFFE00000000}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFFFFFFFFFE}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFF7FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000027FFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000200000000FFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000200000000FFFFFFFE}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000002000000007FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000020000000000000000}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFE}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF7FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFE}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE7FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000000}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFFFFFFFFFE}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF7FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFE}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFE}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000100000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000000000000000000000080000000, 0x00000000000000030000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000180000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000001800000000000000000000000, 0x00000000000000000000000100000000, 0x00000000000000018000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000000000000000000000100000001, 0x00000000000000017FFFFFFE80000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001800000000000000000000000, 0x00000000000000000000000180000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000C000000060000000, 0x00000000000000000000000060000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000000000000008000000000000000, 0x00000000000000000000000300000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000000000000008000000000000001, 0x000000000000000000000002FFFFFFFF, 0x00000000000000007FFFFFFD00000001}, + [_]u128{0x00000001800000000000000000000000, 0x00000000000000008000000080000000, 0x000000000000000000000002FFFFFFFD, 0x00000000000000000000000180000000}, + [_]u128{0x00000001800000000000000000000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000002FFFFFFFA, 0x000000000000000000000008FFFFFFFA}, + [_]u128{0x00000001800000000000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000180000001, 0x00000000000000008000000100000000}, + [_]u128{0x00000001800000000000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000180000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x00000001800000000000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000180000000, 0x0000000000000000C000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000000000000010000000000000000, 0x00000000000000000000000180000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000000000000010000000000000001, 0x0000000000000000000000017FFFFFFF, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x00000001800000000000000000000000, 0x00000000000000010000000080000000, 0x0000000000000000000000017FFFFFFF, 0x00000000000000004000000080000000}, + [_]u128{0x00000001800000000000000000000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000000000017FFFFFFE, 0x0000000000000000800000037FFFFFFE}, + [_]u128{0x00000001800000000000000000000000, 0x00000000000000010000000100000000, 0x0000000000000000000000017FFFFFFE, 0x00000000000000008000000200000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000000000000010000000100000001, 0x0000000000000000000000017FFFFFFE, 0x00000000000000008000000080000002}, + [_]u128{0x00000001800000000000000000000000, 0x00000000000000010000000180000000, 0x0000000000000000000000017FFFFFFD, 0x0000000000000000C000000480000000}, + [_]u128{0x00000001800000000000000000000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000017FFFFFFD, 0x0000000000000000000000077FFFFFFD}, + [_]u128{0x00000001800000000000000000000000, 0x00000000000000018000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000000000000018000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x00000001800000000000000000000000, 0x00000000000000018000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000080000000}, + [_]u128{0x00000001800000000000000000000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x00000001800000000000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x000000000000000000000000C0000000, 0x0000000000000000C000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x000000000000000000000000C0000000, 0x0000000000000000BFFFFFFF40000000}, + [_]u128{0x00000001800000000000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x000000000000000000000000C0000000, 0x00000000000000006000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000C0000000, 0x000000000000000000000000C0000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFFFFFFFFFE}, + [_]u128{0x00000001800000000000000000000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001800000000000000000000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFE00000002}, + [_]u128{0x00000001800000000000000000000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFDFFFFFFFE}, + [_]u128{0x00000001800000000000000000000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFD00000000}, + [_]u128{0x00000001800000000000000000000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFC00000002}, + [_]u128{0x00000001800000000000000000000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFEFFFFFFFFFFFFFFFE}, + [_]u128{0x00000001800000000000000000000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0x00000001800000000000000000000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFEFFFFFFFE00000002}, + [_]u128{0x00000001800000000000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0x00000001800000000000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFE00000001FFFFFFFE}, + [_]u128{0x00000001800000000000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0x00000001800000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFE0000000000000002}, + [_]u128{0x00000001800000000000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000800000010000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x00000001800000000000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x00000001800000000000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFEFFFFFFFF}, + [_]u128{0x00000001800000000000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE80000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE00000001}, + [_]u128{0x00000001800000000000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000800000008000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000001800000000000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000001}, + [_]u128{0x00000001800000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000000000000100000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x00000001800000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000800000000000000080000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000000000001}, + [_]u128{0x00000001800000000000000000000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001800000000000000000000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001800000000000000000000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001800000000000000000000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0x00000001800000000000000000000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0x00000001800000000000000000000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000001}, + [_]u128{0x00000001800000000000000000000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x00000001800000000000000000000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x00000001800000000000000000000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0x00000001800000000000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x00000001800000000000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001800000000000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x00000001800000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x00000001800000000000000000000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001800000000000000000000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x00000001800000000000000000000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x00000001800000000000000000000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFEFFFFFFFF}, + [_]u128{0x00000001800000000000000000000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE80000000}, + [_]u128{0x00000001800000000000000000000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE00000001}, + [_]u128{0x00000001800000000000000000000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0x00000001800000000000000000000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF80000000}, + [_]u128{0x00000001800000000000000000000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF00000001}, + [_]u128{0x00000001800000000000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0x00000001800000000000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000000FFFFFFFF}, + [_]u128{0x00000001800000000000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000080000000}, + [_]u128{0x00000001800000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000000000001}, + [_]u128{0x00000001800000000000000000000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000000}, + [_]u128{0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000000000000000000001, 0x00000000000000000000000080000000, 0x00000000000000030000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000180000001, 0x00000000000000000000000080000002}, + [_]u128{0x00000001800000000000000000000001, 0x00000000000000000000000100000000, 0x00000000000000018000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000000000000000000000100000001, 0x00000000000000017FFFFFFE80000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001800000000000000000000001, 0x00000000000000000000000180000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000C000000060000000, 0x00000000000000000000000060000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000000000000008000000000000000, 0x00000000000000000000000300000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000000000000008000000000000001, 0x000000000000000000000002FFFFFFFF, 0x00000000000000007FFFFFFD00000002}, + [_]u128{0x00000001800000000000000000000001, 0x00000000000000008000000080000000, 0x000000000000000000000002FFFFFFFD, 0x00000000000000000000000180000001}, + [_]u128{0x00000001800000000000000000000001, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000002FFFFFFFA, 0x000000000000000000000008FFFFFFFB}, + [_]u128{0x00000001800000000000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000180000001, 0x00000000000000008000000100000001}, + [_]u128{0x00000001800000000000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000180000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000001800000000000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000180000000, 0x0000000000000000C000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000, 0x00000000000000000000000180000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000000000000010000000000000000, 0x00000000000000000000000180000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000000000000010000000000000001, 0x0000000000000000000000017FFFFFFF, 0x0000000000000000FFFFFFFE80000002}, + [_]u128{0x00000001800000000000000000000001, 0x00000000000000010000000080000000, 0x0000000000000000000000017FFFFFFF, 0x00000000000000004000000080000001}, + [_]u128{0x00000001800000000000000000000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000000000017FFFFFFE, 0x0000000000000000800000037FFFFFFF}, + [_]u128{0x00000001800000000000000000000001, 0x00000000000000010000000100000000, 0x0000000000000000000000017FFFFFFE, 0x00000000000000008000000200000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000000000000010000000100000001, 0x0000000000000000000000017FFFFFFE, 0x00000000000000008000000080000003}, + [_]u128{0x00000001800000000000000000000001, 0x00000000000000010000000180000000, 0x0000000000000000000000017FFFFFFD, 0x0000000000000000C000000480000001}, + [_]u128{0x00000001800000000000000000000001, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000017FFFFFFD, 0x0000000000000000000000077FFFFFFE}, + [_]u128{0x00000001800000000000000000000001, 0x00000000000000018000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000000000000018000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF00000002}, + [_]u128{0x00000001800000000000000000000001, 0x00000000000000018000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000080000001}, + [_]u128{0x00000001800000000000000000000001, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000200000000}, + [_]u128{0x00000001800000000000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x000000000000000000000000C0000000, 0x0000000000000000C000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x000000000000000000000000C0000000, 0x0000000000000000BFFFFFFF40000001}, + [_]u128{0x00000001800000000000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x000000000000000000000000C0000000, 0x00000000000000006000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000C0000000, 0x000000000000000000000000C0000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x00000000000000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001800000000000000000000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001800000000000000000000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFE00000003}, + [_]u128{0x00000001800000000000000000000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFE00000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFDFFFFFFFF}, + [_]u128{0x00000001800000000000000000000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFD00000001}, + [_]u128{0x00000001800000000000000000000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFC00000003}, + [_]u128{0x00000001800000000000000000000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001800000000000000000000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x00000001800000000000000000000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFEFFFFFFFE00000003}, + [_]u128{0x00000001800000000000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFE0000000200000001}, + [_]u128{0x00000001800000000000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFE00000001FFFFFFFF}, + [_]u128{0x00000001800000000000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFE0000000100000001}, + [_]u128{0x00000001800000000000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFE0000000000000003}, + [_]u128{0x00000001800000000000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000800000010000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000800000010000000000000000}, + [_]u128{0x00000001800000000000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF80000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000002}, + [_]u128{0x00000001800000000000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x00000001800000000000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE80000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE00000002}, + [_]u128{0x00000001800000000000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000800000008000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000800000008000000000000000}, + [_]u128{0x00000001800000000000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF80000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000002}, + [_]u128{0x00000001800000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000000000000100000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000800000000000000100000000}, + [_]u128{0x00000001800000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000800000000000000080000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000000000002}, + [_]u128{0x00000001800000000000000000000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x00000001800000000000000000000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x00000001800000000000000000000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000002}, + [_]u128{0x00000001800000000000000000000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001800000000000000000000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000001}, + [_]u128{0x00000001800000000000000000000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000002}, + [_]u128{0x00000001800000000000000000000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x00000001800000000000000000000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0x00000001800000000000000000000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000002}, + [_]u128{0x00000001800000000000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0x00000001800000000000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x00000001800000000000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0x00000001800000000000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000002}, + [_]u128{0x00000001800000000000000000000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001800000000000000000000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000001800000000000000000000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0x00000001800000000000000000000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0x00000001800000000000000000000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE80000001}, + [_]u128{0x00000001800000000000000000000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE00000002}, + [_]u128{0x00000001800000000000000000000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0x00000001800000000000000000000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF80000001}, + [_]u128{0x00000001800000000000000000000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF00000002}, + [_]u128{0x00000001800000000000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000001}, + [_]u128{0x00000001800000000000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0x00000001800000000000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000080000001}, + [_]u128{0x00000001800000000000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000000000002}, + [_]u128{0x00000001800000000000000000000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000000000000000000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000000000001}, + [_]u128{0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000000000000000000000080000000, 0x00000000000000030000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000180000002, 0x00000000000000000000000000000002}, + [_]u128{0x00000001800000000000000080000000, 0x00000000000000000000000100000000, 0x00000000000000018000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000000000000000000000100000001, 0x00000000000000017FFFFFFE80000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001800000000000000080000000, 0x00000000000000000000000180000000, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000C000000060000000, 0x000000000000000000000000E0000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000000000000008000000000000000, 0x00000000000000000000000300000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000000000000008000000000000001, 0x000000000000000000000002FFFFFFFF, 0x00000000000000007FFFFFFD80000001}, + [_]u128{0x00000001800000000000000080000000, 0x00000000000000008000000080000000, 0x000000000000000000000002FFFFFFFD, 0x00000000000000000000000200000000}, + [_]u128{0x00000001800000000000000080000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000002FFFFFFFA, 0x0000000000000000000000097FFFFFFA}, + [_]u128{0x00000001800000000000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000180000001, 0x00000000000000008000000180000000}, + [_]u128{0x00000001800000000000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000180000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000001800000000000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000180000000, 0x0000000000000000C000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000, 0x00000000000000000000000200000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000000000000010000000000000000, 0x00000000000000000000000180000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000000000000010000000000000001, 0x0000000000000000000000017FFFFFFF, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x00000001800000000000000080000000, 0x00000000000000010000000080000000, 0x0000000000000000000000017FFFFFFF, 0x00000000000000004000000100000000}, + [_]u128{0x00000001800000000000000080000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000000000017FFFFFFE, 0x000000000000000080000003FFFFFFFE}, + [_]u128{0x00000001800000000000000080000000, 0x00000000000000010000000100000000, 0x0000000000000000000000017FFFFFFE, 0x00000000000000008000000280000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000000000000010000000100000001, 0x0000000000000000000000017FFFFFFE, 0x00000000000000008000000100000002}, + [_]u128{0x00000001800000000000000080000000, 0x00000000000000010000000180000000, 0x0000000000000000000000017FFFFFFD, 0x0000000000000000C000000500000000}, + [_]u128{0x00000001800000000000000080000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000017FFFFFFD, 0x000000000000000000000007FFFFFFFD}, + [_]u128{0x00000001800000000000000080000000, 0x00000000000000018000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000000000000018000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF80000001}, + [_]u128{0x00000001800000000000000080000000, 0x00000000000000018000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000100000000}, + [_]u128{0x00000001800000000000000080000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000027FFFFFFF}, + [_]u128{0x00000001800000000000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x000000000000000000000000C0000000, 0x0000000000000000C000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x000000000000000000000000C0000000, 0x0000000000000000BFFFFFFFC0000000}, + [_]u128{0x00000001800000000000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x000000000000000000000000C0000000, 0x00000000000000006000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000C0000000, 0x00000000000000000000000140000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x00000000000000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x0000000000000000000000007FFFFFFD}, + [_]u128{0x00000001800000000000000080000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001800000000000000080000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFE80000002}, + [_]u128{0x00000001800000000000000080000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFE7FFFFFFE}, + [_]u128{0x00000001800000000000000080000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFD80000000}, + [_]u128{0x00000001800000000000000080000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFC80000002}, + [_]u128{0x00000001800000000000000080000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFF000000007FFFFFFE}, + [_]u128{0x00000001800000000000000080000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x00000001800000000000000080000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFEFFFFFFFE80000002}, + [_]u128{0x00000001800000000000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFE0000000280000000}, + [_]u128{0x00000001800000000000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFE000000027FFFFFFE}, + [_]u128{0x00000001800000000000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFE0000000180000000}, + [_]u128{0x00000001800000000000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFE0000000080000002}, + [_]u128{0x00000001800000000000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000800000010000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000080000001000000007FFFFFFF}, + [_]u128{0x00000001800000000000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000800000010000000000000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF80000001}, + [_]u128{0x00000001800000000000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF7FFFFFFF}, + [_]u128{0x00000001800000000000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE80000001}, + [_]u128{0x00000001800000000000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000800000008000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000800000007FFFFFFF}, + [_]u128{0x00000001800000000000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000800000008000000000000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF80000001}, + [_]u128{0x00000001800000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000000000000180000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000080000000000000017FFFFFFF}, + [_]u128{0x00000001800000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000800000000000000100000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000080000001}, + [_]u128{0x00000001800000000000000080000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x00000001800000000000000080000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x00000001800000000000000080000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x00000001800000000000000080000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0x00000001800000000000000080000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001800000000000000080000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000001}, + [_]u128{0x00000001800000000000000080000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0x00000001800000000000000080000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x00000001800000000000000080000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0x00000001800000000000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0x00000001800000000000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0x00000001800000000000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x00000001800000000000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0x00000001800000000000000080000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x00000001800000000000000080000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001800000000000000080000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000001800000000000000080000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0x00000001800000000000000080000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0x00000001800000000000000080000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE80000001}, + [_]u128{0x00000001800000000000000080000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000007FFFFFFF}, + [_]u128{0x00000001800000000000000080000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0x00000001800000000000000080000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF80000001}, + [_]u128{0x00000001800000000000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000180000000}, + [_]u128{0x00000001800000000000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE000000017FFFFFFF}, + [_]u128{0x00000001800000000000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0x00000001800000000000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000080000001}, + [_]u128{0x00000001800000000000000080000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001800000000000000080000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000000000000080000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x00000001800000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000080000000}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000030000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000180000002, 0x00000000000000000000000080000001}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000018000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000017FFFFFFE80000002, 0x0000000000000000000000007FFFFFFD}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000180000000, 0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000C000000060000000, 0x0000000000000000000000015FFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000300000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000000000008000000000000001, 0x000000000000000000000002FFFFFFFF, 0x00000000000000007FFFFFFE00000000}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000000000008000000080000000, 0x000000000000000000000002FFFFFFFD, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000002FFFFFFFA, 0x000000000000000000000009FFFFFFF9}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000180000001, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000180000001, 0x0000000000000000800000007FFFFFFE}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000180000000, 0x0000000000000000C0000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000180000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000000000010000000000000001, 0x0000000000000000000000017FFFFFFF, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000000000010000000080000000, 0x0000000000000000000000017FFFFFFF, 0x0000000000000000400000017FFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000000000017FFFFFFE, 0x0000000000000000800000047FFFFFFD}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000000000010000000100000000, 0x0000000000000000000000017FFFFFFE, 0x000000000000000080000002FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000000000010000000100000001, 0x0000000000000000000000017FFFFFFE, 0x00000000000000008000000180000001}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000000000010000000180000000, 0x0000000000000000000000017FFFFFFD, 0x0000000000000000C00000057FFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000017FFFFFFD, 0x0000000000000000000000087FFFFFFC}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000000000018000000000000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000000000018000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000000000000}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000000000018000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001000000017FFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000002FFFFFFFE}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x000000000000000000000000C0000000, 0x0000000000000000C0000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x000000000000000000000000C0000000, 0x0000000000000000C00000003FFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x000000000000000000000000C0000000, 0x000000000000000060000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000C0000000, 0x000000000000000000000001BFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x000000000000000000000000FFFFFFFC}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFEFFFFFFFD}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFDFFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFD00000001}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFF00000000FFFFFFFD}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFE00000002FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFE00000002FFFFFFFD}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFE00000001FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFE0000000100000001}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x000000008000000100000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x000000008000000100000000FFFFFFFE}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000080000001000000007FFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000010000000000000000}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFE}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF7FFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x000000008000000080000000FFFFFFFE}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000800000007FFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000008000000000000000}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000008000000000000001FFFFFFFE}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000080000000000000017FFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000100000000}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFE}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFE}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFE}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000001FFFFFFFE}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFE}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000000FFFFFFFE}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000007FFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000001FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000001FFFFFFFE}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE000000017FFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000000000000000000000080000000, 0x00000000000000030000000000000002, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000180000002, 0x00000000000000000000000080000002}, + [_]u128{0x00000001800000000000000100000000, 0x00000000000000000000000100000000, 0x00000000000000018000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000000000000000000000100000001, 0x00000000000000017FFFFFFE80000002, 0x0000000000000000000000007FFFFFFE}, + [_]u128{0x00000001800000000000000100000000, 0x00000000000000000000000180000000, 0x00000000000000010000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000C000000060000000, 0x00000000000000000000000160000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000000000000008000000000000000, 0x00000000000000000000000300000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000000000000008000000000000001, 0x000000000000000000000002FFFFFFFF, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x00000001800000000000000100000000, 0x00000000000000008000000080000000, 0x000000000000000000000002FFFFFFFD, 0x00000000000000000000000280000000}, + [_]u128{0x00000001800000000000000100000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000002FFFFFFFA, 0x000000000000000000000009FFFFFFFA}, + [_]u128{0x00000001800000000000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000180000001, 0x00000000000000008000000200000000}, + [_]u128{0x00000001800000000000000100000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000180000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x00000001800000000000000100000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000180000000, 0x0000000000000000C000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000, 0x00000000000000000000000280000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000000000000010000000000000000, 0x00000000000000000000000180000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000000000000010000000000000001, 0x0000000000000000000000017FFFFFFF, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x00000001800000000000000100000000, 0x00000000000000010000000080000000, 0x0000000000000000000000017FFFFFFF, 0x00000000000000004000000180000000}, + [_]u128{0x00000001800000000000000100000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000000000017FFFFFFE, 0x0000000000000000800000047FFFFFFE}, + [_]u128{0x00000001800000000000000100000000, 0x00000000000000010000000100000000, 0x0000000000000000000000017FFFFFFE, 0x00000000000000008000000300000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000000000000010000000100000001, 0x0000000000000000000000017FFFFFFE, 0x00000000000000008000000180000002}, + [_]u128{0x00000001800000000000000100000000, 0x00000000000000010000000180000000, 0x0000000000000000000000017FFFFFFD, 0x0000000000000000C000000580000000}, + [_]u128{0x00000001800000000000000100000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000017FFFFFFD, 0x0000000000000000000000087FFFFFFD}, + [_]u128{0x00000001800000000000000100000000, 0x00000000000000018000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000000000000018000000000000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000000000000018000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000180000000}, + [_]u128{0x00000001800000000000000100000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000002FFFFFFFF}, + [_]u128{0x00000001800000000000000100000000, 0x0000000000000001FFFFFFFF00000000, 0x000000000000000000000000C0000000, 0x0000000000000000C000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x0000000000000001FFFFFFFF00000001, 0x000000000000000000000000C0000000, 0x0000000000000000C000000040000000}, + [_]u128{0x00000001800000000000000100000000, 0x0000000000000001FFFFFFFF80000000, 0x000000000000000000000000C0000000, 0x00000000000000006000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000C0000000, 0x000000000000000000000001C0000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x00000000000000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x000000000000000000000000FFFFFFFD}, + [_]u128{0x00000001800000000000000100000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x00000000800000000000000000000000}, + [_]u128{0x00000001800000000000000100000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFF00000002}, + [_]u128{0x00000001800000000000000100000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFEFFFFFFFE}, + [_]u128{0x00000001800000000000000100000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0x00000001800000000000000100000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFD00000002}, + [_]u128{0x00000001800000000000000100000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0x00000001800000000000000100000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001800000000000000100000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0x00000001800000000000000100000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFE0000000300000000}, + [_]u128{0x00000001800000000000000100000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFE00000002FFFFFFFE}, + [_]u128{0x00000001800000000000000100000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0x00000001800000000000000100000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFE0000000100000002}, + [_]u128{0x00000001800000000000000100000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000800000010000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x000000008000000100000000FFFFFFFF}, + [_]u128{0x00000001800000000000000100000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000800000010000000080000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000010000000000000001}, + [_]u128{0x00000001800000000000000100000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000800000010000000000000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x00000001800000000000000100000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x00000001800000000000000100000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000800000008000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x00000001800000000000000100000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000800000008000000080000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000008000000000000001}, + [_]u128{0x00000001800000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000000000000200000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x00000001800000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000800000000000000180000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000100000001}, + [_]u128{0x00000001800000000000000100000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x00000001800000000000000100000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000800000000000000080000000}, + [_]u128{0x00000001800000000000000100000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000000000001}, + [_]u128{0x00000001800000000000000100000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001800000000000000100000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001800000000000000100000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001800000000000000100000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001800000000000000100000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x00000001800000000000000100000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0x00000001800000000000000100000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0x00000001800000000000000100000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001800000000000000100000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0x00000001800000000000000100000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0x00000001800000000000000100000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001800000000000000100000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x00000001800000000000000100000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x00000001800000000000000100000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001800000000000000100000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x00000001800000000000000100000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x00000001800000000000000100000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000000FFFFFFFF}, + [_]u128{0x00000001800000000000000100000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0x00000001800000000000000100000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000001}, + [_]u128{0x00000001800000000000000100000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0x00000001800000000000000100000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000001FFFFFFFF}, + [_]u128{0x00000001800000000000000100000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000180000000}, + [_]u128{0x00000001800000000000000100000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000001}, + [_]u128{0x00000001800000000000000100000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001800000000000000100000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001800000000000000100000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001800000000000000100000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000000}, + [_]u128{0x00000001800000000000000100000001, 0x00000000000000000000000000000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000000000000100000001, 0x00000000000000000000000080000000, 0x00000000000000030000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0x00000001800000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000180000002, 0x00000000000000000000000080000003}, + [_]u128{0x00000001800000000000000100000001, 0x00000000000000000000000100000000, 0x00000000000000018000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000000000000000000000100000001, 0x00000000000000017FFFFFFE80000002, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001800000000000000100000001, 0x00000000000000000000000180000000, 0x00000000000000010000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000C000000060000000, 0x00000000000000000000000160000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000000000000008000000000000000, 0x00000000000000000000000300000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000000000000008000000000000001, 0x000000000000000000000002FFFFFFFF, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x00000001800000000000000100000001, 0x00000000000000008000000080000000, 0x000000000000000000000002FFFFFFFD, 0x00000000000000000000000280000001}, + [_]u128{0x00000001800000000000000100000001, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000002FFFFFFFA, 0x000000000000000000000009FFFFFFFB}, + [_]u128{0x00000001800000000000000100000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000180000001, 0x00000000000000008000000200000001}, + [_]u128{0x00000001800000000000000100000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000180000001, 0x00000000000000008000000080000000}, + [_]u128{0x00000001800000000000000100000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000180000000, 0x0000000000000000C000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000, 0x00000000000000000000000280000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000000000000010000000000000000, 0x00000000000000000000000180000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000000000000010000000000000001, 0x0000000000000000000000017FFFFFFF, 0x0000000000000000FFFFFFFF80000002}, + [_]u128{0x00000001800000000000000100000001, 0x00000000000000010000000080000000, 0x0000000000000000000000017FFFFFFF, 0x00000000000000004000000180000001}, + [_]u128{0x00000001800000000000000100000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000000000017FFFFFFE, 0x0000000000000000800000047FFFFFFF}, + [_]u128{0x00000001800000000000000100000001, 0x00000000000000010000000100000000, 0x0000000000000000000000017FFFFFFE, 0x00000000000000008000000300000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000000000000010000000100000001, 0x0000000000000000000000017FFFFFFE, 0x00000000000000008000000180000003}, + [_]u128{0x00000001800000000000000100000001, 0x00000000000000010000000180000000, 0x0000000000000000000000017FFFFFFD, 0x0000000000000000C000000580000001}, + [_]u128{0x00000001800000000000000100000001, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000017FFFFFFD, 0x0000000000000000000000087FFFFFFE}, + [_]u128{0x00000001800000000000000100000001, 0x00000000000000018000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000000000000018000000000000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000000000000018000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000180000001}, + [_]u128{0x00000001800000000000000100000001, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000300000000}, + [_]u128{0x00000001800000000000000100000001, 0x0000000000000001FFFFFFFF00000000, 0x000000000000000000000000C0000000, 0x0000000000000000C000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x0000000000000001FFFFFFFF00000001, 0x000000000000000000000000C0000000, 0x0000000000000000C000000040000001}, + [_]u128{0x00000001800000000000000100000001, 0x0000000000000001FFFFFFFF80000000, 0x000000000000000000000000C0000000, 0x00000000000000006000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000C0000000, 0x000000000000000000000001C0000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x00000000000000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x00000001800000000000000100000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000002, 0x00000000800000000000000000000001}, + [_]u128{0x00000001800000000000000100000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFF00000003}, + [_]u128{0x00000001800000000000000100000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0x00000001800000000000000100000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFE00000001}, + [_]u128{0x00000001800000000000000100000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFD00000003}, + [_]u128{0x00000001800000000000000100000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001800000000000000100000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x00000001800000000000000100000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFEFFFFFFFF00000003}, + [_]u128{0x00000001800000000000000100000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFE0000000300000001}, + [_]u128{0x00000001800000000000000100000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFE00000002FFFFFFFF}, + [_]u128{0x00000001800000000000000100000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFE0000000200000001}, + [_]u128{0x00000001800000000000000100000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFE0000000100000003}, + [_]u128{0x00000001800000000000000100000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000800000010000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000800000010000000100000000}, + [_]u128{0x00000001800000000000000100000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000800000010000000080000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000010000000000000002}, + [_]u128{0x00000001800000000000000100000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000800000010000000000000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000800000010000000000000000}, + [_]u128{0x00000001800000000000000100000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF80000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000002}, + [_]u128{0x00000001800000000000000100000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000800000008000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000800000008000000100000000}, + [_]u128{0x00000001800000000000000100000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000800000008000000080000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000008000000000000002}, + [_]u128{0x00000001800000000000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000000000000200000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000800000000000000200000000}, + [_]u128{0x00000001800000000000000100000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000800000000000000180000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000100000002}, + [_]u128{0x00000001800000000000000100000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000800000000000000100000000}, + [_]u128{0x00000001800000000000000100000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000800000000000000080000001}, + [_]u128{0x00000001800000000000000100000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000000000002}, + [_]u128{0x00000001800000000000000100000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x00000001800000000000000100000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x00000001800000000000000100000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000002}, + [_]u128{0x00000001800000000000000100000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x00000001800000000000000100000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0x00000001800000000000000100000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000002}, + [_]u128{0x00000001800000000000000100000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000200000001}, + [_]u128{0x00000001800000000000000100000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0x00000001800000000000000100000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000180000001}, + [_]u128{0x00000001800000000000000100000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000002}, + [_]u128{0x00000001800000000000000100000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x00000001800000000000000100000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0x00000001800000000000000100000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000002}, + [_]u128{0x00000001800000000000000100000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001800000000000000100000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000001800000000000000100000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0x00000001800000000000000100000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x00000001800000000000000100000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0x00000001800000000000000100000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000002}, + [_]u128{0x00000001800000000000000100000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000001}, + [_]u128{0x00000001800000000000000100000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0x00000001800000000000000100000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000180000001}, + [_]u128{0x00000001800000000000000100000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000002}, + [_]u128{0x00000001800000000000000100000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000001800000000000000100000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000001800000000000000100000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000002}, + [_]u128{0x00000001800000000000000100000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000000000000100000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000100000001}, + [_]u128{0x00000001800000000000000180000000, 0x00000000000000000000000000000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000000000000000000000080000000, 0x00000000000000030000000000000003, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000180000003, 0x00000000000000000000000000000003}, + [_]u128{0x00000001800000000000000180000000, 0x00000000000000000000000100000000, 0x00000000000000018000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000000000000000000000100000001, 0x00000000000000017FFFFFFE80000002, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x00000001800000000000000180000000, 0x00000000000000000000000180000000, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000000000000180000000, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000C000000060000000, 0x000000000000000000000001E0000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000000000000008000000000000000, 0x00000000000000000000000300000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000000000000008000000000000001, 0x000000000000000000000002FFFFFFFF, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x00000001800000000000000180000000, 0x00000000000000008000000080000000, 0x000000000000000000000002FFFFFFFD, 0x00000000000000000000000300000000}, + [_]u128{0x00000001800000000000000180000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000002FFFFFFFA, 0x00000000000000000000000A7FFFFFFA}, + [_]u128{0x00000001800000000000000180000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000180000001, 0x00000000000000008000000280000000}, + [_]u128{0x00000001800000000000000180000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000180000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x00000001800000000000000180000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000180000000, 0x0000000000000000C000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000, 0x00000000000000000000000300000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000000000000010000000000000000, 0x00000000000000000000000180000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000000000000010000000000000001, 0x00000000000000000000000180000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000000000000010000000080000000, 0x0000000000000000000000017FFFFFFF, 0x00000000000000004000000200000000}, + [_]u128{0x00000001800000000000000180000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000000000017FFFFFFE, 0x000000000000000080000004FFFFFFFE}, + [_]u128{0x00000001800000000000000180000000, 0x00000000000000010000000100000000, 0x0000000000000000000000017FFFFFFE, 0x00000000000000008000000380000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000000000000010000000100000001, 0x0000000000000000000000017FFFFFFE, 0x00000000000000008000000200000002}, + [_]u128{0x00000001800000000000000180000000, 0x00000000000000010000000180000000, 0x0000000000000000000000017FFFFFFD, 0x0000000000000000C000000600000000}, + [_]u128{0x00000001800000000000000180000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000017FFFFFFD, 0x000000000000000000000008FFFFFFFD}, + [_]u128{0x00000001800000000000000180000000, 0x00000000000000018000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000000000000018000000000000001, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000000000000018000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000200000000}, + [_]u128{0x00000001800000000000000180000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000037FFFFFFF}, + [_]u128{0x00000001800000000000000180000000, 0x0000000000000001FFFFFFFF00000000, 0x000000000000000000000000C0000000, 0x0000000000000000C000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x0000000000000001FFFFFFFF00000001, 0x000000000000000000000000C0000000, 0x0000000000000000C0000000C0000000}, + [_]u128{0x00000001800000000000000180000000, 0x0000000000000001FFFFFFFF80000000, 0x000000000000000000000000C0000000, 0x00000000000000006000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000C0000000, 0x00000000000000000000000240000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x00000000000000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x0000000000000000000000017FFFFFFD}, + [_]u128{0x00000001800000000000000180000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000003, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000000000000180000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFF80000002}, + [_]u128{0x00000001800000000000000180000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFF7FFFFFFE}, + [_]u128{0x00000001800000000000000180000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0x00000001800000000000000180000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFD80000002}, + [_]u128{0x00000001800000000000000180000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFF000000017FFFFFFE}, + [_]u128{0x00000001800000000000000180000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x00000001800000000000000180000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFEFFFFFFFF80000002}, + [_]u128{0x00000001800000000000000180000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFE0000000380000000}, + [_]u128{0x00000001800000000000000180000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFE000000037FFFFFFE}, + [_]u128{0x00000001800000000000000180000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFE0000000280000000}, + [_]u128{0x00000001800000000000000180000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFE0000000180000002}, + [_]u128{0x00000001800000000000000180000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000800000010000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000080000001000000017FFFFFFF}, + [_]u128{0x00000001800000000000000180000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000800000010000000100000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000010000000080000001}, + [_]u128{0x00000001800000000000000180000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000800000010000000080000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000080000001000000007FFFFFFF}, + [_]u128{0x00000001800000000000000180000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000800000010000000000000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF80000001}, + [_]u128{0x00000001800000000000000180000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000800000008000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000800000017FFFFFFF}, + [_]u128{0x00000001800000000000000180000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000800000008000000100000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000008000000080000001}, + [_]u128{0x00000001800000000000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000000000000280000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000080000000000000027FFFFFFF}, + [_]u128{0x00000001800000000000000180000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000800000000000000200000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000180000001}, + [_]u128{0x00000001800000000000000180000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000000000017FFFFFFF}, + [_]u128{0x00000001800000000000000180000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000800000000000000100000000}, + [_]u128{0x00000001800000000000000180000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000080000001}, + [_]u128{0x00000001800000000000000180000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000800000000000000080000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x00000001800000000000000180000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x00000001800000000000000180000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x00000001800000000000000180000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0x00000001800000000000000180000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x00000001800000000000000180000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0x00000001800000000000000180000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000280000000}, + [_]u128{0x00000001800000000000000180000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000027FFFFFFF}, + [_]u128{0x00000001800000000000000180000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0x00000001800000000000000180000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000180000001}, + [_]u128{0x00000001800000000000000180000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0x00000001800000000000000180000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x00000001800000000000000180000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0x00000001800000000000000180000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x00000001800000000000000180000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001800000000000000180000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000001800000000000000180000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0x00000001800000000000000180000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x00000001800000000000000180000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0x00000001800000000000000180000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000280000000}, + [_]u128{0x00000001800000000000000180000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE000000027FFFFFFF}, + [_]u128{0x00000001800000000000000180000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0x00000001800000000000000180000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000180000001}, + [_]u128{0x00000001800000000000000180000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x00000001800000000000000180000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000001800000000000000180000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000001800000000000000180000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001800000000000000180000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000000000000180000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x00000001800000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000000000000180000000}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000030000000000000003, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000180000003, 0x00000000000000000000000080000002}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000018000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000017FFFFFFE80000003, 0x0000000000000000000000007FFFFFFC}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000180000000, 0x00000000000000010000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000C000000060000001, 0x00000000000000000000000060000000}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000300000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000000000008000000000000001, 0x000000000000000000000002FFFFFFFF, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000000000008000000080000000, 0x000000000000000000000002FFFFFFFD, 0x0000000000000000000000037FFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000002FFFFFFFA, 0x00000000000000000000000AFFFFFFF9}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000180000001, 0x000000000000000080000002FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000180000001, 0x0000000000000000800000017FFFFFFE}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000180000000, 0x0000000000000000C0000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000, 0x0000000000000000000000037FFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000180000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000180000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000000000010000000080000000, 0x0000000000000000000000017FFFFFFF, 0x0000000000000000400000027FFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000000000017FFFFFFE, 0x0000000000000000800000057FFFFFFD}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000000000010000000100000000, 0x0000000000000000000000017FFFFFFE, 0x000000000000000080000003FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000000000010000000100000001, 0x0000000000000000000000017FFFFFFE, 0x00000000000000008000000280000001}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000000000010000000180000000, 0x0000000000000000000000017FFFFFFD, 0x0000000000000000C00000067FFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000017FFFFFFD, 0x0000000000000000000000097FFFFFFC}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000000000018000000000000000, 0x00000000000000000000000100000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000000000018000000000000001, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000000000018000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001000000027FFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000003FFFFFFFE}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x000000000000000000000000C0000000, 0x0000000000000000C0000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x000000000000000000000000C0000000, 0x0000000000000000C00000013FFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x000000000000000000000000C0000000, 0x000000000000000060000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000C0000000, 0x000000000000000000000002BFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x000000000000000000000001FFFFFFFC}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000003, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000800000000000000000000001}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFFFFFFFFFD}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFE00000001}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFF00000001FFFFFFFD}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFE00000003FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFE00000003FFFFFFFD}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFE00000002FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFE0000000200000001}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x000000008000000100000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x000000008000000100000001FFFFFFFE}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000080000001000000017FFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000010000000100000000}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x000000008000000100000000FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x000000008000000100000000FFFFFFFE}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000080000001000000007FFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000010000000000000000}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x000000008000000080000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x000000008000000080000001FFFFFFFE}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000800000017FFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000008000000100000000}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000008000000000000002FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000008000000000000002FFFFFFFE}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000080000000000000027FFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000200000000}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x000000008000000000000001FFFFFFFE}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000000000017FFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000100000000}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFE}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000001FFFFFFFE}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000002FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000002FFFFFFFE}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000027FFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000001FFFFFFFE}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000001FFFFFFFE}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000002FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000002FFFFFFFE}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE000000027FFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x000000018000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0x00000001800000008000000000000000, 0x00000000000000000000000000000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000000000000000000000080000000, 0x00000000000000030000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000200000002, 0x00000000000000000000000000000002}, + [_]u128{0x00000001800000008000000000000000, 0x00000000000000000000000100000000, 0x00000000000000018000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000000000000000000000100000001, 0x00000000000000017FFFFFFF00000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000000000000000000000180000000, 0x00000000000000010000000055555555, 0x00000000000000000000000080000000}, + [_]u128{0x00000001800000008000000000000000, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000C0000000A0000000, 0x000000000000000000000000A0000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000000000000008000000000000000, 0x00000000000000000000000300000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000000000000008000000000000001, 0x00000000000000000000000300000000, 0x00000000000000007FFFFFFD00000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000000000000008000000080000000, 0x000000000000000000000002FFFFFFFE, 0x00000000000000000000000100000000}, + [_]u128{0x00000001800000008000000000000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000002FFFFFFFB, 0x000000000000000000000007FFFFFFFB}, + [_]u128{0x00000001800000008000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000180000002, 0x00000000000000000000000200000000}, + [_]u128{0x00000001800000008000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000180000002, 0x0000000000000000000000007FFFFFFE}, + [_]u128{0x00000001800000008000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000180000001, 0x00000000000000004000000080000000}, + [_]u128{0x00000001800000008000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000, 0x00000000000000008000000180000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000000000000010000000000000000, 0x00000000000000000000000180000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000000000000010000000000000001, 0x00000000000000000000000180000000, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000000000000010000000080000000, 0x0000000000000000000000017FFFFFFF, 0x0000000000000000C000000080000000}, + [_]u128{0x00000001800000008000000000000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000000000017FFFFFFF, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x00000001800000008000000000000000, 0x00000000000000010000000100000000, 0x0000000000000000000000017FFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000000000000010000000100000001, 0x0000000000000000000000017FFFFFFE, 0x00000000000000010000000080000002}, + [_]u128{0x00000001800000008000000000000000, 0x00000000000000010000000180000000, 0x0000000000000000000000017FFFFFFE, 0x00000000000000004000000300000000}, + [_]u128{0x00000001800000008000000000000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000017FFFFFFD, 0x0000000000000000800000077FFFFFFD}, + [_]u128{0x00000001800000008000000000000000, 0x00000000000000018000000000000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000000000000018000000000000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000000000000018000000080000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x00000001800000008000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x000000000000000000000000C0000000, 0x00000000000000014000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x000000000000000000000000C0000000, 0x00000000000000013FFFFFFF40000000}, + [_]u128{0x00000001800000008000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x000000000000000000000000C0000000, 0x0000000000000000E000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000C0000000, 0x000000000000000080000000C0000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x00000000000000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFFFFFFFFFD}, + [_]u128{0x00000001800000008000000000000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x00000001800000008000000000000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFD00000003}, + [_]u128{0x00000001800000008000000000000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFD00000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFCFFFFFFFD}, + [_]u128{0x00000001800000008000000000000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFB80000000}, + [_]u128{0x00000001800000008000000000000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFA00000003}, + [_]u128{0x00000001800000008000000000000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0x00000001800000008000000000000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000001800000008000000000000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFF7FFFFFFE00000002}, + [_]u128{0x00000001800000008000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFE8000000200000000}, + [_]u128{0x00000001800000008000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFE80000001FFFFFFFE}, + [_]u128{0x00000001800000008000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x00000001800000008000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFE8000000000000002}, + [_]u128{0x00000001800000008000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000800000018000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFFFFFFFFFF}, + [_]u128{0x00000001800000008000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFF80000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFF00000001}, + [_]u128{0x00000001800000008000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFF00000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFEFFFFFFFF}, + [_]u128{0x00000001800000008000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFE80000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFE00000001}, + [_]u128{0x00000001800000008000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000800000010000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x00000001800000008000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x00000001800000008000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000008000000100000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x00000001800000008000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000800000008000000080000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000008000000000000001}, + [_]u128{0x00000001800000008000000000000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000001800000008000000000000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0x00000001800000008000000000000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000001}, + [_]u128{0x00000001800000008000000000000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFEFFFFFFFF}, + [_]u128{0x00000001800000008000000000000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE80000000}, + [_]u128{0x00000001800000008000000000000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE00000001}, + [_]u128{0x00000001800000008000000000000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001800000008000000000000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001800000008000000000000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001800000008000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x00000001800000008000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001800000008000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x00000001800000008000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0x00000001800000008000000000000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x00000001800000008000000000000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x00000001800000008000000000000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0x00000001800000008000000000000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0x00000001800000008000000000000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000000}, + [_]u128{0x00000001800000008000000000000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE00000001}, + [_]u128{0x00000001800000008000000000000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001800000008000000000000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x00000001800000008000000000000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x00000001800000008000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x00000001800000008000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000000FFFFFFFF}, + [_]u128{0x00000001800000008000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0x00000001800000008000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000001}, + [_]u128{0x00000001800000008000000000000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000001800000008000000000000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000001800000008000000000000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000001800000008000000000000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x00000001800000008000000000000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x00000001800000008000000000000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x00000001800000008000000000000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000000}, + [_]u128{0x00000001800000008000000000000001, 0x00000000000000000000000000000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000008000000000000001, 0x00000000000000000000000080000000, 0x00000000000000030000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000200000002, 0x00000000000000000000000000000003}, + [_]u128{0x00000001800000008000000000000001, 0x00000000000000000000000100000000, 0x00000000000000018000000080000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000000000000000000000100000001, 0x00000000000000017FFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000008000000000000001, 0x00000000000000000000000180000000, 0x00000000000000010000000055555555, 0x00000000000000000000000080000001}, + [_]u128{0x00000001800000008000000000000001, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000C0000000A0000000, 0x000000000000000000000000A0000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000000000000008000000000000000, 0x00000000000000000000000300000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000000000000008000000000000001, 0x00000000000000000000000300000000, 0x00000000000000007FFFFFFD00000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000000000000008000000080000000, 0x000000000000000000000002FFFFFFFE, 0x00000000000000000000000100000001}, + [_]u128{0x00000001800000008000000000000001, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000002FFFFFFFB, 0x000000000000000000000007FFFFFFFC}, + [_]u128{0x00000001800000008000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000180000002, 0x00000000000000000000000200000001}, + [_]u128{0x00000001800000008000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000180000002, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001800000008000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000180000001, 0x00000000000000004000000080000001}, + [_]u128{0x00000001800000008000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000, 0x00000000000000008000000180000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000000000000010000000000000000, 0x00000000000000000000000180000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000000000000010000000000000001, 0x00000000000000000000000180000000, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000000000000010000000080000000, 0x0000000000000000000000017FFFFFFF, 0x0000000000000000C000000080000001}, + [_]u128{0x00000001800000008000000000000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000000000017FFFFFFF, 0x00000000000000000000000280000000}, + [_]u128{0x00000001800000008000000000000001, 0x00000000000000010000000100000000, 0x0000000000000000000000017FFFFFFF, 0x00000000000000000000000100000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000000000000010000000100000001, 0x0000000000000000000000017FFFFFFE, 0x00000000000000010000000080000003}, + [_]u128{0x00000001800000008000000000000001, 0x00000000000000010000000180000000, 0x0000000000000000000000017FFFFFFE, 0x00000000000000004000000300000001}, + [_]u128{0x00000001800000008000000000000001, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000017FFFFFFD, 0x0000000000000000800000077FFFFFFE}, + [_]u128{0x00000001800000008000000000000001, 0x00000000000000018000000000000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000000000000018000000000000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000000000000018000000080000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000200000000}, + [_]u128{0x00000001800000008000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x000000000000000000000000C0000000, 0x00000000000000014000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x000000000000000000000000C0000000, 0x00000000000000013FFFFFFF40000001}, + [_]u128{0x00000001800000008000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x000000000000000000000000C0000000, 0x0000000000000000E000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000C0000000, 0x000000000000000080000000C0000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x00000000000000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x00000001800000008000000000000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x00000001800000008000000000000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFD00000004}, + [_]u128{0x00000001800000008000000000000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFD00000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFCFFFFFFFE}, + [_]u128{0x00000001800000008000000000000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFB80000001}, + [_]u128{0x00000001800000008000000000000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFA00000004}, + [_]u128{0x00000001800000008000000000000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x00000001800000008000000000000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0x00000001800000008000000000000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFF7FFFFFFE00000003}, + [_]u128{0x00000001800000008000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFE8000000200000001}, + [_]u128{0x00000001800000008000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFE80000001FFFFFFFF}, + [_]u128{0x00000001800000008000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFE8000000100000001}, + [_]u128{0x00000001800000008000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFE8000000000000003}, + [_]u128{0x00000001800000008000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000800000018000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000800000018000000000000000}, + [_]u128{0x00000001800000008000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFF80000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFF00000002}, + [_]u128{0x00000001800000008000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFF00000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFF00000000}, + [_]u128{0x00000001800000008000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFE80000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFE00000002}, + [_]u128{0x00000001800000008000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000800000010000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000800000010000000000000000}, + [_]u128{0x00000001800000008000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF80000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000002}, + [_]u128{0x00000001800000008000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000008000000100000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000800000008000000100000000}, + [_]u128{0x00000001800000008000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000800000008000000080000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000008000000000000002}, + [_]u128{0x00000001800000008000000000000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000800000008000000000000000}, + [_]u128{0x00000001800000008000000000000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF80000001}, + [_]u128{0x00000001800000008000000000000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000002}, + [_]u128{0x00000001800000008000000000000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0x00000001800000008000000000000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE80000001}, + [_]u128{0x00000001800000008000000000000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE00000002}, + [_]u128{0x00000001800000008000000000000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x00000001800000008000000000000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x00000001800000008000000000000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000002}, + [_]u128{0x00000001800000008000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000001}, + [_]u128{0x00000001800000008000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x00000001800000008000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0x00000001800000008000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000002}, + [_]u128{0x00000001800000008000000000000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x00000001800000008000000000000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0x00000001800000008000000000000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000002}, + [_]u128{0x00000001800000008000000000000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000001800000008000000000000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0x00000001800000008000000000000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE00000002}, + [_]u128{0x00000001800000008000000000000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001800000008000000000000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000001800000008000000000000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0x00000001800000008000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000001}, + [_]u128{0x00000001800000008000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x00000001800000008000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0x00000001800000008000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000002}, + [_]u128{0x00000001800000008000000000000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000001800000008000000000000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x00000001800000008000000000000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0x00000001800000008000000000000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001800000008000000000000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x00000001800000008000000000000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x00000001800000008000000000000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000008000000000000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000000000001}, + [_]u128{0x00000001800000008000000080000000, 0x00000000000000000000000000000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000000000000000000000080000000, 0x00000000000000030000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000200000002, 0x00000000000000000000000080000002}, + [_]u128{0x00000001800000008000000080000000, 0x00000000000000000000000100000000, 0x00000000000000018000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000000000000000000000100000001, 0x00000000000000017FFFFFFF00000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001800000008000000080000000, 0x00000000000000000000000180000000, 0x00000000000000010000000055555555, 0x00000000000000000000000100000000}, + [_]u128{0x00000001800000008000000080000000, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000C0000000A0000000, 0x00000000000000000000000120000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000000000000008000000000000000, 0x00000000000000000000000300000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000000000000008000000000000001, 0x00000000000000000000000300000000, 0x00000000000000007FFFFFFD80000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000000000000008000000080000000, 0x000000000000000000000002FFFFFFFE, 0x00000000000000000000000180000000}, + [_]u128{0x00000001800000008000000080000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000002FFFFFFFB, 0x0000000000000000000000087FFFFFFB}, + [_]u128{0x00000001800000008000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000180000002, 0x00000000000000000000000280000000}, + [_]u128{0x00000001800000008000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000180000002, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x00000001800000008000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000180000001, 0x00000000000000004000000100000000}, + [_]u128{0x00000001800000008000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000, 0x00000000000000008000000200000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000000000000010000000000000000, 0x00000000000000000000000180000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000000000000010000000000000001, 0x00000000000000000000000180000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000000000000010000000080000000, 0x0000000000000000000000017FFFFFFF, 0x0000000000000000C000000100000000}, + [_]u128{0x00000001800000008000000080000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000000000017FFFFFFF, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x00000001800000008000000080000000, 0x00000000000000010000000100000000, 0x0000000000000000000000017FFFFFFF, 0x00000000000000000000000180000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000000000000010000000100000001, 0x0000000000000000000000017FFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x00000001800000008000000080000000, 0x00000000000000010000000180000000, 0x0000000000000000000000017FFFFFFE, 0x00000000000000004000000380000000}, + [_]u128{0x00000001800000008000000080000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000017FFFFFFD, 0x000000000000000080000007FFFFFFFD}, + [_]u128{0x00000001800000008000000080000000, 0x00000000000000018000000000000000, 0x00000000000000000000000100000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000000000000018000000000000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000000000000018000000080000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001000000027FFFFFFF}, + [_]u128{0x00000001800000008000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x000000000000000000000000C0000000, 0x00000000000000014000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x000000000000000000000000C0000000, 0x00000000000000013FFFFFFFC0000000}, + [_]u128{0x00000001800000008000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x000000000000000000000000C0000000, 0x0000000000000000E000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000C0000000, 0x00000000000000008000000140000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x00000000000000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x0000000000000000800000007FFFFFFD}, + [_]u128{0x00000001800000008000000080000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001800000008000000080000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFD80000003}, + [_]u128{0x00000001800000008000000080000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFD80000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFD7FFFFFFD}, + [_]u128{0x00000001800000008000000080000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFC00000000}, + [_]u128{0x00000001800000008000000080000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFA80000003}, + [_]u128{0x00000001800000008000000080000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFF800000007FFFFFFE}, + [_]u128{0x00000001800000008000000080000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x00000001800000008000000080000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFF7FFFFFFE80000002}, + [_]u128{0x00000001800000008000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFE8000000280000000}, + [_]u128{0x00000001800000008000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFE800000027FFFFFFE}, + [_]u128{0x00000001800000008000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0x00000001800000008000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFE8000000080000002}, + [_]u128{0x00000001800000008000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000800000018000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000080000001800000007FFFFFFF}, + [_]u128{0x00000001800000008000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000800000018000000000000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFF80000001}, + [_]u128{0x00000001800000008000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFF80000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFF7FFFFFFF}, + [_]u128{0x00000001800000008000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFF00000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFE80000001}, + [_]u128{0x00000001800000008000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000800000010000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x0000000080000001000000007FFFFFFF}, + [_]u128{0x00000001800000008000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000800000010000000000000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF80000001}, + [_]u128{0x00000001800000008000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000008000000180000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000080000000800000017FFFFFFF}, + [_]u128{0x00000001800000008000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000800000008000000100000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000008000000080000001}, + [_]u128{0x00000001800000008000000080000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000800000007FFFFFFF}, + [_]u128{0x00000001800000008000000080000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000800000008000000000000000}, + [_]u128{0x00000001800000008000000080000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF80000001}, + [_]u128{0x00000001800000008000000080000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF7FFFFFFF}, + [_]u128{0x00000001800000008000000080000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0x00000001800000008000000080000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE80000001}, + [_]u128{0x00000001800000008000000080000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x00000001800000008000000080000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x00000001800000008000000080000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x00000001800000008000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0x00000001800000008000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0x00000001800000008000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x00000001800000008000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0x00000001800000008000000080000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0x00000001800000008000000080000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x00000001800000008000000080000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0x00000001800000008000000080000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x00000001800000008000000080000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000001800000008000000080000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0x00000001800000008000000080000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x00000001800000008000000080000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001800000008000000080000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000001800000008000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0x00000001800000008000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0x00000001800000008000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x00000001800000008000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0x00000001800000008000000080000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x00000001800000008000000080000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000001800000008000000080000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x00000001800000008000000080000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x00000001800000008000000080000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001800000008000000080000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x00000001800000008000000080000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001800000008000000080000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001800000008000000080000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x00000001800000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001800000008000000080000000}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000030000000100000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000200000003, 0x00000000000000000000000000000002}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000018000000080000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000017FFFFFFF00000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000180000000, 0x00000000000000010000000055555555, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000C0000000A0000000, 0x0000000000000000000000019FFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000300000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000000000000300000000, 0x00000000000000007FFFFFFDFFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000000000008000000080000000, 0x000000000000000000000002FFFFFFFE, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000002FFFFFFFB, 0x000000000000000000000008FFFFFFFA}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000180000002, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000180000002, 0x0000000000000000000000017FFFFFFD}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000180000001, 0x0000000000000000400000017FFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000, 0x0000000000000000800000027FFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000180000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000180000000, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000000000010000000080000000, 0x0000000000000000000000017FFFFFFF, 0x0000000000000000C00000017FFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000000000017FFFFFFF, 0x0000000000000000000000037FFFFFFE}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000000000010000000100000000, 0x0000000000000000000000017FFFFFFF, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000000000010000000100000001, 0x0000000000000000000000017FFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000000000010000000180000000, 0x0000000000000000000000017FFFFFFE, 0x000000000000000040000003FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000017FFFFFFD, 0x0000000000000000800000087FFFFFFC}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000000000018000000000000000, 0x00000000000000000000000100000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000000000018000000000000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000000000018000000080000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000100000002FFFFFFFE}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x000000000000000000000000C0000000, 0x000000000000000140000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x000000000000000000000000C0000000, 0x0000000000000001400000003FFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x000000000000000000000000C0000000, 0x0000000000000000E0000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000C0000000, 0x000000000000000080000001BFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x000000000000000080000000FFFFFFFC}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFDFFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFDFFFFFFFC}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFC7FFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000003, 0x00000000000000007FFFFFFB00000002}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFF80000000FFFFFFFD}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFE80000002FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFE80000002FFFFFFFD}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFE80000001FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFE8000000100000001}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x000000008000000180000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x000000008000000180000000FFFFFFFE}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000080000001800000007FFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000018000000000000000}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFFFFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFFFFFFFFFE}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFF7FFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFF00000000}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x000000008000000100000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x000000008000000100000000FFFFFFFE}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x0000000080000001000000007FFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000010000000000000000}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000008000000080000001FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000008000000080000001FFFFFFFE}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000080000000800000017FFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000008000000100000000}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x000000008000000080000000FFFFFFFE}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000800000007FFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000008000000000000000}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFFFFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFFFFFFFFFE}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF7FFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFE}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000001FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000001FFFFFFFE}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFE}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000001FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000001FFFFFFFE}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFE}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x000000018000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000000000000300000001FFFFFFFE, 0x00000000000000000000000000000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000280000001, 0x00000000000000000000000080000001}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000100000001, 0x00000000000000017FFFFFFF7FFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000180000000, 0x000000000000000100000000AAAAAAAA, 0x00000000000000000000000000000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000C0000000DFFFFFFF, 0x000000000000000000000001DFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000000000008000000000000000, 0x00000000000000000000000300000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000000000008000000000000001, 0x00000000000000000000000300000001, 0x00000000000000007FFFFFFBFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000000000008000000080000000, 0x000000000000000000000002FFFFFFFE, 0x00000000000000008000000000000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000002FFFFFFFC, 0x000000000000000000000005FFFFFFFC}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000180000002, 0x00000000000000008000000100000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000180000002, 0x00000000000000007FFFFFFF7FFFFFFE}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000180000001, 0x0000000000000000BFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000001, 0x00000000000000000000000080000001}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000000000010000000000000000, 0x00000000000000000000000180000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000000000010000000000000001, 0x00000000000000000000000180000000, 0x0000000000000000FFFFFFFD80000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000000000010000000080000000, 0x00000000000000000000000180000000, 0x00000000000000003FFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000000000017FFFFFFF, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000000000010000000100000000, 0x0000000000000000000000017FFFFFFF, 0x00000000000000008000000000000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000000000010000000100000001, 0x0000000000000000000000017FFFFFFF, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000000000010000000180000000, 0x0000000000000000000000017FFFFFFE, 0x0000000000000000C000000200000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000017FFFFFFE, 0x0000000000000000000000047FFFFFFE}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000000000018000000000000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000000000018000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000000000018000000080000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000000, 0x000000000000000000000000C0000000, 0x0000000000000001BFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000001, 0x000000000000000000000000C0000000, 0x0000000000000001BFFFFFFE40000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFF80000000, 0x000000000000000000000000C0000000, 0x00000000000000015FFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000C0000000, 0x0000000000000000FFFFFFFFC0000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFEFFFFFFFD}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFD80000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFC00000003}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFC00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFBFFFFFFFD}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFA80000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFF900000003}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFEFFFFFFFE}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFD00000002}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFE80000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFE00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFE00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFDFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFD80000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFD00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFEFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFE80000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFE00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000010000000000000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE80000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFDFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFD80000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFD00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFEFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE80000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFDFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD80000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFDFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x000000000000000300000001FFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000280000001, 0x00000000000000000000000080000002}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000100000001, 0x00000000000000017FFFFFFF7FFFFFFF, 0x00000000000000000000000080000002}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000180000000, 0x000000000000000100000000AAAAAAAA, 0x00000000000000000000000000000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000C0000000DFFFFFFF, 0x000000000000000000000001E0000000}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000000000008000000000000000, 0x00000000000000000000000300000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000000000008000000000000001, 0x00000000000000000000000300000001, 0x00000000000000007FFFFFFC00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000000000008000000080000000, 0x000000000000000000000002FFFFFFFE, 0x00000000000000008000000000000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000002FFFFFFFC, 0x000000000000000000000005FFFFFFFD}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000180000002, 0x00000000000000008000000100000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000180000002, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000180000001, 0x0000000000000000BFFFFFFF80000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000001, 0x00000000000000000000000080000002}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000000000010000000000000000, 0x00000000000000000000000180000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000000000010000000000000001, 0x00000000000000000000000180000000, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000000000010000000080000000, 0x00000000000000000000000180000000, 0x00000000000000003FFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000000000017FFFFFFF, 0x00000000000000008000000180000000}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000000000010000000100000000, 0x0000000000000000000000017FFFFFFF, 0x00000000000000008000000000000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000000000010000000100000001, 0x0000000000000000000000017FFFFFFF, 0x00000000000000007FFFFFFE80000002}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000000000010000000180000000, 0x0000000000000000000000017FFFFFFE, 0x0000000000000000C000000200000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000017FFFFFFE, 0x0000000000000000000000047FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000000000018000000000000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000000000018000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000000000018000000080000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000000, 0x000000000000000000000000C0000000, 0x0000000000000001BFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000001, 0x000000000000000000000000C0000000, 0x0000000000000001BFFFFFFE40000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFF80000000, 0x000000000000000000000000C0000000, 0x00000000000000015FFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000C0000000, 0x0000000000000000FFFFFFFFC0000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFEFFFFFFFE}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFC00000004}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFC00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFBFFFFFFFE}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFA80000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFF900000004}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFE00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFD00000003}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFEFFFFFFFF00000003}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFE80000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFE00000002}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFE00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFE00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFD80000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFD00000002}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFE80000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFE00000002}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000010000000000000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000800000010000000000000000}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF80000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000002}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE80000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE00000002}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFD80000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFD00000002}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE80000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE00000002}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000002}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000002}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD80000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD00000002}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE00000002}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000000000000300000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000280000002, 0x00000000000000000000000000000002}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000100000001, 0x00000000000000017FFFFFFF80000000, 0x00000000000000000000000000000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000180000000, 0x000000000000000100000000AAAAAAAA, 0x00000000000000000000000080000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000C0000000E0000000, 0x00000000000000000000000060000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000000000008000000000000000, 0x00000000000000000000000300000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000000000008000000000000001, 0x00000000000000000000000300000001, 0x00000000000000007FFFFFFC7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000000000008000000080000000, 0x000000000000000000000002FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000002FFFFFFFC, 0x0000000000000000000000067FFFFFFC}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000180000002, 0x00000000000000008000000180000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000180000002, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000180000001, 0x0000000000000000C000000000000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000001, 0x00000000000000000000000100000001}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000000000010000000000000000, 0x00000000000000000000000180000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000000000010000000000000001, 0x00000000000000000000000180000000, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000000000010000000080000000, 0x00000000000000000000000180000000, 0x00000000000000003FFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000000000017FFFFFFF, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000000000010000000100000000, 0x0000000000000000000000017FFFFFFF, 0x00000000000000008000000080000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000000000010000000100000001, 0x0000000000000000000000017FFFFFFF, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000000000010000000180000000, 0x0000000000000000000000017FFFFFFE, 0x0000000000000000C000000280000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000017FFFFFFE, 0x000000000000000000000004FFFFFFFE}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000000000018000000000000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000000000018000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000000000018000000080000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000000, 0x000000000000000000000000C0000000, 0x0000000000000001BFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000001, 0x000000000000000000000000C0000000, 0x0000000000000001BFFFFFFEC0000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFF80000000, 0x000000000000000000000000C0000000, 0x00000000000000015FFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000C0000000, 0x00000000000000010000000040000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFF7FFFFFFD}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFC80000003}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFC80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFC7FFFFFFD}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFB00000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFF980000003}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFF7FFFFFFE}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFD80000002}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFF000000017FFFFFFE}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFEFFFFFFFF80000002}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFF7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFE80000001}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFE80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFE7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFE00000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFD80000001}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFF7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFE80000001}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000010000000080000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000080000001000000007FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000800000010000000000000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF80000001}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE80000001}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE00000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFD80000001}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE80000001}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000000000000080000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000001}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD80000001}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x000000000000000300000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000280000002, 0x00000000000000000000000080000001}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000017FFFFFFF80000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000, 0x000000000000000100000000AAAAAAAA, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000C0000000E0000000, 0x000000000000000000000000DFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000300000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000000000000300000001, 0x00000000000000007FFFFFFCFFFFFFFE}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000000, 0x000000000000000000000002FFFFFFFF, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000002FFFFFFFC, 0x000000000000000000000006FFFFFFFB}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000180000002, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000180000002, 0x0000000000000000800000007FFFFFFD}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000180000001, 0x0000000000000000C00000007FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000001, 0x00000000000000000000000180000000}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000180000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000180000000, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000000000000180000000, 0x00000000000000003FFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000000000017FFFFFFF, 0x0000000000000000800000027FFFFFFE}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000100000000, 0x0000000000000000000000017FFFFFFF, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000100000001, 0x0000000000000000000000017FFFFFFF, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000180000000, 0x0000000000000000000000017FFFFFFE, 0x0000000000000000C0000002FFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000000000017FFFFFFE, 0x0000000000000000000000057FFFFFFD}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000018000000000000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000018000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000018000000080000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x000000000000000000000000C0000000, 0x0000000000000001BFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x000000000000000000000000C0000000, 0x0000000000000001BFFFFFFF3FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x000000000000000000000000C0000000, 0x00000000000000015FFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000C0000000, 0x000000000000000100000000BFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFFFFFFFFFC}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFCFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFCFFFFFFFC}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFB7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000003, 0x0000000000000000FFFFFFFA00000002}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFFFFFFFFFD}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFFFFFFFFFE00000001}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000002, 0x000000007FFFFFFF00000001FFFFFFFD}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000002, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000002, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFFFFFFFFFE}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFF7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFEFFFFFFFE}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFE7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000001FFFFFFFE00000000}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFFFFFFFFFE}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFF7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000017FFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000008000000100000000FFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000008000000100000000FFFFFFFE}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000080000001000000007FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000010000000000000000}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFE}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFEFFFFFFFE}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE00000000}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFFFFFFFFFE}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFE}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFE}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFEFFFFFFFE}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFE}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x0000000180000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x0000000000000003FFFFFFFE00000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000100000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000100000001, 0x0000000000000001FFFFFFFD00000002, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000180000000, 0x000000000000000155555554AAAAAAAA, 0x00000000000000000000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000000000008000000000000000, 0x000000000000000000000003FFFFFFFE, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000000000008000000000000001, 0x000000000000000000000003FFFFFFFD, 0x00000000000000007FFFFFFC00000003}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000000000008000000080000000, 0x000000000000000000000003FFFFFFFA, 0x00000000000000000000000300000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000003FFFFFFF6, 0x00000000000000000000000DFFFFFFF6}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000200000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000200000000, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000200000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000000000010000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000000000010000000000000001, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000000000010000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000000000000000000004FFFFFFFD}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000000000010000000100000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000000000000300000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000000000010000000100000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000000000000100000003}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000000000010000000180000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000000000000600000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x00000000000000000000000BFFFFFFFB}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000000000018000000000000000, 0x00000000000000000000000155555554, 0x00000000000000010000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000000000018000000000000001, 0x00000000000000000000000155555554, 0x0000000000000000FFFFFFFEAAAAAAAC}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000000000018000000080000000, 0x00000000000000000000000155555554, 0x00000000000000005555555600000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000155555553, 0x00000000000000012AAAAAAE55555553}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFFFFFFFFFD}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFD00000003}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFD00000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFCFFFFFFFD}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFB80000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFA00000003}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFD8000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFD7FFFFFFFFFFFFFFD}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFD7FFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFD7FFFFFFD00000003}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFC0000000300000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFC00000002FFFFFFFD}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFC0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFC0000000000000003}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000002, 0x00000000000000010000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFFFFFFFFFE}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFDFFFFFFFE}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFD00000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFC00000002}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000002, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD7FFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD7FFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD7FFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x0000000000000003FFFFFFFE00000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000100000001, 0x00000000000000000000000000000002}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000100000001, 0x0000000000000001FFFFFFFD00000002, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000180000000, 0x000000000000000155555554AAAAAAAA, 0x00000000000000000000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000000000008000000000000000, 0x000000000000000000000003FFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000000000008000000000000001, 0x000000000000000000000003FFFFFFFD, 0x00000000000000007FFFFFFC00000004}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000000000008000000080000000, 0x000000000000000000000003FFFFFFFA, 0x00000000000000000000000300000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000003FFFFFFF6, 0x00000000000000000000000DFFFFFFF7}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000200000001, 0x00000000000000000000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000200000000, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000200000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000200000000}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000000000010000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000000000010000000000000001, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFE00000003}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000000000010000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000000000000000000004FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000000000010000000100000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000000000000300000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000000000010000000100000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000000000000100000004}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000000000010000000180000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000000000000600000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x00000000000000000000000BFFFFFFFC}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000000000018000000000000000, 0x00000000000000000000000155555554, 0x00000000000000010000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000000000018000000000000001, 0x00000000000000000000000155555554, 0x0000000000000000FFFFFFFEAAAAAAAD}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000000000018000000080000000, 0x00000000000000000000000155555554, 0x00000000000000005555555600000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000155555553, 0x00000000000000012AAAAAAE55555554}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFE00000002}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFFFFFFFFFE}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFD00000004}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFD00000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFCFFFFFFFE}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFB80000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFA00000004}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFD8000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFD7FFFFFFFFFFFFFFE}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFD7FFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFD7FFFFFFD00000004}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFC0000000300000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFC00000002FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFC0000000180000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFC0000000000000004}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000002, 0x00000000000000010000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE00000003}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFDFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFD00000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFC00000003}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000002}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000080000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000002}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000002}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE00000002}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000002}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000002}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000002}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFE00000002}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD7FFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD7FFFFFFF00000002}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000080000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000000000002}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE00000002}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF00000002}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000080000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000000000002}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x0000000000000003FFFFFFFE00000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000100000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000100000001, 0x0000000000000001FFFFFFFD00000003, 0x0000000000000000000000007FFFFFFD}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000180000000, 0x000000000000000155555554AAAAAAAB, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000000000008000000000000000, 0x000000000000000000000003FFFFFFFE, 0x00000000000000000000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000000000008000000000000001, 0x000000000000000000000003FFFFFFFD, 0x00000000000000007FFFFFFC80000003}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000000000008000000080000000, 0x000000000000000000000003FFFFFFFA, 0x00000000000000000000000380000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000003FFFFFFF6, 0x00000000000000000000000E7FFFFFF6}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000200000001, 0x00000000000000000000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000200000000, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000200000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000000000010000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000000000010000000000000001, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFE80000002}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000000000010000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x0000000000000000000000057FFFFFFD}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000000000010000000100000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000000000000380000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000000000010000000100000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000000000000180000003}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000000000010000000180000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000000000000680000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x00000000000000000000000C7FFFFFFB}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000000000018000000000000000, 0x00000000000000000000000155555554, 0x00000000000000010000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000000000018000000000000001, 0x00000000000000000000000155555554, 0x0000000000000000FFFFFFFF2AAAAAAC}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000000000018000000080000000, 0x00000000000000000000000155555554, 0x00000000000000005555555680000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000155555553, 0x00000000000000012AAAAAAED5555553}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001000000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFF000000007FFFFFFD}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFD80000003}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFD80000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFD7FFFFFFD}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFC00000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFA80000003}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFD8000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFD800000007FFFFFFD}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFD7FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFD7FFFFFFD80000003}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFC0000000380000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFC000000037FFFFFFD}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFC0000000200000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFC0000000080000003}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000002, 0x00000000000000010000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000002, 0x0000000000000001000000007FFFFFFE}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE80000002}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE7FFFFFFE}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFD80000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFC80000002}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000002, 0x00000000000000000000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000002, 0x0000000000000000000000007FFFFFFE}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000080000001}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE800000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000001}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD800000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD7FFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD000000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000080000001}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE000000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000080000001}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000003FFFFFFFE00000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000100000002, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000001, 0x0000000000000001FFFFFFFD00000003, 0x000000000000000000000000FFFFFFFC}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000180000000, 0x000000000000000155555554AAAAAAAB, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000008000000000000000, 0x000000000000000000000003FFFFFFFE, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000008000000000000001, 0x000000000000000000000003FFFFFFFD, 0x00000000000000007FFFFFFD00000002}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000008000000080000000, 0x000000000000000000000003FFFFFFFA, 0x000000000000000000000003FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000003FFFFFFF6, 0x00000000000000000000000EFFFFFFF5}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000200000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000200000000, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000200000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000000000000000000002FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000010000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000010000000000000001, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000010000000080000000, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000000000000000000005FFFFFFFC}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000010000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000000000000000000003FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000010000000100000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000000000000200000002}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000010000000180000000, 0x000000000000000000000001FFFFFFFC, 0x000000000000000000000006FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x00000000000000000000000CFFFFFFFA}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000018000000000000000, 0x00000000000000000000000155555554, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000018000000000000001, 0x00000000000000000000000155555554, 0x0000000000000000FFFFFFFFAAAAAAAB}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000018000000080000000, 0x00000000000000000000000155555554, 0x000000000000000055555556FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000155555553, 0x00000000000000012AAAAAAF55555552}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001800000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000100000001FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFF00000000FFFFFFFC}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFE00000002}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFDFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFDFFFFFFFC}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFC7FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFB00000002}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFD80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFD80000000FFFFFFFC}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFD7FFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFD7FFFFFFE00000002}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFC00000003FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFC00000003FFFFFFFC}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFC000000027FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFC0000000100000002}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000002, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000002, 0x000000000000000100000000FFFFFFFD}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFEFFFFFFFD}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFDFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFD00000001}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFD}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF800000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFFFFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE800000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000000}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000001FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFFFFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD80000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD800000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000000000000}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD00000001FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD000000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000100000000}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000001FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE000000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x0000000000000003FFFFFFFE00000002, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000100000002, 0x00000000000000000000000000000002}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000100000001, 0x0000000000000001FFFFFFFD00000003, 0x000000000000000000000000FFFFFFFD}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000180000000, 0x000000000000000155555554AAAAAAAB, 0x00000000000000000000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000000000008000000000000000, 0x000000000000000000000003FFFFFFFE, 0x00000000000000000000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000000000008000000000000001, 0x000000000000000000000003FFFFFFFD, 0x00000000000000007FFFFFFD00000003}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000000000008000000080000000, 0x000000000000000000000003FFFFFFFA, 0x00000000000000000000000400000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000003FFFFFFF6, 0x00000000000000000000000EFFFFFFF6}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000200000001, 0x00000000000000000000000200000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000200000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000200000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000000000010000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000000000010000000000000001, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000000000010000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000200000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000000000000000000005FFFFFFFD}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000000000010000000100000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000000000000400000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000000000010000000100000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000000000000200000003}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000000000010000000180000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000000000000700000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x00000000000000000000000CFFFFFFFB}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000000000018000000000000000, 0x00000000000000000000000155555554, 0x00000000000000010000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000000000018000000000000001, 0x00000000000000000000000155555554, 0x0000000000000000FFFFFFFFAAAAAAAC}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000000000018000000080000000, 0x00000000000000000000000155555554, 0x00000000000000005555555700000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000155555553, 0x00000000000000012AAAAAAF55555553}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x0000000000000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFF00000000FFFFFFFD}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFE00000003}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFE00000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFDFFFFFFFD}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFC80000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFB00000003}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFD8000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFD80000000FFFFFFFD}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFD7FFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFD7FFFFFFE00000003}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFC0000000400000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFC00000003FFFFFFFD}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFC0000000280000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFC0000000100000003}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000002, 0x00000000000000010000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000002, 0x000000000000000100000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000002, 0x00000000000000010000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFEFFFFFFFE}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000002, 0x00000000000000000000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000002, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000200000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000200000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000200000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x0000000000000003FFFFFFFE00000002, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000100000002, 0x00000000000000000000000000000003}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000100000001, 0x0000000000000001FFFFFFFD00000003, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000180000000, 0x000000000000000155555554AAAAAAAB, 0x00000000000000000000000080000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000000000008000000000000000, 0x000000000000000000000003FFFFFFFE, 0x00000000000000000000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000000000008000000000000001, 0x000000000000000000000003FFFFFFFD, 0x00000000000000007FFFFFFD00000004}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000000000008000000080000000, 0x000000000000000000000003FFFFFFFA, 0x00000000000000000000000400000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000003FFFFFFF6, 0x00000000000000000000000EFFFFFFF7}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000200000001, 0x00000000000000000000000200000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000200000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000200000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000300000000}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000000000010000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000000000010000000000000001, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFF00000003}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000000000010000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000200000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000000000000000000005FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000000000010000000100000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000000000000400000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000000000010000000100000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000000000000200000004}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000000000010000000180000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000000000000700000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x00000000000000000000000CFFFFFFFC}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000000000018000000000000000, 0x00000000000000000000000155555554, 0x00000000000000010000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000000000018000000000000001, 0x00000000000000000000000155555554, 0x0000000000000000FFFFFFFFAAAAAAAD}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000000000018000000080000000, 0x00000000000000000000000155555554, 0x00000000000000005555555700000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000155555553, 0x00000000000000012AAAAAAF55555554}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x0000000000000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000080000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000200000000}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFE00000004}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFDFFFFFFFE}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFC80000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFB00000004}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFD8000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFD80000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFD7FFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFD7FFFFFFE00000004}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFC0000000400000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFC00000003FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFC0000000280000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFC0000000100000004}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000002, 0x00000000000000010000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000002, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000002, 0x00000000000000010000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF00000003}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFD00000003}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000002, 0x00000000000000000000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000000000002}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000200000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000200000000}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000180000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000100000002}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000080000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000002}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000002}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000080000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000002}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000200000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000200000000}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000180000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000002}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000002}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000002}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000080000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000000000002}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000200000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000200000000}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000180000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000100000002}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000002}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000002}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000180000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000002}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000002}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x0000000000000003FFFFFFFE00000003, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000100000002, 0x00000000000000000000000080000002}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000100000001, 0x0000000000000001FFFFFFFD00000004, 0x0000000000000000000000007FFFFFFC}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000180000000, 0x000000000000000155555554AAAAAAAB, 0x00000000000000000000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000000000008000000000000000, 0x000000000000000000000003FFFFFFFE, 0x00000000000000000000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000000000008000000000000001, 0x000000000000000000000003FFFFFFFD, 0x00000000000000007FFFFFFD80000003}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000000000008000000080000000, 0x000000000000000000000003FFFFFFFA, 0x00000000000000000000000480000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000003FFFFFFF6, 0x00000000000000000000000F7FFFFFF6}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000200000001, 0x00000000000000000000000280000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000200000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000200000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000000000037FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000000000010000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000000000010000000000000001, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFF80000002}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000000000010000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000280000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x0000000000000000000000067FFFFFFD}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000000000010000000100000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000000000000480000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000000000010000000100000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000000000000280000003}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000000000010000000180000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000000000000780000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x00000000000000000000000D7FFFFFFB}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000000000018000000000000000, 0x00000000000000000000000155555554, 0x00000000000000010000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000000000018000000000000001, 0x00000000000000000000000155555554, 0x0000000000000001000000002AAAAAAC}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000000000018000000080000000, 0x00000000000000000000000155555554, 0x00000000000000005555555780000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000155555553, 0x00000000000000012AAAAAAFD5555553}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x0000000000000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001000000027FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFF000000017FFFFFFD}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFE80000003}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFE7FFFFFFD}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFD00000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFB80000003}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFD8000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFD800000017FFFFFFD}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFD8000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFD7FFFFFFE80000003}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFC0000000480000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFC000000047FFFFFFD}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFC0000000300000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFC0000000180000003}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000002, 0x00000000000000010000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000002, 0x0000000000000001000000017FFFFFFE}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000002, 0x00000000000000010000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF80000002}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF7FFFFFFE}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFD80000002}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000002, 0x00000000000000000000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000002, 0x0000000000000000000000017FFFFFFE}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000002, 0x00000000000000000000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000080000001}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000280000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000027FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000200000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000180000001}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000080000001}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE800000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000080000001}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000280000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000027FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000200000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000180000001}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000001}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD800000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000080000001}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000280000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD000000027FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000200000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000180000001}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000280000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE000000027FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000180000001}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000003FFFFFFFE00000003, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000100000003, 0x00000000000000000000000000000002}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000001, 0x0000000000000001FFFFFFFD00000004, 0x000000000000000000000000FFFFFFFB}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000180000000, 0x000000000000000155555554AAAAAAAB, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000008000000000000000, 0x000000000000000000000003FFFFFFFE, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000008000000000000001, 0x000000000000000000000003FFFFFFFD, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000008000000080000000, 0x000000000000000000000003FFFFFFFA, 0x000000000000000000000004FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000003FFFFFFF6, 0x00000000000000000000000FFFFFFFF5}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000200000001, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000200000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000200000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000000000000000000003FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000010000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000010000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000010000000080000000, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000000000000000000006FFFFFFFC}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000010000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000000000000000000004FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000010000000100000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000000000000300000002}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000010000000180000000, 0x000000000000000000000001FFFFFFFC, 0x000000000000000000000007FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x00000000000000000000000DFFFFFFFA}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000018000000000000000, 0x00000000000000000000000155555554, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000018000000000000001, 0x00000000000000000000000155555554, 0x000000000000000100000000AAAAAAAB}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000018000000080000000, 0x00000000000000000000000155555554, 0x000000000000000055555557FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000155555553, 0x00000000000000012AAAAAB055555552}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001800000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000100000002FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFF00000001FFFFFFFC}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFEFFFFFFFC}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFD7FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFEFFFFFFFC00000002}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFD80000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFD80000001FFFFFFFC}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFD800000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFD7FFFFFFF00000002}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFC00000004FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFC00000004FFFFFFFC}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFC000000037FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFC0000000200000002}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000002, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000002, 0x000000000000000100000001FFFFFFFD}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000002, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000010000000000000001}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFFFFFFFFFD}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000002, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000002, 0x000000000000000000000001FFFFFFFD}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000002FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000002FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000027FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000200000000}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000001FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE800000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000002FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000002FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000027FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000200000000}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000001FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD80000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD80000001FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD800000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000000}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD00000002FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD00000002FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD000000027FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000200000000}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000001FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000001FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000002FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000002FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE000000027FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x0000000000000003FFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000180000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000100000001, 0x0000000000000001FFFFFFFD80000002, 0x0000000000000000000000007FFFFFFE}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000180000000, 0x00000000000000015555555500000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000010000000040000000, 0x00000000000000000000000040000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000000000008000000000000000, 0x000000000000000000000003FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000000000008000000000000001, 0x000000000000000000000003FFFFFFFE, 0x00000000000000007FFFFFFC00000002}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000000000008000000080000000, 0x000000000000000000000003FFFFFFFB, 0x00000000000000000000000280000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000003FFFFFFF7, 0x00000000000000000000000CFFFFFFF7}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000200000001, 0x00000000000000008000000100000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000200000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000200000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000000000010000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000000000010000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000000000010000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000008000000100000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000000000000080000004FFFFFFFD}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000000000010000000100000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000008000000300000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000000000010000000100000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000008000000100000003}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000000000010000000180000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000008000000600000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x00000000000000008000000BFFFFFFFB}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000000000018000000000000000, 0x00000000000000000000000155555555, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000000000018000000000000001, 0x00000000000000000000000155555554, 0x00000000000000017FFFFFFEAAAAAAAC}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000000000018000000080000000, 0x00000000000000000000000155555554, 0x0000000000000000D555555600000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000155555554, 0x00000000000000002AAAAAAD55555554}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFF7FFFFFFFFFFFFFFD}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFF7FFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFF7FFFFFFD00000003}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFF7FFFFFFD00000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFF7FFFFFFCFFFFFFFD}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFF7FFFFFFB80000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFF7FFFFFFA00000003}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFE0000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFDFFFFFFFFFFFFFFFD}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFDFFFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFDFFFFFFFD00000003}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFC8000000300000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFC80000002FFFFFFFD}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFC8000000180000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFC8000000000000003}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000002, 0x00000000000000018000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFFFFFFFFFE}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFE00000002}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFE00000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFDFFFFFFFE}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFD00000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFC00000002}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000002, 0x00000000000000008000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000100000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x0000000000000003FFFFFFFF00000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000180000001, 0x00000000000000000000000080000002}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000100000001, 0x0000000000000001FFFFFFFD80000002, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000180000000, 0x00000000000000015555555500000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000010000000040000000, 0x00000000000000000000000040000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000000000008000000000000000, 0x000000000000000000000003FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000000000008000000000000001, 0x000000000000000000000003FFFFFFFE, 0x00000000000000007FFFFFFC00000003}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000000000008000000080000000, 0x000000000000000000000003FFFFFFFB, 0x00000000000000000000000280000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000003FFFFFFF7, 0x00000000000000000000000CFFFFFFF8}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000200000001, 0x00000000000000008000000100000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000200000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000200000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000200000000}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000000000010000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000000000010000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000000000010000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000008000000100000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000000000000080000004FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000000000010000000100000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000008000000300000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000000000010000000100000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000008000000100000004}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000000000010000000180000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000008000000600000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x00000000000000008000000BFFFFFFFC}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000000000018000000000000000, 0x00000000000000000000000155555555, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000000000018000000000000001, 0x00000000000000000000000155555554, 0x00000000000000017FFFFFFEAAAAAAAD}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000000000018000000080000000, 0x00000000000000000000000155555554, 0x0000000000000000D555555600000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000155555554, 0x00000000000000002AAAAAAD55555555}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000100000000}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFF7FFFFFFD00000004}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFF7FFFFFFD00000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFF7FFFFFFCFFFFFFFE}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFF7FFFFFFB80000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFF7FFFFFFA00000004}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFE0000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFDFFFFFFFFFFFFFFFE}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFDFFFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFDFFFFFFFD00000004}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFC8000000300000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFC80000002FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFC8000000180000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFC8000000000000004}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000002, 0x00000000000000018000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFE00000003}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFDFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFD00000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFC00000003}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000002, 0x00000000000000008000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFE00000003}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000100000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000100000000}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000080000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000000000002}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000002}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE00000002}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000002}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000080000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000002}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000002}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE00000002}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000002}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000000}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000080000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000000000002}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000002}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE00000002}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000002}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x0000000000000003FFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000180000002, 0x00000000000000000000000000000002}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000100000001, 0x0000000000000001FFFFFFFD80000002, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000180000000, 0x00000000000000015555555500000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000010000000040000000, 0x000000000000000000000000C0000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000000000008000000000000000, 0x000000000000000000000003FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000000000008000000000000001, 0x000000000000000000000003FFFFFFFE, 0x00000000000000007FFFFFFC80000002}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000000000008000000080000000, 0x000000000000000000000003FFFFFFFB, 0x00000000000000000000000300000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000003FFFFFFF7, 0x00000000000000000000000D7FFFFFF7}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000200000001, 0x00000000000000008000000180000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000200000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000200000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000800000027FFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000000000010000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000000000010000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000000000010000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000008000000180000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x0000000000000000800000057FFFFFFD}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000000000010000000100000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000008000000380000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000000000010000000100000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000008000000180000003}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000000000010000000180000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000008000000680000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x00000000000000008000000C7FFFFFFB}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000000000018000000000000000, 0x00000000000000000000000155555555, 0x00000000000000000000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000000000018000000000000001, 0x00000000000000000000000155555554, 0x00000000000000017FFFFFFF2AAAAAAC}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000000000018000000080000000, 0x00000000000000000000000155555554, 0x0000000000000000D555555680000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000155555554, 0x00000000000000002AAAAAADD5555554}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000008000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001800000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFF800000007FFFFFFD}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFF7FFFFFFD80000003}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFF7FFFFFFD80000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFF7FFFFFFD7FFFFFFD}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFF7FFFFFFC00000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFF7FFFFFFA80000003}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFE0000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFE000000007FFFFFFD}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFDFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFDFFFFFFFD80000003}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFC8000000380000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFC800000037FFFFFFD}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFC8000000200000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFC8000000080000003}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000002, 0x00000000000000018000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000002, 0x0000000000000001800000007FFFFFFE}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFE80000002}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFE7FFFFFFE}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFD80000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFC80000002}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000002, 0x00000000000000008000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000002, 0x0000000000000000800000007FFFFFFE}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFE80000002}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000180000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF800000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000100000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000080000001}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF800000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000180000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE800000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000080000001}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE800000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000180000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD800000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000080000001}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000003FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000180000002, 0x00000000000000000000000080000001}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000001, 0x0000000000000001FFFFFFFD80000003, 0x0000000000000000000000007FFFFFFC}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000180000000, 0x00000000000000015555555500000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000000000010000000040000000, 0x0000000000000000000000013FFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000008000000000000000, 0x000000000000000000000003FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000008000000000000001, 0x000000000000000000000003FFFFFFFE, 0x00000000000000007FFFFFFD00000001}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000008000000080000000, 0x000000000000000000000003FFFFFFFB, 0x0000000000000000000000037FFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000003FFFFFFF7, 0x00000000000000000000000DFFFFFFF6}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000200000001, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000200000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000200000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000000000000080000002FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000010000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000010000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000010000000080000000, 0x000000000000000000000001FFFFFFFE, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000000000000080000005FFFFFFFC}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000010000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000000000000080000003FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000010000000100000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000008000000200000002}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000010000000180000000, 0x000000000000000000000001FFFFFFFC, 0x000000000000000080000006FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x00000000000000008000000CFFFFFFFA}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000018000000000000000, 0x00000000000000000000000155555555, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000018000000000000001, 0x00000000000000000000000155555554, 0x00000000000000017FFFFFFFAAAAAAAB}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000018000000080000000, 0x00000000000000000000000155555554, 0x0000000000000000D5555556FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000155555554, 0x00000000000000002AAAAAAE55555553}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000180000001FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFF80000000FFFFFFFC}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFF7FFFFFFE00000002}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFF7FFFFFFDFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFF7FFFFFFDFFFFFFFC}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFF7FFFFFFC7FFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFF7FFFFFFB00000002}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFE00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFE00000000FFFFFFFC}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFDFFFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFDFFFFFFFE00000002}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFC80000003FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFC80000003FFFFFFFC}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFC800000027FFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFC8000000100000002}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000002, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000002, 0x000000000000000180000000FFFFFFFD}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFEFFFFFFFD}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFDFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000017FFFFFFD00000001}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000002, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000002, 0x000000000000000080000000FFFFFFFD}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF80000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF80000001FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF800000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000100000000}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF800000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000001FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE800000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE800000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000000}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFFFFFFFFFE}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD80000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD80000001FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD800000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000000}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000001FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x0000000000000003FFFFFFFFFFFFFFFE, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000200000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000100000001, 0x0000000000000001FFFFFFFE00000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000180000000, 0x00000000000000015555555555555554, 0x00000000000000000000000100000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000001FFFFFFFF, 0x0000000000000001000000007FFFFFFF, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000008000000000000000, 0x000000000000000000000003FFFFFFFF, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000008000000000000001, 0x000000000000000000000003FFFFFFFF, 0x00000000000000007FFFFFFB00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000008000000080000000, 0x000000000000000000000003FFFFFFFC, 0x00000000000000000000000100000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000003FFFFFFF8, 0x00000000000000000000000AFFFFFFF8}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000200000002, 0x00000000000000000000000100000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000200000001, 0x0000000000000000FFFFFFFDFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000200000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000200000000, 0x00000000000000000000000100000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000010000000000000000, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000010000000000000001, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000010000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000010000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000002FFFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000010000000100000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000100000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000010000000100000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000010000000000000003}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000010000000180000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000000000000380000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000000000008FFFFFFFC}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000018000000000000000, 0x00000000000000000000000155555555, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000018000000000000001, 0x00000000000000000000000155555555, 0x00000000000000007FFFFFFDAAAAAAAB}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000018000000080000000, 0x00000000000000000000000155555554, 0x00000000000000015555555500000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000155555554, 0x0000000000000000AAAAAAAC55555554}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFEFFFFFFFD}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFD80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFC00000003}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFC00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFBFFFFFFFD}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFA80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFF900000003}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFE7FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFE7FFFFFFEFFFFFFFD}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFE7FFFFFFD80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFE7FFFFFFC00000003}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFD0000000200000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFD00000001FFFFFFFD}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFD0000000080000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFCFFFFFFFF00000003}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFEFFFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFE00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFD00000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFD00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFCFFFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFC00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFB00000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFEFFFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000002, 0x00000000000000000000000100000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000002, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFDFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFD80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFD00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFDFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFD80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFD00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFDFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFDFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000003FFFFFFFFFFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000200000001, 0x00000000000000000000000000000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000100000001, 0x0000000000000001FFFFFFFE00000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000180000000, 0x00000000000000015555555555555554, 0x00000000000000000000000100000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000001FFFFFFFF, 0x0000000000000001000000007FFFFFFF, 0x00000000000000000000000180000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000008000000000000000, 0x000000000000000000000003FFFFFFFF, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000008000000000000001, 0x000000000000000000000003FFFFFFFF, 0x00000000000000007FFFFFFB00000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000008000000080000000, 0x000000000000000000000003FFFFFFFC, 0x00000000000000000000000100000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000003FFFFFFF8, 0x00000000000000000000000AFFFFFFF9}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000200000002, 0x00000000000000000000000100000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000200000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000200000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000200000000, 0x00000000000000000000000100000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000010000000000000000, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000010000000000000001, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000010000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000010000000000000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000010000000100000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000100000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000010000000100000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000010000000000000004}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000010000000180000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000000000000380000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000000000008FFFFFFFD}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000018000000000000000, 0x00000000000000000000000155555555, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000018000000000000001, 0x00000000000000000000000155555555, 0x00000000000000007FFFFFFDAAAAAAAC}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000018000000080000000, 0x00000000000000000000000155555554, 0x00000000000000015555555500000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000155555554, 0x0000000000000000AAAAAAAC55555555}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFEFFFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFD80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFC00000004}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000800000000000000100000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFC00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000800000000000000100000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFBFFFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000800000000000000180000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFA80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFF900000004}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000800000008000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFE7FFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000800000008000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFE7FFFFFFEFFFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000800000008000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFE7FFFFFFD80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFE7FFFFFFC00000004}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFD0000000200000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFD00000001FFFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFD0000000080000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFCFFFFFFFF00000004}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFD00000003}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFD00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFCFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFC00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFB00000003}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFD00000003}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000002, 0x00000000000000000000000100000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE00000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFD80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFD00000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE00000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE00000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFD80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFD00000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE00000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD00000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE00000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000000000003FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000200000001, 0x00000000000000000000000080000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000100000001, 0x0000000000000001FFFFFFFE00000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000180000000, 0x00000000000000015555555555555555, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000008000000000000000, 0x000000000000000000000003FFFFFFFF, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000008000000000000001, 0x000000000000000000000003FFFFFFFF, 0x00000000000000007FFFFFFB80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000008000000080000000, 0x000000000000000000000003FFFFFFFC, 0x00000000000000000000000180000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000003FFFFFFF8, 0x00000000000000000000000B7FFFFFF8}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000200000002, 0x00000000000000000000000180000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000200000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000200000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000200000000, 0x00000000000000000000000180000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000010000000000000000, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000010000000000000001, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000010000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000000000037FFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000010000000100000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000180000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000010000000100000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000010000000080000003}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000010000000180000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000000000000400000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x0000000000000000000000097FFFFFFC}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000018000000000000000, 0x00000000000000000000000155555555, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000018000000000000001, 0x00000000000000000000000155555555, 0x00000000000000007FFFFFFE2AAAAAAB}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000018000000080000000, 0x00000000000000000000000155555554, 0x00000000000000015555555580000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000155555554, 0x0000000000000000AAAAAAACD5555554}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFF7FFFFFFD}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFC80000003}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFC80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFC7FFFFFFD}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFB00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFF980000003}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFE7FFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFE7FFFFFFF7FFFFFFD}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFE7FFFFFFE00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFE7FFFFFFC80000003}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFD0000000280000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFD000000027FFFFFFD}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFD0000000100000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFCFFFFFFFF80000003}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFF7FFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFD80000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFD80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFD7FFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFC80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFB80000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFF7FFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFD80000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000002, 0x00000000000000000000000180000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000002, 0x0000000000000000000000017FFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000002, 0x00000000000000000000000080000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFD80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE7FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFD80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000003FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000200000002, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x0000000000000001FFFFFFFE00000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000, 0x00000000000000015555555555555555, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000000000010000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x000000000000000000000003FFFFFFFF, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x000000000000000000000003FFFFFFFF, 0x00000000000000007FFFFFFC00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000008000000080000000, 0x000000000000000000000003FFFFFFFC, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000003FFFFFFF8, 0x00000000000000000000000BFFFFFFF7}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000200000002, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000200000001, 0x0000000000000000FFFFFFFEFFFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000200000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000200000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000010000000000000001, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000010000000080000000, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000003FFFFFFFD}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000010000000100000000, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000010000000100000001, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000010000000180000000, 0x000000000000000000000001FFFFFFFD, 0x0000000000000000000000047FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000000000009FFFFFFFB}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000018000000000000000, 0x00000000000000000000000155555555, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000018000000000000001, 0x00000000000000000000000155555555, 0x00000000000000007FFFFFFEAAAAAAAA}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000018000000080000000, 0x00000000000000000000000155555554, 0x000000000000000155555555FFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x00000000000000000000000155555554, 0x0000000000000000AAAAAAAD55555553}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFFFFFFFFFC}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFD00000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFCFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFCFFFFFFFC}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFB7FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFFFFFFFFFA00000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFE7FFFFFFFFFFFFFFC}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFE7FFFFFFE7FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFE7FFFFFFD00000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFD00000002FFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000003, 0x000000007FFFFFFD00000002FFFFFFFC}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000003, 0x000000007FFFFFFD000000017FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000003, 0x000000007FFFFFFD0000000000000002}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFFFFFFFFFD}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFDFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFDFFFFFFFD}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFCFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000001FFFFFFFC00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFFFFFFFFFD}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000002, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000002, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000002, 0x000000000000000000000001FFFFFFFD}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000002, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFEFFFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFFFFFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFEFFFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE7FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFFFFFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFEFFFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000000000000000000080000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000000000000000000100000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF800000007FFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0x80000000000000000000000000000000, 0x00000000000000000000000180000000, 0x00000000555555555555555555555555, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000400000002000000010000000, 0x00000000000000000000000010000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000000000008000000000000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000000000008000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE, 0x00000000000000000000000000000002}, + [_]u128{0x80000000000000000000000000000000, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000005, 0x00000000000000007FFFFFF900000005}, + [_]u128{0x80000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000800000007FFFFFFF, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x80000000000000000000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000000, 0x00000000000000002000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000000000010000000000000000, 0x00000000000000008000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000000000010000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000008000000000000001}, + [_]u128{0x80000000000000000000000000000000, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000002000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000001, 0x00000000000000001FFFFFFE80000000}, + [_]u128{0x80000000000000000000000000000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000002, 0x00000000000000007FFFFFFB00000002}, + [_]u128{0x80000000000000000000000000000000, 0x00000000000000018000000000000000, 0x00000000000000005555555555555555, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000000000018000000000000001, 0x00000000000000005555555555555555, 0x00000000000000002AAAAAAAAAAAAAAB}, + [_]u128{0x80000000000000000000000000000000, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E38, 0x0000000000000001638E38E400000000}, + [_]u128{0x80000000000000000000000000000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71C, 0x000000000000000138E38E391C71C71C}, + [_]u128{0x80000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000000, 0x00000000000000002000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000400000001FFFFFFF, 0x0000000000000001DFFFFFFEE0000001}, + [_]u128{0x80000000000000000000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000000, 0x00000000000000000800000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000000, 0x00000000000000004000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000800000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000000000000000000000000000, 0x00000000800000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x80000000000000000000000000000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000000000000000000000000000, 0x00000000800000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000800000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x80000000000000000000000000000000, 0x00000000800000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0x80000000000000000000000000000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE00000002FFFFFFFF}, + [_]u128{0x80000000000000000000000000000000, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x80000000000000000000000000000000, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000000000000000000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000000000002FFFFFFFE}, + [_]u128{0x80000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFE00000000}, + [_]u128{0x80000000000000000000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFD00000002}, + [_]u128{0x80000000000000000000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000027FFFFFFF00000000}, + [_]u128{0x80000000000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000000FFFFFFFE}, + [_]u128{0x80000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x00000000800000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFC000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF4000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000400000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFC000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF8000000080000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000004000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000001000000000000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000001}, + [_]u128{0x80000000000000000000000000000000, 0x00000001000000000000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFFC000000080000000}, + [_]u128{0x80000000000000000000000000000000, 0x000000010000000000000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF800000017FFFFFFF}, + [_]u128{0x80000000000000000000000000000000, 0x00000001000000000000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF8000000100000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000001000000000000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF8000000080000001}, + [_]u128{0x80000000000000000000000000000000, 0x00000001000000000000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF4000000180000000}, + [_]u128{0x80000000000000000000000000000000, 0x000000010000000000000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF000000027FFFFFFF}, + [_]u128{0x80000000000000000000000000000000, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000008000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000007FFFFFFF80000001}, + [_]u128{0x80000000000000000000000000000000, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000004000000080000000}, + [_]u128{0x80000000000000000000000000000000, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000000000000017FFFFFFF}, + [_]u128{0x80000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000017FFFFFFF00000000}, + [_]u128{0x80000000000000000000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000017FFFFFFE80000001}, + [_]u128{0x80000000000000000000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000013FFFFFFF80000000}, + [_]u128{0x80000000000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001000000007FFFFFFF}, + [_]u128{0x80000000000000000000000000000000, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000010000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x0000000080000000FFFFFFFF80000001}, + [_]u128{0x80000000000000000000000000000000, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000000C000000080000000}, + [_]u128{0x80000000000000000000000000000000, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000000800000017FFFFFFF}, + [_]u128{0x80000000000000000000000000000000, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000008000000100000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000008000000080000001}, + [_]u128{0x80000000000000000000000000000000, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000004000000180000000}, + [_]u128{0x80000000000000000000000000000000, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000000000000027FFFFFFF}, + [_]u128{0x80000000000000000000000000000000, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000018000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000400000017FFFFFFF80000001}, + [_]u128{0x80000000000000000000000000000000, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000014000000080000000}, + [_]u128{0x80000000000000000000000000000000, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000040000001000000017FFFFFFF}, + [_]u128{0x80000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000027FFFFFFF00000000}, + [_]u128{0x80000000000000000000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000027FFFFFFE80000001}, + [_]u128{0x80000000000000000000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000023FFFFFFF80000000}, + [_]u128{0x80000000000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000002000000007FFFFFFF}, + [_]u128{0x80000000000000000000000000000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x00000000800000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000007FFFFFFFFFFFFFFFAAAAAAAB}, + [_]u128{0x80000000000000000000000000000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x000000007FFFFFFFD555555580000000}, + [_]u128{0x80000000000000000000000000000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x000000007FFFFFFFAAAAAAAB55555555}, + [_]u128{0x80000000000000000000000000000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x000000007FFFFFFFAAAAAAAB00000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x000000007FFFFFFFAAAAAAAAAAAAAAAB}, + [_]u128{0x80000000000000000000000000000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x80000000000000000000000000000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000007FFFFFFF5555555655555555}, + [_]u128{0x80000000000000000000000000000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000555555558000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000000555555557FFFFFFFAAAAAAAB}, + [_]u128{0x80000000000000000000000000000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000555555555555555580000000}, + [_]u128{0x80000000000000000000000000000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000555555552AAAAAAB55555555}, + [_]u128{0x80000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAB5555555500000000}, + [_]u128{0x80000000000000000000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAAB55555554AAAAAAAB}, + [_]u128{0x80000000000000000000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAB2AAAAAAA80000000}, + [_]u128{0x80000000000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAAB0000000055555555}, + [_]u128{0x80000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000400000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x000000003FFFFFFFFFFFFFFFC0000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x000000003FFFFFFFE000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000003FFFFFFFC000000040000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x000000003FFFFFFFC000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x000000003FFFFFFFBFFFFFFFC0000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x000000003FFFFFFFA000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000003FFFFFFF8000000040000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000200000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000001FFFFFFFFFFFFFFFC0000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000001FFFFFFFE000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000001FFFFFFFC000000040000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000004000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000000000003FFFFFFFC0000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000002000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000000000000000000040000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000001, 0x00000000000000000000000080000000, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000080000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000000000000000000100000000, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFF800000007FFFFFFF, 0x00000000000000000000000080000002}, + [_]u128{0x80000000000000000000000000000001, 0x00000000000000000000000180000000, 0x00000000555555555555555555555555, 0x00000000000000000000000080000001}, + [_]u128{0x80000000000000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000400000002000000010000000, 0x00000000000000000000000010000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000000000008000000000000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000000000008000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE, 0x00000000000000000000000000000003}, + [_]u128{0x80000000000000000000000000000001, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000005, 0x00000000000000007FFFFFF900000006}, + [_]u128{0x80000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000000, 0x00000000000000008000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000800000007FFFFFFF, 0x0000000000000000FFFFFFFE80000002}, + [_]u128{0x80000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000000, 0x00000000000000002000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000000000010000000000000000, 0x00000000000000008000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000000000010000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000008000000000000002}, + [_]u128{0x80000000000000000000000000000001, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000002000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000000, 0x00000000000000008000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000000, 0x00000000000000000000000080000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000001, 0x00000000000000001FFFFFFE80000001}, + [_]u128{0x80000000000000000000000000000001, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000002, 0x00000000000000007FFFFFFB00000003}, + [_]u128{0x80000000000000000000000000000001, 0x00000000000000018000000000000000, 0x00000000000000005555555555555555, 0x00000000000000008000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000000000018000000000000001, 0x00000000000000005555555555555555, 0x00000000000000002AAAAAAAAAAAAAAC}, + [_]u128{0x80000000000000000000000000000001, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E38, 0x0000000000000001638E38E400000001}, + [_]u128{0x80000000000000000000000000000001, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71C, 0x000000000000000138E38E391C71C71D}, + [_]u128{0x80000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000000, 0x00000000000000002000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000400000001FFFFFFF, 0x0000000000000001DFFFFFFEE0000002}, + [_]u128{0x80000000000000000000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000000, 0x00000000000000000800000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000000, 0x00000000000000004000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000800000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFFFFFFFFFF00000002}, + [_]u128{0x80000000000000000000000000000001, 0x00000000800000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0x80000000000000000000000000000001, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0x80000000000000000000000000000001, 0x00000000800000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000800000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000000000002}, + [_]u128{0x80000000000000000000000000000001, 0x00000000800000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE8000000180000001}, + [_]u128{0x80000000000000000000000000000001, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE0000000300000000}, + [_]u128{0x80000000000000000000000000000001, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0x80000000000000000000000000000001, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0x80000000000000000000000000000001, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000000000002FFFFFFFF}, + [_]u128{0x80000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFE00000001}, + [_]u128{0x80000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFD00000003}, + [_]u128{0x80000000000000000000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000027FFFFFFF00000001}, + [_]u128{0x80000000000000000000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000000FFFFFFFF}, + [_]u128{0x80000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x00000000800000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFC000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF4000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000400000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFFFFFFFFFF80000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFC000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF8000000080000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000008000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000004000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000080000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000001000000000000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000002}, + [_]u128{0x80000000000000000000000000000001, 0x00000001000000000000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFFC000000080000001}, + [_]u128{0x80000000000000000000000000000001, 0x000000010000000000000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF8000000180000000}, + [_]u128{0x80000000000000000000000000000001, 0x00000001000000000000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF8000000100000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000001000000000000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF8000000080000002}, + [_]u128{0x80000000000000000000000000000001, 0x00000001000000000000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF4000000180000001}, + [_]u128{0x80000000000000000000000000000001, 0x000000010000000000000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF0000000280000000}, + [_]u128{0x80000000000000000000000000000001, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000008000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000007FFFFFFF80000002}, + [_]u128{0x80000000000000000000000000000001, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000004000000080000001}, + [_]u128{0x80000000000000000000000000000001, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000000000000180000000}, + [_]u128{0x80000000000000000000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000017FFFFFFF00000001}, + [_]u128{0x80000000000000000000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000017FFFFFFE80000002}, + [_]u128{0x80000000000000000000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000013FFFFFFF80000001}, + [_]u128{0x80000000000000000000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000800000010000000080000000}, + [_]u128{0x80000000000000000000000000000001, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000010000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x0000000080000000FFFFFFFF80000002}, + [_]u128{0x80000000000000000000000000000001, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000000C000000080000001}, + [_]u128{0x80000000000000000000000000000001, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000800000008000000180000000}, + [_]u128{0x80000000000000000000000000000001, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000008000000100000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000008000000080000002}, + [_]u128{0x80000000000000000000000000000001, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000004000000180000001}, + [_]u128{0x80000000000000000000000000000001, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000800000000000000280000000}, + [_]u128{0x80000000000000000000000000000001, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000018000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000400000017FFFFFFF80000002}, + [_]u128{0x80000000000000000000000000000001, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000014000000080000001}, + [_]u128{0x80000000000000000000000000000001, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000400000010000000180000000}, + [_]u128{0x80000000000000000000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000027FFFFFFF00000001}, + [_]u128{0x80000000000000000000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000027FFFFFFE80000002}, + [_]u128{0x80000000000000000000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000023FFFFFFF80000001}, + [_]u128{0x80000000000000000000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000000000020000000080000000}, + [_]u128{0x80000000000000000000000000000001, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x00000000800000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000007FFFFFFFFFFFFFFFAAAAAAAC}, + [_]u128{0x80000000000000000000000000000001, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x000000007FFFFFFFD555555580000001}, + [_]u128{0x80000000000000000000000000000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x000000007FFFFFFFAAAAAAAB55555556}, + [_]u128{0x80000000000000000000000000000001, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x000000007FFFFFFFAAAAAAAB00000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x000000007FFFFFFFAAAAAAAAAAAAAAAC}, + [_]u128{0x80000000000000000000000000000001, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0x80000000000000000000000000000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000007FFFFFFF5555555655555556}, + [_]u128{0x80000000000000000000000000000001, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000555555558000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000000555555557FFFFFFFAAAAAAAC}, + [_]u128{0x80000000000000000000000000000001, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000555555555555555580000001}, + [_]u128{0x80000000000000000000000000000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000555555552AAAAAAB55555556}, + [_]u128{0x80000000000000000000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAB5555555500000001}, + [_]u128{0x80000000000000000000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAAB55555554AAAAAAAC}, + [_]u128{0x80000000000000000000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAB2AAAAAAA80000001}, + [_]u128{0x80000000000000000000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAAB0000000055555556}, + [_]u128{0x80000000000000000000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000400000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x000000003FFFFFFFFFFFFFFFC0000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x000000003FFFFFFFE000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000003FFFFFFFC000000040000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x000000003FFFFFFFC000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x000000003FFFFFFFBFFFFFFFC0000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x000000003FFFFFFFA000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000003FFFFFFF8000000040000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000200000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000001FFFFFFFFFFFFFFFC0000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000001FFFFFFFE000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000001FFFFFFFC000000040000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000004000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000000000003FFFFFFFC0000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000002000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000000000000000000040000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000000000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000000000001}, + [_]u128{0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000000000000000000080000000, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000080000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000000000000080000000, 0x00000000000000000000000100000000, 0x00000000800000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF8000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000000000000000000180000000, 0x00000000555555555555555555555555, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000000000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000400000002000000010000000, 0x00000000000000000000000090000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000000000008000000000000000, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000000000008000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE, 0x00000000000000000000000080000002}, + [_]u128{0x80000000000000000000000080000000, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000000000000080000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000005, 0x00000000000000007FFFFFF980000005}, + [_]u128{0x80000000000000000000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000000000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000000, 0x00000000000000002000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000000000010000000000000000, 0x00000000000000008000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000000000010000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000008000000080000001}, + [_]u128{0x80000000000000000000000080000000, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000002000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x00000000000000010000000000000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000001, 0x00000000000000001FFFFFFF00000000}, + [_]u128{0x80000000000000000000000080000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000002, 0x00000000000000007FFFFFFB80000002}, + [_]u128{0x80000000000000000000000080000000, 0x00000000000000018000000000000000, 0x00000000000000005555555555555555, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000000000018000000000000001, 0x00000000000000005555555555555555, 0x00000000000000002AAAAAAB2AAAAAAB}, + [_]u128{0x80000000000000000000000080000000, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E38, 0x0000000000000001638E38E480000000}, + [_]u128{0x80000000000000000000000080000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71C, 0x000000000000000138E38E399C71C71C}, + [_]u128{0x80000000000000000000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000000, 0x00000000000000002000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000400000001FFFFFFF, 0x0000000000000001DFFFFFFF60000001}, + [_]u128{0x80000000000000000000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000000, 0x00000000000000000800000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000000, 0x00000000000000004000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000800000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x80000000000000000000000080000000, 0x00000000800000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x80000000000000000000000080000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF000000027FFFFFFF}, + [_]u128{0x80000000000000000000000080000000, 0x00000000800000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000800000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0x80000000000000000000000080000000, 0x00000000800000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE8000000200000000}, + [_]u128{0x80000000000000000000000080000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE000000037FFFFFFF}, + [_]u128{0x80000000000000000000000080000000, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x80000000000000000000000080000000, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000000000000080000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000080000000000000037FFFFFFE}, + [_]u128{0x80000000000000000000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFE80000000}, + [_]u128{0x80000000000000000000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFD80000002}, + [_]u128{0x80000000000000000000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000027FFFFFFF80000000}, + [_]u128{0x80000000000000000000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002000000017FFFFFFE}, + [_]u128{0x80000000000000000000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x00000000800000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x00000000800000000000000000000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFC000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF4000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000400000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000400000000000000000000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFC000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF8000000100000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000004000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000001000000000000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFFC000000100000000}, + [_]u128{0x80000000000000000000000080000000, 0x000000010000000000000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF80000001FFFFFFFF}, + [_]u128{0x80000000000000000000000080000000, 0x00000001000000000000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF8000000180000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000001000000000000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF8000000100000001}, + [_]u128{0x80000000000000000000000080000000, 0x00000001000000000000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF4000000200000000}, + [_]u128{0x80000000000000000000000080000000, 0x000000010000000000000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF00000002FFFFFFFF}, + [_]u128{0x80000000000000000000000080000000, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000008000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000008000000000000001}, + [_]u128{0x80000000000000000000000080000000, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000004000000100000000}, + [_]u128{0x80000000000000000000000080000000, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C000000000000001FFFFFFFF}, + [_]u128{0x80000000000000000000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000017FFFFFFF80000000}, + [_]u128{0x80000000000000000000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000017FFFFFFF00000001}, + [_]u128{0x80000000000000000000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000014000000000000000}, + [_]u128{0x80000000000000000000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000008000000100000000FFFFFFFF}, + [_]u128{0x80000000000000000000000080000000, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000010000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000010000000000000001}, + [_]u128{0x80000000000000000000000080000000, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000000C000000100000000}, + [_]u128{0x80000000000000000000000080000000, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000008000000080000001FFFFFFFF}, + [_]u128{0x80000000000000000000000080000000, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000008000000180000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000008000000100000001}, + [_]u128{0x80000000000000000000000080000000, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000004000000200000000}, + [_]u128{0x80000000000000000000000080000000, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000008000000000000002FFFFFFFF}, + [_]u128{0x80000000000000000000000080000000, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000018000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000400000018000000000000001}, + [_]u128{0x80000000000000000000000080000000, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000014000000100000000}, + [_]u128{0x80000000000000000000000080000000, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000004000000100000001FFFFFFFF}, + [_]u128{0x80000000000000000000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000027FFFFFFF80000000}, + [_]u128{0x80000000000000000000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000027FFFFFFF00000001}, + [_]u128{0x80000000000000000000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000024000000000000000}, + [_]u128{0x80000000000000000000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000000000000200000000FFFFFFFF}, + [_]u128{0x80000000000000000000000080000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x00000000800000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x0000000080000000000000002AAAAAAB}, + [_]u128{0x80000000000000000000000080000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x000000007FFFFFFFD555555600000000}, + [_]u128{0x80000000000000000000000080000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x000000007FFFFFFFAAAAAAABD5555555}, + [_]u128{0x80000000000000000000000080000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x000000007FFFFFFFAAAAAAAB80000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x000000007FFFFFFFAAAAAAAB2AAAAAAB}, + [_]u128{0x80000000000000000000000080000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x80000000000000000000000080000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000007FFFFFFF55555556D5555555}, + [_]u128{0x80000000000000000000000080000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000555555558000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x0000000055555555800000002AAAAAAB}, + [_]u128{0x80000000000000000000000080000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000555555555555555600000000}, + [_]u128{0x80000000000000000000000080000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000555555552AAAAAABD5555555}, + [_]u128{0x80000000000000000000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAB5555555580000000}, + [_]u128{0x80000000000000000000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAAB555555552AAAAAAB}, + [_]u128{0x80000000000000000000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAB2AAAAAAB00000000}, + [_]u128{0x80000000000000000000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAAB00000000D5555555}, + [_]u128{0x80000000000000000000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000400000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x00000000400000000000000040000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x000000003FFFFFFFE000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000003FFFFFFFC0000000C0000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x000000003FFFFFFFC000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x000000003FFFFFFFC000000040000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x000000003FFFFFFFA000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000003FFFFFFF80000000C0000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000200000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x00000000200000000000000040000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000001FFFFFFFE000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000001FFFFFFFC0000000C0000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000004000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000000000004000000040000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000002000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x000000000000000000000000C0000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000000000000000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000000000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x80000000000000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000080000000}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000001000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000080000001, 0x00000000000000000000000080000000}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000800000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000180000000, 0x00000000555555555555555555555555, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000400000002000000010000000, 0x0000000000000000000000010FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000000000008000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE, 0x00000000000000000000000100000001}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000005, 0x00000000000000007FFFFFFA00000004}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000000, 0x000000000000000020000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000008000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000008000000100000000}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000000, 0x000000000000000020000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000000, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000001, 0x00000000000000001FFFFFFF7FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000002, 0x00000000000000007FFFFFFC00000001}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000000000018000000000000000, 0x00000000000000005555555555555555, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000000000018000000000000001, 0x00000000000000005555555555555555, 0x00000000000000002AAAAAABAAAAAAAA}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E38, 0x0000000000000001638E38E4FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71C, 0x000000000000000138E38E3A1C71C71B}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000000, 0x000000000000000020000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000400000001FFFFFFF, 0x0000000000000001DFFFFFFFE0000000}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000000, 0x000000000000000008000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000000, 0x000000000000000040000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000800000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000000000000}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000800000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF00000002FFFFFFFE}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000800000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000800000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000800000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE800000027FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE00000003FFFFFFFE}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000000}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000000000003FFFFFFFD}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFEFFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFE00000001}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000027FFFFFFFFFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000001FFFFFFFD}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFC0000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF40000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x000000004000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x0000000040000000000000007FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFC0000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF800000017FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000000000000040000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001000000000000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFFC00000017FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF800000027FFFFFFE}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001000000000000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF80000001FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001000000000000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF8000000180000000}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001000000000000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF400000027FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF000000037FFFFFFE}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C000000080000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000008000000080000000}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000000400000017FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000000000000027FFFFFFE}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000017FFFFFFFFFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000017FFFFFFF80000000}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001400000007FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001000000017FFFFFFE}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000008000000100000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000010000000080000000}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000000C00000017FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000000800000027FFFFFFE}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000008000000080000001FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000008000000180000000}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000000400000027FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000000000000037FFFFFFE}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000004000000180000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000400000018000000080000000}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000040000001400000017FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000040000001000000027FFFFFFE}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000027FFFFFFFFFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000027FFFFFFF80000000}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000002400000007FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000002000000017FFFFFFE}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000008000000000000000AAAAAAAA}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x000000007FFFFFFFD55555567FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x000000007FFFFFFFAAAAAAAC55555554}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x000000007FFFFFFFAAAAAAABFFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x000000007FFFFFFFAAAAAAABAAAAAAAA}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000007FFFFFFF5555555755555554}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x000000005555555580000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x000000005555555580000000AAAAAAAA}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x0000000055555555555555567FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000555555552AAAAAAC55555554}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAB55555555FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAAB55555555AAAAAAAA}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAB2AAAAAAB7FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAAB0000000155555554}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x000000004000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x000000004000000000000000BFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x000000003FFFFFFFE0000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000003FFFFFFFC00000013FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x000000003FFFFFFFC0000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x000000003FFFFFFFC0000000BFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x000000003FFFFFFFA0000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000003FFFFFFF800000013FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x000000002000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000002000000000000000BFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000001FFFFFFFE0000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000001FFFFFFFC00000013FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x000000000000000040000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x000000000000000040000000BFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x000000000000000020000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000000000000000000013FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000000FFFFFFFF}, + [_]u128{0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000000000000000000080000000, 0x00000001000000000000000000000002, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000080000001, 0x00000000000000000000000080000001}, + [_]u128{0x80000000000000000000000100000000, 0x00000000000000000000000100000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF8000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000000000000000000180000000, 0x00000000555555555555555555555556, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000000000000100000000, 0x000000000000000000000001FFFFFFFF, 0x00000000400000002000000010000000, 0x00000000000000000000000110000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000000000008000000000000000, 0x00000000000000010000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000000000008000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE, 0x00000000000000000000000100000002}, + [_]u128{0x80000000000000000000000100000000, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000000000000100000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000005, 0x00000000000000007FFFFFFA00000005}, + [_]u128{0x80000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000000, 0x00000000000000008000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000000000000100000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000000, 0x00000000000000002000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000008000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000000000010000000000000000, 0x00000000000000008000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000000000010000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000008000000100000001}, + [_]u128{0x80000000000000000000000100000000, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000002000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x00000000000000010000000080000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000000, 0x00000000000000008000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000000, 0x00000000000000000000000180000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000001, 0x00000000000000001FFFFFFF80000000}, + [_]u128{0x80000000000000000000000100000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000002, 0x00000000000000007FFFFFFC00000002}, + [_]u128{0x80000000000000000000000100000000, 0x00000000000000018000000000000000, 0x00000000000000005555555555555555, 0x00000000000000008000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000000000018000000000000001, 0x00000000000000005555555555555555, 0x00000000000000002AAAAAABAAAAAAAB}, + [_]u128{0x80000000000000000000000100000000, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E38, 0x0000000000000001638E38E500000000}, + [_]u128{0x80000000000000000000000100000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71C, 0x000000000000000138E38E3A1C71C71C}, + [_]u128{0x80000000000000000000000100000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000000, 0x00000000000000002000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000400000001FFFFFFF, 0x0000000000000001DFFFFFFFE0000001}, + [_]u128{0x80000000000000000000000100000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000000, 0x00000000000000000800000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000000, 0x00000000000000004000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000800000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0x80000000000000000000000100000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF00000002FFFFFFFF}, + [_]u128{0x80000000000000000000000100000000, 0x00000000800000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000800000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0x80000000000000000000000100000000, 0x00000000800000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE8000000280000000}, + [_]u128{0x80000000000000000000000100000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE00000003FFFFFFFF}, + [_]u128{0x80000000000000000000000100000000, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000001}, + [_]u128{0x80000000000000000000000100000000, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000180000000}, + [_]u128{0x80000000000000000000000100000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000000000003FFFFFFFE}, + [_]u128{0x80000000000000000000000100000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFF00000000}, + [_]u128{0x80000000000000000000000100000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFE00000002}, + [_]u128{0x80000000000000000000000100000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000000000000}, + [_]u128{0x80000000000000000000000100000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000001FFFFFFFE}, + [_]u128{0x80000000000000000000000100000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x00000000800000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x00000000800000000000000080000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFC000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF4000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000400000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000400000000000000080000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFC000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF8000000180000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000008000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000004000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000180000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000001000000000000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFFC000000180000000}, + [_]u128{0x80000000000000000000000100000000, 0x000000010000000000000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF800000027FFFFFFF}, + [_]u128{0x80000000000000000000000100000000, 0x00000001000000000000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF8000000200000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000001000000000000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF8000000180000001}, + [_]u128{0x80000000000000000000000100000000, 0x00000001000000000000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF4000000280000000}, + [_]u128{0x80000000000000000000000100000000, 0x000000010000000000000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF000000037FFFFFFF}, + [_]u128{0x80000000000000000000000100000000, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000008000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000008000000080000001}, + [_]u128{0x80000000000000000000000100000000, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000004000000180000000}, + [_]u128{0x80000000000000000000000100000000, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000000000000027FFFFFFF}, + [_]u128{0x80000000000000000000000100000000, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000000000000}, + [_]u128{0x80000000000000000000000100000000, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000017FFFFFFF80000001}, + [_]u128{0x80000000000000000000000100000000, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000014000000080000000}, + [_]u128{0x80000000000000000000000100000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001000000017FFFFFFF}, + [_]u128{0x80000000000000000000000100000000, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000010000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000010000000080000001}, + [_]u128{0x80000000000000000000000100000000, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000000C000000180000000}, + [_]u128{0x80000000000000000000000100000000, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000000800000027FFFFFFF}, + [_]u128{0x80000000000000000000000100000000, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000008000000200000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000008000000180000001}, + [_]u128{0x80000000000000000000000100000000, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000004000000280000000}, + [_]u128{0x80000000000000000000000100000000, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000000000000037FFFFFFF}, + [_]u128{0x80000000000000000000000100000000, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000018000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000400000018000000080000001}, + [_]u128{0x80000000000000000000000100000000, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000014000000180000000}, + [_]u128{0x80000000000000000000000100000000, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000040000001000000027FFFFFFF}, + [_]u128{0x80000000000000000000000100000000, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000028000000000000000}, + [_]u128{0x80000000000000000000000100000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000027FFFFFFF80000001}, + [_]u128{0x80000000000000000000000100000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000024000000080000000}, + [_]u128{0x80000000000000000000000100000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000002000000017FFFFFFF}, + [_]u128{0x80000000000000000000000100000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x00000000800000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000008000000000000000AAAAAAAB}, + [_]u128{0x80000000000000000000000100000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x000000007FFFFFFFD555555680000000}, + [_]u128{0x80000000000000000000000100000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x000000007FFFFFFFAAAAAAAC55555555}, + [_]u128{0x80000000000000000000000100000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x000000007FFFFFFFAAAAAAAC00000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x000000007FFFFFFFAAAAAAABAAAAAAAB}, + [_]u128{0x80000000000000000000000100000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0x80000000000000000000000100000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000007FFFFFFF5555555755555555}, + [_]u128{0x80000000000000000000000100000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000555555558000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x000000005555555580000000AAAAAAAB}, + [_]u128{0x80000000000000000000000100000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000555555555555555680000000}, + [_]u128{0x80000000000000000000000100000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000555555552AAAAAAC55555555}, + [_]u128{0x80000000000000000000000100000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAB5555555600000000}, + [_]u128{0x80000000000000000000000100000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAAB55555555AAAAAAAB}, + [_]u128{0x80000000000000000000000100000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAB2AAAAAAB80000000}, + [_]u128{0x80000000000000000000000100000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAAB0000000155555555}, + [_]u128{0x80000000000000000000000100000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000400000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x000000004000000000000000C0000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x000000003FFFFFFFE000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000003FFFFFFFC000000140000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x000000003FFFFFFFC000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x000000003FFFFFFFC0000000C0000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x000000003FFFFFFFA000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000003FFFFFFF8000000140000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000200000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000002000000000000000C0000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000001FFFFFFFE000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000001FFFFFFFC000000140000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000004000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x000000000000000040000000C0000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000002000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000000000000000000140000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x80000000000000000000000100000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000000000000100000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000000000000100000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000000000000100000001, 0x00000000000000000000000080000000, 0x00000001000000000000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000080000001, 0x00000000000000000000000080000002}, + [_]u128{0x80000000000000000000000100000001, 0x00000000000000000000000100000000, 0x00000000800000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFF8000000080000000, 0x00000000000000000000000080000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000000000000000000180000000, 0x00000000555555555555555555555556, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000000000000100000001, 0x000000000000000000000001FFFFFFFF, 0x00000000400000002000000010000000, 0x00000000000000000000000110000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000000000008000000000000000, 0x00000000000000010000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000000000008000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE, 0x00000000000000000000000100000003}, + [_]u128{0x80000000000000000000000100000001, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000080000001}, + [_]u128{0x80000000000000000000000100000001, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000005, 0x00000000000000007FFFFFFA00000006}, + [_]u128{0x80000000000000000000000100000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000000, 0x00000000000000008000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000000, 0x00000000000000000000000080000001}, + [_]u128{0x80000000000000000000000100000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000000, 0x00000000000000002000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000008000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000000000010000000000000000, 0x00000000000000008000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000000000010000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000008000000100000002}, + [_]u128{0x80000000000000000000000100000001, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000002000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x00000000000000010000000080000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000000, 0x00000000000000008000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000000, 0x00000000000000000000000180000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000001, 0x00000000000000001FFFFFFF80000001}, + [_]u128{0x80000000000000000000000100000001, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000002, 0x00000000000000007FFFFFFC00000003}, + [_]u128{0x80000000000000000000000100000001, 0x00000000000000018000000000000000, 0x00000000000000005555555555555555, 0x00000000000000008000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000000000018000000000000001, 0x00000000000000005555555555555555, 0x00000000000000002AAAAAABAAAAAAAC}, + [_]u128{0x80000000000000000000000100000001, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E38, 0x0000000000000001638E38E500000001}, + [_]u128{0x80000000000000000000000100000001, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71C, 0x000000000000000138E38E3A1C71C71D}, + [_]u128{0x80000000000000000000000100000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000000, 0x00000000000000002000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000400000001FFFFFFF, 0x0000000000000001DFFFFFFFE0000002}, + [_]u128{0x80000000000000000000000100000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000000, 0x00000000000000000800000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000000, 0x00000000000000004000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000800000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000180000001}, + [_]u128{0x80000000000000000000000100000001, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000300000000}, + [_]u128{0x80000000000000000000000100000001, 0x00000000800000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000200000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000800000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000100000002}, + [_]u128{0x80000000000000000000000100000001, 0x00000000800000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE8000000280000001}, + [_]u128{0x80000000000000000000000100000001, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE0000000400000000}, + [_]u128{0x80000000000000000000000100000001, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000002}, + [_]u128{0x80000000000000000000000100000001, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000180000001}, + [_]u128{0x80000000000000000000000100000001, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000000000003FFFFFFFF}, + [_]u128{0x80000000000000000000000100000001, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFF00000001}, + [_]u128{0x80000000000000000000000100000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFE00000003}, + [_]u128{0x80000000000000000000000100000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000000000001}, + [_]u128{0x80000000000000000000000100000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000001FFFFFFFF}, + [_]u128{0x80000000000000000000000100000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x00000000800000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x00000000800000000000000080000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFC000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000180000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF4000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000180000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000400000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000400000000000000080000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFC000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF8000000180000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000008000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000008000000080000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000004000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000180000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000000000000000000080000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000001000000000000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFFC000000180000001}, + [_]u128{0x80000000000000000000000100000001, 0x000000010000000000000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF8000000280000000}, + [_]u128{0x80000000000000000000000100000001, 0x00000001000000000000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF8000000200000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000001000000000000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF8000000180000002}, + [_]u128{0x80000000000000000000000100000001, 0x00000001000000000000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF4000000280000001}, + [_]u128{0x80000000000000000000000100000001, 0x000000010000000000000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF0000000380000000}, + [_]u128{0x80000000000000000000000100000001, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000008000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000008000000080000002}, + [_]u128{0x80000000000000000000000100000001, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000004000000180000001}, + [_]u128{0x80000000000000000000000100000001, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000000000000280000000}, + [_]u128{0x80000000000000000000000100000001, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000000000001}, + [_]u128{0x80000000000000000000000100000001, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000017FFFFFFF80000002}, + [_]u128{0x80000000000000000000000100000001, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000014000000080000001}, + [_]u128{0x80000000000000000000000100000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000800000010000000180000000}, + [_]u128{0x80000000000000000000000100000001, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000010000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000010000000080000002}, + [_]u128{0x80000000000000000000000100000001, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000000C000000180000001}, + [_]u128{0x80000000000000000000000100000001, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000800000008000000280000000}, + [_]u128{0x80000000000000000000000100000001, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000008000000200000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000008000000180000002}, + [_]u128{0x80000000000000000000000100000001, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000004000000280000001}, + [_]u128{0x80000000000000000000000100000001, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000800000000000000380000000}, + [_]u128{0x80000000000000000000000100000001, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000018000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000400000018000000080000002}, + [_]u128{0x80000000000000000000000100000001, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000014000000180000001}, + [_]u128{0x80000000000000000000000100000001, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000400000010000000280000000}, + [_]u128{0x80000000000000000000000100000001, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000028000000000000001}, + [_]u128{0x80000000000000000000000100000001, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000027FFFFFFF80000002}, + [_]u128{0x80000000000000000000000100000001, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000024000000080000001}, + [_]u128{0x80000000000000000000000100000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000000000020000000180000000}, + [_]u128{0x80000000000000000000000100000001, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x00000000800000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000008000000000000000AAAAAAAC}, + [_]u128{0x80000000000000000000000100000001, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x000000007FFFFFFFD555555680000001}, + [_]u128{0x80000000000000000000000100000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x000000007FFFFFFFAAAAAAAC55555556}, + [_]u128{0x80000000000000000000000100000001, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x000000007FFFFFFFAAAAAAAC00000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x000000007FFFFFFFAAAAAAABAAAAAAAC}, + [_]u128{0x80000000000000000000000100000001, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x000000007FFFFFFF8000000180000001}, + [_]u128{0x80000000000000000000000100000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000007FFFFFFF5555555755555556}, + [_]u128{0x80000000000000000000000100000001, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000555555558000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x000000005555555580000000AAAAAAAC}, + [_]u128{0x80000000000000000000000100000001, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000555555555555555680000001}, + [_]u128{0x80000000000000000000000100000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000555555552AAAAAAC55555556}, + [_]u128{0x80000000000000000000000100000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAB5555555600000001}, + [_]u128{0x80000000000000000000000100000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAAB55555555AAAAAAAC}, + [_]u128{0x80000000000000000000000100000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAB2AAAAAAB80000001}, + [_]u128{0x80000000000000000000000100000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAAB0000000155555556}, + [_]u128{0x80000000000000000000000100000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000400000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x000000004000000000000000C0000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x000000003FFFFFFFE000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000003FFFFFFFC000000140000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x000000003FFFFFFFC000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x000000003FFFFFFFC0000000C0000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x000000003FFFFFFFA000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000003FFFFFFF8000000140000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000200000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000002000000000000000C0000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000001FFFFFFFE000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000001FFFFFFFC000000140000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000004000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x000000000000000040000000C0000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000002000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000000000000000000140000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000000000000100000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x80000000000000000000000100000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000002}, + [_]u128{0x80000000000000000000000100000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000000000000100000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000100000001}, + [_]u128{0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000000000000000000080000000, 0x00000001000000000000000000000003, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000080000002, 0x00000000000000000000000000000002}, + [_]u128{0x80000000000000000000000180000000, 0x00000000000000000000000100000000, 0x00000000800000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF8000000080000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000000000000000000180000000, 0x00000000555555555555555555555556, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000000000000180000000, 0x000000000000000000000001FFFFFFFF, 0x00000000400000002000000010000000, 0x00000000000000000000000190000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000000000008000000000000000, 0x00000000000000010000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000000000008000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE, 0x00000000000000000000000180000002}, + [_]u128{0x80000000000000000000000180000000, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000000000000180000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000005, 0x00000000000000007FFFFFFA80000005}, + [_]u128{0x80000000000000000000000180000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000000, 0x00000000000000008000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000000000000180000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000000, 0x00000000000000002000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000008000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000000000010000000000000000, 0x00000000000000008000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000000000010000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000008000000180000001}, + [_]u128{0x80000000000000000000000180000000, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000002000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000000000000180000000, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000000, 0x00000000000000008000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000000, 0x00000000000000000000000200000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000001, 0x00000000000000002000000000000000}, + [_]u128{0x80000000000000000000000180000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000002, 0x00000000000000007FFFFFFC80000002}, + [_]u128{0x80000000000000000000000180000000, 0x00000000000000018000000000000000, 0x00000000000000005555555555555555, 0x00000000000000008000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000000000018000000000000001, 0x00000000000000005555555555555555, 0x00000000000000002AAAAAAC2AAAAAAB}, + [_]u128{0x80000000000000000000000180000000, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E38, 0x0000000000000001638E38E580000000}, + [_]u128{0x80000000000000000000000180000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71C, 0x000000000000000138E38E3A9C71C71C}, + [_]u128{0x80000000000000000000000180000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000000, 0x00000000000000002000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000400000001FFFFFFF, 0x0000000000000001E000000060000001}, + [_]u128{0x80000000000000000000000180000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000000, 0x00000000000000000800000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000000, 0x00000000000000004000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000800000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000200000000}, + [_]u128{0x80000000000000000000000180000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF000000037FFFFFFF}, + [_]u128{0x80000000000000000000000180000000, 0x00000000800000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000280000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000800000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000180000001}, + [_]u128{0x80000000000000000000000180000000, 0x00000000800000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE8000000300000000}, + [_]u128{0x80000000000000000000000180000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE000000047FFFFFFF}, + [_]u128{0x80000000000000000000000180000000, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000001}, + [_]u128{0x80000000000000000000000180000000, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000200000000}, + [_]u128{0x80000000000000000000000180000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000080000000000000047FFFFFFE}, + [_]u128{0x80000000000000000000000180000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFF80000000}, + [_]u128{0x80000000000000000000000180000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFE80000002}, + [_]u128{0x80000000000000000000000180000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000080000000}, + [_]u128{0x80000000000000000000000180000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002000000027FFFFFFE}, + [_]u128{0x80000000000000000000000180000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x00000000800000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x00000000800000000000000100000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFC000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000200000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF4000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000400000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000400000000000000100000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFC000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF8000000200000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000008000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000008000000100000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000004000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000200000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000001000000000000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFFC000000200000000}, + [_]u128{0x80000000000000000000000180000000, 0x000000010000000000000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF80000002FFFFFFFF}, + [_]u128{0x80000000000000000000000180000000, 0x00000001000000000000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF8000000280000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000001000000000000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF8000000200000001}, + [_]u128{0x80000000000000000000000180000000, 0x00000001000000000000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF4000000300000000}, + [_]u128{0x80000000000000000000000180000000, 0x000000010000000000000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF00000003FFFFFFFF}, + [_]u128{0x80000000000000000000000180000000, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000008000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000008000000100000001}, + [_]u128{0x80000000000000000000000180000000, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000004000000200000000}, + [_]u128{0x80000000000000000000000180000000, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C000000000000002FFFFFFFF}, + [_]u128{0x80000000000000000000000180000000, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000080000000}, + [_]u128{0x80000000000000000000000180000000, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000000000001}, + [_]u128{0x80000000000000000000000180000000, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000014000000100000000}, + [_]u128{0x80000000000000000000000180000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000008000000100000001FFFFFFFF}, + [_]u128{0x80000000000000000000000180000000, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000010000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000010000000100000001}, + [_]u128{0x80000000000000000000000180000000, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000000C000000200000000}, + [_]u128{0x80000000000000000000000180000000, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000008000000080000002FFFFFFFF}, + [_]u128{0x80000000000000000000000180000000, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000008000000280000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000008000000200000001}, + [_]u128{0x80000000000000000000000180000000, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000004000000300000000}, + [_]u128{0x80000000000000000000000180000000, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000008000000000000003FFFFFFFF}, + [_]u128{0x80000000000000000000000180000000, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000018000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000400000018000000100000001}, + [_]u128{0x80000000000000000000000180000000, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000014000000200000000}, + [_]u128{0x80000000000000000000000180000000, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000004000000100000002FFFFFFFF}, + [_]u128{0x80000000000000000000000180000000, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000028000000080000000}, + [_]u128{0x80000000000000000000000180000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000028000000000000001}, + [_]u128{0x80000000000000000000000180000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000024000000100000000}, + [_]u128{0x80000000000000000000000180000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000000000000200000001FFFFFFFF}, + [_]u128{0x80000000000000000000000180000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x00000000800000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x0000000080000000000000012AAAAAAB}, + [_]u128{0x80000000000000000000000180000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x000000007FFFFFFFD555555700000000}, + [_]u128{0x80000000000000000000000180000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x000000007FFFFFFFAAAAAAACD5555555}, + [_]u128{0x80000000000000000000000180000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x000000007FFFFFFFAAAAAAAC80000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x000000007FFFFFFFAAAAAAAC2AAAAAAB}, + [_]u128{0x80000000000000000000000180000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x000000007FFFFFFF8000000200000000}, + [_]u128{0x80000000000000000000000180000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000007FFFFFFF55555557D5555555}, + [_]u128{0x80000000000000000000000180000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000555555558000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x0000000055555555800000012AAAAAAB}, + [_]u128{0x80000000000000000000000180000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000555555555555555700000000}, + [_]u128{0x80000000000000000000000180000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000555555552AAAAAACD5555555}, + [_]u128{0x80000000000000000000000180000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAB5555555680000000}, + [_]u128{0x80000000000000000000000180000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAAB555555562AAAAAAB}, + [_]u128{0x80000000000000000000000180000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAB2AAAAAAC00000000}, + [_]u128{0x80000000000000000000000180000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAAB00000001D5555555}, + [_]u128{0x80000000000000000000000180000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000400000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x00000000400000000000000140000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x000000003FFFFFFFE000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000003FFFFFFFC0000001C0000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x000000003FFFFFFFC000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x000000003FFFFFFFC000000140000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x000000003FFFFFFFA000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000003FFFFFFF80000001C0000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000200000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x00000000200000000000000140000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000001FFFFFFFE000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000001FFFFFFFC0000001C0000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000004000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000000000004000000140000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000002000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x000000000000000000000001C0000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x80000000000000000000000180000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000000000000180000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x80000000000000000000000180000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000000000000000000180000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000000000000180000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x80000000000000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000000000000180000000}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000001000000000000000000000003, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000080000002, 0x00000000000000000000000080000001}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000800000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFF8000000080000001, 0x0000000000000000000000007FFFFFFE}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000180000000, 0x00000000555555555555555555555556, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000400000002000000010000001, 0x00000000000000000000000010000000}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000010000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000000000008000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE, 0x00000000000000000000000200000001}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000005, 0x00000000000000007FFFFFFB00000004}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000000, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000000, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000000, 0x000000000000000020000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000008000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000008000000200000000}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000000, 0x000000000000000020000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x00000000000000000000000080000000}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000000, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000000, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000001, 0x0000000000000000200000007FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000002, 0x00000000000000007FFFFFFD00000001}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000000000018000000000000000, 0x00000000000000005555555555555555, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000000000018000000000000001, 0x00000000000000005555555555555555, 0x00000000000000002AAAAAACAAAAAAAA}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E38, 0x0000000000000001638E38E5FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71C, 0x000000000000000138E38E3B1C71C71B}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000000, 0x000000000000000020000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000400000001FFFFFFF, 0x0000000000000001E0000000E0000000}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000000, 0x000000000000000008000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000000, 0x000000000000000040000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000800000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF800000027FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF00000003FFFFFFFE}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000800000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF00000002FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000800000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000800000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE800000037FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE00000004FFFFFFFE}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000000}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000000000004FFFFFFFD}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFFFFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFF00000001}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000280000000FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000002FFFFFFFD}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x0000000080000000000000017FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFC0000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF800000027FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF80000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF40000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF000000027FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x000000004000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x0000000040000000000000017FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFC0000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF800000027FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000000000000040000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001000000000000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFFC00000027FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF800000037FFFFFFE}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001000000000000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF80000002FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001000000000000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF8000000280000000}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001000000000000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF400000037FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF000000047FFFFFFE}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C000000080000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000008000000180000000}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000000400000027FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000000000000037FFFFFFE}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x000000008000000180000000FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000080000000}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001400000017FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001000000027FFFFFFE}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000008000000100000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000010000000180000000}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000000C00000027FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000000800000037FFFFFFE}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000008000000080000002FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000008000000280000000}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000000400000037FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000000000000047FFFFFFE}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000004000000180000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000400000018000000180000000}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000040000001400000027FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000040000001000000037FFFFFFE}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x000000000000000280000000FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000028000000080000000}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000002400000017FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000002000000027FFFFFFE}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000008000000000000001AAAAAAAA}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x000000007FFFFFFFD55555577FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x000000007FFFFFFFAAAAAAAD55555554}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x000000007FFFFFFFAAAAAAACFFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x000000007FFFFFFFAAAAAAACAAAAAAAA}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x000000007FFFFFFF800000027FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000007FFFFFFF5555555855555554}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x000000005555555580000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x000000005555555580000001AAAAAAAA}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x0000000055555555555555577FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000555555552AAAAAAD55555554}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAB55555556FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAAB55555556AAAAAAAA}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAB2AAAAAAC7FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAAB0000000255555554}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x000000004000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x000000004000000000000001BFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x000000003FFFFFFFE0000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000003FFFFFFFC00000023FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x000000003FFFFFFFC0000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x000000003FFFFFFFC0000001BFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x000000003FFFFFFFA0000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000003FFFFFFF800000023FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x000000002000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000002000000000000001BFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000001FFFFFFFE0000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000001FFFFFFFC00000023FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x000000000000000040000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x000000000000000040000001BFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x000000000000000020000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000000000000000000023FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000000000001FFFFFFFF}, + [_]u128{0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000000000000000000080000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000100000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000008000000000000000, 0x00000000000000000000000100000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000008000000000000000, 0x00000000000000000000000180000000, 0x000000005555555555555555AAAAAAAA, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000008000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000400000002000000050000000, 0x00000000000000000000000050000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000000000008000000000000000, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000000000008000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000008000000000000000, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000000000008000000000000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000006, 0x00000000000000007FFFFFF800000006}, + [_]u128{0x80000000000000008000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000001, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000008000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000000000008000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000000, 0x0000000000000000A000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000008000000000000000, 0x00000000000000010000000000000000, 0x00000000000000008000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000000000010000000000000001, 0x00000000000000008000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000A000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x80000000000000008000000000000000, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000000, 0x00000000000000010000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000001, 0x00000000000000009FFFFFFE80000000}, + [_]u128{0x80000000000000008000000000000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000002, 0x0000000000000000FFFFFFFB00000002}, + [_]u128{0x80000000000000008000000000000000, 0x00000000000000018000000000000000, 0x00000000000000005555555555555555, 0x00000000000000010000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000000000018000000000000001, 0x00000000000000005555555555555555, 0x0000000000000000AAAAAAAAAAAAAAAB}, + [_]u128{0x80000000000000008000000000000000, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E39, 0x0000000000000000638E38E380000000}, + [_]u128{0x80000000000000008000000000000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71D, 0x000000000000000038E38E381C71C71D}, + [_]u128{0x80000000000000008000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000000, 0x0000000000000000A000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000020000000, 0x00000000000000005FFFFFFFE0000000}, + [_]u128{0x80000000000000008000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000000, 0x00000000000000008800000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000000, 0x0000000000000000C000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF80000001FFFFFFFF}, + [_]u128{0x80000000000000008000000000000000, 0x00000000800000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000800000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0x80000000000000008000000000000000, 0x00000000800000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0x80000000000000008000000000000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE80000002FFFFFFFF}, + [_]u128{0x80000000000000008000000000000000, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x80000000000000008000000000000000, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000008000000000000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x80000000000000008000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFE00000000}, + [_]u128{0x80000000000000008000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFD00000002}, + [_]u128{0x80000000000000008000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFF00000000}, + [_]u128{0x80000000000000008000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000280000000FFFFFFFE}, + [_]u128{0x80000000000000008000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x00000000800000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x00000000800000004000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000000000000080000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x00000000800000000000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFC000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000400000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000400000007FFFFFFF80000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x00000000400000004000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000400000000000000080000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000010000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000000000000C000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x00000000000000004000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000001000000000000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000000000000080000001}, + [_]u128{0x80000000000000008000000000000000, 0x00000001000000000000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFFC000000180000000}, + [_]u128{0x80000000000000008000000000000000, 0x000000010000000000000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF800000027FFFFFFF}, + [_]u128{0x80000000000000008000000000000000, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000010000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000000FFFFFFFF80000001}, + [_]u128{0x80000000000000008000000000000000, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000000C000000080000000}, + [_]u128{0x80000000000000008000000000000000, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000000800000017FFFFFFF}, + [_]u128{0x80000000000000008000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001FFFFFFFF00000000}, + [_]u128{0x80000000000000008000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001FFFFFFFE80000001}, + [_]u128{0x80000000000000008000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001BFFFFFFF80000000}, + [_]u128{0x80000000000000008000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001800000007FFFFFFF}, + [_]u128{0x80000000000000008000000000000000, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000017FFFFFFF80000001}, + [_]u128{0x80000000000000008000000000000000, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000014000000080000000}, + [_]u128{0x80000000000000008000000000000000, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001000000017FFFFFFF}, + [_]u128{0x80000000000000008000000000000000, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000010000000100000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000010000000080000001}, + [_]u128{0x80000000000000008000000000000000, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000000C000000180000000}, + [_]u128{0x80000000000000008000000000000000, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000000800000027FFFFFFF}, + [_]u128{0x80000000000000008000000000000000, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000020000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x0000000040000001FFFFFFFF80000001}, + [_]u128{0x80000000000000008000000000000000, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000040000001C000000080000000}, + [_]u128{0x80000000000000008000000000000000, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000040000001800000017FFFFFFF}, + [_]u128{0x80000000000000008000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000002FFFFFFFF00000000}, + [_]u128{0x80000000000000008000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000000000002FFFFFFFE80000001}, + [_]u128{0x80000000000000008000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000002BFFFFFFF80000000}, + [_]u128{0x80000000000000008000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000002800000007FFFFFFF}, + [_]u128{0x80000000000000008000000000000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x00000000800000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x00000000800000007FFFFFFFAAAAAAAB}, + [_]u128{0x80000000000000008000000000000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x00000000800000005555555580000000}, + [_]u128{0x80000000000000008000000000000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000800000002AAAAAAB55555555}, + [_]u128{0x80000000000000008000000000000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x00000000800000002AAAAAAB00000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x00000000800000002AAAAAAAAAAAAAAB}, + [_]u128{0x80000000000000008000000000000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000000800000000000000080000000}, + [_]u128{0x80000000000000008000000000000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000007FFFFFFFD555555655555555}, + [_]u128{0x80000000000000008000000000000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000555555560000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x0000000055555555FFFFFFFFAAAAAAAB}, + [_]u128{0x80000000000000008000000000000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x0000000055555555D555555580000000}, + [_]u128{0x80000000000000008000000000000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000055555555AAAAAAAB55555555}, + [_]u128{0x80000000000000008000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAABD555555500000000}, + [_]u128{0x80000000000000008000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAABD5555554AAAAAAAB}, + [_]u128{0x80000000000000008000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAABAAAAAAAA80000000}, + [_]u128{0x80000000000000008000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAAB8000000055555555}, + [_]u128{0x80000000000000008000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000400000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x00000000400000007FFFFFFFC0000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x00000000400000006000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000400000004000000040000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x00000000400000004000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x00000000400000003FFFFFFFC0000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000400000002000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000400000000000000040000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000200000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x00000000200000007FFFFFFFC0000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x00000000200000006000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000200000004000000040000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x0000000000000000C000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x0000000000000000BFFFFFFFC0000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x0000000000000000A000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000000000008000000040000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x80000000000000008000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000000000008000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x80000000000000008000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x80000000000000008000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x80000000000000008000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x80000000000000008000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000008000000000000001, 0x00000000000000000000000080000000, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000100000001, 0x00000000000000000000000000000002}, + [_]u128{0x80000000000000008000000000000001, 0x00000000000000000000000100000000, 0x00000000800000000000000080000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000002}, + [_]u128{0x80000000000000008000000000000001, 0x00000000000000000000000180000000, 0x000000005555555555555555AAAAAAAA, 0x00000000000000000000000100000001}, + [_]u128{0x80000000000000008000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000400000002000000050000000, 0x00000000000000000000000050000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000000000000008000000000000000, 0x00000000000000010000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000000000000008000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000002}, + [_]u128{0x80000000000000008000000000000001, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x80000000000000008000000000000001, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000006, 0x00000000000000007FFFFFF800000007}, + [_]u128{0x80000000000000008000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000001, 0x00000000000000000000000100000001}, + [_]u128{0x80000000000000008000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000000, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x80000000000000008000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000000, 0x0000000000000000A000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000000000000000000002}, + [_]u128{0x80000000000000008000000000000001, 0x00000000000000010000000000000000, 0x00000000000000008000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000000000000010000000000000001, 0x00000000000000008000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000A000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x00000000000000007FFFFFFE80000002}, + [_]u128{0x80000000000000008000000000000001, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000000, 0x00000000000000010000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000000, 0x00000000000000008000000080000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000001, 0x00000000000000009FFFFFFE80000001}, + [_]u128{0x80000000000000008000000000000001, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000002, 0x0000000000000000FFFFFFFB00000003}, + [_]u128{0x80000000000000008000000000000001, 0x00000000000000018000000000000000, 0x00000000000000005555555555555555, 0x00000000000000010000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000000000000018000000000000001, 0x00000000000000005555555555555555, 0x0000000000000000AAAAAAAAAAAAAAAC}, + [_]u128{0x80000000000000008000000000000001, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E39, 0x0000000000000000638E38E380000001}, + [_]u128{0x80000000000000008000000000000001, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71D, 0x000000000000000038E38E381C71C71E}, + [_]u128{0x80000000000000008000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000000, 0x0000000000000000A000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000020000000, 0x00000000000000005FFFFFFFE0000001}, + [_]u128{0x80000000000000008000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000000, 0x00000000000000008800000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000000, 0x0000000000000000C000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000200000000}, + [_]u128{0x80000000000000008000000000000001, 0x00000000800000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000100000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000000800000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000000000002}, + [_]u128{0x80000000000000008000000000000001, 0x00000000800000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000180000001}, + [_]u128{0x80000000000000008000000000000001, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE8000000300000000}, + [_]u128{0x80000000000000008000000000000001, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0x80000000000000008000000000000001, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000001}, + [_]u128{0x80000000000000008000000000000001, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000200000000}, + [_]u128{0x80000000000000008000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFE00000001}, + [_]u128{0x80000000000000008000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFD00000003}, + [_]u128{0x80000000000000008000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFF00000001}, + [_]u128{0x80000000000000008000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000280000000FFFFFFFF}, + [_]u128{0x80000000000000008000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x00000000800000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFF80000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x00000000800000004000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000000000000080000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x00000000800000000000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFC000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000400000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000400000007FFFFFFF80000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x00000000400000004000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000400000000000000080000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000010000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000000000000C000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000008000000080000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x00000000000000004000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000080000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000001000000000000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000000000000080000002}, + [_]u128{0x80000000000000008000000000000001, 0x00000001000000000000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFFC000000180000001}, + [_]u128{0x80000000000000008000000000000001, 0x000000010000000000000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF8000000280000000}, + [_]u128{0x80000000000000008000000000000001, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000010000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000000FFFFFFFF80000002}, + [_]u128{0x80000000000000008000000000000001, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000000C000000080000001}, + [_]u128{0x80000000000000008000000000000001, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000008000000180000000}, + [_]u128{0x80000000000000008000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001FFFFFFFF00000001}, + [_]u128{0x80000000000000008000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001FFFFFFFE80000002}, + [_]u128{0x80000000000000008000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001BFFFFFFF80000001}, + [_]u128{0x80000000000000008000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000080000000}, + [_]u128{0x80000000000000008000000000000001, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000017FFFFFFF80000002}, + [_]u128{0x80000000000000008000000000000001, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000014000000080000001}, + [_]u128{0x80000000000000008000000000000001, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000800000010000000180000000}, + [_]u128{0x80000000000000008000000000000001, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000010000000100000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000010000000080000002}, + [_]u128{0x80000000000000008000000000000001, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000000C000000180000001}, + [_]u128{0x80000000000000008000000000000001, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000800000008000000280000000}, + [_]u128{0x80000000000000008000000000000001, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000020000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x0000000040000001FFFFFFFF80000002}, + [_]u128{0x80000000000000008000000000000001, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000040000001C000000080000001}, + [_]u128{0x80000000000000008000000000000001, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000400000018000000180000000}, + [_]u128{0x80000000000000008000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000002FFFFFFFF00000001}, + [_]u128{0x80000000000000008000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000000000002FFFFFFFE80000002}, + [_]u128{0x80000000000000008000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000002BFFFFFFF80000001}, + [_]u128{0x80000000000000008000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000000000028000000080000000}, + [_]u128{0x80000000000000008000000000000001, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x00000000800000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x00000000800000007FFFFFFFAAAAAAAC}, + [_]u128{0x80000000000000008000000000000001, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x00000000800000005555555580000001}, + [_]u128{0x80000000000000008000000000000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000800000002AAAAAAB55555556}, + [_]u128{0x80000000000000008000000000000001, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x00000000800000002AAAAAAB00000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x00000000800000002AAAAAAAAAAAAAAC}, + [_]u128{0x80000000000000008000000000000001, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000000800000000000000080000001}, + [_]u128{0x80000000000000008000000000000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000007FFFFFFFD555555655555556}, + [_]u128{0x80000000000000008000000000000001, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000555555560000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x0000000055555555FFFFFFFFAAAAAAAC}, + [_]u128{0x80000000000000008000000000000001, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x0000000055555555D555555580000001}, + [_]u128{0x80000000000000008000000000000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000055555555AAAAAAAB55555556}, + [_]u128{0x80000000000000008000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAABD555555500000001}, + [_]u128{0x80000000000000008000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAABD5555554AAAAAAAC}, + [_]u128{0x80000000000000008000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAABAAAAAAAA80000001}, + [_]u128{0x80000000000000008000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAAB8000000055555556}, + [_]u128{0x80000000000000008000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000400000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x00000000400000007FFFFFFFC0000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x00000000400000006000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000400000004000000040000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x00000000400000004000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x00000000400000003FFFFFFFC0000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000400000002000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000400000000000000040000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000200000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x00000000200000007FFFFFFFC0000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x00000000200000006000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000200000004000000040000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x0000000000000000C000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x0000000000000000BFFFFFFFC0000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x0000000000000000A000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000000000008000000040000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000008000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x80000000000000008000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0x80000000000000008000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000000000008000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x80000000000000008000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x80000000000000008000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000008000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000000000001}, + [_]u128{0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000000000000000000080000000, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000100000001, 0x00000000000000000000000080000001}, + [_]u128{0x80000000000000008000000080000000, 0x00000000000000000000000100000000, 0x00000000800000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0x80000000000000008000000080000000, 0x00000000000000000000000180000000, 0x000000005555555555555555AAAAAAAB, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000008000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000400000002000000050000000, 0x000000000000000000000000D0000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000000000008000000000000000, 0x00000000000000010000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000000000008000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0x80000000000000008000000080000000, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000008000000080000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000006, 0x00000000000000007FFFFFF880000006}, + [_]u128{0x80000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000001, 0x00000000000000000000000180000000}, + [_]u128{0x80000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000008000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000000, 0x0000000000000000A000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x80000000000000008000000080000000, 0x00000000000000010000000000000000, 0x00000000000000008000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000000000010000000000000001, 0x00000000000000008000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000A000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x80000000000000008000000080000000, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000000, 0x00000000000000010000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000000, 0x00000000000000008000000100000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000001, 0x00000000000000009FFFFFFF00000000}, + [_]u128{0x80000000000000008000000080000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000002, 0x0000000000000000FFFFFFFB80000002}, + [_]u128{0x80000000000000008000000080000000, 0x00000000000000018000000000000000, 0x00000000000000005555555555555555, 0x00000000000000010000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000000000018000000000000001, 0x00000000000000005555555555555555, 0x0000000000000000AAAAAAAB2AAAAAAB}, + [_]u128{0x80000000000000008000000080000000, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E39, 0x0000000000000000638E38E400000000}, + [_]u128{0x80000000000000008000000080000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71D, 0x000000000000000038E38E389C71C71D}, + [_]u128{0x80000000000000008000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000000, 0x0000000000000000A000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000020000000, 0x00000000000000006000000060000000}, + [_]u128{0x80000000000000008000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000000, 0x00000000000000008800000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000000, 0x0000000000000000C000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF800000027FFFFFFF}, + [_]u128{0x80000000000000008000000080000000, 0x00000000800000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000800000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0x80000000000000008000000080000000, 0x00000000800000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0x80000000000000008000000080000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE800000037FFFFFFF}, + [_]u128{0x80000000000000008000000080000000, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x80000000000000008000000080000000, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000000}, + [_]u128{0x80000000000000008000000080000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x80000000000000008000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFE80000000}, + [_]u128{0x80000000000000008000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFD80000002}, + [_]u128{0x80000000000000008000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFF80000000}, + [_]u128{0x80000000000000008000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002800000017FFFFFFE}, + [_]u128{0x80000000000000008000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x00000000800000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x00000000800000008000000000000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x00000000800000004000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000000000000100000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x00000000800000000000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x00000000800000000000000000000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFC000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000400000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000400000008000000000000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x00000000400000004000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000400000000000000100000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000010000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000010000000000000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000000000000C000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000008000000100000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x00000000000000004000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000001000000000000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFFC000000200000000}, + [_]u128{0x80000000000000008000000080000000, 0x000000010000000000000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF80000002FFFFFFFF}, + [_]u128{0x80000000000000008000000080000000, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000010000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000010000000000000001}, + [_]u128{0x80000000000000008000000080000000, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000000C000000100000000}, + [_]u128{0x80000000000000008000000080000000, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C000000080000001FFFFFFFF}, + [_]u128{0x80000000000000008000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001FFFFFFFF80000000}, + [_]u128{0x80000000000000008000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001FFFFFFFF00000001}, + [_]u128{0x80000000000000008000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001C000000000000000}, + [_]u128{0x80000000000000008000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000008000000180000000FFFFFFFF}, + [_]u128{0x80000000000000008000000080000000, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000000000001}, + [_]u128{0x80000000000000008000000080000000, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000014000000100000000}, + [_]u128{0x80000000000000008000000080000000, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000008000000100000001FFFFFFFF}, + [_]u128{0x80000000000000008000000080000000, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000010000000180000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000010000000100000001}, + [_]u128{0x80000000000000008000000080000000, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000000C000000200000000}, + [_]u128{0x80000000000000008000000080000000, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000008000000080000002FFFFFFFF}, + [_]u128{0x80000000000000008000000080000000, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000020000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000400000020000000000000001}, + [_]u128{0x80000000000000008000000080000000, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000040000001C000000100000000}, + [_]u128{0x80000000000000008000000080000000, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000004000000180000001FFFFFFFF}, + [_]u128{0x80000000000000008000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000002FFFFFFFF80000000}, + [_]u128{0x80000000000000008000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000000000002FFFFFFFF00000001}, + [_]u128{0x80000000000000008000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000002C000000000000000}, + [_]u128{0x80000000000000008000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000000000000280000000FFFFFFFF}, + [_]u128{0x80000000000000008000000080000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x00000000800000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x0000000080000000800000002AAAAAAB}, + [_]u128{0x80000000000000008000000080000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x00000000800000005555555600000000}, + [_]u128{0x80000000000000008000000080000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000800000002AAAAAABD5555555}, + [_]u128{0x80000000000000008000000080000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x00000000800000002AAAAAAB80000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x00000000800000002AAAAAAB2AAAAAAB}, + [_]u128{0x80000000000000008000000080000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000000800000000000000100000000}, + [_]u128{0x80000000000000008000000080000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000007FFFFFFFD5555556D5555555}, + [_]u128{0x80000000000000008000000080000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000555555560000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x0000000055555556000000002AAAAAAB}, + [_]u128{0x80000000000000008000000080000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x0000000055555555D555555600000000}, + [_]u128{0x80000000000000008000000080000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000055555555AAAAAAABD5555555}, + [_]u128{0x80000000000000008000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAABD555555580000000}, + [_]u128{0x80000000000000008000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAABD55555552AAAAAAB}, + [_]u128{0x80000000000000008000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAABAAAAAAAB00000000}, + [_]u128{0x80000000000000008000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAAB80000000D5555555}, + [_]u128{0x80000000000000008000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000400000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x00000000400000008000000040000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x00000000400000006000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000004000000040000000C0000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x00000000400000004000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x00000000400000004000000040000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000400000002000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000004000000000000000C0000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000200000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x00000000200000008000000040000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x00000000200000006000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000002000000040000000C0000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x0000000000000000C000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x0000000000000000C000000040000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x0000000000000000A000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x000000000000000080000000C0000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x80000000000000008000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000008000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x80000000000000008000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x80000000000000008000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000000000008000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x80000000000000008000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000000000008000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000008000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x80000000000000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000008000000080000000}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000001000000000000000100000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000100000002, 0x00000000000000000000000000000001}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000800000000000000080000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000180000000, 0x000000005555555555555555AAAAAAAB, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000400000002000000050000000, 0x0000000000000000000000014FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000010000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000000000008000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000006, 0x00000000000000007FFFFFF900000005}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000000, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000000, 0x0000000000000000A0000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000008000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000008000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000A0000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000000, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000001, 0x00000000000000009FFFFFFF7FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000002, 0x0000000000000000FFFFFFFC00000001}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000000000018000000000000000, 0x00000000000000005555555555555555, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000000000018000000000000001, 0x00000000000000005555555555555555, 0x0000000000000000AAAAAAABAAAAAAAA}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E39, 0x0000000000000000638E38E47FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71D, 0x000000000000000038E38E391C71C71C}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000000, 0x0000000000000000A0000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000020000000, 0x000000000000000060000000DFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000000, 0x000000000000000088000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000000, 0x0000000000000000C0000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF80000002FFFFFFFE}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000800000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF80000001FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000800000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000800000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF000000027FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE80000003FFFFFFFE}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000000}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000002FFFFFFFE}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFEFFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFE00000001}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFFFFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000280000001FFFFFFFD}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x0000000080000000800000007FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x000000008000000040000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000080000000000000017FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFC0000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x000000004000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x0000000040000000800000007FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x000000004000000040000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000040000000000000017FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000000000000C0000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x000000000000000040000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001000000000000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFFC00000027FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000FFFFFFFF800000037FFFFFFE}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C000000100000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000010000000080000000}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000000C00000017FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000000800000027FFFFFFE}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001FFFFFFFFFFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001FFFFFFFF80000000}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001C00000007FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001800000017FFFFFFE}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000008000000180000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000080000000}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001400000017FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001000000027FFFFFFE}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000008000000100000001FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000010000000180000000}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000000C00000027FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000000800000037FFFFFFE}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000004000000200000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000400000020000000080000000}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000040000001C00000017FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000040000001800000027FFFFFFE}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000002FFFFFFFFFFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000000000002FFFFFFFF80000000}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000002C00000007FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000002800000017FFFFFFE}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000008000000080000000AAAAAAAA}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x0000000080000000555555567FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000800000002AAAAAAC55555554}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x00000000800000002AAAAAABFFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x00000000800000002AAAAAABAAAAAAAA}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x0000000080000000000000017FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000007FFFFFFFD555555755555554}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x000000005555555600000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x000000005555555600000000AAAAAAAA}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x0000000055555555D55555567FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000055555555AAAAAAAC55555554}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAABD5555555FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAABD5555555AAAAAAAA}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAABAAAAAAAB7FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAAB8000000155555554}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x000000004000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x000000004000000080000000BFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x000000004000000060000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000040000000400000013FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x000000004000000040000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x000000004000000040000000BFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x000000004000000020000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000040000000000000013FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x000000002000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000002000000080000000BFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000002000000060000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000020000000400000013FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x0000000000000000C0000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x0000000000000000C0000000BFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x0000000000000000A0000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000000000000800000013FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFE}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000080000000FFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000010000000000000001FFFFFFFE, 0x00000000000000000000000000000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000180000000, 0x00000000000000000000000080000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF800000017FFFFFFD, 0x00000000000000000000000080000003}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000180000000, 0x000000005555555555555555FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFF, 0x0000000040000000200000008FFFFFFF, 0x0000000000000000000000018FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000000000008000000000000000, 0x00000000000000010000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000000000008000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000002, 0x00000000000000007FFFFFFE00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000007, 0x00000000000000007FFFFFF600000007}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000001, 0x00000000000000008000000000000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000001, 0x00000000000000001FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000000, 0x00000000000000008000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000001, 0x00000000000000008000000000000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000001, 0x00000000000000001FFFFFFE80000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000001, 0x00000000000000007FFFFFFE00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000002, 0x00000000000000001FFFFFFC00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000003, 0x00000000000000007FFFFFF800000003}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000000000018000000000000000, 0x00000000000000005555555555555555, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000000000018000000000000001, 0x00000000000000005555555555555555, 0x00000000000000012AAAAAA9AAAAAAAB}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E39, 0x0000000000000000E38E38E280000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71D, 0x0000000000000000B8E38E371C71C71D}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000000, 0x00000000000000011FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000020000000, 0x0000000000000000DFFFFFFEE0000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000000, 0x000000000000000107FFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000000, 0x00000000000000013FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000800000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000000000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000800000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000800000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFE00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFD00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFC00000002}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFE00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFFFFFFFFFE}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFE80000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x0000000080000000BFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFE80000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x00000000800000003FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x0000000040000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x0000000040000000FFFFFFFE80000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x0000000040000000BFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000400000007FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFE80000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000013FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x0000000000000000BFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000000000003FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x000000010000000000000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000000000017FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000017FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000017FFFFFFE80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000013FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001000000007FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFE00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFD80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000023FFFFFFE80000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001FFFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001FFFFFFFE80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001BFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001800000007FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000000000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000017FFFFFFF80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000014000000080000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001000000017FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000027FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000400000027FFFFFFE80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000023FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000040000002000000007FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000037FFFFFFE00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000037FFFFFFD80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000033FFFFFFE80000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000002FFFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x0000000080000000FFFFFFFEAAAAAAAB}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x0000000080000000D555555480000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAAA55555555}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAAA00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAA9AAAAAAAB}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000800000005555555555555555}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000555555567FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000000555555567FFFFFFEAAAAAAAB}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000555555565555555480000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000555555562AAAAAAA55555555}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAC5555555400000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAAC55555553AAAAAAAB}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAC2AAAAAA980000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAABFFFFFFFF55555555}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x0000000040000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x0000000040000000FFFFFFFEC0000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x0000000040000000DFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000040000000BFFFFFFF40000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x0000000040000000BFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x0000000040000000BFFFFFFEC0000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000400000009FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000400000007FFFFFFF40000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x0000000020000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x0000000020000000FFFFFFFEC0000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x0000000020000000DFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000020000000BFFFFFFF40000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000013FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000000000013FFFFFFEC0000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000011FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000000000000FFFFFFFF40000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFDFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x000000010000000000000001FFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000180000000, 0x00000000000000000000000080000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFF800000017FFFFFFD, 0x00000000000000000000000080000004}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000180000000, 0x000000005555555555555555FFFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFF, 0x0000000040000000200000008FFFFFFF, 0x00000000000000000000000190000000}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000000000008000000000000000, 0x00000000000000010000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000000000008000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000002, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000007, 0x00000000000000007FFFFFF600000008}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000001, 0x00000000000000008000000000000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000001, 0x00000000000000001FFFFFFF80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000000000010000000000000000, 0x00000000000000008000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000000000010000000000000001, 0x00000000000000008000000000000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000001, 0x00000000000000001FFFFFFE80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x0000000000000000FFFFFFFD80000002}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000000, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000002, 0x00000000000000001FFFFFFC00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000003, 0x00000000000000007FFFFFF800000004}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000000000018000000000000000, 0x00000000000000005555555555555555, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000000000018000000000000001, 0x00000000000000005555555555555555, 0x00000000000000012AAAAAA9AAAAAAAC}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E39, 0x0000000000000000E38E38E280000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71D, 0x0000000000000000B8E38E371C71C71E}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000000, 0x00000000000000011FFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000020000000, 0x0000000000000000DFFFFFFEE0000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000000, 0x000000000000000107FFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000000, 0x00000000000000013FFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000800000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000000000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000800000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFFFFFFFFFF00000002}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000800000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFE00000002}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000000}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFD00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFC00000003}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFE00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFE80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x0000000080000000BFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFF80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFE80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x00000000800000003FFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x0000000040000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x0000000040000000FFFFFFFE80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x0000000040000000BFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000400000007FFFFFFF80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000013FFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x0000000000000000BFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000000000003FFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x000000010000000000000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001000000000000000180000000}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000017FFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000017FFFFFFE80000002}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000013FFFFFFF80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000010000000080000000}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFE00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFD80000002}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000023FFFFFFE80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001FFFFFFFE80000002}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001BFFFFFFF80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000080000000}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000000000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000017FFFFFFF80000002}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000014000000080000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000800000010000000180000000}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000027FFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000400000027FFFFFFE80000002}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000023FFFFFFF80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000400000020000000080000000}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000037FFFFFFE00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000037FFFFFFD80000002}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000033FFFFFFE80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000002FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x0000000080000000FFFFFFFEAAAAAAAC}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x0000000080000000D555555480000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAAA55555556}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAAA00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAA9AAAAAAAC}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000000800000007FFFFFFF80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000800000005555555555555556}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000555555567FFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000000555555567FFFFFFEAAAAAAAC}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000555555565555555480000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000555555562AAAAAAA55555556}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAC5555555400000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAAC55555553AAAAAAAC}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAC2AAAAAA980000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAABFFFFFFFF55555556}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x0000000040000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x0000000040000000FFFFFFFEC0000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x0000000040000000DFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000040000000BFFFFFFF40000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x0000000040000000BFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x0000000040000000BFFFFFFEC0000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000400000009FFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000400000007FFFFFFF40000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x0000000020000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x0000000020000000FFFFFFFEC0000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x0000000020000000DFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000020000000BFFFFFFF40000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000013FFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000000000013FFFFFFEC0000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000011FFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000000000000FFFFFFFF40000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000180000001, 0x00000000000000000000000000000001}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF800000017FFFFFFE, 0x00000000000000000000000000000002}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000180000000, 0x000000005555555555555555FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFF, 0x00000000400000002000000090000000, 0x00000000000000000000000010000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000000000008000000000000000, 0x00000000000000010000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000000000008000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000002, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000007, 0x00000000000000007FFFFFF680000007}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000001, 0x00000000000000008000000080000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000001, 0x00000000000000002000000000000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000000000010000000000000000, 0x00000000000000008000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000000000010000000000000001, 0x00000000000000008000000000000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000001, 0x00000000000000001FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000000, 0x00000000000000010000000000000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000002, 0x00000000000000001FFFFFFC80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000003, 0x00000000000000007FFFFFF880000003}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000000000018000000000000000, 0x00000000000000005555555555555555, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000000000018000000000000001, 0x00000000000000005555555555555555, 0x00000000000000012AAAAAAA2AAAAAAB}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E39, 0x0000000000000000E38E38E300000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71D, 0x0000000000000000B8E38E379C71C71D}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000000, 0x00000000000000011FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000020000000, 0x0000000000000000DFFFFFFF60000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000000, 0x000000000000000107FFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000000, 0x00000000000000013FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000800000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000080000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000800000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000800000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF000000027FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFD80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFC80000002}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFE80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003000000007FFFFFFE}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x0000000080000000BFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000008000000000000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x00000000800000003FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000000000000000000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x0000000040000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x0000000040000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x0000000040000000BFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000400000008000000000000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000013FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000010000000000000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x0000000000000000BFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000008000000000000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000000000003FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000017FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000017FFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000014000000000000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C000000100000000FFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFE80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFE00000001}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000023FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001FFFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001C000000000000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000008000000180000000FFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000080000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000000000001}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000014000000100000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000008000000100000001FFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000027FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000400000027FFFFFFF00000001}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000024000000000000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000004000000200000000FFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000037FFFFFFE80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000037FFFFFFE00000001}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000033FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000002FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x0000000080000000FFFFFFFF2AAAAAAB}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x0000000080000000D555555500000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAAAD5555555}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAAA80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAAA2AAAAAAB}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000000800000008000000000000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000008000000055555555D5555555}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000555555567FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000000555555567FFFFFFF2AAAAAAB}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000555555565555555500000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000555555562AAAAAAAD5555555}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAC5555555480000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAAC555555542AAAAAAB}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAC2AAAAAAA00000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAABFFFFFFFFD5555555}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x0000000040000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x0000000040000000FFFFFFFF40000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x0000000040000000DFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000040000000BFFFFFFFC0000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x0000000040000000BFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x0000000040000000BFFFFFFF40000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000400000009FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000400000007FFFFFFFC0000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x0000000020000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x0000000020000000FFFFFFFF40000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x0000000020000000DFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000020000000BFFFFFFFC0000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000013FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000000000013FFFFFFF40000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000011FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000000000000FFFFFFFFC0000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x000000010000000000000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000180000001, 0x00000000000000000000000080000000}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFF800000017FFFFFFE, 0x00000000000000000000000080000001}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000, 0x000000005555555555555555FFFFFFFF, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000400000002000000090000000, 0x0000000000000000000000008FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000010000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000002, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000007, 0x00000000000000007FFFFFF700000006}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000001, 0x0000000000000000000000007FFFFFFE}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000001, 0x0000000000000000200000007FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000008000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000008000000000000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000001, 0x00000000000000001FFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000000, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000002, 0x00000000000000001FFFFFFCFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000003, 0x00000000000000007FFFFFF900000002}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000018000000000000000, 0x00000000000000005555555555555555, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000018000000000000001, 0x00000000000000005555555555555555, 0x00000000000000012AAAAAAAAAAAAAAA}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E39, 0x0000000000000000E38E38E37FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71D, 0x0000000000000000B8E38E381C71C71C}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000000, 0x00000000000000011FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000020000000, 0x0000000000000000DFFFFFFFDFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000000, 0x000000000000000107FFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000000, 0x00000000000000013FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000000000000}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF00000002FFFFFFFE}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000001FFFFFFFE}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFDFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFD00000001}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFEFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000000FFFFFFFD}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x0000000080000000BFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000080000000800000007FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x00000000800000003FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x0000000040000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x0000000040000000FFFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x0000000040000000BFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000040000000800000007FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000013FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x0000000000000000BFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000000000003FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000017FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000017FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001400000007FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001000000017FFFFFFE}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFEFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFE80000000}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000023FFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002000000007FFFFFFE}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001FFFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001C00000007FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001800000017FFFFFFE}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000008000000180000000FFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000080000000}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001400000017FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001000000027FFFFFFE}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000027FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000400000027FFFFFFF80000000}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000040000002400000007FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000040000002000000017FFFFFFE}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000037FFFFFFEFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000037FFFFFFE80000000}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000033FFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000003000000007FFFFFFE}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x0000000080000000FFFFFFFFAAAAAAAA}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x0000000080000000D55555557FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAAB55555554}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAAAFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAAAAAAAAAAA}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x0000000080000000800000007FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000800000005555555655555554}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000555555567FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000000555555567FFFFFFFAAAAAAAA}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x0000000055555556555555557FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000555555562AAAAAAB55555554}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAC55555554FFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAAC55555554AAAAAAAA}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAC2AAAAAAA7FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAAC0000000055555554}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x0000000040000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x0000000040000000FFFFFFFFBFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x0000000040000000DFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000040000000C00000003FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x0000000040000000BFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x0000000040000000BFFFFFFFBFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000400000009FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000040000000800000003FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x0000000020000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x0000000020000000FFFFFFFFBFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x0000000020000000DFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000020000000C00000003FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000013FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000000000013FFFFFFFBFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000011FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000000000001000000003FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFE}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000000000000000000080000000, 0x00000001000000000000000200000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000180000001, 0x00000000000000000000000080000001}, + [_]u128{0x80000000000000010000000000000000, 0x00000000000000000000000100000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF800000017FFFFFFE, 0x00000000000000000000000080000002}, + [_]u128{0x80000000000000010000000000000000, 0x00000000000000000000000180000000, 0x00000000555555555555555600000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000400000002000000090000000, 0x00000000000000000000000090000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000000000008000000000000000, 0x00000000000000010000000000000002, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000000000008000000000000001, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000002, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000000000010000000000000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000007, 0x00000000000000007FFFFFF700000007}, + [_]u128{0x80000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000001, 0x00000000000000008000000100000000}, + [_]u128{0x80000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000000000010000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000001, 0x00000000000000002000000080000000}, + [_]u128{0x80000000000000010000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0x80000000000000010000000000000000, 0x00000000000000010000000000000000, 0x00000000000000008000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000000000010000000000000001, 0x00000000000000008000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000001, 0x00000000000000001FFFFFFF80000000}, + [_]u128{0x80000000000000010000000000000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x80000000000000010000000000000000, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000000, 0x00000000000000010000000080000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000002, 0x00000000000000001FFFFFFD00000000}, + [_]u128{0x80000000000000010000000000000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000003, 0x00000000000000007FFFFFF900000003}, + [_]u128{0x80000000000000010000000000000000, 0x00000000000000018000000000000000, 0x00000000000000005555555555555556, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000000000018000000000000001, 0x00000000000000005555555555555555, 0x00000000000000012AAAAAAAAAAAAAAB}, + [_]u128{0x80000000000000010000000000000000, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E39, 0x0000000000000000E38E38E380000000}, + [_]u128{0x80000000000000010000000000000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71D, 0x0000000000000000B8E38E381C71C71D}, + [_]u128{0x80000000000000010000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000000, 0x00000000000000012000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000020000000, 0x0000000000000000DFFFFFFFE0000000}, + [_]u128{0x80000000000000010000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000000, 0x00000000000000010800000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000000, 0x00000000000000014000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x00000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000800000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000000000001}, + [_]u128{0x80000000000000010000000000000000, 0x00000000800000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0x80000000000000010000000000000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF00000002FFFFFFFF}, + [_]u128{0x80000000000000010000000000000000, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x80000000000000010000000000000000, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000080000000}, + [_]u128{0x80000000000000010000000000000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x80000000000000010000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFE00000000}, + [_]u128{0x80000000000000010000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFD00000002}, + [_]u128{0x80000000000000010000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFF00000000}, + [_]u128{0x80000000000000010000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000000FFFFFFFE}, + [_]u128{0x80000000000000010000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x00000000800000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x0000000080000000C000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000008000000080000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x00000000800000008000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x00000000800000004000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000000000000080000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000400000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x0000000040000000FFFFFFFF80000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x0000000040000000C000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000400000008000000080000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000018000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000014000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000010000000080000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x0000000000000000C000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000000000004000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000018000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000017FFFFFFF80000001}, + [_]u128{0x80000000000000010000000000000000, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000014000000080000000}, + [_]u128{0x80000000000000010000000000000000, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001000000017FFFFFFF}, + [_]u128{0x80000000000000010000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFF00000000}, + [_]u128{0x80000000000000010000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFE80000001}, + [_]u128{0x80000000000000010000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000023FFFFFFF80000000}, + [_]u128{0x80000000000000010000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002000000007FFFFFFF}, + [_]u128{0x80000000000000010000000000000000, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000020000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001FFFFFFFF80000001}, + [_]u128{0x80000000000000010000000000000000, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001C000000080000000}, + [_]u128{0x80000000000000010000000000000000, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001800000017FFFFFFF}, + [_]u128{0x80000000000000010000000000000000, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000100000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000080000001}, + [_]u128{0x80000000000000010000000000000000, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000014000000180000000}, + [_]u128{0x80000000000000010000000000000000, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001000000027FFFFFFF}, + [_]u128{0x80000000000000010000000000000000, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000028000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000400000027FFFFFFF80000001}, + [_]u128{0x80000000000000010000000000000000, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000024000000080000000}, + [_]u128{0x80000000000000010000000000000000, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000040000002000000017FFFFFFF}, + [_]u128{0x80000000000000010000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000037FFFFFFF00000000}, + [_]u128{0x80000000000000010000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000037FFFFFFE80000001}, + [_]u128{0x80000000000000010000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000033FFFFFFF80000000}, + [_]u128{0x80000000000000010000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000003000000007FFFFFFF}, + [_]u128{0x80000000000000010000000000000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x00000000800000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x0000000080000000FFFFFFFFAAAAAAAB}, + [_]u128{0x80000000000000010000000000000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x0000000080000000D555555580000000}, + [_]u128{0x80000000000000010000000000000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAAB55555555}, + [_]u128{0x80000000000000010000000000000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAAB00000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAAAAAAAAAAB}, + [_]u128{0x80000000000000010000000000000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000000800000008000000080000000}, + [_]u128{0x80000000000000010000000000000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000800000005555555655555555}, + [_]u128{0x80000000000000010000000000000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000555555568000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000000555555567FFFFFFFAAAAAAAB}, + [_]u128{0x80000000000000010000000000000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000555555565555555580000000}, + [_]u128{0x80000000000000010000000000000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000555555562AAAAAAB55555555}, + [_]u128{0x80000000000000010000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAC5555555500000000}, + [_]u128{0x80000000000000010000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAAC55555554AAAAAAAB}, + [_]u128{0x80000000000000010000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAC2AAAAAAA80000000}, + [_]u128{0x80000000000000010000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAAC0000000055555555}, + [_]u128{0x80000000000000010000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000400000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x0000000040000000FFFFFFFFC0000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x0000000040000000E000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000040000000C000000040000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x0000000040000000C000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x0000000040000000BFFFFFFFC0000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x0000000040000000A000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000400000008000000040000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000200000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x0000000020000000FFFFFFFFC0000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x0000000020000000E000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000020000000C000000040000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000014000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000000000013FFFFFFFC0000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000012000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000000000010000000040000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x80000000000000010000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x80000000000000010000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x80000000000000010000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x80000000000000010000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x80000000000000010000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x80000000000000010000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x80000000000000010000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000000000010000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x80000000000000010000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000010000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x80000000000000010000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000010000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000010000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000010000000000000001, 0x00000000000000000000000080000000, 0x00000001000000000000000200000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000180000001, 0x00000000000000000000000080000002}, + [_]u128{0x80000000000000010000000000000001, 0x00000000000000000000000100000000, 0x00000000800000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFF800000017FFFFFFE, 0x00000000000000000000000080000003}, + [_]u128{0x80000000000000010000000000000001, 0x00000000000000000000000180000000, 0x00000000555555555555555600000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000400000002000000090000000, 0x00000000000000000000000090000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000000000008000000000000000, 0x00000000000000010000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000000000008000000000000001, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000002, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x80000000000000010000000000000001, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000007, 0x00000000000000007FFFFFF700000008}, + [_]u128{0x80000000000000010000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000001, 0x00000000000000008000000100000001}, + [_]u128{0x80000000000000010000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000010000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000001, 0x00000000000000002000000080000001}, + [_]u128{0x80000000000000010000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000008000000000000002}, + [_]u128{0x80000000000000010000000000000001, 0x00000000000000010000000000000000, 0x00000000000000008000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000000000010000000000000001, 0x00000000000000008000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000001, 0x00000000000000001FFFFFFF80000001}, + [_]u128{0x80000000000000010000000000000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x0000000000000000FFFFFFFE80000002}, + [_]u128{0x80000000000000010000000000000001, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000000, 0x00000000000000010000000080000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000002, 0x00000000000000001FFFFFFD00000001}, + [_]u128{0x80000000000000010000000000000001, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000003, 0x00000000000000007FFFFFF900000004}, + [_]u128{0x80000000000000010000000000000001, 0x00000000000000018000000000000000, 0x00000000000000005555555555555556, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000000000018000000000000001, 0x00000000000000005555555555555555, 0x00000000000000012AAAAAAAAAAAAAAC}, + [_]u128{0x80000000000000010000000000000001, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E39, 0x0000000000000000E38E38E380000001}, + [_]u128{0x80000000000000010000000000000001, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71D, 0x0000000000000000B8E38E381C71C71E}, + [_]u128{0x80000000000000010000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000000, 0x00000000000000012000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000020000000, 0x0000000000000000DFFFFFFFE0000001}, + [_]u128{0x80000000000000010000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000000, 0x00000000000000010800000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000000, 0x00000000000000014000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x00000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000100000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000800000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000000000002}, + [_]u128{0x80000000000000010000000000000001, 0x00000000800000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000180000001}, + [_]u128{0x80000000000000010000000000000001, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000300000000}, + [_]u128{0x80000000000000010000000000000001, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF00000002}, + [_]u128{0x80000000000000010000000000000001, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000080000001}, + [_]u128{0x80000000000000010000000000000001, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000200000000}, + [_]u128{0x80000000000000010000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFE00000001}, + [_]u128{0x80000000000000010000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFD00000003}, + [_]u128{0x80000000000000010000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFF00000001}, + [_]u128{0x80000000000000010000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000000FFFFFFFF}, + [_]u128{0x80000000000000010000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x00000000800000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFF80000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x0000000080000000C000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000008000000080000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x00000000800000008000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFF80000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x00000000800000004000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000000000000080000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000400000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x0000000040000000FFFFFFFF80000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x0000000040000000C000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000400000008000000080000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000018000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFF80000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000014000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000010000000080000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x0000000000000000C000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000008000000080000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000000000008000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000000000004000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000080000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000018000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000017FFFFFFF80000002}, + [_]u128{0x80000000000000010000000000000001, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000014000000080000001}, + [_]u128{0x80000000000000010000000000000001, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000010000000180000000}, + [_]u128{0x80000000000000010000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFF00000001}, + [_]u128{0x80000000000000010000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFE80000002}, + [_]u128{0x80000000000000010000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000023FFFFFFF80000001}, + [_]u128{0x80000000000000010000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000800000020000000080000000}, + [_]u128{0x80000000000000010000000000000001, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000020000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001FFFFFFFF80000002}, + [_]u128{0x80000000000000010000000000000001, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001C000000080000001}, + [_]u128{0x80000000000000010000000000000001, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000180000000}, + [_]u128{0x80000000000000010000000000000001, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000100000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000080000002}, + [_]u128{0x80000000000000010000000000000001, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000014000000180000001}, + [_]u128{0x80000000000000010000000000000001, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000800000010000000280000000}, + [_]u128{0x80000000000000010000000000000001, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000028000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000400000027FFFFFFF80000002}, + [_]u128{0x80000000000000010000000000000001, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000024000000080000001}, + [_]u128{0x80000000000000010000000000000001, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000400000020000000180000000}, + [_]u128{0x80000000000000010000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000037FFFFFFF00000001}, + [_]u128{0x80000000000000010000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000037FFFFFFE80000002}, + [_]u128{0x80000000000000010000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000033FFFFFFF80000001}, + [_]u128{0x80000000000000010000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000000000030000000080000000}, + [_]u128{0x80000000000000010000000000000001, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x00000000800000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x0000000080000000FFFFFFFFAAAAAAAC}, + [_]u128{0x80000000000000010000000000000001, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x0000000080000000D555555580000001}, + [_]u128{0x80000000000000010000000000000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAAB55555556}, + [_]u128{0x80000000000000010000000000000001, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAAB00000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAAAAAAAAAAC}, + [_]u128{0x80000000000000010000000000000001, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000000800000008000000080000001}, + [_]u128{0x80000000000000010000000000000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000800000005555555655555556}, + [_]u128{0x80000000000000010000000000000001, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000555555568000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000000555555567FFFFFFFAAAAAAAC}, + [_]u128{0x80000000000000010000000000000001, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000555555565555555580000001}, + [_]u128{0x80000000000000010000000000000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000555555562AAAAAAB55555556}, + [_]u128{0x80000000000000010000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAC5555555500000001}, + [_]u128{0x80000000000000010000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAAC55555554AAAAAAAC}, + [_]u128{0x80000000000000010000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAC2AAAAAAA80000001}, + [_]u128{0x80000000000000010000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAAC0000000055555556}, + [_]u128{0x80000000000000010000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000400000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x0000000040000000FFFFFFFFC0000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x0000000040000000E000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000040000000C000000040000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x0000000040000000C000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x0000000040000000BFFFFFFFC0000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x0000000040000000A000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000400000008000000040000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000200000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x0000000020000000FFFFFFFFC0000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x0000000020000000E000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000020000000C000000040000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000014000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000000000013FFFFFFFC0000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000012000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000000000010000000040000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x80000000000000010000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x80000000000000010000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0x80000000000000010000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x80000000000000010000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x80000000000000010000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0x80000000000000010000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000010000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x80000000000000010000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0x80000000000000010000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000001}, + [_]u128{0x80000000000000010000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000010000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x80000000000000010000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000002}, + [_]u128{0x80000000000000010000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000010000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000000000001}, + [_]u128{0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000000000000000000080000000, 0x00000001000000000000000200000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000010000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000180000002, 0x00000000000000000000000000000002}, + [_]u128{0x80000000000000010000000080000000, 0x00000000000000000000000100000000, 0x00000000800000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF800000017FFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000010000000080000000, 0x00000000000000000000000180000000, 0x00000000555555555555555600000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000400000002000000090000000, 0x00000000000000000000000110000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000000000008000000000000000, 0x00000000000000010000000000000002, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000000000008000000000000001, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000002, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000000000010000000080000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000007, 0x00000000000000007FFFFFF780000007}, + [_]u128{0x80000000000000010000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000001, 0x00000000000000008000000180000000}, + [_]u128{0x80000000000000010000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x80000000000000010000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000001, 0x00000000000000002000000100000000}, + [_]u128{0x80000000000000010000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000008000000080000001}, + [_]u128{0x80000000000000010000000080000000, 0x00000000000000010000000000000000, 0x00000000000000008000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000000000010000000000000001, 0x00000000000000008000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000001, 0x00000000000000002000000000000000}, + [_]u128{0x80000000000000010000000080000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x80000000000000010000000080000000, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000000, 0x00000000000000010000000100000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000002, 0x00000000000000001FFFFFFD80000000}, + [_]u128{0x80000000000000010000000080000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000003, 0x00000000000000007FFFFFF980000003}, + [_]u128{0x80000000000000010000000080000000, 0x00000000000000018000000000000000, 0x00000000000000005555555555555556, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000000000018000000000000001, 0x00000000000000005555555555555555, 0x00000000000000012AAAAAAB2AAAAAAB}, + [_]u128{0x80000000000000010000000080000000, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E39, 0x0000000000000000E38E38E400000000}, + [_]u128{0x80000000000000010000000080000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71D, 0x0000000000000000B8E38E389C71C71D}, + [_]u128{0x80000000000000010000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000000, 0x00000000000000012000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000020000000, 0x0000000000000000E000000060000000}, + [_]u128{0x80000000000000010000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000000, 0x00000000000000010800000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000000, 0x00000000000000014000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x00000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000180000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000800000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000080000001}, + [_]u128{0x80000000000000010000000080000000, 0x00000000800000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000200000000}, + [_]u128{0x80000000000000010000000080000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF000000037FFFFFFF}, + [_]u128{0x80000000000000010000000080000000, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF80000001}, + [_]u128{0x80000000000000010000000080000000, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000100000000}, + [_]u128{0x80000000000000010000000080000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000027FFFFFFF}, + [_]u128{0x80000000000000010000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFE80000000}, + [_]u128{0x80000000000000010000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFD80000002}, + [_]u128{0x80000000000000010000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFF80000000}, + [_]u128{0x80000000000000010000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003000000017FFFFFFE}, + [_]u128{0x80000000000000010000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x00000000800000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x00000000800000010000000000000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x0000000080000000C000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000008000000100000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x00000000800000008000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x00000000800000008000000000000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x00000000800000004000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000000000000100000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000400000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000400000010000000000000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x0000000040000000C000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000400000008000000100000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000018000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000018000000000000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000014000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000010000000100000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000000000010000000000000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x0000000000000000C000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000008000000100000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000000000004000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000018000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000018000000000000001}, + [_]u128{0x80000000000000010000000080000000, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000014000000100000000}, + [_]u128{0x80000000000000010000000080000000, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C000000100000001FFFFFFFF}, + [_]u128{0x80000000000000010000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFF80000000}, + [_]u128{0x80000000000000010000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFF00000001}, + [_]u128{0x80000000000000010000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000024000000000000000}, + [_]u128{0x80000000000000010000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000008000000200000000FFFFFFFF}, + [_]u128{0x80000000000000010000000080000000, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000020000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000020000000000000001}, + [_]u128{0x80000000000000010000000080000000, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001C000000100000000}, + [_]u128{0x80000000000000010000000080000000, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000008000000180000001FFFFFFFF}, + [_]u128{0x80000000000000010000000080000000, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000180000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000100000001}, + [_]u128{0x80000000000000010000000080000000, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000014000000200000000}, + [_]u128{0x80000000000000010000000080000000, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000008000000100000002FFFFFFFF}, + [_]u128{0x80000000000000010000000080000000, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000028000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000400000028000000000000001}, + [_]u128{0x80000000000000010000000080000000, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000024000000100000000}, + [_]u128{0x80000000000000010000000080000000, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000004000000200000001FFFFFFFF}, + [_]u128{0x80000000000000010000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000037FFFFFFF80000000}, + [_]u128{0x80000000000000010000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000037FFFFFFF00000001}, + [_]u128{0x80000000000000010000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000034000000000000000}, + [_]u128{0x80000000000000010000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000000000000300000000FFFFFFFF}, + [_]u128{0x80000000000000010000000080000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x00000000800000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x0000000080000001000000002AAAAAAB}, + [_]u128{0x80000000000000010000000080000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x0000000080000000D555555600000000}, + [_]u128{0x80000000000000010000000080000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAABD5555555}, + [_]u128{0x80000000000000010000000080000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAAB80000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAAB2AAAAAAB}, + [_]u128{0x80000000000000010000000080000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000000800000008000000100000000}, + [_]u128{0x80000000000000010000000080000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000008000000055555556D5555555}, + [_]u128{0x80000000000000010000000080000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000555555568000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x0000000055555556800000002AAAAAAB}, + [_]u128{0x80000000000000010000000080000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000555555565555555600000000}, + [_]u128{0x80000000000000010000000080000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000555555562AAAAAABD5555555}, + [_]u128{0x80000000000000010000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAC5555555580000000}, + [_]u128{0x80000000000000010000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAAC555555552AAAAAAB}, + [_]u128{0x80000000000000010000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAC2AAAAAAB00000000}, + [_]u128{0x80000000000000010000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAAC00000000D5555555}, + [_]u128{0x80000000000000010000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000400000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x00000000400000010000000040000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x0000000040000000E000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000040000000C0000000C0000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x0000000040000000C000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x0000000040000000C000000040000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x0000000040000000A000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000004000000080000000C0000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000200000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x00000000200000010000000040000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x0000000020000000E000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000020000000C0000000C0000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000014000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000000000014000000040000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000012000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x000000000000000100000000C0000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x80000000000000010000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x80000000000000010000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x80000000000000010000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x80000000000000010000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x80000000000000010000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x80000000000000010000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x80000000000000010000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000010000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x80000000000000010000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000000}, + [_]u128{0x80000000000000010000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x80000000000000010000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000010000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x80000000000000010000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000000000010000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000010000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x80000000000000010000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000080000000}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000001000000000000000200000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000180000002, 0x00000000000000000000000080000001}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000800000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFF800000017FFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000180000000, 0x00000000555555555555555600000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000400000002000000090000000, 0x0000000000000000000000018FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000010000000000000002, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000002, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000007, 0x00000000000000007FFFFFF800000006}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000001, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000001, 0x0000000000000000000000017FFFFFFE}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000001, 0x0000000000000000200000017FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000008000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000008000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000001, 0x0000000000000000200000007FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000001, 0x0000000000000000000000007FFFFFFE}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000002, 0x00000000000000001FFFFFFDFFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000003, 0x00000000000000007FFFFFFA00000002}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000000000018000000000000000, 0x00000000000000005555555555555556, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000000000018000000000000001, 0x00000000000000005555555555555555, 0x00000000000000012AAAAAABAAAAAAAA}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E39, 0x0000000000000000E38E38E47FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71D, 0x0000000000000000B8E38E391C71C71C}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000000, 0x000000000000000120000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000020000000, 0x0000000000000000E0000000DFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000000, 0x000000000000000108000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000000, 0x000000000000000140000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000800000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000100000000}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000800000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF800000027FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF00000003FFFFFFFE}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000000000000}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001000000017FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000002FFFFFFFE}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFEFFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFE00000001}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFFFFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000001FFFFFFFD}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x000000008000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x0000000080000001000000007FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x0000000080000000C0000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000080000000800000017FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x0000000080000000800000007FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000008000000040000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000080000000000000017FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x000000004000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x0000000040000001000000007FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x0000000040000000C0000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000040000000800000017FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000001800000007FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000000000000140000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000001000000017FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x0000000000000000C0000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x000000000000000040000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C000000180000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000018000000080000000}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001400000017FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001000000027FFFFFFE}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFFFFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFF80000000}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002400000007FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002000000017FFFFFFE}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000008000000200000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000020000000080000000}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001C00000017FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001800000027FFFFFFE}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000008000000180000001FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000180000000}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001400000027FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001000000037FFFFFFE}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000004000000280000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000400000028000000080000000}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000040000002400000017FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000040000002000000027FFFFFFE}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000037FFFFFFFFFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000037FFFFFFF80000000}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000003400000007FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000003000000017FFFFFFE}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x000000008000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000008000000100000000AAAAAAAA}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x0000000080000000D55555567FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAAC55555554}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAABFFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAABAAAAAAAA}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x0000000080000000800000017FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000800000005555555755555554}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x000000005555555680000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x000000005555555680000000AAAAAAAA}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x0000000055555556555555567FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000555555562AAAAAAC55555554}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAC55555555FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAAC55555555AAAAAAAA}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAC2AAAAAAB7FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAAC0000000155555554}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x000000004000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x000000004000000100000000BFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x0000000040000000E0000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000040000000C00000013FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x0000000040000000C0000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x0000000040000000C0000000BFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x0000000040000000A0000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000040000000800000013FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x000000002000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000002000000100000000BFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x0000000020000000E0000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000020000000C00000013FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x000000000000000140000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x000000000000000140000000BFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x000000000000000120000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000000000001000000013FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFE}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFE}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000000FFFFFFFF}, + [_]u128{0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000000000000000000080000000, 0x00000001000000000000000200000002, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000010000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000180000002, 0x00000000000000000000000080000002}, + [_]u128{0x80000000000000010000000100000000, 0x00000000000000000000000100000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF800000017FFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0x80000000000000010000000100000000, 0x00000000000000000000000180000000, 0x00000000555555555555555600000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x000000000000000000000001FFFFFFFF, 0x00000000400000002000000090000000, 0x00000000000000000000000190000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000000000008000000000000000, 0x00000000000000010000000000000002, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000000000008000000000000001, 0x00000000000000010000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000002, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000010000000100000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000007, 0x00000000000000007FFFFFF800000007}, + [_]u128{0x80000000000000010000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000001, 0x00000000000000008000000200000000}, + [_]u128{0x80000000000000010000000100000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x80000000000000010000000100000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000001, 0x00000000000000002000000180000000}, + [_]u128{0x80000000000000010000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000008000000100000001}, + [_]u128{0x80000000000000010000000100000000, 0x00000000000000010000000000000000, 0x00000000000000008000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000000000010000000000000001, 0x00000000000000008000000000000000, 0x00000000000000008000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000001, 0x00000000000000002000000080000000}, + [_]u128{0x80000000000000010000000100000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x80000000000000010000000100000000, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000001, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000000000010000000100000000, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000002, 0x00000000000000001FFFFFFE00000000}, + [_]u128{0x80000000000000010000000100000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000003, 0x00000000000000007FFFFFFA00000003}, + [_]u128{0x80000000000000010000000100000000, 0x00000000000000018000000000000000, 0x00000000000000005555555555555556, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000000000018000000000000001, 0x00000000000000005555555555555555, 0x00000000000000012AAAAAABAAAAAAAB}, + [_]u128{0x80000000000000010000000100000000, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E39, 0x0000000000000000E38E38E480000000}, + [_]u128{0x80000000000000010000000100000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71D, 0x0000000000000000B8E38E391C71C71D}, + [_]u128{0x80000000000000010000000100000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000000, 0x00000000000000012000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000020000000, 0x0000000000000000E0000000E0000000}, + [_]u128{0x80000000000000010000000100000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000000, 0x00000000000000010800000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000000, 0x00000000000000014000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x00000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x00000000000000010000000000000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x00000000000000008000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000200000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000800000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000280000000}, + [_]u128{0x80000000000000010000000100000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF00000003FFFFFFFF}, + [_]u128{0x80000000000000010000000100000000, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000000000001}, + [_]u128{0x80000000000000010000000100000000, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000180000000}, + [_]u128{0x80000000000000010000000100000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000002FFFFFFFF}, + [_]u128{0x80000000000000010000000100000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF00000000}, + [_]u128{0x80000000000000010000000100000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFE00000002}, + [_]u128{0x80000000000000010000000100000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000038000000000000000}, + [_]u128{0x80000000000000010000000100000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000001FFFFFFFE}, + [_]u128{0x80000000000000010000000100000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x00000000800000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x00000000800000010000000080000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x0000000080000000C000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000008000000180000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x00000000800000008000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x00000000800000008000000080000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x00000000800000004000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000000000000180000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000400000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000400000010000000080000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x0000000040000000C000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000400000008000000180000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000018000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000018000000080000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000014000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000010000000180000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000000000010000000080000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x0000000000000000C000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000008000000180000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000000000008000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000000000004000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000180000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000018000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000018000000080000001}, + [_]u128{0x80000000000000010000000100000000, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000014000000180000000}, + [_]u128{0x80000000000000010000000100000000, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001000000027FFFFFFF}, + [_]u128{0x80000000000000010000000100000000, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000028000000000000000}, + [_]u128{0x80000000000000010000000100000000, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFF80000001}, + [_]u128{0x80000000000000010000000100000000, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000024000000080000000}, + [_]u128{0x80000000000000010000000100000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002000000017FFFFFFF}, + [_]u128{0x80000000000000010000000100000000, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000020000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000020000000080000001}, + [_]u128{0x80000000000000010000000100000000, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001C000000180000000}, + [_]u128{0x80000000000000010000000100000000, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001800000027FFFFFFF}, + [_]u128{0x80000000000000010000000100000000, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000200000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000180000001}, + [_]u128{0x80000000000000010000000100000000, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000014000000280000000}, + [_]u128{0x80000000000000010000000100000000, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001000000037FFFFFFF}, + [_]u128{0x80000000000000010000000100000000, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000028000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000400000028000000080000001}, + [_]u128{0x80000000000000010000000100000000, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000024000000180000000}, + [_]u128{0x80000000000000010000000100000000, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000040000002000000027FFFFFFF}, + [_]u128{0x80000000000000010000000100000000, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000038000000000000000}, + [_]u128{0x80000000000000010000000100000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000037FFFFFFF80000001}, + [_]u128{0x80000000000000010000000100000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000034000000080000000}, + [_]u128{0x80000000000000010000000100000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000003000000017FFFFFFF}, + [_]u128{0x80000000000000010000000100000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x00000000800000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000008000000100000000AAAAAAAB}, + [_]u128{0x80000000000000010000000100000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x0000000080000000D555555680000000}, + [_]u128{0x80000000000000010000000100000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAAC55555555}, + [_]u128{0x80000000000000010000000100000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAAC00000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAABAAAAAAAB}, + [_]u128{0x80000000000000010000000100000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000000800000008000000180000000}, + [_]u128{0x80000000000000010000000100000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000800000005555555755555555}, + [_]u128{0x80000000000000010000000100000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000555555568000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x000000005555555680000000AAAAAAAB}, + [_]u128{0x80000000000000010000000100000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000555555565555555680000000}, + [_]u128{0x80000000000000010000000100000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000555555562AAAAAAC55555555}, + [_]u128{0x80000000000000010000000100000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAC5555555600000000}, + [_]u128{0x80000000000000010000000100000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAAC55555555AAAAAAAB}, + [_]u128{0x80000000000000010000000100000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAC2AAAAAAB80000000}, + [_]u128{0x80000000000000010000000100000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAAC0000000155555555}, + [_]u128{0x80000000000000010000000100000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000400000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x000000004000000100000000C0000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x0000000040000000E000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000040000000C000000140000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x0000000040000000C000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x0000000040000000C0000000C0000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x0000000040000000A000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000400000008000000140000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000200000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000002000000100000000C0000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x0000000020000000E000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000020000000C000000140000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000014000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x000000000000000140000000C0000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000012000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000000000010000000140000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x80000000000000010000000100000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000010000000080000000}, + [_]u128{0x80000000000000010000000100000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000000000001}, + [_]u128{0x80000000000000010000000100000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x80000000000000010000000100000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x80000000000000010000000100000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x80000000000000010000000100000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x80000000000000010000000100000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000010000000100000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0x80000000000000010000000100000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000200000000}, + [_]u128{0x80000000000000010000000100000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x80000000000000010000000100000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000000}, + [_]u128{0x80000000000000010000000100000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000001}, + [_]u128{0x80000000000000010000000100000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x80000000000000010000000100000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000010000000100000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000010000000100000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000010000000100000001, 0x00000000000000000000000080000000, 0x00000001000000000000000200000002, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000010000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000180000002, 0x00000000000000000000000080000003}, + [_]u128{0x80000000000000010000000100000001, 0x00000000000000000000000100000000, 0x00000000800000000000000100000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFF800000017FFFFFFF, 0x00000000000000000000000080000002}, + [_]u128{0x80000000000000010000000100000001, 0x00000000000000000000000180000000, 0x00000000555555555555555600000000, 0x00000000000000000000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x000000000000000000000001FFFFFFFF, 0x00000000400000002000000090000000, 0x00000000000000000000000190000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000000000008000000000000000, 0x00000000000000010000000000000002, 0x00000000000000000000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000000000008000000000000001, 0x00000000000000010000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000002, 0x00000000000000008000000000000001}, + [_]u128{0x80000000000000010000000100000001, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000007, 0x00000000000000007FFFFFF800000008}, + [_]u128{0x80000000000000010000000100000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000001, 0x00000000000000008000000200000001}, + [_]u128{0x80000000000000010000000100000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000001, 0x00000000000000000000000180000000}, + [_]u128{0x80000000000000010000000100000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000001, 0x00000000000000002000000180000001}, + [_]u128{0x80000000000000010000000100000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000008000000100000002}, + [_]u128{0x80000000000000010000000100000001, 0x00000000000000010000000000000000, 0x00000000000000008000000000000001, 0x00000000000000000000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000000000010000000000000001, 0x00000000000000008000000000000000, 0x00000000000000008000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000001, 0x00000000000000002000000080000001}, + [_]u128{0x80000000000000010000000100000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x0000000000000000FFFFFFFF80000002}, + [_]u128{0x80000000000000010000000100000001, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000001, 0x00000000000000008000000000000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000010000000100000001, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000002, 0x00000000000000001FFFFFFE00000001}, + [_]u128{0x80000000000000010000000100000001, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000003, 0x00000000000000007FFFFFFA00000004}, + [_]u128{0x80000000000000010000000100000001, 0x00000000000000018000000000000000, 0x00000000000000005555555555555556, 0x00000000000000000000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000000000018000000000000001, 0x00000000000000005555555555555555, 0x00000000000000012AAAAAABAAAAAAAC}, + [_]u128{0x80000000000000010000000100000001, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E39, 0x0000000000000000E38E38E480000001}, + [_]u128{0x80000000000000010000000100000001, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71D, 0x0000000000000000B8E38E391C71C71E}, + [_]u128{0x80000000000000010000000100000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000000, 0x00000000000000012000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000020000000, 0x0000000000000000E0000000E0000001}, + [_]u128{0x80000000000000010000000100000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000000, 0x00000000000000010800000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000000, 0x00000000000000014000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x00000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x00000000000000010000000000000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x00000000000000008000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000200000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000800000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000280000001}, + [_]u128{0x80000000000000010000000100000001, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000400000000}, + [_]u128{0x80000000000000010000000100000001, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000000000002}, + [_]u128{0x80000000000000010000000100000001, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000180000001}, + [_]u128{0x80000000000000010000000100000001, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000300000000}, + [_]u128{0x80000000000000010000000100000001, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF00000001}, + [_]u128{0x80000000000000010000000100000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFE00000003}, + [_]u128{0x80000000000000010000000100000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000038000000000000001}, + [_]u128{0x80000000000000010000000100000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000001FFFFFFFF}, + [_]u128{0x80000000000000010000000100000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x00000000800000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x00000000800000010000000080000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x0000000080000000C000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000008000000180000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x00000000800000008000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x00000000800000008000000080000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x00000000800000004000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000000000000180000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000400000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000400000010000000080000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x0000000040000000C000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000400000008000000180000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000018000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000018000000080000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000014000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000010000000180000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000000000010000000080000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x0000000000000000C000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000008000000180000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000000000008000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000000000008000000080000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000000000004000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000180000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000018000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000018000000080000002}, + [_]u128{0x80000000000000010000000100000001, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000014000000180000001}, + [_]u128{0x80000000000000010000000100000001, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000010000000280000000}, + [_]u128{0x80000000000000010000000100000001, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000028000000000000001}, + [_]u128{0x80000000000000010000000100000001, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFF80000002}, + [_]u128{0x80000000000000010000000100000001, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000024000000080000001}, + [_]u128{0x80000000000000010000000100000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000800000020000000180000000}, + [_]u128{0x80000000000000010000000100000001, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000020000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000020000000080000002}, + [_]u128{0x80000000000000010000000100000001, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001C000000180000001}, + [_]u128{0x80000000000000010000000100000001, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000280000000}, + [_]u128{0x80000000000000010000000100000001, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000200000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000180000002}, + [_]u128{0x80000000000000010000000100000001, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000014000000280000001}, + [_]u128{0x80000000000000010000000100000001, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000800000010000000380000000}, + [_]u128{0x80000000000000010000000100000001, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000028000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000400000028000000080000002}, + [_]u128{0x80000000000000010000000100000001, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000024000000180000001}, + [_]u128{0x80000000000000010000000100000001, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000400000020000000280000000}, + [_]u128{0x80000000000000010000000100000001, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000038000000000000001}, + [_]u128{0x80000000000000010000000100000001, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000037FFFFFFF80000002}, + [_]u128{0x80000000000000010000000100000001, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000034000000080000001}, + [_]u128{0x80000000000000010000000100000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000000000030000000180000000}, + [_]u128{0x80000000000000010000000100000001, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x00000000800000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000008000000100000000AAAAAAAC}, + [_]u128{0x80000000000000010000000100000001, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x0000000080000000D555555680000001}, + [_]u128{0x80000000000000010000000100000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAAC55555556}, + [_]u128{0x80000000000000010000000100000001, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAAC00000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAABAAAAAAAC}, + [_]u128{0x80000000000000010000000100000001, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000000800000008000000180000001}, + [_]u128{0x80000000000000010000000100000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000800000005555555755555556}, + [_]u128{0x80000000000000010000000100000001, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000555555568000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x000000005555555680000000AAAAAAAC}, + [_]u128{0x80000000000000010000000100000001, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000555555565555555680000001}, + [_]u128{0x80000000000000010000000100000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000555555562AAAAAAC55555556}, + [_]u128{0x80000000000000010000000100000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAC5555555600000001}, + [_]u128{0x80000000000000010000000100000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAAC55555555AAAAAAAC}, + [_]u128{0x80000000000000010000000100000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAC2AAAAAAB80000001}, + [_]u128{0x80000000000000010000000100000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAAC0000000155555556}, + [_]u128{0x80000000000000010000000100000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000400000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x000000004000000100000000C0000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x0000000040000000E000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000040000000C000000140000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x0000000040000000C000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x0000000040000000C0000000C0000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x0000000040000000A000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000400000008000000140000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000200000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000002000000100000000C0000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x0000000020000000E000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000020000000C000000140000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000014000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x000000000000000140000000C0000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000012000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000000000010000000140000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000010000000100000000}, + [_]u128{0x80000000000000010000000100000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000010000000080000001}, + [_]u128{0x80000000000000010000000100000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000000000002}, + [_]u128{0x80000000000000010000000100000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x80000000000000010000000100000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x80000000000000010000000100000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0x80000000000000010000000100000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x80000000000000010000000100000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000001}, + [_]u128{0x80000000000000010000000100000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000002}, + [_]u128{0x80000000000000010000000100000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000200000001}, + [_]u128{0x80000000000000010000000100000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000000000000200000000}, + [_]u128{0x80000000000000010000000100000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000001}, + [_]u128{0x80000000000000010000000100000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000002}, + [_]u128{0x80000000000000010000000100000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000010000000100000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x80000000000000010000000100000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000002}, + [_]u128{0x80000000000000010000000100000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000010000000100000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000100000001}, + [_]u128{0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000000000000000000080000000, 0x00000001000000000000000200000003, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000010000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000180000003, 0x00000000000000000000000000000003}, + [_]u128{0x80000000000000010000000180000000, 0x00000000000000000000000100000000, 0x00000000800000000000000100000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF8000000180000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000000000000000000180000000, 0x00000000555555555555555600000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000010000000180000000, 0x000000000000000000000001FFFFFFFF, 0x00000000400000002000000090000001, 0x00000000000000000000000010000001}, + [_]u128{0x80000000000000010000000180000000, 0x00000000000000008000000000000000, 0x00000000000000010000000000000002, 0x00000000000000000000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000000000008000000000000001, 0x00000000000000010000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000003, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000010000000180000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000007, 0x00000000000000007FFFFFF880000007}, + [_]u128{0x80000000000000010000000180000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000001, 0x00000000000000008000000280000000}, + [_]u128{0x80000000000000010000000180000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x80000000000000010000000180000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000001, 0x00000000000000002000000200000000}, + [_]u128{0x80000000000000010000000180000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000008000000180000001}, + [_]u128{0x80000000000000010000000180000000, 0x00000000000000010000000000000000, 0x00000000000000008000000000000001, 0x00000000000000000000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000000000010000000000000001, 0x00000000000000008000000000000000, 0x00000000000000008000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000001, 0x00000000000000002000000100000000}, + [_]u128{0x80000000000000010000000180000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x00000000000000010000000000000001}, + [_]u128{0x80000000000000010000000180000000, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000001, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x80000000000000010000000180000000, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000002, 0x00000000000000001FFFFFFE80000000}, + [_]u128{0x80000000000000010000000180000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000003, 0x00000000000000007FFFFFFA80000003}, + [_]u128{0x80000000000000010000000180000000, 0x00000000000000018000000000000000, 0x00000000000000005555555555555556, 0x00000000000000000000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000000000018000000000000001, 0x00000000000000005555555555555555, 0x00000000000000012AAAAAAC2AAAAAAB}, + [_]u128{0x80000000000000010000000180000000, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E39, 0x0000000000000000E38E38E500000000}, + [_]u128{0x80000000000000010000000180000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71D, 0x0000000000000000B8E38E399C71C71D}, + [_]u128{0x80000000000000010000000180000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000000, 0x00000000000000012000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000020000000, 0x0000000000000000E000000160000000}, + [_]u128{0x80000000000000010000000180000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000000, 0x00000000000000010800000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000000, 0x00000000000000014000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x00000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x00000000000000010000000080000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x00000000000000008000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000280000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x00000000000000000000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000800000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000300000000}, + [_]u128{0x80000000000000010000000180000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF000000047FFFFFFF}, + [_]u128{0x80000000000000010000000180000000, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000080000001}, + [_]u128{0x80000000000000010000000180000000, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000200000000}, + [_]u128{0x80000000000000010000000180000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000037FFFFFFF}, + [_]u128{0x80000000000000010000000180000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF80000000}, + [_]u128{0x80000000000000010000000180000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFE80000002}, + [_]u128{0x80000000000000010000000180000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000038000000080000000}, + [_]u128{0x80000000000000010000000180000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003000000027FFFFFFE}, + [_]u128{0x80000000000000010000000180000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x00000000800000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x00000000800000010000000100000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x0000000080000000C000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000008000000200000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x00000000800000008000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x00000000800000008000000100000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x00000000800000004000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000000000000200000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000400000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000400000010000000100000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x0000000040000000C000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000400000008000000200000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000018000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000018000000100000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000014000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000010000000200000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000000000010000000100000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x0000000000000000C000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000008000000200000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000000000008000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000000000008000000100000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000000000004000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000200000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000018000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000018000000100000001}, + [_]u128{0x80000000000000010000000180000000, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000014000000200000000}, + [_]u128{0x80000000000000010000000180000000, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C000000100000002FFFFFFFF}, + [_]u128{0x80000000000000010000000180000000, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000028000000080000000}, + [_]u128{0x80000000000000010000000180000000, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000028000000000000001}, + [_]u128{0x80000000000000010000000180000000, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000024000000100000000}, + [_]u128{0x80000000000000010000000180000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000008000000200000001FFFFFFFF}, + [_]u128{0x80000000000000010000000180000000, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000020000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000020000000100000001}, + [_]u128{0x80000000000000010000000180000000, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001C000000200000000}, + [_]u128{0x80000000000000010000000180000000, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000008000000180000002FFFFFFFF}, + [_]u128{0x80000000000000010000000180000000, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000280000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000200000001}, + [_]u128{0x80000000000000010000000180000000, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000014000000300000000}, + [_]u128{0x80000000000000010000000180000000, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000008000000100000003FFFFFFFF}, + [_]u128{0x80000000000000010000000180000000, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000028000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000400000028000000100000001}, + [_]u128{0x80000000000000010000000180000000, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000024000000200000000}, + [_]u128{0x80000000000000010000000180000000, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000004000000200000002FFFFFFFF}, + [_]u128{0x80000000000000010000000180000000, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000038000000080000000}, + [_]u128{0x80000000000000010000000180000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000038000000000000001}, + [_]u128{0x80000000000000010000000180000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000034000000100000000}, + [_]u128{0x80000000000000010000000180000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000000000000300000001FFFFFFFF}, + [_]u128{0x80000000000000010000000180000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x00000000800000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x0000000080000001000000012AAAAAAB}, + [_]u128{0x80000000000000010000000180000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x0000000080000000D555555700000000}, + [_]u128{0x80000000000000010000000180000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAACD5555555}, + [_]u128{0x80000000000000010000000180000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAAC80000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAAC2AAAAAAB}, + [_]u128{0x80000000000000010000000180000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000000800000008000000200000000}, + [_]u128{0x80000000000000010000000180000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000008000000055555557D5555555}, + [_]u128{0x80000000000000010000000180000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000555555568000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x0000000055555556800000012AAAAAAB}, + [_]u128{0x80000000000000010000000180000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000555555565555555700000000}, + [_]u128{0x80000000000000010000000180000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000555555562AAAAAACD5555555}, + [_]u128{0x80000000000000010000000180000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAC5555555680000000}, + [_]u128{0x80000000000000010000000180000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAAC555555562AAAAAAB}, + [_]u128{0x80000000000000010000000180000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAC2AAAAAAC00000000}, + [_]u128{0x80000000000000010000000180000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAAC00000001D5555555}, + [_]u128{0x80000000000000010000000180000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000400000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x00000000400000010000000140000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x0000000040000000E000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000040000000C0000001C0000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x0000000040000000C000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x0000000040000000C000000140000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x0000000040000000A000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000004000000080000001C0000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000200000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x00000000200000010000000140000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x0000000020000000E000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000020000000C0000001C0000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000014000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000000000014000000140000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000012000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x000000000000000100000001C0000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001000000017FFFFFFF}, + [_]u128{0x80000000000000010000000180000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000010000000100000000}, + [_]u128{0x80000000000000010000000180000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000080000001}, + [_]u128{0x80000000000000010000000180000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000010000000080000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x80000000000000010000000180000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x80000000000000010000000180000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x80000000000000010000000180000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x80000000000000010000000180000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x80000000000000010000000180000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000080000001}, + [_]u128{0x80000000000000010000000180000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000280000000}, + [_]u128{0x80000000000000010000000180000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x80000000000000010000000180000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000200000000}, + [_]u128{0x80000000000000010000000180000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000180000001}, + [_]u128{0x80000000000000010000000180000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x80000000000000010000000180000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000010000000180000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x80000000000000010000000180000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000000000010000000180000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000010000000180000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x80000000000000010000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000010000000180000000}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000001000000000000000200000003, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000180000003, 0x00000000000000000000000080000002}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000800000000000000100000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFF8000000180000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000180000000, 0x00000000555555555555555600000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000400000002000000090000001, 0x00000000000000000000000090000000}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000010000000000000002, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000010000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000003, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000007, 0x00000000000000007FFFFFF900000006}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000001, 0x000000000000000080000002FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000001, 0x0000000000000000000000027FFFFFFE}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000001, 0x0000000000000000200000027FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000008000000200000000}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000008000000000000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000008000000000000000, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000001, 0x0000000000000000200000017FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x00000000000000010000000080000000}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000001, 0x0000000000000000000000017FFFFFFE}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000002, 0x00000000000000001FFFFFFEFFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000003, 0x00000000000000007FFFFFFB00000002}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000000000018000000000000000, 0x00000000000000005555555555555556, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000000000018000000000000001, 0x00000000000000005555555555555555, 0x00000000000000012AAAAAACAAAAAAAA}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E39, 0x0000000000000000E38E38E57FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71D, 0x0000000000000000B8E38E3A1C71C71C}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000000, 0x000000000000000120000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000020000000, 0x0000000000000000E0000001DFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000000, 0x000000000000000108000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000000, 0x000000000000000140000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000800000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF800000037FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF00000004FFFFFFFE}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000180000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000100000000}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001000000027FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000003FFFFFFFE}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFFFFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF00000001}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000380000000FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000002FFFFFFFD}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x000000008000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x0000000080000001000000017FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x0000000080000000C0000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000080000000800000027FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000008000000080000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x0000000080000000800000017FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000008000000040000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000080000000000000027FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x000000004000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x0000000040000001000000017FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x0000000040000000C0000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000040000000800000027FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000000000000180000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000001800000017FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000000000000140000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000001000000027FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x0000000000000001000000017FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x0000000000000000C0000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000800000027FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x000000000000000040000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C000000180000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000018000000180000000}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001400000027FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001000000037FFFFFFE}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x000000008000000280000000FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000028000000080000000}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002400000017FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002000000027FFFFFFE}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000008000000200000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000020000000180000000}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001C00000027FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001800000037FFFFFFE}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000008000000180000002FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000280000000}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001400000037FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001000000047FFFFFFE}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000004000000280000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000400000028000000180000000}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000040000002400000027FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000040000002000000037FFFFFFE}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x000000000000000380000000FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000038000000080000000}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000003400000017FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000003000000027FFFFFFE}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x000000008000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000008000000100000001AAAAAAAA}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x0000000080000000D55555577FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAAD55555554}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAACFFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x0000000080000000AAAAAAACAAAAAAAA}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x0000000080000000800000027FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000800000005555555855555554}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x000000005555555680000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x000000005555555680000001AAAAAAAA}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x0000000055555556555555577FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000555555562AAAAAAD55555554}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAC55555556FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAAC55555556AAAAAAAA}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAC2AAAAAAC7FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAAC0000000255555554}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x000000004000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x000000004000000100000001BFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x0000000040000000E0000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000040000000C00000023FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x0000000040000000C0000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x0000000040000000C0000001BFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x0000000040000000A0000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000040000000800000023FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x000000002000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000002000000100000001BFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x0000000020000000E0000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000020000000C00000023FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x000000000000000140000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x000000000000000140000001BFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x000000000000000120000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000000000001000000023FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000100000001FFFFFFFE}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001000000017FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000100000000}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFE}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x000000000000000080000001FFFFFFFE}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000002FFFFFFFE}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000200000000}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x800000000000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000100000001FFFFFFFF}, + [_]u128{0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000000000000000000080000000, 0x00000001000000000000000300000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000200000002, 0x00000000000000000000000000000002}, + [_]u128{0x80000000000000018000000000000000, 0x00000000000000000000000100000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF80000001FFFFFFFE, 0x00000000000000000000000000000002}, + [_]u128{0x80000000000000018000000000000000, 0x00000000000000000000000180000000, 0x00000000555555555555555655555555, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000018000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000004000000020000000D0000000, 0x000000000000000000000000D0000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000000000008000000000000000, 0x00000000000000010000000000000003, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000000000008000000000000001, 0x00000000000000010000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000003, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x80000000000000018000000000000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000008, 0x00000000000000007FFFFFF600000008}, + [_]u128{0x80000000000000018000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000002, 0x00000000000000000000000200000000}, + [_]u128{0x80000000000000018000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x80000000000000018000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000001, 0x0000000000000000A000000080000000}, + [_]u128{0x80000000000000018000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000002, 0x00000000000000000000000000000002}, + [_]u128{0x80000000000000018000000000000000, 0x00000000000000010000000000000000, 0x00000000000000008000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000000000010000000000000001, 0x00000000000000008000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000001, 0x00000000000000009FFFFFFF80000000}, + [_]u128{0x80000000000000018000000000000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000002, 0x00000000000000007FFFFFFD80000002}, + [_]u128{0x80000000000000018000000000000000, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x80000000000000018000000000000000, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000002, 0x00000000000000009FFFFFFD00000000}, + [_]u128{0x80000000000000018000000000000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000003, 0x0000000000000000FFFFFFF900000003}, + [_]u128{0x80000000000000018000000000000000, 0x00000000000000018000000000000000, 0x00000000000000005555555555555556, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000000000018000000000000001, 0x00000000000000005555555555555556, 0x00000000000000002AAAAAAAAAAAAAAA}, + [_]u128{0x80000000000000018000000000000000, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E39, 0x0000000000000001638E38E380000000}, + [_]u128{0x80000000000000018000000000000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71D, 0x000000000000000138E38E381C71C71D}, + [_]u128{0x80000000000000018000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000000, 0x0000000000000001A000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000020000000, 0x00000000000000015FFFFFFFE0000000}, + [_]u128{0x80000000000000018000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000000, 0x00000000000000018800000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000000, 0x0000000000000001C000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x00000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x00000000000000010000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000008000000100000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000800000000000000180000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF80000002FFFFFFFF}, + [_]u128{0x80000000000000018000000000000000, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x80000000000000018000000000000000, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000080000000}, + [_]u128{0x80000000000000018000000000000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x80000000000000018000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFE00000000}, + [_]u128{0x80000000000000018000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFD00000002}, + [_]u128{0x80000000000000018000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF00000000}, + [_]u128{0x80000000000000018000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000380000000FFFFFFFE}, + [_]u128{0x80000000000000018000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x00000000800000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x00000000800000017FFFFFFF80000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x00000000800000014000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000010000000080000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x00000000800000010000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x0000000080000000C000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000008000000080000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000400000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000400000017FFFFFFF80000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x00000000400000014000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000400000010000000080000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000020000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000000000001C000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000018000000080000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x00000000000000014000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000010000000080000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000000000010000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x0000000000000000C000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000020000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001FFFFFFFF80000001}, + [_]u128{0x80000000000000018000000000000000, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001C000000080000000}, + [_]u128{0x80000000000000018000000000000000, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001800000017FFFFFFF}, + [_]u128{0x80000000000000018000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFF00000000}, + [_]u128{0x80000000000000018000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFE80000001}, + [_]u128{0x80000000000000018000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002BFFFFFFF80000000}, + [_]u128{0x80000000000000018000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002800000007FFFFFFF}, + [_]u128{0x80000000000000018000000000000000, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000028000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFF80000001}, + [_]u128{0x80000000000000018000000000000000, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000024000000080000000}, + [_]u128{0x80000000000000018000000000000000, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002000000017FFFFFFF}, + [_]u128{0x80000000000000018000000000000000, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000020000000100000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000020000000080000001}, + [_]u128{0x80000000000000018000000000000000, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001C000000180000000}, + [_]u128{0x80000000000000018000000000000000, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001800000027FFFFFFF}, + [_]u128{0x80000000000000018000000000000000, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000030000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x0000000040000002FFFFFFFF80000001}, + [_]u128{0x80000000000000018000000000000000, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000040000002C000000080000000}, + [_]u128{0x80000000000000018000000000000000, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000040000002800000017FFFFFFF}, + [_]u128{0x80000000000000018000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000003FFFFFFFF00000000}, + [_]u128{0x80000000000000018000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000000000003FFFFFFFE80000001}, + [_]u128{0x80000000000000018000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000003BFFFFFFF80000000}, + [_]u128{0x80000000000000018000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000003800000007FFFFFFF}, + [_]u128{0x80000000000000018000000000000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x00000000800000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x00000000800000017FFFFFFFAAAAAAAB}, + [_]u128{0x80000000000000018000000000000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x00000000800000015555555580000000}, + [_]u128{0x80000000000000018000000000000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000800000012AAAAAAB55555555}, + [_]u128{0x80000000000000018000000000000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x00000000800000012AAAAAAB00000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x00000000800000012AAAAAAAAAAAAAAB}, + [_]u128{0x80000000000000018000000000000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000000800000010000000080000000}, + [_]u128{0x80000000000000018000000000000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000080000000D555555655555555}, + [_]u128{0x80000000000000018000000000000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000555555570000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x0000000055555556FFFFFFFFAAAAAAAB}, + [_]u128{0x80000000000000018000000000000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x0000000055555556D555555580000000}, + [_]u128{0x80000000000000018000000000000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000055555556AAAAAAAB55555555}, + [_]u128{0x80000000000000018000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAACD555555500000000}, + [_]u128{0x80000000000000018000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAACD5555554AAAAAAAB}, + [_]u128{0x80000000000000018000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAACAAAAAAAA80000000}, + [_]u128{0x80000000000000018000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAAC8000000055555555}, + [_]u128{0x80000000000000018000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000400000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x00000000400000017FFFFFFFC0000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x00000000400000016000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000400000014000000040000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x00000000400000014000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x00000000400000013FFFFFFFC0000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000400000012000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000400000010000000040000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000200000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x00000000200000017FFFFFFFC0000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x00000000200000016000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000200000014000000040000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x0000000000000001C000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x0000000000000001BFFFFFFFC0000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x0000000000000001A000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000000000018000000040000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0x80000000000000018000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x80000000000000018000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x80000000000000018000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFEFFFFFFFF}, + [_]u128{0x80000000000000018000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE80000000}, + [_]u128{0x80000000000000018000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE00000001}, + [_]u128{0x80000000000000018000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x80000000000000018000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x80000000000000018000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x80000000000000018000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x80000000000000018000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x80000000000000018000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000018000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0x80000000000000018000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x80000000000000018000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000000000018000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x80000000000000018000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x80000000000000018000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x80000000000000018000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x80000000000000018000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000018000000000000001, 0x00000000000000000000000080000000, 0x00000001000000000000000300000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000200000002, 0x00000000000000000000000000000003}, + [_]u128{0x80000000000000018000000000000001, 0x00000000000000000000000100000000, 0x00000000800000000000000180000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFF80000001FFFFFFFE, 0x00000000000000000000000000000003}, + [_]u128{0x80000000000000018000000000000001, 0x00000000000000000000000180000000, 0x00000000555555555555555655555555, 0x00000000000000000000000080000001}, + [_]u128{0x80000000000000018000000000000001, 0x000000000000000000000001FFFFFFFF, 0x000000004000000020000000D0000000, 0x000000000000000000000000D0000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000000000000008000000000000000, 0x00000000000000010000000000000003, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000000000000008000000000000001, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000018000000000000001, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000003, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x80000000000000018000000000000001, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000008, 0x00000000000000007FFFFFF600000009}, + [_]u128{0x80000000000000018000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000002, 0x00000000000000000000000200000001}, + [_]u128{0x80000000000000018000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000001, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000018000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000001, 0x0000000000000000A000000080000001}, + [_]u128{0x80000000000000018000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000002, 0x00000000000000000000000000000003}, + [_]u128{0x80000000000000018000000000000001, 0x00000000000000010000000000000000, 0x00000000000000008000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000000000000010000000000000001, 0x00000000000000008000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000018000000000000001, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000001, 0x00000000000000009FFFFFFF80000001}, + [_]u128{0x80000000000000018000000000000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000002, 0x00000000000000007FFFFFFD80000003}, + [_]u128{0x80000000000000018000000000000001, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000000000018000000000000001, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000002, 0x00000000000000009FFFFFFD00000001}, + [_]u128{0x80000000000000018000000000000001, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000003, 0x0000000000000000FFFFFFF900000004}, + [_]u128{0x80000000000000018000000000000001, 0x00000000000000018000000000000000, 0x00000000000000005555555555555556, 0x00000000000000008000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000000000000018000000000000001, 0x00000000000000005555555555555556, 0x00000000000000002AAAAAAAAAAAAAAB}, + [_]u128{0x80000000000000018000000000000001, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E39, 0x0000000000000001638E38E380000001}, + [_]u128{0x80000000000000018000000000000001, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71D, 0x000000000000000138E38E381C71C71E}, + [_]u128{0x80000000000000018000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000000, 0x0000000000000001A000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000020000000, 0x00000000000000015FFFFFFFE0000001}, + [_]u128{0x80000000000000018000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000000, 0x00000000000000018800000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000000, 0x0000000000000001C000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x00000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x00000000000000010000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000008000000100000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000000800000000000000180000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000300000000}, + [_]u128{0x80000000000000018000000000000001, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000002}, + [_]u128{0x80000000000000018000000000000001, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000080000001}, + [_]u128{0x80000000000000018000000000000001, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000200000000}, + [_]u128{0x80000000000000018000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFE00000001}, + [_]u128{0x80000000000000018000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFD00000003}, + [_]u128{0x80000000000000018000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF00000001}, + [_]u128{0x80000000000000018000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000380000000FFFFFFFF}, + [_]u128{0x80000000000000018000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x00000000800000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x00000000800000017FFFFFFF80000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x00000000800000014000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000010000000080000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x00000000800000010000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFF80000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x0000000080000000C000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000008000000080000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000400000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000400000017FFFFFFF80000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x00000000400000014000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000400000010000000080000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000020000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFF80000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000000000001C000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000018000000080000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFF80000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x00000000000000014000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000010000000080000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000000000010000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x0000000000000000C000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000008000000080000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000020000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001FFFFFFFF80000002}, + [_]u128{0x80000000000000018000000000000001, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001C000000080000001}, + [_]u128{0x80000000000000018000000000000001, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000018000000180000000}, + [_]u128{0x80000000000000018000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFF00000001}, + [_]u128{0x80000000000000018000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFE80000002}, + [_]u128{0x80000000000000018000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002BFFFFFFF80000001}, + [_]u128{0x80000000000000018000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000800000028000000080000000}, + [_]u128{0x80000000000000018000000000000001, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000028000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFF80000002}, + [_]u128{0x80000000000000018000000000000001, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000024000000080000001}, + [_]u128{0x80000000000000018000000000000001, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000800000020000000180000000}, + [_]u128{0x80000000000000018000000000000001, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000020000000100000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000020000000080000002}, + [_]u128{0x80000000000000018000000000000001, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001C000000180000001}, + [_]u128{0x80000000000000018000000000000001, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000800000018000000280000000}, + [_]u128{0x80000000000000018000000000000001, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000030000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x0000000040000002FFFFFFFF80000002}, + [_]u128{0x80000000000000018000000000000001, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000040000002C000000080000001}, + [_]u128{0x80000000000000018000000000000001, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000400000028000000180000000}, + [_]u128{0x80000000000000018000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000003FFFFFFFF00000001}, + [_]u128{0x80000000000000018000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000000000003FFFFFFFE80000002}, + [_]u128{0x80000000000000018000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000003BFFFFFFF80000001}, + [_]u128{0x80000000000000018000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000000000038000000080000000}, + [_]u128{0x80000000000000018000000000000001, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x00000000800000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x00000000800000017FFFFFFFAAAAAAAC}, + [_]u128{0x80000000000000018000000000000001, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x00000000800000015555555580000001}, + [_]u128{0x80000000000000018000000000000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000800000012AAAAAAB55555556}, + [_]u128{0x80000000000000018000000000000001, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x00000000800000012AAAAAAB00000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x00000000800000012AAAAAAAAAAAAAAC}, + [_]u128{0x80000000000000018000000000000001, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000000800000010000000080000001}, + [_]u128{0x80000000000000018000000000000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000080000000D555555655555556}, + [_]u128{0x80000000000000018000000000000001, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000555555570000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x0000000055555556FFFFFFFFAAAAAAAC}, + [_]u128{0x80000000000000018000000000000001, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x0000000055555556D555555580000001}, + [_]u128{0x80000000000000018000000000000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000055555556AAAAAAAB55555556}, + [_]u128{0x80000000000000018000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAACD555555500000001}, + [_]u128{0x80000000000000018000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAACD5555554AAAAAAAC}, + [_]u128{0x80000000000000018000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAACAAAAAAAA80000001}, + [_]u128{0x80000000000000018000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAAC8000000055555556}, + [_]u128{0x80000000000000018000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000400000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x00000000400000017FFFFFFFC0000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x00000000400000016000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000400000014000000040000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x00000000400000014000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x00000000400000013FFFFFFFC0000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000400000012000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000400000010000000040000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000200000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x00000000200000017FFFFFFFC0000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x00000000200000016000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000200000014000000040000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x0000000000000001C000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x0000000000000001BFFFFFFFC0000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x0000000000000001A000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000000000018000000040000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000018000000000000000}, + [_]u128{0x80000000000000018000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF80000001}, + [_]u128{0x80000000000000018000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000002}, + [_]u128{0x80000000000000018000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x80000000000000018000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0x80000000000000018000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE00000002}, + [_]u128{0x80000000000000018000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x80000000000000018000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x80000000000000018000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0x80000000000000018000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000008000000100000001}, + [_]u128{0x80000000000000018000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x80000000000000018000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000001}, + [_]u128{0x80000000000000018000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000002}, + [_]u128{0x80000000000000018000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000018000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x80000000000000018000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0x80000000000000018000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000000000018000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x80000000000000018000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x80000000000000018000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000018000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000000000001}, + [_]u128{0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000000000000000000080000000, 0x00000001000000000000000300000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000018000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000200000002, 0x00000000000000000000000080000002}, + [_]u128{0x80000000000000018000000080000000, 0x00000000000000000000000100000000, 0x00000000800000000000000180000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF80000001FFFFFFFE, 0x00000000000000000000000080000002}, + [_]u128{0x80000000000000018000000080000000, 0x00000000000000000000000180000000, 0x00000000555555555555555655555555, 0x00000000000000000000000100000000}, + [_]u128{0x80000000000000018000000080000000, 0x000000000000000000000001FFFFFFFF, 0x000000004000000020000000D0000000, 0x00000000000000000000000150000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000000000008000000000000000, 0x00000000000000010000000000000003, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000000000008000000000000001, 0x00000000000000010000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000000000018000000080000000, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000003, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000000000018000000080000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000008, 0x00000000000000007FFFFFF680000008}, + [_]u128{0x80000000000000018000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000002, 0x00000000000000000000000280000000}, + [_]u128{0x80000000000000018000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x80000000000000018000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000001, 0x0000000000000000A000000100000000}, + [_]u128{0x80000000000000018000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000002, 0x00000000000000000000000080000002}, + [_]u128{0x80000000000000018000000080000000, 0x00000000000000010000000000000000, 0x00000000000000008000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000000000010000000000000001, 0x00000000000000008000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000000000018000000080000000, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000001, 0x0000000000000000A000000000000000}, + [_]u128{0x80000000000000018000000080000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000002, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x80000000000000018000000080000000, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x80000000000000018000000080000000, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000002, 0x00000000000000009FFFFFFD80000000}, + [_]u128{0x80000000000000018000000080000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000003, 0x0000000000000000FFFFFFF980000003}, + [_]u128{0x80000000000000018000000080000000, 0x00000000000000018000000000000000, 0x00000000000000005555555555555556, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000000000018000000000000001, 0x00000000000000005555555555555556, 0x00000000000000002AAAAAAB2AAAAAAA}, + [_]u128{0x80000000000000018000000080000000, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E39, 0x0000000000000001638E38E400000000}, + [_]u128{0x80000000000000018000000080000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71D, 0x000000000000000138E38E389C71C71D}, + [_]u128{0x80000000000000018000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000000, 0x0000000000000001A000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000020000000, 0x00000000000000016000000060000000}, + [_]u128{0x80000000000000018000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000000, 0x00000000000000018800000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000000, 0x0000000000000001C000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x00000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x00000000000000010000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000008000000180000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000800000000000000180000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF800000037FFFFFFF}, + [_]u128{0x80000000000000018000000080000000, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000001}, + [_]u128{0x80000000000000018000000080000000, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000100000000}, + [_]u128{0x80000000000000018000000080000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001000000027FFFFFFF}, + [_]u128{0x80000000000000018000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFE80000000}, + [_]u128{0x80000000000000018000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFD80000002}, + [_]u128{0x80000000000000018000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF80000000}, + [_]u128{0x80000000000000018000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003800000017FFFFFFE}, + [_]u128{0x80000000000000018000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x00000000800000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x00000000800000018000000000000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x00000000800000014000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000010000000100000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x00000000800000010000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x00000000800000010000000000000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x0000000080000000C000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000008000000100000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000400000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000400000018000000000000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x00000000400000014000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000400000010000000100000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000020000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000020000000000000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000000000001C000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000018000000100000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000000000018000000000000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x00000000000000014000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000010000000100000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000000000010000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000000000010000000000000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x0000000000000000C000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000008000000100000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000020000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000020000000000000001}, + [_]u128{0x80000000000000018000000080000000, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001C000000100000000}, + [_]u128{0x80000000000000018000000080000000, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C000000180000001FFFFFFFF}, + [_]u128{0x80000000000000018000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFF80000000}, + [_]u128{0x80000000000000018000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFF00000001}, + [_]u128{0x80000000000000018000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002C000000000000000}, + [_]u128{0x80000000000000018000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000008000000280000000FFFFFFFF}, + [_]u128{0x80000000000000018000000080000000, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000028000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000028000000000000001}, + [_]u128{0x80000000000000018000000080000000, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000024000000100000000}, + [_]u128{0x80000000000000018000000080000000, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000008000000200000001FFFFFFFF}, + [_]u128{0x80000000000000018000000080000000, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000020000000180000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000020000000100000001}, + [_]u128{0x80000000000000018000000080000000, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001C000000200000000}, + [_]u128{0x80000000000000018000000080000000, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000008000000180000002FFFFFFFF}, + [_]u128{0x80000000000000018000000080000000, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000030000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000400000030000000000000001}, + [_]u128{0x80000000000000018000000080000000, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000040000002C000000100000000}, + [_]u128{0x80000000000000018000000080000000, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000004000000280000001FFFFFFFF}, + [_]u128{0x80000000000000018000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000003FFFFFFFF80000000}, + [_]u128{0x80000000000000018000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000000000003FFFFFFFF00000001}, + [_]u128{0x80000000000000018000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000003C000000000000000}, + [_]u128{0x80000000000000018000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000000000000380000000FFFFFFFF}, + [_]u128{0x80000000000000018000000080000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x00000000800000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x0000000080000001800000002AAAAAAB}, + [_]u128{0x80000000000000018000000080000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x00000000800000015555555600000000}, + [_]u128{0x80000000000000018000000080000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000800000012AAAAAABD5555555}, + [_]u128{0x80000000000000018000000080000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x00000000800000012AAAAAAB80000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x00000000800000012AAAAAAB2AAAAAAB}, + [_]u128{0x80000000000000018000000080000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000000800000010000000100000000}, + [_]u128{0x80000000000000018000000080000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000080000000D5555556D5555555}, + [_]u128{0x80000000000000018000000080000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000555555570000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x0000000055555557000000002AAAAAAB}, + [_]u128{0x80000000000000018000000080000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x0000000055555556D555555600000000}, + [_]u128{0x80000000000000018000000080000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000055555556AAAAAAABD5555555}, + [_]u128{0x80000000000000018000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAACD555555580000000}, + [_]u128{0x80000000000000018000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAACD55555552AAAAAAB}, + [_]u128{0x80000000000000018000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAACAAAAAAAB00000000}, + [_]u128{0x80000000000000018000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAAC80000000D5555555}, + [_]u128{0x80000000000000018000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000400000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x00000000400000018000000040000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x00000000400000016000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000004000000140000000C0000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x00000000400000014000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x00000000400000014000000040000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000400000012000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000004000000100000000C0000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000200000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x00000000200000018000000040000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x00000000200000016000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000002000000140000000C0000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x0000000000000001C000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x0000000000000001C000000040000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x0000000000000001A000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x000000000000000180000000C0000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001800000007FFFFFFF}, + [_]u128{0x80000000000000018000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000018000000000000000}, + [_]u128{0x80000000000000018000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF80000001}, + [_]u128{0x80000000000000018000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF7FFFFFFF}, + [_]u128{0x80000000000000018000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x80000000000000018000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0x80000000000000018000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x80000000000000018000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x80000000000000018000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x80000000000000018000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000008000000180000000}, + [_]u128{0x80000000000000018000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x80000000000000018000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x80000000000000018000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000080000001}, + [_]u128{0x80000000000000018000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x80000000000000018000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x80000000000000018000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x80000000000000018000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x80000000000000018000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000000000018000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x80000000000000018000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000000000018000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000000000018000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x80000000000000018000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000000000018000000080000000}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000001000000000000000300000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000200000003, 0x00000000000000000000000000000002}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000800000000000000180000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFF80000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000180000000, 0x00000000555555555555555655555555, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000004000000020000000D0000000, 0x000000000000000000000001CFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000010000000000000003, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000010000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000003, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000008, 0x00000000000000007FFFFFF700000007}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000002, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000001, 0x0000000000000000800000017FFFFFFE}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000001, 0x0000000000000000A00000017FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000002, 0x00000000000000000000000100000001}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000008000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000008000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000001, 0x0000000000000000A00000007FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000002, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000001, 0x0000000000000000800000007FFFFFFE}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000002, 0x00000000000000009FFFFFFDFFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000003, 0x0000000000000000FFFFFFFA00000002}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000000000018000000000000000, 0x00000000000000005555555555555556, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000000000018000000000000001, 0x00000000000000005555555555555556, 0x00000000000000002AAAAAABAAAAAAA9}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E39, 0x0000000000000001638E38E47FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71D, 0x000000000000000138E38E391C71C71C}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000000, 0x0000000000000001A0000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000020000000, 0x000000000000000160000000DFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000000, 0x000000000000000188000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000000, 0x0000000000000001C0000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF80000003FFFFFFFE}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000200000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000000000000}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001800000017FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000100000002FFFFFFFE}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFEFFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFE00000001}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFFFFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000380000001FFFFFFFD}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x000000008000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x0000000080000001800000007FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x000000008000000140000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000080000001000000017FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000008000000100000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x0000000080000001000000007FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x0000000080000000C0000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000080000000800000017FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x000000004000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x0000000040000001800000007FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x000000004000000140000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000040000001000000017FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000000000000200000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000002000000007FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000000000001C0000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000001800000017FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x0000000000000001800000007FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x000000000000000140000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000001000000017FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x0000000000000000C0000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C000000200000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000020000000080000000}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001C00000017FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001800000027FFFFFFE}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFFFFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFF80000000}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002C00000007FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002800000017FFFFFFE}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000008000000280000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000028000000080000000}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002400000017FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002000000027FFFFFFE}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000008000000200000001FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000020000000180000000}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001C00000027FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000001800000037FFFFFFE}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000004000000300000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000400000030000000080000000}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000040000002C00000017FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000040000002800000027FFFFFFE}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000003FFFFFFFFFFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000000000003FFFFFFFF80000000}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000000000003C00000007FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000003800000017FFFFFFE}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x000000008000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000008000000180000000AAAAAAAA}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x0000000080000001555555567FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000800000012AAAAAAC55555554}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x00000000800000012AAAAAABFFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x00000000800000012AAAAAABAAAAAAAA}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x0000000080000001000000017FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000080000000D555555755555554}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x000000005555555700000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x000000005555555700000000AAAAAAAA}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x0000000055555556D55555567FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000055555556AAAAAAAC55555554}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAACD5555555FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAACD5555555AAAAAAAA}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAACAAAAAAAB7FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAAC8000000155555554}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x000000004000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x000000004000000180000000BFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x000000004000000160000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000040000001400000013FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x000000004000000140000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x000000004000000140000000BFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x000000004000000120000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000040000001000000013FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x000000002000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000002000000180000000BFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000002000000160000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000020000001400000013FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x0000000000000001C0000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x0000000000000001C0000000BFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x0000000000000001A0000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000000000001800000013FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000180000000FFFFFFFE}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001800000007FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000018000000000000000}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFFFFFFFFFE}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF7FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFE}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000080000001FFFFFFFE}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFE}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x800000000000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000000000000180000000FFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000010000000000000003FFFFFFFE, 0x00000000000000000000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000280000001, 0x00000000000000000000000080000001}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF800000027FFFFFFC, 0x00000000000000000000000080000004}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000180000000, 0x000000005555555555555556AAAAAAAA, 0x00000000000000000000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFF, 0x00000000400000002000000110000000, 0x00000000000000000000000010000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000000000008000000000000000, 0x00000000000000010000000000000003, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000000000008000000000000001, 0x00000000000000010000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000004, 0x00000000000000007FFFFFFD00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000009, 0x00000000000000007FFFFFF400000009}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000002, 0x00000000000000008000000100000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000002, 0x0000000000000000000000007FFFFFFE}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000002, 0x00000000000000002000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000002, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000000000010000000000000000, 0x00000000000000008000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000000000010000000000000001, 0x00000000000000008000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000002, 0x00000000000000001FFFFFFE00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000002, 0x0000000000000000FFFFFFFC80000002}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000002, 0x00000000000000007FFFFFFD00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000003, 0x00000000000000001FFFFFFA80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000004, 0x00000000000000007FFFFFF600000004}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000000000018000000000000000, 0x00000000000000005555555555555556, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000000000018000000000000001, 0x00000000000000005555555555555556, 0x0000000000000000AAAAAAA9AAAAAAAA}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E3A, 0x0000000000000000638E38E200000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71E, 0x000000000000000038E38E361C71C71E}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000001, 0x00000000000000002000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000020000000, 0x0000000000000001DFFFFFFEE0000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000001, 0x000000000000000007FFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000001, 0x00000000000000003FFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFE00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000010000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000800000000000000180000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFE00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000004FFFFFFFD00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000004FFFFFFFC00000002}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFE00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFFFFFFFFFE}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x0000000080000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x0000000080000001FFFFFFFE80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x0000000080000001BFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000017FFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x00000000800000017FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x00000000800000017FFFFFFE80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x00000000800000013FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x0000000040000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x0000000040000001FFFFFFFE80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x0000000040000001BFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000400000017FFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000027FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000027FFFFFFE80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000023FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFE80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x0000000000000001BFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFE80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000000000013FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000027FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000027FFFFFFE80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000023FFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000002000000007FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000037FFFFFFE00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000037FFFFFFD80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000033FFFFFFE80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFE80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002BFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002800000007FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000028000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFF80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000024000000080000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002000000017FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000037FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000400000037FFFFFFE80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000033FFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000040000003000000007FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000047FFFFFFE00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000047FFFFFFD80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000043FFFFFFE80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000003FFFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x0000000080000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x0000000080000001FFFFFFFEAAAAAAAB}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x0000000080000001D555555480000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000080000001AAAAAAAA55555555}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x0000000080000001AAAAAAAA00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x0000000080000001AAAAAAA9AAAAAAAB}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000000800000017FFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000800000015555555555555555}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000555555577FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000000555555577FFFFFFEAAAAAAAB}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000555555575555555480000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000555555572AAAAAAA55555555}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAD5555555400000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAAD55555553AAAAAAAB}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAD2AAAAAA980000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAACFFFFFFFF55555555}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x0000000040000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x0000000040000001FFFFFFFEC0000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x0000000040000001DFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000040000001BFFFFFFF40000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x0000000040000001BFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x0000000040000001BFFFFFFEC0000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000400000019FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000400000017FFFFFFF40000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x0000000020000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x0000000020000001FFFFFFFEC0000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x0000000020000001DFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000020000001BFFFFFFF40000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000023FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000000000023FFFFFFEC0000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000021FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000000000001FFFFFFFF40000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFD80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFD00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFEFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFDFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x000000010000000000000003FFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000280000001, 0x00000000000000000000000080000002}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFF800000027FFFFFFC, 0x00000000000000000000000080000005}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000180000000, 0x000000005555555555555556AAAAAAAA, 0x00000000000000000000000000000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFF, 0x00000000400000002000000110000000, 0x00000000000000000000000010000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000000000008000000000000000, 0x00000000000000010000000000000003, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000000000008000000000000001, 0x00000000000000010000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000004, 0x00000000000000007FFFFFFD00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000009, 0x00000000000000007FFFFFF40000000A}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000002, 0x00000000000000008000000100000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000002, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000002, 0x00000000000000002000000000000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000002, 0x00000000000000007FFFFFFF00000003}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000000000010000000000000000, 0x00000000000000008000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000000000010000000000000001, 0x00000000000000008000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000002, 0x00000000000000001FFFFFFE00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000002, 0x0000000000000000FFFFFFFC80000003}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000002, 0x00000000000000007FFFFFFD00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000003, 0x00000000000000001FFFFFFA80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000004, 0x00000000000000007FFFFFF600000005}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000000000018000000000000000, 0x00000000000000005555555555555556, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000000000018000000000000001, 0x00000000000000005555555555555556, 0x0000000000000000AAAAAAA9AAAAAAAB}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E3A, 0x0000000000000000638E38E200000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71E, 0x000000000000000038E38E361C71C71F}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000001, 0x00000000000000002000000000000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000020000000, 0x0000000000000001DFFFFFFEE0000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000001, 0x000000000000000007FFFFFF80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000001, 0x00000000000000003FFFFFFF00000002}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFE00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000010000000000000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000800000000000000180000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFE00000002}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000100000000}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000004FFFFFFFD00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000004FFFFFFFC00000003}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFE00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x0000000080000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x0000000080000001FFFFFFFE80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x0000000080000001BFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000017FFFFFFF80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x00000000800000017FFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x00000000800000017FFFFFFE80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x00000000800000013FFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFF80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x0000000040000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x0000000040000001FFFFFFFE80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x0000000040000001BFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000400000017FFFFFFF80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000027FFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000027FFFFFFE80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000023FFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFF80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFE80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x0000000000000001BFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFF80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000000000013FFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000027FFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000027FFFFFFE80000002}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000023FFFFFFF80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000020000000080000000}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000037FFFFFFE00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000037FFFFFFD80000002}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000033FFFFFFE80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFE80000002}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002BFFFFFFF80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000800000028000000080000000}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000028000000000000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFF80000002}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000024000000080000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000800000020000000180000000}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000037FFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000400000037FFFFFFE80000002}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000033FFFFFFF80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000400000030000000080000000}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000047FFFFFFE00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000047FFFFFFD80000002}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000043FFFFFFE80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000003FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x0000000080000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x0000000080000001FFFFFFFEAAAAAAAC}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x0000000080000001D555555480000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000080000001AAAAAAAA55555556}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x0000000080000001AAAAAAAA00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x0000000080000001AAAAAAA9AAAAAAAC}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000000800000017FFFFFFF80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000800000015555555555555556}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000555555577FFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000000555555577FFFFFFEAAAAAAAC}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000555555575555555480000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000555555572AAAAAAA55555556}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAD5555555400000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAAD55555553AAAAAAAC}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAD2AAAAAA980000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAACFFFFFFFF55555556}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x0000000040000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x0000000040000001FFFFFFFEC0000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x0000000040000001DFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000040000001BFFFFFFF40000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x0000000040000001BFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x0000000040000001BFFFFFFEC0000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000400000019FFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000400000017FFFFFFF40000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x0000000020000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x0000000020000001FFFFFFFEC0000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x0000000020000001DFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000020000001BFFFFFFF40000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000023FFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000000000023FFFFFFEC0000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000021FFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000000000001FFFFFFFF40000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000002}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFD80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFD00000002}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE00000002}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000010000000000000003FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000280000002, 0x00000000000000000000000000000002}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF800000027FFFFFFD, 0x00000000000000000000000000000003}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000180000000, 0x000000005555555555555556AAAAAAAA, 0x00000000000000000000000080000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFF, 0x00000000400000002000000110000000, 0x00000000000000000000000090000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000000000008000000000000000, 0x00000000000000010000000000000003, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000000000008000000000000001, 0x00000000000000010000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000004, 0x00000000000000007FFFFFFD80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000009, 0x00000000000000007FFFFFF480000009}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000002, 0x00000000000000008000000180000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000002, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000002, 0x00000000000000002000000080000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000002, 0x00000000000000007FFFFFFF80000002}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000000000010000000000000000, 0x00000000000000008000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000000000010000000000000001, 0x00000000000000008000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000002, 0x00000000000000001FFFFFFE80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000002, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000002, 0x00000000000000007FFFFFFD80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000003, 0x00000000000000001FFFFFFB00000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000004, 0x00000000000000007FFFFFF680000004}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000000000018000000000000000, 0x00000000000000005555555555555556, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000000000018000000000000001, 0x00000000000000005555555555555556, 0x0000000000000000AAAAAAAA2AAAAAAA}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E3A, 0x0000000000000000638E38E280000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71E, 0x000000000000000038E38E369C71C71E}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000001, 0x00000000000000002000000080000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000020000000, 0x0000000000000001DFFFFFFF60000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000001, 0x00000000000000000800000000000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000001, 0x00000000000000003FFFFFFF80000001}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFE80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000010000000080000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000800000000000000180000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFE80000001}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001800000017FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000004FFFFFFFD80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000004FFFFFFFC80000002}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFE80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000004000000007FFFFFFE}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x0000000080000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x0000000080000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x0000000080000001BFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000018000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x00000000800000017FFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x00000000800000017FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x00000000800000013FFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000010000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x0000000040000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x0000000040000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x0000000040000001BFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000400000018000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000027FFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000027FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000023FFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000020000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x0000000000000001BFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000018000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000000000013FFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000010000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000027FFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000027FFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000024000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C000000200000000FFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000037FFFFFFE80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000037FFFFFFE00000001}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000033FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002C000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000008000000280000000FFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000028000000080000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000028000000000000001}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000024000000100000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000008000000200000001FFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000037FFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000400000037FFFFFFF00000001}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000034000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000004000000300000000FFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000047FFFFFFE80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000047FFFFFFE00000001}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000043FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000003FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x0000000080000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x0000000080000001FFFFFFFF2AAAAAAB}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x0000000080000001D555555500000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000080000001AAAAAAAAD5555555}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x0000000080000001AAAAAAAA80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x0000000080000001AAAAAAAA2AAAAAAB}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000000800000018000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000008000000155555555D5555555}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000555555577FFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000000555555577FFFFFFF2AAAAAAB}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000555555575555555500000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000555555572AAAAAAAD5555555}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAD5555555480000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAAD555555542AAAAAAB}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAD2AAAAAAA00000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAACFFFFFFFFD5555555}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x0000000040000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x0000000040000001FFFFFFFF40000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x0000000040000001DFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000040000001BFFFFFFFC0000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x0000000040000001BFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x0000000040000001BFFFFFFF40000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000400000019FFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000400000017FFFFFFFC0000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x0000000020000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x0000000020000001FFFFFFFF40000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x0000000020000001DFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000020000001BFFFFFFFC0000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000023FFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000000000023FFFFFFF40000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000021FFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000000000001FFFFFFFFC0000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE80000001}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE7FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFD80000001}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000010000000080000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x000000010000000000000003FFFFFFFF, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000280000002, 0x00000000000000000000000080000001}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFF800000027FFFFFFD, 0x00000000000000000000000080000002}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000, 0x000000005555555555555556AAAAAAAA, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000400000002000000110000000, 0x0000000000000000000000010FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000010000000000000003, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000010000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000004, 0x00000000000000007FFFFFFDFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000009, 0x00000000000000007FFFFFF500000008}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000002, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000002, 0x0000000000000000000000017FFFFFFD}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000040000002, 0x000000000000000020000000FFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000002, 0x00000000000000008000000000000001}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000008000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000008000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFFC0000002, 0x00000000000000001FFFFFFEFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF80000002, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000007FFFFFFF80000002, 0x00000000000000007FFFFFFDFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000001, 0x0000000000000000FFFFFFFF7FFFFFFE}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFF40000003, 0x00000000000000001FFFFFFB7FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000004, 0x00000000000000007FFFFFF700000003}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000018000000000000000, 0x00000000000000005555555555555556, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000018000000000000001, 0x00000000000000005555555555555556, 0x0000000000000000AAAAAAAAAAAAAAA9}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000018000000080000000, 0x00000000000000005555555538E38E3A, 0x0000000000000000638E38E2FFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000555555551C71C71E, 0x000000000000000038E38E371C71C71D}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000020000001, 0x000000000000000020000000FFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000020000000, 0x0000000000000001DFFFFFFFDFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000010000001, 0x0000000000000000080000007FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000000000001, 0x00000000000000004000000000000000}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFEFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000002000000007FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000180000001FFFFFFFE}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000004FFFFFFFDFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000004FFFFFFFD00000001}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFEFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000400000000FFFFFFFD}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x0000000080000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x0000000080000001FFFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x0000000080000001BFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000080000001800000007FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x00000000800000017FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x00000000800000017FFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x00000000800000013FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000080000001000000007FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x0000000040000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x0000000040000001FFFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x0000000040000001BFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000040000001800000007FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000027FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000027FFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000023FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000002000000007FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x0000000000000001FFFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x0000000000000001BFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000001800000007FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000000000013FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000008000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000027FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000008000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000027FFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000008000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000002400000007FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000002000000017FFFFFFE}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000037FFFFFFEFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000037FFFFFFE80000000}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000033FFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000003000000007FFFFFFE}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000010000000000000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002C00000007FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002800000017FFFFFFE}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000008000000280000000FFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000028000000080000000}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002400000017FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002000000027FFFFFFE}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000400000037FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000400000037FFFFFFF80000000}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000040000003400000007FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000040000003000000017FFFFFFE}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000047FFFFFFEFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000000000047FFFFFFE80000000}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000000000043FFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000000000004000000007FFFFFFE}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x0000000080000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x0000000080000001FFFFFFFFAAAAAAAA}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x0000000080000001D55555557FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000080000001AAAAAAAB55555554}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x0000000080000001AAAAAAAAFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x0000000080000001AAAAAAAAAAAAAAAA}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x0000000080000001800000007FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000800000015555555655555554}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000555555577FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000000555555577FFFFFFFAAAAAAAA}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x0000000055555557555555557FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000555555572AAAAAAB55555554}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAD55555554FFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000002AAAAAAD55555554AAAAAAAA}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000002AAAAAAD2AAAAAAA7FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000002AAAAAAD0000000055555554}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x0000000040000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x0000000040000001FFFFFFFFBFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x0000000040000001DFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000040000001C00000003FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x0000000040000001BFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x0000000040000001BFFFFFFFBFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000400000019FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000040000001800000003FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x0000000020000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x0000000020000001FFFFFFFFBFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x0000000020000001DFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x0000000020000001C00000003FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000000000023FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000000000023FFFFFFFBFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000000000021FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000000000002000000003FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFE}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFE}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE7FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000000}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFFFFFFFFFE}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFE}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFE}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000000000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000000000000000000080000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000010000000100000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000800000000000000000000000, 0x00000000000000000000000100000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000000000000000000100000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000000000000000000180000000, 0x0000000055555555AAAAAAAAAAAAAAAA, 0x00000000000000000000000100000000}, + [_]u128{0x80000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000400000006000000030000000, 0x00000000000000000000000030000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000000000008000000000000000, 0x00000000000000010000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000000000008000000000000001, 0x000000000000000100000000FFFFFFFD, 0x00000000000000007FFFFFFF00000003}, + [_]u128{0x80000000800000000000000000000000, 0x00000000000000008000000080000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000003, 0x00000000000000007FFFFFFC00000003}, + [_]u128{0x80000000800000000000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000100000001, 0x00000000000000000000000100000000}, + [_]u128{0x80000000800000000000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000800000000000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000080000000C0000000, 0x00000000000000006000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000000000010000000000000000, 0x00000000000000008000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000000000010000000000000001, 0x0000000000000000800000007FFFFFFF, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x80000000800000000000000000000000, 0x00000000000000010000000080000000, 0x0000000000000000800000003FFFFFFF, 0x0000000000000000E000000080000000}, + [_]u128{0x80000000800000000000000000000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000000000010000000100000000, 0x00000000000000008000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000008000000100000001}, + [_]u128{0x80000000800000000000000000000000, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000006000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x00000000000000007FFFFFFD80000001}, + [_]u128{0x80000000800000000000000000000000, 0x00000000000000018000000000000000, 0x000000000000000055555555AAAAAAAA, 0x00000000000000010000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000000000018000000000000001, 0x000000000000000055555555AAAAAAAA, 0x0000000000000000AAAAAAAA55555556}, + [_]u128{0x80000000800000000000000000000000, 0x00000000000000018000000080000000, 0x0000000000000000555555558E38E38E, 0x000000000000000038E38E3900000000}, + [_]u128{0x80000000800000000000000000000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000005555555571C71C71, 0x0000000000000001638E38E471C71C71}, + [_]u128{0x80000000800000000000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000060000000, 0x00000000000000006000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000060000000, 0x00000000000000001FFFFFFFA0000000}, + [_]u128{0x80000000800000000000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000050000000, 0x00000000000000002800000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000040000000, 0x00000000000000004000000040000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000800000000000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFF00000001}, + [_]u128{0x80000000800000000000000000000000, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000080000000}, + [_]u128{0x80000000800000000000000000000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF80000001FFFFFFFF}, + [_]u128{0x80000000800000000000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x80000000800000000000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFE00000001}, + [_]u128{0x80000000800000000000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x80000000800000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x80000000800000000000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x00000000000000010000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x80000000800000000000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x0000000000000000BFFFFFFF80000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x80000000800000000000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x00000000000000007FFFFFFE7FFFFFFF}, + [_]u128{0x80000000800000000000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x00000000000000003FFFFFFE80000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000C00000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000BFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFFC000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF8000000080000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000800000008000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000800000004000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000000000000080000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFC000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF4000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x00000000400000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFC000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF8000000080000000}, + [_]u128{0x80000000800000000000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000800000000000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000004000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000FFFFFFFF80000001}, + [_]u128{0x80000000800000000000000000000000, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000C000000080000000}, + [_]u128{0x80000000800000000000000000000000, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000800000017FFFFFFF}, + [_]u128{0x80000000800000000000000000000000, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000008000000100000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000008000000080000001}, + [_]u128{0x80000000800000000000000000000000, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000004000000180000000}, + [_]u128{0x80000000800000000000000000000000, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000000000027FFFFFFF}, + [_]u128{0x80000000800000000000000000000000, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000018000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000017FFFFFFF80000001}, + [_]u128{0x80000000800000000000000000000000, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000014000000080000000}, + [_]u128{0x80000000800000000000000000000000, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001000000017FFFFFFF}, + [_]u128{0x80000000800000000000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFF00000000}, + [_]u128{0x80000000800000000000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFE80000001}, + [_]u128{0x80000000800000000000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000023FFFFFFF80000000}, + [_]u128{0x80000000800000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002000000007FFFFFFF}, + [_]u128{0x80000000800000000000000000000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x00000001000000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFFFFFFFFFAAAAAAAB}, + [_]u128{0x80000000800000000000000000000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFD555555580000000}, + [_]u128{0x80000000800000000000000000000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFAAAAAAAB55555555}, + [_]u128{0x80000000800000000000000000000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFAAAAAAAB00000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFAAAAAAAAAAAAAAAB}, + [_]u128{0x80000000800000000000000000000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000800000000000000000000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000FFFFFFFF5555555655555555}, + [_]u128{0x80000000800000000000000000000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000D55555558000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000000D55555557FFFFFFFAAAAAAAB}, + [_]u128{0x80000000800000000000000000000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000D55555555555555580000000}, + [_]u128{0x80000000800000000000000000000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000D55555552AAAAAAB55555555}, + [_]u128{0x80000000800000000000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB5555555500000000}, + [_]u128{0x80000000800000000000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB55555554AAAAAAAB}, + [_]u128{0x80000000800000000000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB2AAAAAAA80000000}, + [_]u128{0x80000000800000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB0000000055555555}, + [_]u128{0x80000000800000000000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000C00000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFFFFFFFFFC0000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFE000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFC000000040000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFC000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFBFFFFFFFC0000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFA000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000BFFFFFFF8000000040000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000A00000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000009FFFFFFFFFFFFFFFC0000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000009FFFFFFFE000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000009FFFFFFFC000000040000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000800000004000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000800000003FFFFFFFC0000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000800000002000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000800000000000000040000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000800000000000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000800000000000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000800000000000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0x80000000800000000000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0x80000000800000000000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000001}, + [_]u128{0x80000000800000000000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x80000000800000000000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000800000000000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0x80000000800000000000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x80000000800000000000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000800000000000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x80000000800000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x80000000800000000000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000800000000000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x80000000800000000000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x80000000800000000000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFEFFFFFFFF}, + [_]u128{0x80000000800000000000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE80000000}, + [_]u128{0x80000000800000000000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE00000001}, + [_]u128{0x80000000800000000000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0x80000000800000000000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF80000000}, + [_]u128{0x80000000800000000000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF00000001}, + [_]u128{0x80000000800000000000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0x80000000800000000000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000000FFFFFFFF}, + [_]u128{0x80000000800000000000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000080000000}, + [_]u128{0x80000000800000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000000000001}, + [_]u128{0x80000000800000000000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000000000001, 0x00000000000000000000000080000000, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000010000000100000001, 0x00000000000000000000000000000002}, + [_]u128{0x80000000800000000000000000000001, 0x00000000000000000000000100000000, 0x00000000800000008000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000000000000000000100000001, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000000000000000000180000000, 0x0000000055555555AAAAAAAAAAAAAAAA, 0x00000000000000000000000100000001}, + [_]u128{0x80000000800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000400000006000000030000000, 0x00000000000000000000000030000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000000000008000000000000000, 0x00000000000000010000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000000000008000000000000001, 0x000000000000000100000000FFFFFFFD, 0x00000000000000007FFFFFFF00000004}, + [_]u128{0x80000000800000000000000000000001, 0x00000000000000008000000080000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000003, 0x00000000000000007FFFFFFC00000004}, + [_]u128{0x80000000800000000000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000100000001, 0x00000000000000000000000100000001}, + [_]u128{0x80000000800000000000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x80000000800000000000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000080000000C0000000, 0x00000000000000006000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000008000000080000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000000000010000000000000000, 0x00000000000000008000000080000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000000000010000000000000001, 0x0000000000000000800000007FFFFFFF, 0x00000000000000007FFFFFFF80000002}, + [_]u128{0x80000000800000000000000000000001, 0x00000000000000010000000080000000, 0x0000000000000000800000003FFFFFFF, 0x0000000000000000E000000080000001}, + [_]u128{0x80000000800000000000000000000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000000000010000000100000000, 0x00000000000000008000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000008000000100000002}, + [_]u128{0x80000000800000000000000000000001, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000006000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x00000000000000007FFFFFFD80000002}, + [_]u128{0x80000000800000000000000000000001, 0x00000000000000018000000000000000, 0x000000000000000055555555AAAAAAAA, 0x00000000000000010000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000000000018000000000000001, 0x000000000000000055555555AAAAAAAA, 0x0000000000000000AAAAAAAA55555557}, + [_]u128{0x80000000800000000000000000000001, 0x00000000000000018000000080000000, 0x0000000000000000555555558E38E38E, 0x000000000000000038E38E3900000001}, + [_]u128{0x80000000800000000000000000000001, 0x000000000000000180000000FFFFFFFF, 0x00000000000000005555555571C71C71, 0x0000000000000001638E38E471C71C72}, + [_]u128{0x80000000800000000000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000060000000, 0x00000000000000006000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000060000000, 0x00000000000000001FFFFFFFA0000001}, + [_]u128{0x80000000800000000000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000050000000, 0x00000000000000002800000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000040000000, 0x00000000000000004000000040000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000800000000000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE0000000100000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFF00000002}, + [_]u128{0x80000000800000000000000000000001, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000080000001}, + [_]u128{0x80000000800000000000000000000001, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000200000000}, + [_]u128{0x80000000800000000000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x80000000800000000000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFE00000002}, + [_]u128{0x80000000800000000000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF80000001}, + [_]u128{0x80000000800000000000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000100000000}, + [_]u128{0x80000000800000000000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x00000000000000010000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x80000000800000000000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x0000000000000000BFFFFFFF80000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000007FFFFFFF80000002}, + [_]u128{0x80000000800000000000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x80000000800000000000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x00000000000000003FFFFFFE80000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000080000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000C00000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000BFFFFFFFFFFFFFFF80000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFFC000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF8000000080000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000800000008000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFF80000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000800000004000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000000000000080000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFC000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF4000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x00000000400000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFFFFFFFFFF80000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFC000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF8000000080000001}, + [_]u128{0x80000000800000000000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000008000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x80000000800000000000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000004000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000080000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000FFFFFFFF80000002}, + [_]u128{0x80000000800000000000000000000001, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000C000000080000001}, + [_]u128{0x80000000800000000000000000000001, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001000000008000000180000000}, + [_]u128{0x80000000800000000000000000000001, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000008000000100000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000008000000080000002}, + [_]u128{0x80000000800000000000000000000001, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000004000000180000001}, + [_]u128{0x80000000800000000000000000000001, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001000000000000000280000000}, + [_]u128{0x80000000800000000000000000000001, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000018000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000017FFFFFFF80000002}, + [_]u128{0x80000000800000000000000000000001, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000014000000080000001}, + [_]u128{0x80000000800000000000000000000001, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000010000000180000000}, + [_]u128{0x80000000800000000000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFF00000001}, + [_]u128{0x80000000800000000000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFE80000002}, + [_]u128{0x80000000800000000000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000023FFFFFFF80000001}, + [_]u128{0x80000000800000000000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000800000020000000080000000}, + [_]u128{0x80000000800000000000000000000001, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x00000001000000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFFFFFFFFFAAAAAAAC}, + [_]u128{0x80000000800000000000000000000001, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFD555555580000001}, + [_]u128{0x80000000800000000000000000000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFAAAAAAAB55555556}, + [_]u128{0x80000000800000000000000000000001, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFAAAAAAAB00000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFAAAAAAAAAAAAAAAC}, + [_]u128{0x80000000800000000000000000000001, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000000FFFFFFFF8000000080000001}, + [_]u128{0x80000000800000000000000000000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000FFFFFFFF5555555655555556}, + [_]u128{0x80000000800000000000000000000001, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000D55555558000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000000D55555557FFFFFFFAAAAAAAC}, + [_]u128{0x80000000800000000000000000000001, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000D55555555555555580000001}, + [_]u128{0x80000000800000000000000000000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000D55555552AAAAAAB55555556}, + [_]u128{0x80000000800000000000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB5555555500000001}, + [_]u128{0x80000000800000000000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB55555554AAAAAAAC}, + [_]u128{0x80000000800000000000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB2AAAAAAA80000001}, + [_]u128{0x80000000800000000000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB0000000055555556}, + [_]u128{0x80000000800000000000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000C00000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFFFFFFFFFC0000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFE000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFC000000040000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFC000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFBFFFFFFFC0000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFA000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000BFFFFFFF8000000040000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000A00000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000009FFFFFFFFFFFFFFFC0000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000009FFFFFFFE000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000009FFFFFFFC000000040000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000800000004000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000800000003FFFFFFFC0000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000800000002000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000800000000000000040000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x80000000800000000000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x80000000800000000000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000002}, + [_]u128{0x80000000800000000000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000800000000000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000001}, + [_]u128{0x80000000800000000000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000002}, + [_]u128{0x80000000800000000000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x80000000800000000000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0x80000000800000000000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000002}, + [_]u128{0x80000000800000000000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0x80000000800000000000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x80000000800000000000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0x80000000800000000000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000002}, + [_]u128{0x80000000800000000000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000800000000000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000800000000000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0x80000000800000000000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0x80000000800000000000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE80000001}, + [_]u128{0x80000000800000000000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE00000002}, + [_]u128{0x80000000800000000000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0x80000000800000000000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF80000001}, + [_]u128{0x80000000800000000000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF00000002}, + [_]u128{0x80000000800000000000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000001}, + [_]u128{0x80000000800000000000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0x80000000800000000000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000080000001}, + [_]u128{0x80000000800000000000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000000000002}, + [_]u128{0x80000000800000000000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000000000001}, + [_]u128{0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000000000000000000080000000, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000010000000100000001, 0x00000000000000000000000080000001}, + [_]u128{0x80000000800000000000000080000000, 0x00000000000000000000000100000000, 0x00000000800000008000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000000000000000000100000001, 0x00000000800000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000000000000000000180000000, 0x0000000055555555AAAAAAAAAAAAAAAB, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000400000006000000030000000, 0x000000000000000000000000B0000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000000000008000000000000000, 0x00000000000000010000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000000000008000000000000001, 0x000000000000000100000000FFFFFFFD, 0x00000000000000007FFFFFFF80000003}, + [_]u128{0x80000000800000000000000080000000, 0x00000000000000008000000080000000, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000003, 0x00000000000000007FFFFFFC80000003}, + [_]u128{0x80000000800000000000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000100000001, 0x00000000000000000000000180000000}, + [_]u128{0x80000000800000000000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000800000000000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000080000000C0000000, 0x00000000000000006000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000008000000100000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000000000010000000000000000, 0x00000000000000008000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000000000010000000000000001, 0x0000000000000000800000007FFFFFFF, 0x00000000000000008000000000000001}, + [_]u128{0x80000000800000000000000080000000, 0x00000000000000010000000080000000, 0x0000000000000000800000003FFFFFFF, 0x0000000000000000E000000100000000}, + [_]u128{0x80000000800000000000000080000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000000000010000000100000000, 0x00000000000000008000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000008000000180000001}, + [_]u128{0x80000000800000000000000080000000, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000006000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x80000000800000000000000080000000, 0x00000000000000018000000000000000, 0x000000000000000055555555AAAAAAAA, 0x00000000000000010000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000000000018000000000000001, 0x000000000000000055555555AAAAAAAA, 0x0000000000000000AAAAAAAAD5555556}, + [_]u128{0x80000000800000000000000080000000, 0x00000000000000018000000080000000, 0x0000000000000000555555558E38E38E, 0x000000000000000038E38E3980000000}, + [_]u128{0x80000000800000000000000080000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000005555555571C71C71, 0x0000000000000001638E38E4F1C71C71}, + [_]u128{0x80000000800000000000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000060000000, 0x00000000000000006000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000060000000, 0x00000000000000002000000020000000}, + [_]u128{0x80000000800000000000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000050000000, 0x00000000000000002800000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000040000000, 0x000000000000000040000000C0000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000800000000000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE0000000180000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFF80000001}, + [_]u128{0x80000000800000000000000080000000, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000100000000}, + [_]u128{0x80000000800000000000000080000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF800000027FFFFFFF}, + [_]u128{0x80000000800000000000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x80000000800000000000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFE80000001}, + [_]u128{0x80000000800000000000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000000000000}, + [_]u128{0x80000000800000000000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001000000017FFFFFFF}, + [_]u128{0x80000000800000000000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x00000000000000010000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x80000000800000000000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x0000000000000000C000000000000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000008000000000000001}, + [_]u128{0x80000000800000000000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x80000000800000000000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x00000000000000003FFFFFFF00000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000C00000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000C00000000000000000000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFFC000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF8000000100000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000800000008000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000800000008000000000000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000800000004000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000000000000100000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000800000000000000000000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFC000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF4000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x00000000400000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x00000000400000000000000000000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFC000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF8000000100000000}, + [_]u128{0x80000000800000000000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000800000000000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000004000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000C000000100000000}, + [_]u128{0x80000000800000000000000080000000, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000010000000080000001FFFFFFFF}, + [_]u128{0x80000000800000000000000080000000, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000008000000180000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000008000000100000001}, + [_]u128{0x80000000800000000000000080000000, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000004000000200000000}, + [_]u128{0x80000000800000000000000080000000, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000010000000000000002FFFFFFFF}, + [_]u128{0x80000000800000000000000080000000, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000018000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000018000000000000001}, + [_]u128{0x80000000800000000000000080000000, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000014000000100000000}, + [_]u128{0x80000000800000000000000080000000, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C000000100000001FFFFFFFF}, + [_]u128{0x80000000800000000000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFF80000000}, + [_]u128{0x80000000800000000000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFF00000001}, + [_]u128{0x80000000800000000000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000024000000000000000}, + [_]u128{0x80000000800000000000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000008000000200000000FFFFFFFF}, + [_]u128{0x80000000800000000000000080000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x00000001000000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x0000000100000000000000002AAAAAAB}, + [_]u128{0x80000000800000000000000080000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFD555555600000000}, + [_]u128{0x80000000800000000000000080000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFAAAAAAABD5555555}, + [_]u128{0x80000000800000000000000080000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFAAAAAAAB80000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFAAAAAAAB2AAAAAAB}, + [_]u128{0x80000000800000000000000080000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000000FFFFFFFF8000000100000000}, + [_]u128{0x80000000800000000000000080000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000FFFFFFFF55555556D5555555}, + [_]u128{0x80000000800000000000000080000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000D55555558000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000000D5555555800000002AAAAAAB}, + [_]u128{0x80000000800000000000000080000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000D55555555555555600000000}, + [_]u128{0x80000000800000000000000080000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000D55555552AAAAAABD5555555}, + [_]u128{0x80000000800000000000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB5555555580000000}, + [_]u128{0x80000000800000000000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB555555552AAAAAAB}, + [_]u128{0x80000000800000000000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB2AAAAAAB00000000}, + [_]u128{0x80000000800000000000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB00000000D5555555}, + [_]u128{0x80000000800000000000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000C00000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x00000000C00000000000000040000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFE000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFC0000000C0000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFC000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFC000000040000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFA000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000BFFFFFFF80000000C0000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000A00000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x00000000A00000000000000040000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000009FFFFFFFE000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000009FFFFFFFC0000000C0000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000800000004000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000800000004000000040000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000800000002000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x000000008000000000000000C0000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x80000000800000000000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x80000000800000000000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x80000000800000000000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0x80000000800000000000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000800000000000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000001}, + [_]u128{0x80000000800000000000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0x80000000800000000000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x80000000800000000000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0x80000000800000000000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0x80000000800000000000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0x80000000800000000000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x80000000800000000000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0x80000000800000000000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000800000000000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000800000000000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000800000000000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0x80000000800000000000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0x80000000800000000000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE80000001}, + [_]u128{0x80000000800000000000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000007FFFFFFF}, + [_]u128{0x80000000800000000000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0x80000000800000000000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF80000001}, + [_]u128{0x80000000800000000000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000180000000}, + [_]u128{0x80000000800000000000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE000000017FFFFFFF}, + [_]u128{0x80000000800000000000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0x80000000800000000000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000080000001}, + [_]u128{0x80000000800000000000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000800000000000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x80000000800000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000080000000}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000001000000010000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000800000010000000100000002, 0x00000000000000000000000000000001}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000800000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000180000000, 0x0000000055555555AAAAAAAAAAAAAAAB, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000400000006000000030000000, 0x0000000000000000000000012FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000000000008000000000000001, 0x000000000000000100000000FFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000003, 0x00000000000000007FFFFFFD00000002}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000100000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000080000000C0000000, 0x000000000000000060000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000000, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000008000000080000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000000000010000000000000001, 0x0000000000000000800000007FFFFFFF, 0x00000000000000008000000080000000}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000000000010000000080000000, 0x0000000000000000800000003FFFFFFF, 0x0000000000000000E00000017FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x00000000000000008000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000008000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000008000000200000000}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFFC0000000, 0x000000000000000060000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000000000018000000000000000, 0x000000000000000055555555AAAAAAAA, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000000000018000000000000001, 0x000000000000000055555555AAAAAAAA, 0x0000000000000000AAAAAAAB55555555}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000000000018000000080000000, 0x0000000000000000555555558E38E38E, 0x000000000000000038E38E39FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x00000000000000005555555571C71C71, 0x0000000000000001638E38E571C71C70}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000060000000, 0x000000000000000060000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000060000000, 0x0000000000000000200000009FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000050000000, 0x000000000000000028000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000040000000, 0x0000000000000000400000013FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE80000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE00000001FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000000000000}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000000000017FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF80000002FFFFFFFE}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001800000007FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000100000001FFFFFFFE}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x0000000000000001000000007FFFFFFE}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x0000000000000000C00000007FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000008000000080000000}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x00000000000000007FFFFFFF7FFFFFFE}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x00000000000000003FFFFFFF7FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF000000017FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000C000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000C0000000000000007FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFFC0000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF800000017FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000080000000800000007FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000008000000040000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000080000000000000017FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFC0000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF40000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x000000004000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x0000000040000000000000007FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFC0000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF800000017FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000000000000040000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000C00000017FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000800000027FFFFFFE}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000010000000080000001FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000008000000180000000}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000400000027FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000000000037FFFFFFE}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C000000180000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000018000000080000000}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001400000017FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001000000027FFFFFFE}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFFFFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFF80000000}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002400000007FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002000000017FFFFFFE}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000010000000000000000AAAAAAAA}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFD55555567FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFAAAAAAAC55555554}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFAAAAAAABFFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFAAAAAAABAAAAAAAA}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000000FFFFFFFF800000017FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000FFFFFFFF5555555755555554}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000D555555580000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000000D555555580000000AAAAAAAA}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000D5555555555555567FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000D55555552AAAAAAC55555554}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB55555555FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB55555555AAAAAAAA}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB2AAAAAAB7FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB0000000155555554}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000C000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x00000000C000000000000000BFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFE0000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFC00000013FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFC0000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFC0000000BFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFA0000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000BFFFFFFF800000013FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000A000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x00000000A000000000000000BFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000009FFFFFFFE0000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000009FFFFFFFC00000013FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x000000008000000040000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x000000008000000040000000BFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x000000008000000020000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000080000000000000013FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFE}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFE}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFE}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000001FFFFFFFE}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFE}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000000FFFFFFFE}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000007FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000001FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000001FFFFFFFE}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE000000017FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000000FFFFFFFF}, + [_]u128{0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000000000000000000080000000, 0x00000001000000010000000000000002, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000010000000100000002, 0x00000000000000000000000000000002}, + [_]u128{0x80000000800000000000000100000000, 0x00000000000000000000000100000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000000000000000000100000001, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000000000000000000180000000, 0x0000000055555555AAAAAAAAAAAAAAAB, 0x00000000000000000000000080000000}, + [_]u128{0x80000000800000000000000100000000, 0x000000000000000000000001FFFFFFFF, 0x00000000400000006000000030000000, 0x00000000000000000000000130000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000000000008000000000000000, 0x00000000000000010000000100000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000000000008000000000000001, 0x000000000000000100000000FFFFFFFE, 0x00000000000000000000000000000002}, + [_]u128{0x80000000800000000000000100000000, 0x00000000000000008000000080000000, 0x00000000000000010000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000003, 0x00000000000000007FFFFFFD00000003}, + [_]u128{0x80000000800000000000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000100000001, 0x00000000000000000000000200000000}, + [_]u128{0x80000000800000000000000100000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000100000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000800000000000000100000000, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000080000000C0000000, 0x00000000000000006000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000008000000180000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000000000010000000000000000, 0x00000000000000008000000080000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000000000010000000000000001, 0x0000000000000000800000007FFFFFFF, 0x00000000000000008000000080000001}, + [_]u128{0x80000000800000000000000100000000, 0x00000000000000010000000080000000, 0x0000000000000000800000003FFFFFFF, 0x0000000000000000E000000180000000}, + [_]u128{0x80000000800000000000000100000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000008000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000000000010000000100000000, 0x00000000000000008000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000008000000200000001}, + [_]u128{0x80000000800000000000000100000000, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000006000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x80000000800000000000000100000000, 0x00000000000000018000000000000000, 0x000000000000000055555555AAAAAAAA, 0x00000000000000010000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000000000018000000000000001, 0x000000000000000055555555AAAAAAAA, 0x0000000000000000AAAAAAAB55555556}, + [_]u128{0x80000000800000000000000100000000, 0x00000000000000018000000080000000, 0x0000000000000000555555558E38E38E, 0x000000000000000038E38E3A00000000}, + [_]u128{0x80000000800000000000000100000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000005555555571C71C71, 0x0000000000000001638E38E571C71C71}, + [_]u128{0x80000000800000000000000100000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000060000000, 0x00000000000000006000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000060000000, 0x000000000000000020000000A0000000}, + [_]u128{0x80000000800000000000000100000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000050000000, 0x00000000000000002800000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000040000000, 0x00000000000000004000000140000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x00000000000000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000000, 0x00000000800000000000000000000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000800000000000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000180000000}, + [_]u128{0x80000000800000000000000100000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF80000002FFFFFFFF}, + [_]u128{0x80000000800000000000000100000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000000000000}, + [_]u128{0x80000000800000000000000100000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x80000000800000000000000100000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000080000000}, + [_]u128{0x80000000800000000000000100000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x80000000800000000000000100000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x00000000000000010000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x80000000800000000000000100000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x0000000000000000C000000080000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000008000000080000001}, + [_]u128{0x80000000800000000000000100000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x00000000000000008000000000000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x80000000800000000000000100000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x00000000000000003FFFFFFF80000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000C00000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000C00000000000000080000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFFC000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF8000000180000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000800000008000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000800000008000000080000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000800000004000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000000000000180000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000800000000000000080000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFC000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF4000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x00000000400000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x00000000400000000000000080000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFC000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF8000000180000000}, + [_]u128{0x80000000800000000000000100000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000008000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000800000000000000100000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000004000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000180000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000C000000180000000}, + [_]u128{0x80000000800000000000000100000000, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000800000027FFFFFFF}, + [_]u128{0x80000000800000000000000100000000, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000008000000200000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000008000000180000001}, + [_]u128{0x80000000800000000000000100000000, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000004000000280000000}, + [_]u128{0x80000000800000000000000100000000, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000000000037FFFFFFF}, + [_]u128{0x80000000800000000000000100000000, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000018000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000018000000080000001}, + [_]u128{0x80000000800000000000000100000000, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000014000000180000000}, + [_]u128{0x80000000800000000000000100000000, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001000000027FFFFFFF}, + [_]u128{0x80000000800000000000000100000000, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000028000000000000000}, + [_]u128{0x80000000800000000000000100000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFF80000001}, + [_]u128{0x80000000800000000000000100000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000024000000080000000}, + [_]u128{0x80000000800000000000000100000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002000000017FFFFFFF}, + [_]u128{0x80000000800000000000000100000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x00000001000000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000010000000000000000AAAAAAAB}, + [_]u128{0x80000000800000000000000100000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFD555555680000000}, + [_]u128{0x80000000800000000000000100000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFAAAAAAAC55555555}, + [_]u128{0x80000000800000000000000100000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFAAAAAAAC00000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFAAAAAAABAAAAAAAB}, + [_]u128{0x80000000800000000000000100000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000000FFFFFFFF8000000180000000}, + [_]u128{0x80000000800000000000000100000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000FFFFFFFF5555555755555555}, + [_]u128{0x80000000800000000000000100000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000D55555558000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000000D555555580000000AAAAAAAB}, + [_]u128{0x80000000800000000000000100000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000D55555555555555680000000}, + [_]u128{0x80000000800000000000000100000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000D55555552AAAAAAC55555555}, + [_]u128{0x80000000800000000000000100000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB5555555600000000}, + [_]u128{0x80000000800000000000000100000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB55555555AAAAAAAB}, + [_]u128{0x80000000800000000000000100000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB2AAAAAAB80000000}, + [_]u128{0x80000000800000000000000100000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB0000000155555555}, + [_]u128{0x80000000800000000000000100000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000C00000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x00000000C000000000000000C0000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFE000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFC000000140000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFC000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFC0000000C0000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFA000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000BFFFFFFF8000000140000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000A00000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x00000000A000000000000000C0000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000009FFFFFFFE000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000009FFFFFFFC000000140000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000800000004000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x000000008000000040000000C0000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000800000002000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000800000000000000140000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x80000000800000000000000100000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000800000000000000080000000}, + [_]u128{0x80000000800000000000000100000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000000000001}, + [_]u128{0x80000000800000000000000100000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000800000000000000100000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000800000000000000100000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000800000000000000100000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000800000000000000100000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x80000000800000000000000100000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0x80000000800000000000000100000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0x80000000800000000000000100000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000800000000000000100000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0x80000000800000000000000100000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0x80000000800000000000000100000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000800000000000000100000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x80000000800000000000000100000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x80000000800000000000000100000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000800000000000000100000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x80000000800000000000000100000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x80000000800000000000000100000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000000FFFFFFFF}, + [_]u128{0x80000000800000000000000100000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0x80000000800000000000000100000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000001}, + [_]u128{0x80000000800000000000000100000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0x80000000800000000000000100000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000001FFFFFFFF}, + [_]u128{0x80000000800000000000000100000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000180000000}, + [_]u128{0x80000000800000000000000100000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000001}, + [_]u128{0x80000000800000000000000100000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x80000000800000000000000100000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000800000000000000100000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000800000000000000100000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000100000001, 0x00000000000000000000000080000000, 0x00000001000000010000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0x80000000800000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000010000000100000002, 0x00000000000000000000000000000003}, + [_]u128{0x80000000800000000000000100000001, 0x00000000000000000000000100000000, 0x00000000800000008000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000000000000000000000100000001, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000100000001, 0x00000000000000000000000180000000, 0x0000000055555555AAAAAAAAAAAAAAAB, 0x00000000000000000000000080000001}, + [_]u128{0x80000000800000000000000100000001, 0x000000000000000000000001FFFFFFFF, 0x00000000400000006000000030000000, 0x00000000000000000000000130000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000000000000008000000000000000, 0x00000000000000010000000100000000, 0x00000000000000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000000000000008000000000000001, 0x000000000000000100000000FFFFFFFE, 0x00000000000000000000000000000003}, + [_]u128{0x80000000800000000000000100000001, 0x00000000000000008000000080000000, 0x00000000000000010000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000003, 0x00000000000000007FFFFFFD00000004}, + [_]u128{0x80000000800000000000000100000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000100000001, 0x00000000000000000000000200000001}, + [_]u128{0x80000000800000000000000100000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000100000000, 0x00000000000000008000000000000001}, + [_]u128{0x80000000800000000000000100000001, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000080000000C0000000, 0x00000000000000006000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000008000000180000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000000000000010000000000000000, 0x00000000000000008000000080000000, 0x00000000000000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000000000000010000000000000001, 0x0000000000000000800000007FFFFFFF, 0x00000000000000008000000080000002}, + [_]u128{0x80000000800000000000000100000001, 0x00000000000000010000000080000000, 0x0000000000000000800000003FFFFFFF, 0x0000000000000000E000000180000001}, + [_]u128{0x80000000800000000000000100000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000008000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000000000000010000000100000000, 0x00000000000000008000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000008000000200000002}, + [_]u128{0x80000000800000000000000100000001, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000006000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x00000000000000007FFFFFFE80000002}, + [_]u128{0x80000000800000000000000100000001, 0x00000000000000018000000000000000, 0x000000000000000055555555AAAAAAAA, 0x00000000000000010000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000000000000018000000000000001, 0x000000000000000055555555AAAAAAAA, 0x0000000000000000AAAAAAAB55555557}, + [_]u128{0x80000000800000000000000100000001, 0x00000000000000018000000080000000, 0x0000000000000000555555558E38E38E, 0x000000000000000038E38E3A00000001}, + [_]u128{0x80000000800000000000000100000001, 0x000000000000000180000000FFFFFFFF, 0x00000000000000005555555571C71C71, 0x0000000000000001638E38E571C71C72}, + [_]u128{0x80000000800000000000000100000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000060000000, 0x00000000000000006000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000060000000, 0x000000000000000020000000A0000001}, + [_]u128{0x80000000800000000000000100000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000050000000, 0x00000000000000002800000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000040000000, 0x00000000000000004000000140000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x00000000000000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000000800000000000000000000001, 0x00000000000000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000100000001, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000200000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000000800000000000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE0000000200000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000180000001}, + [_]u128{0x80000000800000000000000100000001, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000300000000}, + [_]u128{0x80000000800000000000000100000001, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000000000001}, + [_]u128{0x80000000800000000000000100000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000002}, + [_]u128{0x80000000800000000000000100000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000080000001}, + [_]u128{0x80000000800000000000000100000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000200000000}, + [_]u128{0x80000000800000000000000100000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x00000000000000010000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x00000000000000010000000080000000}, + [_]u128{0x80000000800000000000000100000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x0000000000000000C000000080000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000008000000080000002}, + [_]u128{0x80000000800000000000000100000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x00000000000000008000000000000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000800000000000000100000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x00000000000000003FFFFFFF80000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000180000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000C00000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000C00000000000000080000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFFC000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF8000000180000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000800000008000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000800000008000000080000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000800000004000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000000000000180000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000800000000000000080000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFC000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000180000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF4000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000180000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x00000000400000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x00000000400000000000000080000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFC000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF8000000180000001}, + [_]u128{0x80000000800000000000000100000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000008000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000008000000080000001}, + [_]u128{0x80000000800000000000000100000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000004000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000180000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x00000000000000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x00000000000000000000000080000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000C000000180000001}, + [_]u128{0x80000000800000000000000100000001, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001000000008000000280000000}, + [_]u128{0x80000000800000000000000100000001, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000008000000200000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000008000000180000002}, + [_]u128{0x80000000800000000000000100000001, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000004000000280000001}, + [_]u128{0x80000000800000000000000100000001, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001000000000000000380000000}, + [_]u128{0x80000000800000000000000100000001, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000018000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000018000000080000002}, + [_]u128{0x80000000800000000000000100000001, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000014000000180000001}, + [_]u128{0x80000000800000000000000100000001, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000010000000280000000}, + [_]u128{0x80000000800000000000000100000001, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000028000000000000001}, + [_]u128{0x80000000800000000000000100000001, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000027FFFFFFF80000002}, + [_]u128{0x80000000800000000000000100000001, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000024000000080000001}, + [_]u128{0x80000000800000000000000100000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000800000020000000180000000}, + [_]u128{0x80000000800000000000000100000001, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x00000001000000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000010000000000000000AAAAAAAC}, + [_]u128{0x80000000800000000000000100000001, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFD555555680000001}, + [_]u128{0x80000000800000000000000100000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFAAAAAAAC55555556}, + [_]u128{0x80000000800000000000000100000001, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFAAAAAAAC00000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFAAAAAAABAAAAAAAC}, + [_]u128{0x80000000800000000000000100000001, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000000FFFFFFFF8000000180000001}, + [_]u128{0x80000000800000000000000100000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000FFFFFFFF5555555755555556}, + [_]u128{0x80000000800000000000000100000001, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000D55555558000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000000D555555580000000AAAAAAAC}, + [_]u128{0x80000000800000000000000100000001, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000D55555555555555680000001}, + [_]u128{0x80000000800000000000000100000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000D55555552AAAAAAC55555556}, + [_]u128{0x80000000800000000000000100000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB5555555600000001}, + [_]u128{0x80000000800000000000000100000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB55555555AAAAAAAC}, + [_]u128{0x80000000800000000000000100000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB2AAAAAAB80000001}, + [_]u128{0x80000000800000000000000100000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB0000000155555556}, + [_]u128{0x80000000800000000000000100000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000C00000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x00000000C000000000000000C0000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFE000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFC000000140000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFC000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFC0000000C0000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFA000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000BFFFFFFF8000000140000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000A00000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x00000000A000000000000000C0000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000009FFFFFFFE000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000009FFFFFFFC000000140000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000800000004000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x000000008000000040000000C0000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000800000002000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000800000000000000140000001}, + [_]u128{0x80000000800000000000000100000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000800000000000000100000000}, + [_]u128{0x80000000800000000000000100000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000800000000000000080000001}, + [_]u128{0x80000000800000000000000100000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000000000002}, + [_]u128{0x80000000800000000000000100000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000001}, + [_]u128{0x80000000800000000000000100000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x80000000800000000000000100000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x80000000800000000000000100000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000002}, + [_]u128{0x80000000800000000000000100000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x80000000800000000000000100000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0x80000000800000000000000100000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000002}, + [_]u128{0x80000000800000000000000100000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000200000001}, + [_]u128{0x80000000800000000000000100000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0x80000000800000000000000100000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000180000001}, + [_]u128{0x80000000800000000000000100000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000002}, + [_]u128{0x80000000800000000000000100000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x80000000800000000000000100000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0x80000000800000000000000100000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000002}, + [_]u128{0x80000000800000000000000100000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x80000000800000000000000100000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000800000000000000100000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000800000000000000100000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0x80000000800000000000000100000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x80000000800000000000000100000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0x80000000800000000000000100000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000002}, + [_]u128{0x80000000800000000000000100000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000001}, + [_]u128{0x80000000800000000000000100000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0x80000000800000000000000100000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000180000001}, + [_]u128{0x80000000800000000000000100000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000002}, + [_]u128{0x80000000800000000000000100000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x80000000800000000000000100000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x80000000800000000000000100000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000002}, + [_]u128{0x80000000800000000000000100000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000800000000000000100000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000100000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000100000001}, + [_]u128{0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000000000000000000000080000000, 0x00000001000000010000000000000003, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000010000000100000002, 0x00000000000000000000000080000002}, + [_]u128{0x80000000800000000000000180000000, 0x00000000000000000000000100000000, 0x00000000800000008000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000000000000000000000100000001, 0x00000000800000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000800000000000000180000000, 0x00000000000000000000000180000000, 0x0000000055555555AAAAAAAAAAAAAAAB, 0x00000000000000000000000100000000}, + [_]u128{0x80000000800000000000000180000000, 0x000000000000000000000001FFFFFFFF, 0x00000000400000006000000030000000, 0x000000000000000000000001B0000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000000000000008000000000000000, 0x00000000000000010000000100000000, 0x00000000000000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000000000000008000000000000001, 0x000000000000000100000000FFFFFFFE, 0x00000000000000000000000080000002}, + [_]u128{0x80000000800000000000000180000000, 0x00000000000000008000000080000000, 0x00000000000000010000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000003, 0x00000000000000007FFFFFFD80000003}, + [_]u128{0x80000000800000000000000180000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000100000001, 0x00000000000000000000000280000000}, + [_]u128{0x80000000800000000000000180000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000100000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000800000000000000180000000, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000080000000C0000000, 0x00000000000000006000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000008000000200000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000000000000010000000000000000, 0x00000000000000008000000080000000, 0x00000000000000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000000000000010000000000000001, 0x0000000000000000800000007FFFFFFF, 0x00000000000000008000000100000001}, + [_]u128{0x80000000800000000000000180000000, 0x00000000000000010000000080000000, 0x0000000000000000800000003FFFFFFF, 0x0000000000000000E000000200000000}, + [_]u128{0x80000000800000000000000180000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000008000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000000000000010000000100000000, 0x00000000000000008000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000008000000280000001}, + [_]u128{0x80000000800000000000000180000000, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000006000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x80000000800000000000000180000000, 0x00000000000000018000000000000000, 0x000000000000000055555555AAAAAAAA, 0x00000000000000010000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000000000000018000000000000001, 0x000000000000000055555555AAAAAAAA, 0x0000000000000000AAAAAAABD5555556}, + [_]u128{0x80000000800000000000000180000000, 0x00000000000000018000000080000000, 0x0000000000000000555555558E38E38E, 0x000000000000000038E38E3A80000000}, + [_]u128{0x80000000800000000000000180000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000005555555571C71C71, 0x0000000000000001638E38E5F1C71C71}, + [_]u128{0x80000000800000000000000180000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000060000000, 0x00000000000000006000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000060000000, 0x00000000000000002000000120000000}, + [_]u128{0x80000000800000000000000180000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000050000000, 0x00000000000000002800000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000040000000, 0x000000000000000040000001C0000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x00000000000000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000800000000000000180000000, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000280000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000000800000000000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE0000000280000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000200000000}, + [_]u128{0x80000000800000000000000180000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF800000037FFFFFFF}, + [_]u128{0x80000000800000000000000180000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000080000000}, + [_]u128{0x80000000800000000000000180000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000001}, + [_]u128{0x80000000800000000000000180000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000100000000}, + [_]u128{0x80000000800000000000000180000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001000000027FFFFFFF}, + [_]u128{0x80000000800000000000000180000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x00000000000000010000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x80000000800000000000000180000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x0000000000000000C000000100000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000008000000100000001}, + [_]u128{0x80000000800000000000000180000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x00000000000000008000000080000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x80000000800000000000000180000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x00000000000000004000000000000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000800000000000000180000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000C00000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000C00000000000000100000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFFC000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF8000000200000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000800000008000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000800000008000000100000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000800000004000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000000000000200000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000800000000000000100000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFC000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000200000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF4000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x00000000400000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x00000000400000000000000100000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFC000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF8000000200000000}, + [_]u128{0x80000000800000000000000180000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000008000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000008000000100000000}, + [_]u128{0x80000000800000000000000180000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000004000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000200000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x00000000000000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000C000000200000000}, + [_]u128{0x80000000800000000000000180000000, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000010000000080000002FFFFFFFF}, + [_]u128{0x80000000800000000000000180000000, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000008000000280000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000008000000200000001}, + [_]u128{0x80000000800000000000000180000000, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000004000000300000000}, + [_]u128{0x80000000800000000000000180000000, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000010000000000000003FFFFFFFF}, + [_]u128{0x80000000800000000000000180000000, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000018000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000018000000100000001}, + [_]u128{0x80000000800000000000000180000000, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000014000000200000000}, + [_]u128{0x80000000800000000000000180000000, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C000000100000002FFFFFFFF}, + [_]u128{0x80000000800000000000000180000000, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000028000000080000000}, + [_]u128{0x80000000800000000000000180000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000028000000000000001}, + [_]u128{0x80000000800000000000000180000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000024000000100000000}, + [_]u128{0x80000000800000000000000180000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000008000000200000001FFFFFFFF}, + [_]u128{0x80000000800000000000000180000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x00000001000000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x0000000100000000000000012AAAAAAB}, + [_]u128{0x80000000800000000000000180000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFD555555700000000}, + [_]u128{0x80000000800000000000000180000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFAAAAAAACD5555555}, + [_]u128{0x80000000800000000000000180000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFAAAAAAAC80000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFAAAAAAAC2AAAAAAB}, + [_]u128{0x80000000800000000000000180000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000000FFFFFFFF8000000200000000}, + [_]u128{0x80000000800000000000000180000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000FFFFFFFF55555557D5555555}, + [_]u128{0x80000000800000000000000180000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000D55555558000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000000D5555555800000012AAAAAAB}, + [_]u128{0x80000000800000000000000180000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000D55555555555555700000000}, + [_]u128{0x80000000800000000000000180000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000D55555552AAAAAACD5555555}, + [_]u128{0x80000000800000000000000180000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB5555555680000000}, + [_]u128{0x80000000800000000000000180000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB555555562AAAAAAB}, + [_]u128{0x80000000800000000000000180000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB2AAAAAAC00000000}, + [_]u128{0x80000000800000000000000180000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB00000001D5555555}, + [_]u128{0x80000000800000000000000180000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000C00000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x00000000C00000000000000140000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFE000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFC0000001C0000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFC000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFC000000140000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFA000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000BFFFFFFF80000001C0000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000A00000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x00000000A00000000000000140000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000009FFFFFFFE000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000009FFFFFFFC0000001C0000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000800000004000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000800000004000000140000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000800000002000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x000000008000000000000001C0000000}, + [_]u128{0x80000000800000000000000180000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000000000017FFFFFFF}, + [_]u128{0x80000000800000000000000180000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000800000000000000100000000}, + [_]u128{0x80000000800000000000000180000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000080000001}, + [_]u128{0x80000000800000000000000180000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000800000000000000080000000}, + [_]u128{0x80000000800000000000000180000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x80000000800000000000000180000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x80000000800000000000000180000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x80000000800000000000000180000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0x80000000800000000000000180000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x80000000800000000000000180000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0x80000000800000000000000180000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000280000000}, + [_]u128{0x80000000800000000000000180000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000027FFFFFFF}, + [_]u128{0x80000000800000000000000180000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0x80000000800000000000000180000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000180000001}, + [_]u128{0x80000000800000000000000180000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0x80000000800000000000000180000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x80000000800000000000000180000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0x80000000800000000000000180000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x80000000800000000000000180000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000800000000000000180000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000800000000000000180000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000800000000000000180000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0x80000000800000000000000180000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x80000000800000000000000180000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0x80000000800000000000000180000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000280000000}, + [_]u128{0x80000000800000000000000180000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE000000027FFFFFFF}, + [_]u128{0x80000000800000000000000180000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0x80000000800000000000000180000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000180000001}, + [_]u128{0x80000000800000000000000180000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x80000000800000000000000180000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x80000000800000000000000180000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x80000000800000000000000180000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000800000000000000180000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000800000000000000180000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000000000000180000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x80000000800000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000000000000180000000}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000001000000010000000000000003, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000800000010000000100000003, 0x00000000000000000000000000000002}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000800000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000180000000, 0x0000000055555555AAAAAAAAAAAAAAAB, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000400000006000000030000001, 0x00000000000000000000000030000000}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000010000000100000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000000000008000000000000001, 0x000000000000000100000000FFFFFFFE, 0x00000000000000000000000100000001}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000010000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000003, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000100000001, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000100000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000080000000C0000000, 0x000000000000000060000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000000, 0x0000000000000000800000027FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000008000000080000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000000000010000000000000001, 0x0000000000000000800000007FFFFFFF, 0x00000000000000008000000180000000}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000000000010000000080000000, 0x0000000000000000800000003FFFFFFF, 0x0000000000000000E00000027FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x00000000000000008000000000000000, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000008000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000008000000300000000}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFFC0000000, 0x000000000000000060000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000000000018000000000000000, 0x000000000000000055555555AAAAAAAA, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000000000018000000000000001, 0x000000000000000055555555AAAAAAAA, 0x0000000000000000AAAAAAAC55555555}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000000000018000000080000000, 0x0000000000000000555555558E38E38E, 0x000000000000000038E38E3AFFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x00000000000000005555555571C71C71, 0x0000000000000001638E38E671C71C70}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000060000000, 0x000000000000000060000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000060000000, 0x0000000000000000200000019FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000050000000, 0x000000000000000028000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000040000000, 0x0000000000000000400000023FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000100000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF80000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF00000002FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE80000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE00000002FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000000000027FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF80000003FFFFFFFE}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000200000000FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000000000000}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001800000017FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000100000002FFFFFFFE}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x0000000000000001000000017FFFFFFE}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x0000000000000000C00000017FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000008000000180000000}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x0000000000000000800000007FFFFFFE}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x0000000000000000400000007FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000000000000080000000}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000C000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000C0000000000000017FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFFC0000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF800000027FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000008000000080000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000080000000800000017FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000008000000040000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000080000000000000027FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x0000000080000000000000017FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFC0000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF800000027FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF80000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF40000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF000000027FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x000000004000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x0000000040000000000000017FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFC0000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF800000027FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000000000000040000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001000000010000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000C00000027FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000800000037FFFFFFE}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001000000010000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000010000000080000002FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000008000000280000000}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000400000037FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000000000047FFFFFFE}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C000000180000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000018000000180000000}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001400000027FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001000000037FFFFFFE}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x000000008000000280000000FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000028000000080000000}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002400000017FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002000000027FFFFFFE}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000010000000000000001AAAAAAAA}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFD55555577FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFAAAAAAAD55555554}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFAAAAAAACFFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFAAAAAAACAAAAAAAA}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000000FFFFFFFF800000027FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000FFFFFFFF5555555855555554}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000D555555580000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000000D555555580000001AAAAAAAA}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000D5555555555555577FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000D55555552AAAAAAD55555554}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB55555556FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB55555556AAAAAAAA}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB2AAAAAAC7FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB0000000255555554}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000C000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x00000000C000000000000001BFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFE0000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFC00000023FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFC0000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFC0000001BFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000BFFFFFFFA0000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000BFFFFFFF800000023FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000A000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x00000000A000000000000001BFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000009FFFFFFFE0000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000009FFFFFFFC00000023FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x000000008000000040000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x000000008000000040000001BFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x000000008000000020000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000080000000000000023FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x000000008000000000000001FFFFFFFE}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000000000017FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000100000000}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFE}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000001FFFFFFFE}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000002FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000002FFFFFFFE}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000027FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000001FFFFFFFE}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000001FFFFFFFE}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000002FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000002FFFFFFFE}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE000000027FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x800000008000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000000000001FFFFFFFF}, + [_]u128{0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000000000000000000000080000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000010000000180000001, 0x00000000000000000000000080000001}, + [_]u128{0x80000000800000008000000000000000, 0x00000000000000000000000100000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000000000000000000000100000001, 0x0000000080000000000000007FFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0x80000000800000008000000000000000, 0x00000000000000000000000180000000, 0x0000000055555555AAAAAAAB00000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000400000006000000070000000, 0x00000000000000000000000070000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000000000000008000000000000000, 0x00000000000000010000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000000000000008000000000000001, 0x000000000000000100000000FFFFFFFE, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0x80000000800000008000000000000000, 0x00000000000000008000000080000000, 0x00000000000000010000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000004, 0x00000000000000007FFFFFFB00000004}, + [_]u128{0x80000000800000008000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000100000001, 0x00000000000000008000000100000000}, + [_]u128{0x80000000800000008000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000100000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x80000000800000008000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000080000000C0000000, 0x0000000000000000E000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000001, 0x00000000000000000000000080000001}, + [_]u128{0x80000000800000008000000000000000, 0x00000000000000010000000000000000, 0x00000000000000008000000080000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000000000000010000000000000001, 0x0000000000000000800000007FFFFFFF, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x80000000800000008000000000000000, 0x00000000000000010000000080000000, 0x00000000000000008000000040000000, 0x00000000000000006000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000010000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000000000000010000000100000000, 0x00000000000000008000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000000000000010000000100000001, 0x00000000000000008000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000E000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x80000000800000008000000000000000, 0x00000000000000018000000000000000, 0x000000000000000055555555AAAAAAAB, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000000000000018000000000000001, 0x000000000000000055555555AAAAAAAA, 0x00000000000000012AAAAAAA55555556}, + [_]u128{0x80000000800000008000000000000000, 0x00000000000000018000000080000000, 0x0000000000000000555555558E38E38E, 0x0000000000000000B8E38E3900000000}, + [_]u128{0x80000000800000008000000000000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000005555555571C71C72, 0x0000000000000000638E38E371C71C72}, + [_]u128{0x80000000800000008000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000060000000, 0x0000000000000000E000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000060000000, 0x00000000000000009FFFFFFFA0000000}, + [_]u128{0x80000000800000008000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000050000000, 0x0000000000000000A800000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000040000000, 0x0000000000000000C000000040000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x00000000000000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x80000000800000008000000000000000, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x00000000800000000000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000000800000000000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000000800000008000000080000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x80000000800000008000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFF00000000}, + [_]u128{0x80000000800000008000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFE00000001}, + [_]u128{0x80000000800000008000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x80000000800000008000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x80000000800000008000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x00000000000000018000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x00000000000000017FFFFFFF7FFFFFFF}, + [_]u128{0x80000000800000008000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x00000000000000013FFFFFFF80000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x80000000800000008000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x80000000800000008000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x0000000000000000BFFFFFFE80000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x80000000800000008000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000C00000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000C00000007FFFFFFF80000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x00000000C00000004000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000C00000000000000080000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000800000010000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000080000000C000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000008000000080000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x00000000800000004000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000000000000080000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000800000000000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFC000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x00000000400000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x00000000400000007FFFFFFF80000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x00000000400000004000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000400000000000000080000000}, + [_]u128{0x80000000800000008000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000010000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x80000000800000008000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000000000000C000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001000000010000000080000000, 0x00000000000000000000000080000000, 0x00000000000000004000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001000000010000000100000000, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000010000000080000001}, + [_]u128{0x80000000800000008000000000000000, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000C000000180000000}, + [_]u128{0x80000000800000008000000000000000, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000800000027FFFFFFF}, + [_]u128{0x80000000800000008000000000000000, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000020000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001FFFFFFFF80000001}, + [_]u128{0x80000000800000008000000000000000, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001C000000080000000}, + [_]u128{0x80000000800000008000000000000000, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001800000017FFFFFFF}, + [_]u128{0x80000000800000008000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFF00000000}, + [_]u128{0x80000000800000008000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFE80000001}, + [_]u128{0x80000000800000008000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002BFFFFFFF80000000}, + [_]u128{0x80000000800000008000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002800000007FFFFFFF}, + [_]u128{0x80000000800000008000000000000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x00000001000000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x00000001000000007FFFFFFFAAAAAAAB}, + [_]u128{0x80000000800000008000000000000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x00000001000000005555555580000000}, + [_]u128{0x80000000800000008000000000000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000001000000002AAAAAAB55555555}, + [_]u128{0x80000000800000008000000000000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x00000001000000002AAAAAAB00000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x00000001000000002AAAAAAAAAAAAAAB}, + [_]u128{0x80000000800000008000000000000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000001000000000000000080000000}, + [_]u128{0x80000000800000008000000000000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFD555555655555555}, + [_]u128{0x80000000800000008000000000000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000D55555560000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000000D5555555FFFFFFFFAAAAAAAB}, + [_]u128{0x80000000800000008000000000000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000D5555555D555555580000000}, + [_]u128{0x80000000800000008000000000000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000D5555555AAAAAAAB55555555}, + [_]u128{0x80000000800000008000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAABD555555500000000}, + [_]u128{0x80000000800000008000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x00000000AAAAAAABD5555554AAAAAAAB}, + [_]u128{0x80000000800000008000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAABAAAAAAAA80000000}, + [_]u128{0x80000000800000008000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB8000000055555555}, + [_]u128{0x80000000800000008000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000C00000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x00000000C00000007FFFFFFFC0000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x00000000C00000006000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000C00000004000000040000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x00000000C00000004000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x00000000C00000003FFFFFFFC0000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000C00000002000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000C00000000000000040000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000A00000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x00000000A00000007FFFFFFFC0000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x00000000A00000006000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000A00000004000000040000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x0000000080000000C000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x0000000080000000BFFFFFFFC0000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x0000000080000000A000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000800000008000000040000000}, + [_]u128{0x80000000800000008000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFFFFFFFFFF}, + [_]u128{0x80000000800000008000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0x80000000800000008000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000001}, + [_]u128{0x80000000800000008000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0x80000000800000008000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFEFFFFFFFF}, + [_]u128{0x80000000800000008000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE80000000}, + [_]u128{0x80000000800000008000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE00000001}, + [_]u128{0x80000000800000008000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000800000008000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000800000008000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000800000008000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x80000000800000008000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000800000008000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x80000000800000008000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0x80000000800000008000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x80000000800000008000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000800000008000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0x80000000800000008000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000800000008000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0x80000000800000008000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000000}, + [_]u128{0x80000000800000008000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE00000001}, + [_]u128{0x80000000800000008000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000800000008000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x80000000800000008000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x80000000800000008000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x80000000800000008000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000000FFFFFFFF}, + [_]u128{0x80000000800000008000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0x80000000800000008000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000001}, + [_]u128{0x80000000800000008000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x80000000800000008000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000800000008000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x80000000800000008000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000800000008000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x80000000800000008000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x80000000800000008000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x80000000800000008000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000008000000000000001, 0x00000000000000000000000080000000, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000010000000180000001, 0x00000000000000000000000080000002}, + [_]u128{0x80000000800000008000000000000001, 0x00000000000000000000000100000000, 0x00000000800000008000000080000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000000000000000000000100000001, 0x0000000080000000000000007FFFFFFF, 0x00000000000000000000000080000002}, + [_]u128{0x80000000800000008000000000000001, 0x00000000000000000000000180000000, 0x0000000055555555AAAAAAAB00000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000400000006000000070000000, 0x00000000000000000000000070000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000000000000008000000000000000, 0x00000000000000010000000100000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000000000000008000000000000001, 0x000000000000000100000000FFFFFFFE, 0x00000000000000007FFFFFFF00000003}, + [_]u128{0x80000000800000008000000000000001, 0x00000000000000008000000080000000, 0x00000000000000010000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000004, 0x00000000000000007FFFFFFB00000005}, + [_]u128{0x80000000800000008000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000100000001, 0x00000000000000008000000100000001}, + [_]u128{0x80000000800000008000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000008000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000080000000C0000000, 0x0000000000000000E000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000001, 0x00000000000000000000000080000002}, + [_]u128{0x80000000800000008000000000000001, 0x00000000000000010000000000000000, 0x00000000000000008000000080000000, 0x00000000000000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000000000000010000000000000001, 0x0000000000000000800000007FFFFFFF, 0x0000000000000000FFFFFFFF80000002}, + [_]u128{0x80000000800000008000000000000001, 0x00000000000000010000000080000000, 0x00000000000000008000000040000000, 0x00000000000000006000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000010000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000000000000010000000100000000, 0x00000000000000008000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000000000000010000000100000001, 0x00000000000000008000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000E000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x0000000000000000FFFFFFFD80000002}, + [_]u128{0x80000000800000008000000000000001, 0x00000000000000018000000000000000, 0x000000000000000055555555AAAAAAAB, 0x00000000000000000000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000000000000018000000000000001, 0x000000000000000055555555AAAAAAAA, 0x00000000000000012AAAAAAA55555557}, + [_]u128{0x80000000800000008000000000000001, 0x00000000000000018000000080000000, 0x0000000000000000555555558E38E38E, 0x0000000000000000B8E38E3900000001}, + [_]u128{0x80000000800000008000000000000001, 0x000000000000000180000000FFFFFFFF, 0x00000000000000005555555571C71C72, 0x0000000000000000638E38E371C71C73}, + [_]u128{0x80000000800000008000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000060000000, 0x0000000000000000E000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000060000000, 0x00000000000000009FFFFFFFA0000001}, + [_]u128{0x80000000800000008000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000050000000, 0x0000000000000000A800000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000040000000, 0x0000000000000000C000000040000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x00000000000000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000000800000000000000000000001, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000800000008000000000000001, 0x00000000800000000000000080000000, 0x00000000000000000000000100000000, 0x00000000800000000000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000100000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000000800000000000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000100000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000000800000008000000080000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000200000000}, + [_]u128{0x80000000800000008000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFF00000001}, + [_]u128{0x80000000800000008000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFE00000002}, + [_]u128{0x80000000800000008000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000001}, + [_]u128{0x80000000800000008000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000100000000}, + [_]u128{0x80000000800000008000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x00000000000000018000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x80000000800000008000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x00000000000000013FFFFFFF80000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x0000000000000000FFFFFFFF80000002}, + [_]u128{0x80000000800000008000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x80000000800000008000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x0000000000000000BFFFFFFE80000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000007FFFFFFE80000002}, + [_]u128{0x80000000800000008000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000C00000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000C00000007FFFFFFF80000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x00000000C00000004000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000C00000000000000080000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000800000010000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFF80000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000080000000C000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000008000000080000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFF80000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x00000000800000004000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000000000000080000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000800000000000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFC000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x00000000400000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x00000000400000007FFFFFFF80000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x00000000400000004000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000400000000000000080000001}, + [_]u128{0x80000000800000008000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000010000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x80000000800000008000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000000000000C000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000008000000080000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x00000000000000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001000000010000000080000000, 0x00000000000000000000000080000000, 0x00000000000000004000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000080000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001000000010000000100000000, 0x00000000000000000000000080000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000010000000080000002}, + [_]u128{0x80000000800000008000000000000001, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000C000000180000001}, + [_]u128{0x80000000800000008000000000000001, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001000000008000000280000000}, + [_]u128{0x80000000800000008000000000000001, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000020000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001FFFFFFFF80000002}, + [_]u128{0x80000000800000008000000000000001, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001C000000080000001}, + [_]u128{0x80000000800000008000000000000001, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000018000000180000000}, + [_]u128{0x80000000800000008000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFF00000001}, + [_]u128{0x80000000800000008000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFE80000002}, + [_]u128{0x80000000800000008000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002BFFFFFFF80000001}, + [_]u128{0x80000000800000008000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000800000028000000080000000}, + [_]u128{0x80000000800000008000000000000001, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x00000001000000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x00000001000000007FFFFFFFAAAAAAAC}, + [_]u128{0x80000000800000008000000000000001, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x00000001000000005555555580000001}, + [_]u128{0x80000000800000008000000000000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000001000000002AAAAAAB55555556}, + [_]u128{0x80000000800000008000000000000001, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x00000001000000002AAAAAAB00000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x00000001000000002AAAAAAAAAAAAAAC}, + [_]u128{0x80000000800000008000000000000001, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000001000000000000000080000001}, + [_]u128{0x80000000800000008000000000000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFD555555655555556}, + [_]u128{0x80000000800000008000000000000001, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000D55555560000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000000D5555555FFFFFFFFAAAAAAAC}, + [_]u128{0x80000000800000008000000000000001, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000D5555555D555555580000001}, + [_]u128{0x80000000800000008000000000000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000D5555555AAAAAAAB55555556}, + [_]u128{0x80000000800000008000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAABD555555500000001}, + [_]u128{0x80000000800000008000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x00000000AAAAAAABD5555554AAAAAAAC}, + [_]u128{0x80000000800000008000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAABAAAAAAAA80000001}, + [_]u128{0x80000000800000008000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB8000000055555556}, + [_]u128{0x80000000800000008000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000C00000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x00000000C00000007FFFFFFFC0000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x00000000C00000006000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000C00000004000000040000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x00000000C00000004000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x00000000C00000003FFFFFFFC0000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000C00000002000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000C00000000000000040000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000A00000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x00000000A00000007FFFFFFFC0000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x00000000A00000006000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000A00000004000000040000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x0000000080000000C000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x0000000080000000BFFFFFFFC0000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x0000000080000000A000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000800000008000000040000001}, + [_]u128{0x80000000800000008000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000800000008000000000000000}, + [_]u128{0x80000000800000008000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF80000001}, + [_]u128{0x80000000800000008000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000002}, + [_]u128{0x80000000800000008000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000001}, + [_]u128{0x80000000800000008000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0x80000000800000008000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE80000001}, + [_]u128{0x80000000800000008000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE00000002}, + [_]u128{0x80000000800000008000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x80000000800000008000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x80000000800000008000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000002}, + [_]u128{0x80000000800000008000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000001}, + [_]u128{0x80000000800000008000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x80000000800000008000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0x80000000800000008000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000002}, + [_]u128{0x80000000800000008000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x80000000800000008000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0x80000000800000008000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000002}, + [_]u128{0x80000000800000008000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0x80000000800000008000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000800000008000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0x80000000800000008000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE00000002}, + [_]u128{0x80000000800000008000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000800000008000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000800000008000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0x80000000800000008000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000001}, + [_]u128{0x80000000800000008000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x80000000800000008000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0x80000000800000008000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000002}, + [_]u128{0x80000000800000008000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x80000000800000008000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x80000000800000008000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0x80000000800000008000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x80000000800000008000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000800000008000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x80000000800000008000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x80000000800000008000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000008000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000000000001}, + [_]u128{0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000000000000000000080000000, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000010000000180000002, 0x00000000000000000000000000000002}, + [_]u128{0x80000000800000008000000080000000, 0x00000000000000000000000100000000, 0x00000000800000008000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000000000000000000100000001, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000000000000000000180000000, 0x0000000055555555AAAAAAAB00000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000400000006000000070000000, 0x000000000000000000000000F0000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000000000008000000000000000, 0x00000000000000010000000100000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000000000008000000000000001, 0x000000000000000100000000FFFFFFFE, 0x00000000000000007FFFFFFF80000002}, + [_]u128{0x80000000800000008000000080000000, 0x00000000000000008000000080000000, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000008000000080000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000004, 0x00000000000000007FFFFFFB80000004}, + [_]u128{0x80000000800000008000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000100000001, 0x00000000000000008000000180000000}, + [_]u128{0x80000000800000008000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000100000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000800000008000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000080000000C0000000, 0x0000000000000000E000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000001, 0x00000000000000000000000100000001}, + [_]u128{0x80000000800000008000000080000000, 0x00000000000000010000000000000000, 0x00000000000000008000000080000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000000000010000000000000001, 0x00000000000000008000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000000000010000000080000000, 0x00000000000000008000000040000000, 0x00000000000000006000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000010000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000000000010000000100000000, 0x00000000000000008000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000000000010000000100000001, 0x00000000000000008000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000E000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x80000000800000008000000080000000, 0x00000000000000018000000000000000, 0x000000000000000055555555AAAAAAAB, 0x00000000000000000000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000000000018000000000000001, 0x000000000000000055555555AAAAAAAA, 0x00000000000000012AAAAAAAD5555556}, + [_]u128{0x80000000800000008000000080000000, 0x00000000000000018000000080000000, 0x0000000000000000555555558E38E38E, 0x0000000000000000B8E38E3980000000}, + [_]u128{0x80000000800000008000000080000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000005555555571C71C72, 0x0000000000000000638E38E3F1C71C72}, + [_]u128{0x80000000800000008000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000060000000, 0x0000000000000000E000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000060000000, 0x0000000000000000A000000020000000}, + [_]u128{0x80000000800000008000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000050000000, 0x0000000000000000A800000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000040000000, 0x0000000000000000C0000000C0000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x00000000000000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x80000000800000008000000080000000, 0x00000000800000000000000080000000, 0x00000000000000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000008000000080000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000800000000000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000800000008000000080000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000000000027FFFFFFF}, + [_]u128{0x80000000800000008000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFF80000000}, + [_]u128{0x80000000800000008000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFE80000001}, + [_]u128{0x80000000800000008000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000000000000}, + [_]u128{0x80000000800000008000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001800000017FFFFFFF}, + [_]u128{0x80000000800000008000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x00000000000000018000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0x80000000800000008000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x00000000000000014000000000000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000010000000000000001}, + [_]u128{0x80000000800000008000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x80000000800000008000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x0000000000000000BFFFFFFF00000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x80000000800000008000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000C00000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000C00000008000000000000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x00000000C00000004000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000C00000000000000100000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000800000010000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000800000010000000000000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000080000000C000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000008000000100000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000800000008000000000000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x00000000800000004000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000000000000100000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000800000000000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000800000000000000000000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFC000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x00000000400000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x00000000400000008000000000000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x00000000400000004000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000400000000000000100000000}, + [_]u128{0x80000000800000008000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000010000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000010000000000000000}, + [_]u128{0x80000000800000008000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000000000000C000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000008000000100000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001000000010000000080000000, 0x00000000000000000000000080000000, 0x00000000000000004000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001000000010000000100000000, 0x00000000000000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001000000010000000100000001, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000C000000200000000}, + [_]u128{0x80000000800000008000000080000000, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000010000000080000002FFFFFFFF}, + [_]u128{0x80000000800000008000000080000000, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000020000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000020000000000000001}, + [_]u128{0x80000000800000008000000080000000, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001C000000100000000}, + [_]u128{0x80000000800000008000000080000000, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C000000180000001FFFFFFFF}, + [_]u128{0x80000000800000008000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFF80000000}, + [_]u128{0x80000000800000008000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFF00000001}, + [_]u128{0x80000000800000008000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002C000000000000000}, + [_]u128{0x80000000800000008000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000008000000280000000FFFFFFFF}, + [_]u128{0x80000000800000008000000080000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x00000001000000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x0000000100000000800000002AAAAAAB}, + [_]u128{0x80000000800000008000000080000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x00000001000000005555555600000000}, + [_]u128{0x80000000800000008000000080000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000001000000002AAAAAABD5555555}, + [_]u128{0x80000000800000008000000080000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x00000001000000002AAAAAAB80000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x00000001000000002AAAAAAB2AAAAAAB}, + [_]u128{0x80000000800000008000000080000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000001000000000000000100000000}, + [_]u128{0x80000000800000008000000080000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFD5555556D5555555}, + [_]u128{0x80000000800000008000000080000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000D55555560000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000000D5555556000000002AAAAAAB}, + [_]u128{0x80000000800000008000000080000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000D5555555D555555600000000}, + [_]u128{0x80000000800000008000000080000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000D5555555AAAAAAABD5555555}, + [_]u128{0x80000000800000008000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAABD555555580000000}, + [_]u128{0x80000000800000008000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x00000000AAAAAAABD55555552AAAAAAB}, + [_]u128{0x80000000800000008000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAABAAAAAAAB00000000}, + [_]u128{0x80000000800000008000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB80000000D5555555}, + [_]u128{0x80000000800000008000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000C00000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x00000000C00000008000000040000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x00000000C00000006000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000C000000040000000C0000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x00000000C00000004000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x00000000C00000004000000040000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000C00000002000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000C000000000000000C0000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000A00000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x00000000A00000008000000040000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x00000000A00000006000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000A000000040000000C0000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x0000000080000000C000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x0000000080000000C000000040000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x0000000080000000A000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x000000008000000080000000C0000000}, + [_]u128{0x80000000800000008000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000800000007FFFFFFF}, + [_]u128{0x80000000800000008000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000800000008000000000000000}, + [_]u128{0x80000000800000008000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF80000001}, + [_]u128{0x80000000800000008000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0x80000000800000008000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF7FFFFFFF}, + [_]u128{0x80000000800000008000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0x80000000800000008000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE80000001}, + [_]u128{0x80000000800000008000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x80000000800000008000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x80000000800000008000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x80000000800000008000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0x80000000800000008000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0x80000000800000008000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x80000000800000008000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0x80000000800000008000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0x80000000800000008000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x80000000800000008000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0x80000000800000008000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000800000008000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x80000000800000008000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000800000008000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0x80000000800000008000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000800000008000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000800000008000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000800000008000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0x80000000800000008000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0x80000000800000008000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x80000000800000008000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0x80000000800000008000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x80000000800000008000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x80000000800000008000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x80000000800000008000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000800000008000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x80000000800000008000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000800000008000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x80000000800000008000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000800000008000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000800000008000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x80000000800000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000800000008000000080000000}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000001000000010000000100000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000800000010000000180000002, 0x00000000000000000000000080000001}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000800000008000000080000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000800000000000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000180000000, 0x0000000055555555AAAAAAAB00000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000400000006000000070000000, 0x0000000000000000000000016FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000000000008000000000000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000010000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000004, 0x00000000000000007FFFFFFC00000003}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000100000001, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000100000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000080000000C0000000, 0x0000000000000000E0000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000001, 0x00000000000000000000000180000000}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000008000000080000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000008000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000008000000040000000, 0x000000000000000060000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000008000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000008000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000E0000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000000000018000000000000000, 0x000000000000000055555555AAAAAAAB, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000000000018000000000000001, 0x000000000000000055555555AAAAAAAA, 0x00000000000000012AAAAAAB55555555}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000000000018000000080000000, 0x0000000000000000555555558E38E38E, 0x0000000000000000B8E38E39FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x00000000000000005555555571C71C72, 0x0000000000000000638E38E471C71C71}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000060000000, 0x0000000000000000E0000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000060000000, 0x0000000000000000A00000009FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000050000000, 0x0000000000000000A8000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000040000000, 0x0000000000000000C00000013FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000100000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF80000001FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE80000001FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000008000000000000002FFFFFFFE}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFFFFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFF00000000}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000002000000007FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000180000001FFFFFFFE}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x0000000000000001800000007FFFFFFE}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x0000000000000001400000007FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000010000000080000000}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x0000000000000000FFFFFFFF7FFFFFFE}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x0000000000000000BFFFFFFF7FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000C000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000C0000000800000007FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x00000000C000000040000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000C0000000000000017FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000008000000100000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000080000001000000007FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000080000000C0000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000080000000800000017FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x0000000080000000800000007FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x000000008000000040000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000080000000000000017FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFC0000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x000000004000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x0000000040000000800000007FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x000000004000000040000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000040000000000000017FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000000000000C0000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000080000000, 0x000000000000000040000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000080000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001000000010000000180000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000C00000027FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000800000037FFFFFFE}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C000000200000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000020000000080000000}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001C00000017FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000001800000027FFFFFFE}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFFFFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFF80000000}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002C00000007FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002800000017FFFFFFE}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000010000000080000000AAAAAAAA}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x0000000100000000555555567FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000001000000002AAAAAAC55555554}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x00000001000000002AAAAAABFFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x00000001000000002AAAAAABAAAAAAAA}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x0000000100000000000000017FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000FFFFFFFFD555555755555554}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000D555555600000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000000D555555600000000AAAAAAAA}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000D5555555D55555567FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000D5555555AAAAAAAC55555554}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAABD5555555FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x00000000AAAAAAABD5555555AAAAAAAA}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAABAAAAAAAB7FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x00000000AAAAAAAB8000000155555554}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000C000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x00000000C000000080000000BFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x00000000C000000060000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000C0000000400000013FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x00000000C000000040000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x00000000C000000040000000BFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000C000000020000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000C0000000000000013FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000A000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x00000000A000000080000000BFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x00000000A000000060000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000A0000000400000013FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x0000000080000000C0000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x0000000080000000C0000000BFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x0000000080000000A0000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000080000000800000013FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x000000008000000080000000FFFFFFFE}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000800000007FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000008000000000000000}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFFFFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFFFFFFFFFE}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF7FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFE}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000001FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000001FFFFFFFE}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFE}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000001FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000001FFFFFFFE}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFE}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x800000008000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x800000008000000080000000FFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000010000000100000001FFFFFFFE, 0x00000000000000000000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000010000000200000001, 0x00000000000000000000000000000001}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000100000001, 0x000000008000000000000000FFFFFFFE, 0x00000000000000000000000000000002}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000180000000, 0x0000000055555555AAAAAAAB55555554, 0x00000000000000000000000100000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFF, 0x000000004000000060000000AFFFFFFF, 0x000000000000000000000001AFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000000000008000000000000000, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000000000008000000000000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000000000008000000080000000, 0x00000000000000010000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000005, 0x00000000000000007FFFFFF900000005}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000100000002, 0x00000000000000000000000100000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000100000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000080000000C0000001, 0x00000000000000005FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000000000010000000000000000, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000000000010000000000000001, 0x00000000000000008000000080000000, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000000000010000000080000000, 0x00000000000000008000000040000000, 0x0000000000000000DFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000000000010000000100000000, 0x00000000000000008000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000000000010000000100000001, 0x00000000000000008000000000000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFFC0000001, 0x00000000000000005FFFFFFD80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF80000002, 0x00000000000000007FFFFFFA80000002}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000000000018000000000000000, 0x000000000000000055555555AAAAAAAB, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000000000018000000000000001, 0x000000000000000055555555AAAAAAAB, 0x00000000000000002AAAAAA955555555}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000000000018000000080000000, 0x0000000000000000555555558E38E38E, 0x000000000000000138E38E3800000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000005555555571C71C72, 0x0000000000000000E38E38E271C71C72}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000060000000, 0x00000000000000015FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000060000000, 0x00000000000000011FFFFFFEA0000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000050000000, 0x000000000000000127FFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000040000000, 0x00000000000000013FFFFFFF40000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFDFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000800000000000000080000000, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000800000000000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000800000000000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000800000008000000080000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000002FFFFFFFE00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000002FFFFFFFD00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x0000000000000001FFFFFFFE7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x0000000000000001BFFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x00000000000000017FFFFFFE00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x00000000000000017FFFFFFD7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x00000000000000013FFFFFFD80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000C0000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000C0000000FFFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x00000000C0000000BFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000C00000007FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000800000017FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000800000017FFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000800000013FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x0000000080000000BFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000800000003FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x0000000040000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x0000000040000000FFFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x0000000040000000BFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000400000007FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000013FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001000000010000000080000000, 0x00000000000000000000000080000000, 0x0000000000000000BFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001000000010000000100000000, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001000000010000000100000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001000000010000000180000000, 0x00000000000000000000000080000000, 0x00000000000000003FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001000000017FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000027FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000027FFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000023FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000002000000007FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000037FFFFFFE00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000037FFFFFFD80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000033FFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFF7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x0000000100000000FFFFFFFEAAAAAAAB}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x0000000100000000D555555480000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000100000000AAAAAAAA55555555}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x0000000100000000AAAAAAAA00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x0000000100000000AAAAAAA9AAAAAAAB}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000001000000007FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x00000001000000005555555555555555}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000D55555567FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000000D55555567FFFFFFEAAAAAAAB}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000D55555565555555480000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000D55555562AAAAAAA55555555}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAAC5555555400000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x00000000AAAAAAAC55555553AAAAAAAB}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAAC2AAAAAA980000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x00000000AAAAAAABFFFFFFFF55555555}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000C0000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x00000000C0000000FFFFFFFEC0000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x00000000C0000000DFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000C0000000BFFFFFFF40000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x00000000C0000000BFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x00000000C0000000BFFFFFFEC0000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000C00000009FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000C00000007FFFFFFF40000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000A0000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x00000000A0000000FFFFFFFEC0000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x00000000A0000000DFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000A0000000BFFFFFFF40000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000800000013FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000800000013FFFFFFEC0000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000800000011FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000080000000FFFFFFFF40000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFEFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFDFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFD80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFD00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFEFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFDFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFDFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x000000010000000100000001FFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000010000000200000001, 0x00000000000000000000000000000002}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000100000001, 0x000000008000000000000000FFFFFFFE, 0x00000000000000000000000000000003}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000180000000, 0x0000000055555555AAAAAAAB55555554, 0x00000000000000000000000100000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFF, 0x000000004000000060000000AFFFFFFF, 0x000000000000000000000001B0000000}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000000000008000000000000000, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000000000008000000000000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000000000008000000080000000, 0x00000000000000010000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000005, 0x00000000000000007FFFFFF900000006}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000100000002, 0x00000000000000000000000100000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000100000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000080000000C0000001, 0x00000000000000005FFFFFFF80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000001, 0x00000000000000007FFFFFFF80000002}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000000000010000000000000000, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000000000010000000000000001, 0x00000000000000008000000080000000, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000000000010000000080000000, 0x00000000000000008000000040000000, 0x0000000000000000DFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000000000010000000100000000, 0x00000000000000008000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000000000010000000100000001, 0x00000000000000008000000000000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFFC0000001, 0x00000000000000005FFFFFFD80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF80000002, 0x00000000000000007FFFFFFA80000003}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000000000018000000000000000, 0x000000000000000055555555AAAAAAAB, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000000000018000000000000001, 0x000000000000000055555555AAAAAAAB, 0x00000000000000002AAAAAA955555556}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000000000018000000080000000, 0x0000000000000000555555558E38E38E, 0x000000000000000138E38E3800000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x000000000000000180000000FFFFFFFF, 0x00000000000000005555555571C71C72, 0x0000000000000000E38E38E271C71C73}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000060000000, 0x00000000000000015FFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000060000000, 0x00000000000000011FFFFFFEA0000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000050000000, 0x000000000000000127FFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000040000000, 0x00000000000000013FFFFFFF40000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000800000000000000000000001, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000800000000000000080000000, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000800000000000000000000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFE00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000800000000000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000800000008000000080000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000002FFFFFFFE00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000002FFFFFFFD00000002}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x0000000000000001FFFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x0000000000000001BFFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000017FFFFFFE80000002}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x00000000000000017FFFFFFE00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x00000000000000017FFFFFFD80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x00000000000000013FFFFFFD80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000001, 0x0000000000000000FFFFFFFD80000002}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000C0000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000C0000000FFFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x00000000C0000000BFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000C00000007FFFFFFF80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000800000017FFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000800000017FFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000800000013FFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFF80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x0000000080000000BFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFF80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000800000003FFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x0000000040000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x0000000040000000FFFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x0000000040000000BFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000400000007FFFFFFF80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000013FFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001000000010000000080000000, 0x00000000000000000000000080000000, 0x0000000000000000BFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001000000010000000100000000, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001000000010000000100000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001000000010000000180000000, 0x00000000000000000000000080000000, 0x00000000000000003FFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001000000010000000180000000}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000027FFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000027FFFFFFE80000002}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000023FFFFFFF80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000020000000080000000}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000037FFFFFFE00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000037FFFFFFD80000002}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000033FFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x0000000100000000FFFFFFFEAAAAAAAC}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x0000000100000000D555555480000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000100000000AAAAAAAA55555556}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x0000000100000000AAAAAAAA00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x0000000100000000AAAAAAA9AAAAAAAC}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000001000000007FFFFFFF80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x00000001000000005555555555555556}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000D55555567FFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000000D55555567FFFFFFEAAAAAAAC}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000D55555565555555480000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000D55555562AAAAAAA55555556}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAAC5555555400000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x00000000AAAAAAAC55555553AAAAAAAC}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAAC2AAAAAA980000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x00000000AAAAAAABFFFFFFFF55555556}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000C0000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x00000000C0000000FFFFFFFEC0000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x00000000C0000000DFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000C0000000BFFFFFFF40000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x00000000C0000000BFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x00000000C0000000BFFFFFFEC0000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000C00000009FFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000C00000007FFFFFFF40000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000A0000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x00000000A0000000FFFFFFFEC0000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x00000000A0000000DFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000A0000000BFFFFFFF40000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000800000013FFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000800000013FFFFFFEC0000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000800000011FFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000080000000FFFFFFFF40000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE00000002}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFD80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFD00000002}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE00000002}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000002}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000002}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD00000002}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE00000002}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000010000000200000001, 0x00000000000000000000000080000001}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000100000001, 0x000000008000000000000000FFFFFFFE, 0x00000000000000000000000080000002}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000180000000, 0x0000000055555555AAAAAAAB55555555, 0x00000000000000000000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFF, 0x000000004000000060000000B0000000, 0x00000000000000000000000030000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000000000008000000000000000, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000000000008000000000000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000000000008000000080000000, 0x00000000000000010000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000005, 0x00000000000000007FFFFFF980000005}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000100000002, 0x00000000000000000000000180000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000100000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000080000000C0000001, 0x00000000000000006000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000001, 0x00000000000000008000000000000001}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000000000010000000000000000, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000000000010000000000000001, 0x00000000000000008000000080000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000000000010000000080000000, 0x00000000000000008000000040000000, 0x0000000000000000DFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000000000010000000100000000, 0x00000000000000008000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000000000010000000100000001, 0x00000000000000008000000000000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFFC0000001, 0x00000000000000005FFFFFFE00000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF80000002, 0x00000000000000007FFFFFFB00000002}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000000000018000000000000000, 0x000000000000000055555555AAAAAAAB, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000000000018000000000000001, 0x000000000000000055555555AAAAAAAB, 0x00000000000000002AAAAAA9D5555555}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000000000018000000080000000, 0x0000000000000000555555558E38E38E, 0x000000000000000138E38E3880000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x000000000000000180000000FFFFFFFF, 0x00000000000000005555555571C71C72, 0x0000000000000000E38E38E2F1C71C72}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000060000000, 0x00000000000000015FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000060000000, 0x00000000000000011FFFFFFF20000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000050000000, 0x000000000000000127FFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000040000000, 0x00000000000000013FFFFFFFC0000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000800000000000000080000000, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000800000000000000080000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000800000000000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000800000008000000080000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000002FFFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000002FFFFFFFD80000001}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000002000000007FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x0000000000000001FFFFFFFEFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x0000000000000001BFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x00000000000000017FFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x00000000000000017FFFFFFDFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x00000000000000013FFFFFFE00000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000C0000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000C0000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x00000000C0000000BFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000C00000008000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000800000017FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000800000017FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000800000013FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000010000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x0000000080000000BFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000008000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000800000003FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000000000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x0000000040000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x0000000040000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x0000000040000000BFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000400000008000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000013FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000010000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001000000010000000080000000, 0x00000000000000000000000080000000, 0x0000000000000000BFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000008000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001000000010000000100000000, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001000000010000000100000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001000000010000000180000000, 0x00000000000000000000000080000000, 0x00000000000000003FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000027FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000027FFFFFFF00000001}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000024000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C000000200000000FFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000037FFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000037FFFFFFE00000001}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000033FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000002FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x0000000100000000FFFFFFFF2AAAAAAB}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x0000000100000000D555555500000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000100000000AAAAAAAAD5555555}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x0000000100000000AAAAAAAA80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x0000000100000000AAAAAAAA2AAAAAAB}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x00000001000000008000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000010000000055555555D5555555}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000D55555567FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000000D55555567FFFFFFF2AAAAAAB}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000D55555565555555500000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000D55555562AAAAAAAD5555555}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAAC5555555480000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x00000000AAAAAAAC555555542AAAAAAB}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAAC2AAAAAAA00000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x00000000AAAAAAABFFFFFFFFD5555555}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000C0000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x00000000C0000000FFFFFFFF40000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x00000000C0000000DFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000C0000000BFFFFFFFC0000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x00000000C0000000BFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x00000000C0000000BFFFFFFF40000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000C00000009FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000C00000007FFFFFFFC0000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000A0000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x00000000A0000000FFFFFFFF40000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x00000000A0000000DFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000A0000000BFFFFFFFC0000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000800000013FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000800000013FFFFFFF40000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000800000011FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000080000000FFFFFFFFC0000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE00000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFD80000001}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000000000000080000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD80000001}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x000000010000000100000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000800000010000000200000002, 0x00000000000000000000000000000001}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000, 0x0000000055555555AAAAAAAB55555555, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000004000000060000000B0000000, 0x000000000000000000000000AFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000010000000100000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000010000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000005, 0x00000000000000007FFFFFFA00000004}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000100000002, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000100000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000080000000C0000001, 0x0000000000000000600000007FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000001, 0x00000000000000008000000080000000}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000008000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000008000000080000000, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000080000000, 0x00000000000000008000000040000000, 0x0000000000000000DFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x00000000000000008000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000100000000, 0x00000000000000008000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000100000001, 0x00000000000000008000000000000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000180000000, 0x00000000000000007FFFFFFFC0000001, 0x00000000000000005FFFFFFE7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF80000002, 0x00000000000000007FFFFFFB80000001}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000018000000000000000, 0x000000000000000055555555AAAAAAAB, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000018000000000000001, 0x000000000000000055555555AAAAAAAB, 0x00000000000000002AAAAAAA55555554}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000018000000080000000, 0x0000000000000000555555558E38E38E, 0x000000000000000138E38E38FFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x00000000000000005555555571C71C72, 0x0000000000000000E38E38E371C71C71}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000004000000060000000, 0x00000000000000015FFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000004000000060000000, 0x00000000000000011FFFFFFF9FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000050000000, 0x000000000000000127FFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000040000000, 0x0000000000000001400000003FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFEFFFFFFFE}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000002FFFFFFFEFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000002FFFFFFFE00000000}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFF7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000200000000FFFFFFFE}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x0000000000000001FFFFFFFF7FFFFFFE}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x0000000000000001BFFFFFFF7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x00000000000000017FFFFFFEFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x00000000000000017FFFFFFE7FFFFFFE}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x00000000000000013FFFFFFE7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000000C0000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000000C0000000FFFFFFFF7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x00000000C0000000BFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000C0000000800000007FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000800000017FFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000800000017FFFFFFF7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000800000013FFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000080000001000000007FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x0000000080000000FFFFFFFF7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x0000000080000000BFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000080000000800000007FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFF7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000800000003FFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x0000000040000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x0000000040000000FFFFFFFF7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x0000000040000000BFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000040000000800000007FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000017FFFFFFF7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000013FFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000080000000, 0x0000000000000000BFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000080000000, 0x00000000000000003FFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000018000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000027FFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000018000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000000C00000027FFFFFFF80000000}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001000000018000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000002400000007FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000000C0000002000000017FFFFFFE}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000037FFFFFFEFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000000800000037FFFFFFE80000000}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000000800000033FFFFFFF7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000080000003000000007FFFFFFE}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x0000000100000000FFFFFFFFAAAAAAAA}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x0000000100000000D55555557FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000100000000AAAAAAAB55555554}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x0000000100000000AAAAAAAAFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x0000000100000000AAAAAAAAAAAAAAAA}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x0000000100000000800000007FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x00000001000000005555555655555554}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000000D55555567FFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000000D55555567FFFFFFFAAAAAAAA}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000000D5555556555555557FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000000D55555562AAAAAAB55555554}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAAC55555554FFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x00000000AAAAAAAC55555554AAAAAAAA}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x00000000AAAAAAAC2AAAAAAA7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x00000000AAAAAAAC0000000055555554}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x00000000C0000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x00000000C0000000FFFFFFFFBFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x00000000C0000000DFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000C0000000C00000003FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x00000000C0000000BFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x00000000C0000000BFFFFFFFBFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x00000000C00000009FFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000C0000000800000003FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x00000000A0000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x00000000A0000000FFFFFFFFBFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x00000000A0000000DFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x00000000A0000000C00000003FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000800000013FFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000800000013FFFFFFFBFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000800000011FFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000080000001000000003FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFE}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFEFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFEFFFFFFFE}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE00000000}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFFFFFFFFFE}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFE}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFE}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFEFFFFFFFE}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFE}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x8000000080000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x0000000100000001FFFFFFFE00000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000018000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000001, 0x00000000800000007FFFFFFE80000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000180000000, 0x0000000055555555FFFFFFFF55555555, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000400000009FFFFFFFCFFFFFFF, 0x000000000000000000000001CFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000000000008000000000000000, 0x000000000000000100000001FFFFFFFE, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000000000008000000000000001, 0x000000000000000100000001FFFFFFFB, 0x00000000000000007FFFFFFE00000005}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000000000008000000080000000, 0x000000000000000100000000FFFFFFFD, 0x00000000000000000000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000180000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000800000017FFFFFFF, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000800000013FFFFFFF, 0x00000000000000009FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000000000010000000000000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000000000010000000000000001, 0x000000000000000080000000FFFFFFFE, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000000000010000000080000000, 0x000000000000000080000000BFFFFFFE, 0x0000000000000000A000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000800000007FFFFFFF, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000000000010000000100000000, 0x0000000000000000800000007FFFFFFE, 0x00000000000000008000000200000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000000000010000000100000001, 0x0000000000000000800000007FFFFFFE, 0x00000000000000000000000180000002}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000000000010000000180000000, 0x0000000000000000800000003FFFFFFE, 0x0000000000000000A000000300000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFFFFFFFFFF, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000000000018000000000000000, 0x000000000000000055555555FFFFFFFF, 0x00000000000000008000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000000000018000000000000001, 0x000000000000000055555555FFFFFFFF, 0x00000000000000002AAAAAAA00000001}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000000000018000000080000000, 0x000000000000000055555555E38E38E2, 0x00000000000000010E38E38F00000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000055555555C71C71C6, 0x00000000000000008E38E38FC71C71C6}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x0000000000000000400000009FFFFFFF, 0x00000000000000019FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000400000009FFFFFFF, 0x00000000000000015FFFFFFE60000001}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000400000008FFFFFFF, 0x000000000000000147FFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000400000007FFFFFFF, 0x0000000000000001400000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFEFFFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000800000000000000080000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFE7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFE0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000800000000000000100000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFDFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000800000000000000100000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFDFFFFFFFDFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000800000000000000180000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFD7FFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFCFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000800000008000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x00000000800000000000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x000000007FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFFBFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x000000007FFFFFFF7FFFFFFE7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFF3FFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000001, 0x000000007FFFFFFEFFFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000001, 0x000000003FFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000001, 0x000000003FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000001, 0x000000003FFFFFFF3FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000001, 0x000000003FFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF4000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFEFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFEC000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE8000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE8000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE4000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x00000000BFFFFFFEFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFEC000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000BFFFFFFE8000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF4000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001000000010000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFEC000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001000000010000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001000000010000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFE7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001000000010000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE4000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001000000018000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001000000018000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFEFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001000000018000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFEC000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFE8000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000017FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000017FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000013FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFEFFFFFFFFAAAAAAAB}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFED555555580000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFEAAAAAAAB55555555}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFEAAAAAAAB00000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFEAAAAAAAAAAAAAAAB}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFE8000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFE5555555655555555}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000001555555548000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000001555555547FFFFFFFAAAAAAAB}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000001555555545555555580000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000001555555542AAAAAAB55555555}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAA5555555500000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000012AAAAAAA55555554AAAAAAAB}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAA2AAAAAAA80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000012AAAAAAA0000000055555555}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFEFFFFFFFFC0000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFEE000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFEC000000040000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFEC000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFEBFFFFFFFC0000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFEA000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFE8000000040000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000011FFFFFFEFFFFFFFFC0000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFEE000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000011FFFFFFEC000000040000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF4000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF3FFFFFFFC0000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF2000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF0000000040000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD7FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD7FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x0000000100000001FFFFFFFE00000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000018000000080000000, 0x00000000000000000000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000001, 0x00000000800000007FFFFFFE80000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000180000000, 0x0000000055555555FFFFFFFF55555555, 0x00000000000000000000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000400000009FFFFFFFCFFFFFFF, 0x000000000000000000000001D0000000}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000000000008000000000000000, 0x000000000000000100000001FFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000000000008000000000000001, 0x000000000000000100000001FFFFFFFB, 0x00000000000000007FFFFFFE00000006}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000000000008000000080000000, 0x000000000000000100000000FFFFFFFD, 0x00000000000000000000000180000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x000000000000000080000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000180000000, 0x00000000000000008000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000800000017FFFFFFF, 0x0000000000000000FFFFFFFD80000002}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000800000013FFFFFFF, 0x00000000000000009FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x00000000000000008000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000000000010000000000000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000000000010000000000000001, 0x000000000000000080000000FFFFFFFE, 0x00000000000000007FFFFFFF00000003}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000000000010000000080000000, 0x000000000000000080000000BFFFFFFE, 0x0000000000000000A000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000800000007FFFFFFF, 0x00000000000000000000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000000000010000000100000000, 0x0000000000000000800000007FFFFFFE, 0x00000000000000008000000200000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000000000010000000100000001, 0x0000000000000000800000007FFFFFFE, 0x00000000000000000000000180000003}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000000000010000000180000000, 0x0000000000000000800000003FFFFFFE, 0x0000000000000000A000000300000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000008000000200000000}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000000000018000000000000000, 0x000000000000000055555555FFFFFFFF, 0x00000000000000008000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000000000018000000000000001, 0x000000000000000055555555FFFFFFFF, 0x00000000000000002AAAAAAA00000002}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000000000018000000080000000, 0x000000000000000055555555E38E38E2, 0x00000000000000010E38E38F00000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x000000000000000180000000FFFFFFFF, 0x000000000000000055555555C71C71C6, 0x00000000000000008E38E38FC71C71C7}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x0000000000000000400000009FFFFFFF, 0x00000000000000019FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000400000009FFFFFFF, 0x00000000000000015FFFFFFE60000002}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000400000008FFFFFFF, 0x000000000000000147FFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000400000007FFFFFFF, 0x00000000000000014000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000800000000000000000000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000800000000000000080000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFE7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFE0000000000000002}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000800000000000000100000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFDFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000800000000000000100000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFDFFFFFFFE00000000}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000800000000000000180000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFD7FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFCFFFFFFFF00000002}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000800000008000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFE00000002}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x00000000800000000000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFFBFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x000000007FFFFFFF7FFFFFFF80000002}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x000000007FFFFFFF7FFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFF3FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000001, 0x000000007FFFFFFEFFFFFFFE80000002}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000001, 0x000000003FFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000001, 0x000000003FFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000001, 0x000000003FFFFFFF3FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000001, 0x000000003FFFFFFEFFFFFFFF80000002}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF4000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFEC000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE8000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE8000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE4000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE0000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x00000000BFFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFEC000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000BFFFFFFE8000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF4000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001000000010000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFEC000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001000000010000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001000000010000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFE7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001000000010000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE4000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE0000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001000000018000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001000000018000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001000000018000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFEC000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFE8000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000017FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000017FFFFFFE80000002}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000013FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001000000010000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFEFFFFFFFFAAAAAAAC}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFED555555580000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFEAAAAAAAB55555556}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFEAAAAAAAB00000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFEAAAAAAAAAAAAAAAC}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFE8000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFE5555555655555556}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000001555555548000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000001555555547FFFFFFFAAAAAAAC}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000001555555545555555580000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000001555555542AAAAAAB55555556}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAA5555555500000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000012AAAAAAA55555554AAAAAAAC}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAA2AAAAAAA80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000012AAAAAAA0000000055555556}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFEFFFFFFFFC0000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFEE000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFEC000000040000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFEC000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFEBFFFFFFFC0000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFEA000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFE8000000040000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000011FFFFFFEFFFFFFFFC0000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFEE000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000011FFFFFFEC000000040000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF4000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF3FFFFFFFC0000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF2000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF0000000040000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000002}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE00000002}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000002}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000002}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000002}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFE00000002}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD7FFFFFFF00000002}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000000000002}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE00000002}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF00000002}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000000000002}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x0000000100000001FFFFFFFE00000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000018000000080000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000001, 0x00000000800000007FFFFFFE80000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000180000000, 0x0000000055555555FFFFFFFF55555555, 0x00000000000000000000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000400000009FFFFFFFD0000000, 0x00000000000000000000000050000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000000000008000000000000000, 0x000000000000000100000001FFFFFFFE, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000000000008000000000000001, 0x000000000000000100000001FFFFFFFB, 0x00000000000000007FFFFFFE80000005}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000000000008000000080000000, 0x000000000000000100000000FFFFFFFD, 0x00000000000000000000000200000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000180000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000800000017FFFFFFF, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000800000013FFFFFFF, 0x0000000000000000A000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000000000010000000000000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000000000010000000000000001, 0x000000000000000080000000FFFFFFFE, 0x00000000000000007FFFFFFF80000002}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000000000010000000080000000, 0x000000000000000080000000BFFFFFFE, 0x0000000000000000A000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000800000007FFFFFFF, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000000000010000000100000000, 0x0000000000000000800000007FFFFFFE, 0x00000000000000008000000280000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000000000010000000100000001, 0x0000000000000000800000007FFFFFFE, 0x00000000000000000000000200000002}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000000000010000000180000000, 0x0000000000000000800000003FFFFFFE, 0x0000000000000000A000000380000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFFFFFFFFFF, 0x0000000000000000800000027FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000000000018000000000000000, 0x000000000000000055555555FFFFFFFF, 0x00000000000000008000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000000000018000000000000001, 0x000000000000000055555555FFFFFFFF, 0x00000000000000002AAAAAAA80000001}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000000000018000000080000000, 0x000000000000000055555555E38E38E2, 0x00000000000000010E38E38F80000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000055555555C71C71C6, 0x00000000000000008E38E390471C71C6}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x0000000000000000400000009FFFFFFF, 0x00000000000000019FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000400000009FFFFFFF, 0x00000000000000015FFFFFFEE0000001}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000400000008FFFFFFF, 0x00000000000000014800000000000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000400000007FFFFFFF, 0x000000000000000140000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000800000000000000080000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFE0000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000800000000000000100000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFDFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000800000000000000100000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFDFFFFFFFE7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000800000000000000180000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFD7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFCFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000800000008000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x00000000800000000000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFFC000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x000000007FFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFF3FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000001, 0x000000003FFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000001, 0x000000003FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000001, 0x000000003FFFFFFF4000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000001, 0x000000003FFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF4000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFEC000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE8000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE8000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE4000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFEC000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000BFFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF4000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001000000010000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFEC000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001000000010000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001000000010000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001000000010000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE4000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001000000018000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001000000018000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001000000018000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFEC000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000017FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000017FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000014000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFF000000002AAAAAAB}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFED555555600000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFEAAAAAAABD5555555}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFEAAAAAAAB80000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFEAAAAAAAB2AAAAAAB}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFE55555556D5555555}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000001555555548000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x0000000155555554800000002AAAAAAB}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000001555555545555555600000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000001555555542AAAAAABD5555555}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAA5555555580000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000012AAAAAAA555555552AAAAAAB}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAA2AAAAAAB00000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000012AAAAAAA00000000D5555555}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFF0000000040000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFEE000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFEC0000000C0000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFEC000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFEC000000040000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFEA000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFE80000000C0000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000011FFFFFFF0000000040000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFEE000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000011FFFFFFEC0000000C0000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF4000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF4000000040000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF2000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF00000000C0000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000100000001FFFFFFFE00000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000800000018000000080000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000800000007FFFFFFE80000002, 0x0000000000000000000000007FFFFFFD}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000180000000, 0x0000000055555555FFFFFFFF55555555, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000400000009FFFFFFFD0000000, 0x000000000000000000000000CFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000008000000000000000, 0x000000000000000100000001FFFFFFFE, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000008000000000000001, 0x000000000000000100000001FFFFFFFB, 0x00000000000000007FFFFFFF00000004}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000008000000080000000, 0x000000000000000100000000FFFFFFFD, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000180000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000800000017FFFFFFF, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000800000013FFFFFFF, 0x0000000000000000A00000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x000000000000000080000001FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000010000000000000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000010000000000000001, 0x000000000000000080000000FFFFFFFE, 0x00000000000000008000000000000001}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000010000000080000000, 0x000000000000000080000000BFFFFFFE, 0x0000000000000000A0000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000800000007FFFFFFF, 0x0000000000000000000000027FFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000010000000100000000, 0x0000000000000000800000007FFFFFFE, 0x000000000000000080000002FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000010000000100000001, 0x0000000000000000800000007FFFFFFE, 0x00000000000000000000000280000001}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000010000000180000000, 0x0000000000000000800000003FFFFFFE, 0x0000000000000000A0000003FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFFFFFFFFFF, 0x000000000000000080000002FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000018000000000000000, 0x000000000000000055555555FFFFFFFF, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000018000000000000001, 0x000000000000000055555555FFFFFFFF, 0x00000000000000002AAAAAAB00000000}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000018000000080000000, 0x000000000000000055555555E38E38E2, 0x00000000000000010E38E38FFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x000000000000000055555555C71C71C6, 0x00000000000000008E38E390C71C71C5}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x0000000000000000400000009FFFFFFF, 0x00000000000000019FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000400000009FFFFFFF, 0x00000000000000015FFFFFFF60000000}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000400000008FFFFFFF, 0x0000000000000001480000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000400000007FFFFFFF, 0x0000000000000001400000017FFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFE800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFDFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFDFFFFFFFEFFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFD7FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFD0000000000000000}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000008000000000000001FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x0000000080000000000000007FFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFFC00000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFF3FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000001, 0x000000003FFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000001, 0x000000003FFFFFFF800000007FFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000001, 0x000000003FFFFFFF400000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000001, 0x000000003FFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF40000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFEC0000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE40000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFEC0000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000BFFFFFFE800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF40000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFEC0000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFE800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE40000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFEC0000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFE800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000017FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000017FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001400000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001000000017FFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFF00000000AAAAAAAA}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFED55555567FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFEAAAAAAAC55555554}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFEAAAAAAABFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFEAAAAAAABAAAAAAAA}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFE800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFE5555555755555554}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x000000015555555480000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x000000015555555480000000AAAAAAAA}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x0000000155555554555555567FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000001555555542AAAAAAC55555554}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAA55555555FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000012AAAAAAA55555555AAAAAAAA}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAA2AAAAAAB7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000012AAAAAAA0000000155555554}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFF00000000BFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFEE0000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFEC00000013FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFEC0000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFEC0000000BFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFEA0000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFE800000013FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000011FFFFFFF00000000BFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFEE0000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000011FFFFFFEC00000013FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF40000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF40000000BFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF20000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF000000013FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFFFFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000000FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000000}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000001FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFFFFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD80000000FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000000000000}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD00000001FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000100000000}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000000FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000001FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x0000000100000001FFFFFFFE00000002, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000018000000080000001, 0x00000000000000000000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000001, 0x00000000800000007FFFFFFE80000002, 0x0000000000000000000000007FFFFFFE}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000180000000, 0x0000000055555555FFFFFFFF55555556, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x000000000000000000000001FFFFFFFF, 0x00000000400000009FFFFFFFD0000000, 0x000000000000000000000000D0000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000000000008000000000000000, 0x000000000000000100000001FFFFFFFE, 0x00000000000000000000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000000000008000000000000001, 0x000000000000000100000001FFFFFFFB, 0x00000000000000007FFFFFFF00000005}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000000000008000000080000000, 0x000000000000000100000000FFFFFFFD, 0x00000000000000000000000280000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000180000000, 0x00000000000000008000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000800000017FFFFFFF, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000800000013FFFFFFF, 0x0000000000000000A000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000000000010000000000000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000000000010000000000000001, 0x000000000000000080000000FFFFFFFE, 0x00000000000000008000000000000002}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000000000010000000080000000, 0x000000000000000080000000BFFFFFFE, 0x0000000000000000A000000200000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000800000007FFFFFFF, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000000000010000000100000000, 0x0000000000000000800000007FFFFFFE, 0x00000000000000008000000300000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000000000010000000100000001, 0x0000000000000000800000007FFFFFFE, 0x00000000000000000000000280000002}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000000000010000000180000000, 0x0000000000000000800000003FFFFFFE, 0x0000000000000000A000000400000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFFFFFFFFFF, 0x000000000000000080000002FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000000000018000000000000000, 0x000000000000000055555555FFFFFFFF, 0x00000000000000008000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000000000018000000000000001, 0x000000000000000055555555FFFFFFFF, 0x00000000000000002AAAAAAB00000001}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000000000018000000080000000, 0x000000000000000055555555E38E38E2, 0x00000000000000010E38E39000000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000055555555C71C71C6, 0x00000000000000008E38E390C71C71C6}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x0000000000000001FFFFFFFF00000000, 0x0000000000000000400000009FFFFFFF, 0x0000000000000001A000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000400000009FFFFFFF, 0x00000000000000015FFFFFFF60000001}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000400000008FFFFFFF, 0x00000000000000014800000080000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000400000007FFFFFFF, 0x0000000000000001400000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000800000000000000080000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFE0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000800000000000000100000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFE0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000800000000000000100000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFDFFFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000800000000000000180000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFD7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFD0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000800000008000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x00000000800000000000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFFC000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFF3FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000001, 0x000000003FFFFFFF8000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000001, 0x000000003FFFFFFF800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000001, 0x000000003FFFFFFF4000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000001, 0x000000003FFFFFFF0000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF8000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF4000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFEC000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE8000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE8000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE4000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFEC000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000BFFFFFFE8000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF4000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001000000010000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFEC000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001000000010000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001000000010000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001000000010000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE4000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001000000018000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001000000018000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001000000018000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFEC000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFE8000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000018000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000017FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000014000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFF00000000AAAAAAAB}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFED555555680000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFEAAAAAAAC55555555}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFEAAAAAAAC00000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFEAAAAAAABAAAAAAAB}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFE8000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFE5555555755555555}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000001555555548000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x000000015555555480000000AAAAAAAB}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000001555555545555555680000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000001555555542AAAAAAC55555555}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAA5555555600000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000012AAAAAAA55555555AAAAAAAB}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAA2AAAAAAB80000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000012AAAAAAA0000000155555555}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFF00000000C0000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFEE000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFEC000000140000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFEC000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFEC0000000C0000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFEA000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFE8000000140000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000011FFFFFFF00000000C0000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFEE000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000011FFFFFFEC000000140000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF4000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF40000000C0000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF2000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF0000000140000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000200000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000200000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x0000000100000001FFFFFFFE00000002, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000018000000080000001, 0x00000000000000000000000080000002}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000001, 0x00000000800000007FFFFFFE80000002, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000180000000, 0x0000000055555555FFFFFFFF55555556, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x000000000000000000000001FFFFFFFF, 0x00000000400000009FFFFFFFD0000000, 0x000000000000000000000000D0000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000000000008000000000000000, 0x000000000000000100000001FFFFFFFE, 0x00000000000000000000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000000000008000000000000001, 0x000000000000000100000001FFFFFFFB, 0x00000000000000007FFFFFFF00000006}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000000000008000000080000000, 0x000000000000000100000000FFFFFFFD, 0x00000000000000000000000280000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x000000000000000080000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000180000000, 0x00000000000000008000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000800000017FFFFFFF, 0x0000000000000000FFFFFFFE80000002}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000800000013FFFFFFF, 0x0000000000000000A000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x00000000000000008000000200000000}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000000000010000000000000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000000000010000000000000001, 0x000000000000000080000000FFFFFFFE, 0x00000000000000008000000000000003}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000000000010000000080000000, 0x000000000000000080000000BFFFFFFE, 0x0000000000000000A000000200000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000800000007FFFFFFF, 0x00000000000000000000000280000000}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000000000010000000100000000, 0x0000000000000000800000007FFFFFFE, 0x00000000000000008000000300000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000000000010000000100000001, 0x0000000000000000800000007FFFFFFE, 0x00000000000000000000000280000003}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000000000010000000180000000, 0x0000000000000000800000003FFFFFFE, 0x0000000000000000A000000400000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000008000000300000000}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000000000018000000000000000, 0x000000000000000055555555FFFFFFFF, 0x00000000000000008000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000000000018000000000000001, 0x000000000000000055555555FFFFFFFF, 0x00000000000000002AAAAAAB00000002}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000000000018000000080000000, 0x000000000000000055555555E38E38E2, 0x00000000000000010E38E39000000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x000000000000000180000000FFFFFFFF, 0x000000000000000055555555C71C71C6, 0x00000000000000008E38E390C71C71C7}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x0000000000000001FFFFFFFF00000000, 0x0000000000000000400000009FFFFFFF, 0x0000000000000001A000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000400000009FFFFFFF, 0x00000000000000015FFFFFFF60000002}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000400000008FFFFFFF, 0x00000000000000014800000080000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000400000007FFFFFFF, 0x00000000000000014000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000800000000000000000000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000800000000000000080000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFE0000000100000002}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000800000000000000100000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFE0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000800000000000000100000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFDFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000800000000000000180000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFD7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFD0000000000000002}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000800000008000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE0000000200000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000200000000}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x00000000800000000000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x00000000800000000000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFFC000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x000000007FFFFFFF8000000080000002}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFF3FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000001, 0x000000007FFFFFFEFFFFFFFF80000002}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000001, 0x000000003FFFFFFF8000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000001, 0x000000003FFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000001, 0x000000003FFFFFFF4000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000001, 0x000000003FFFFFFF0000000080000002}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF8000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF8000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF4000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000180000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFEC000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE8000000180000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE8000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE8000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE4000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE0000000180000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF0000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFEC000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000BFFFFFFE8000000180000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF4000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000180000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001000000010000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFEC000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000180000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001000000010000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001000000010000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001000000010000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE4000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE0000000180000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001000000018000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001000000018000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFF0000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001000000018000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFEC000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFE8000000180000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000018000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000017FFFFFFF80000002}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000014000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001000000010000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFF00000000AAAAAAAC}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFED555555680000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFEAAAAAAAC55555556}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFEAAAAAAAC00000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFEAAAAAAABAAAAAAAC}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFE8000000180000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFE5555555755555556}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000001555555548000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x000000015555555480000000AAAAAAAC}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000001555555545555555680000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000001555555542AAAAAAC55555556}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAA5555555600000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000012AAAAAAA55555555AAAAAAAC}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAA2AAAAAAB80000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000012AAAAAAA0000000155555556}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFF00000000C0000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFEE000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFEC000000140000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFEC000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFEC0000000C0000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFEA000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFE8000000140000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000011FFFFFFF00000000C0000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFEE000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000011FFFFFFEC000000140000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF4000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF40000000C0000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF2000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF0000000140000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000002}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000002}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000002}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000200000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000200000000}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000180000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000002}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000002}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000002}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000000000002}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000200000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000200000000}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000180000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000100000002}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000002}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000002}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000180000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000002}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000002}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x0000000100000001FFFFFFFE00000003, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000018000000080000002, 0x00000000000000000000000000000002}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000001, 0x00000000800000007FFFFFFE80000002, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000180000000, 0x0000000055555555FFFFFFFF55555556, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x000000000000000000000001FFFFFFFF, 0x00000000400000009FFFFFFFD0000000, 0x00000000000000000000000150000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000000000008000000000000000, 0x000000000000000100000001FFFFFFFE, 0x00000000000000000000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000000000008000000000000001, 0x000000000000000100000001FFFFFFFB, 0x00000000000000007FFFFFFF80000005}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000000000008000000080000000, 0x000000000000000100000000FFFFFFFD, 0x00000000000000000000000300000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000180000000, 0x00000000000000008000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000180000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000800000013FFFFFFF, 0x0000000000000000A000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000800000027FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000000000010000000000000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000000000010000000000000001, 0x000000000000000080000000FFFFFFFE, 0x00000000000000008000000080000002}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000000000010000000080000000, 0x000000000000000080000000BFFFFFFE, 0x0000000000000000A000000280000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000800000007FFFFFFF, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000000000010000000100000000, 0x0000000000000000800000007FFFFFFE, 0x00000000000000008000000380000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000000000010000000100000001, 0x0000000000000000800000007FFFFFFE, 0x00000000000000000000000300000002}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000000000010000000180000000, 0x0000000000000000800000003FFFFFFE, 0x0000000000000000A000000480000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFFFFFFFFFF, 0x0000000000000000800000037FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000000000018000000000000000, 0x000000000000000055555555FFFFFFFF, 0x00000000000000008000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000000000018000000000000001, 0x000000000000000055555555FFFFFFFF, 0x00000000000000002AAAAAAB80000001}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000000000018000000080000000, 0x000000000000000055555555E38E38E2, 0x00000000000000010E38E39080000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000055555555C71C71C6, 0x00000000000000008E38E391471C71C6}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x0000000000000001FFFFFFFF00000000, 0x0000000000000000400000009FFFFFFF, 0x0000000000000001A000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000400000009FFFFFFF, 0x00000000000000015FFFFFFFE0000001}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000400000008FFFFFFF, 0x00000000000000014800000100000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000400000007FFFFFFF, 0x000000000000000140000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000800000000000000080000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFE0000000180000001}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000800000000000000100000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFE0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000800000000000000100000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFDFFFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000800000000000000180000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFD8000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFD0000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000800000008000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE0000000280000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000000000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000000000027FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x00000000800000000000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFFC000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x000000007FFFFFFF8000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFF4000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000001, 0x000000003FFFFFFF8000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000001, 0x000000003FFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000001, 0x000000003FFFFFFF4000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000001, 0x000000003FFFFFFF0000000100000001}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF8000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF8000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF4000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000200000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFEC000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE8000000200000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE8000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE4000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE0000000200000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFEC000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000BFFFFFFE8000000200000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF4000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001000000010000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFEC000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000200000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001000000010000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001000000010000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001000000010000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE4000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001000000018000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001000000018000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001000000018000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFEC000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFE8000000200000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000018000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000018000000000000001}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000014000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFF000000012AAAAAAB}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFED555555700000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFEAAAAAAACD5555555}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFEAAAAAAAC80000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFEAAAAAAAC2AAAAAAB}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFE8000000200000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFE55555557D5555555}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000001555555548000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x0000000155555554800000012AAAAAAB}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000001555555545555555700000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000001555555542AAAAAACD5555555}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAA5555555680000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000012AAAAAAA555555562AAAAAAB}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAA2AAAAAAC00000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000012AAAAAAA00000001D5555555}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFF0000000140000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFEE000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFEC0000001C0000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFEC000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFEC000000140000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFEA000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFE80000001C0000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000011FFFFFFF0000000140000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFEE000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000011FFFFFFEC0000001C0000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF4000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF4000000140000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF2000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF00000001C0000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000280000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000027FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000200000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000180000001}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000280000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD000000027FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000200000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000180000001}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000280000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE000000027FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000180000001}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000100000001FFFFFFFE00000003, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000800000018000000080000002, 0x00000000000000000000000080000001}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000800000007FFFFFFE80000003, 0x0000000000000000000000007FFFFFFC}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000180000000, 0x0000000055555555FFFFFFFF55555556, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000400000009FFFFFFFD0000000, 0x000000000000000000000001CFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000008000000000000000, 0x000000000000000100000001FFFFFFFE, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000008000000000000001, 0x000000000000000100000001FFFFFFFC, 0x00000000000000000000000000000003}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000008000000080000000, 0x000000000000000100000000FFFFFFFD, 0x0000000000000000000000037FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x00000000000000010000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000180000000, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000180000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000800000013FFFFFFF, 0x0000000000000000A00000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x000000000000000080000002FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000010000000000000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000010000000000000001, 0x000000000000000080000000FFFFFFFE, 0x00000000000000008000000100000001}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000010000000080000000, 0x000000000000000080000000BFFFFFFE, 0x0000000000000000A0000002FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000800000007FFFFFFF, 0x0000000000000000000000037FFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000010000000100000000, 0x0000000000000000800000007FFFFFFE, 0x000000000000000080000003FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000010000000100000001, 0x0000000000000000800000007FFFFFFE, 0x00000000000000000000000380000001}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000010000000180000000, 0x0000000000000000800000003FFFFFFE, 0x0000000000000000A0000004FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFFFFFFFFFF, 0x000000000000000080000003FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000018000000000000000, 0x000000000000000055555555FFFFFFFF, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000018000000000000001, 0x000000000000000055555555FFFFFFFF, 0x00000000000000002AAAAAAC00000000}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000018000000080000000, 0x000000000000000055555555E38E38E2, 0x00000000000000010E38E390FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x000000000000000055555555C71C71C6, 0x00000000000000008E38E391C71C71C5}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x0000000000000000400000009FFFFFFF, 0x0000000000000001A0000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000400000009FFFFFFF, 0x00000000000000016000000060000000}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000400000008FFFFFFF, 0x0000000000000001480000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000400000007FFFFFFF, 0x0000000000000001400000027FFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFE00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFDFFFFFFFFFFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFD800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFD0000000100000000}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE80000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE00000002FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000008000000000000002FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x0000000080000000000000017FFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFFC00000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x000000007FFFFFFF800000007FFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFF400000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000001, 0x000000003FFFFFFF80000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000001, 0x000000003FFFFFFF800000017FFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000001, 0x000000003FFFFFFF400000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000001, 0x000000003FFFFFFF0000000180000000}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF80000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF40000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF000000027FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFEC0000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE800000027FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE80000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE40000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE000000027FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFEC0000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000BFFFFFFE800000027FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF80000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF40000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF000000027FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFEC0000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE800000027FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE80000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE40000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE000000027FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFF000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFEC0000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFE800000027FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000018000000080000000}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001400000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001000000027FFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFF00000001AAAAAAAA}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFED55555577FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFEAAAAAAAD55555554}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFEAAAAAAACFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFEAAAAAAACAAAAAAAA}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFE800000027FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFE5555555855555554}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x000000015555555480000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x000000015555555480000001AAAAAAAA}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x0000000155555554555555577FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000001555555542AAAAAAD55555554}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAA55555556FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000012AAAAAAA55555556AAAAAAAA}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAA2AAAAAAC7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000012AAAAAAA0000000255555554}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFF00000001BFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFEE0000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFEC00000023FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFEC0000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFEC0000001BFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFEA0000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFE800000023FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000011FFFFFFF00000001BFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFEE0000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000011FFFFFFEC00000023FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF40000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF40000001BFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF20000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF000000023FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000001FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000002FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000002FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000027FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000200000000}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000001FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD80000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD80000001FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000000}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD00000002FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD00000002FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD000000027FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000200000000}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000001FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000001FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000002FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000002FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE000000027FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000018000000100000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000001, 0x00000000800000007FFFFFFF00000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000180000000, 0x0000000055555555FFFFFFFFAAAAAAAA, 0x00000000000000000000000100000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x000000000000000000000001FFFFFFFF, 0x0000000040000000A000000010000000, 0x00000000000000000000000010000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000000000008000000000000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000000000008000000000000001, 0x000000000000000100000001FFFFFFFC, 0x00000000000000007FFFFFFE00000004}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000000000008000000080000000, 0x000000000000000100000000FFFFFFFE, 0x00000000000000000000000100000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000180000001, 0x00000000000000000000000100000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000180000000, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000140000000, 0x00000000000000002000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000100000000, 0x00000000000000000000000100000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000000000010000000000000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000008000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000000000010000000000000001, 0x000000000000000080000000FFFFFFFE, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000000000010000000080000000, 0x000000000000000080000000BFFFFFFF, 0x00000000000000002000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000800000007FFFFFFF, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000000000010000000100000000, 0x0000000000000000800000007FFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000000000010000000100000001, 0x0000000000000000800000007FFFFFFE, 0x00000000000000008000000180000002}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000000000010000000180000000, 0x0000000000000000800000003FFFFFFF, 0x00000000000000002000000180000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000000000018000000000000000, 0x000000000000000055555555FFFFFFFF, 0x00000000000000010000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000000000018000000000000001, 0x000000000000000055555555FFFFFFFF, 0x0000000000000000AAAAAAAA00000001}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000000000018000000080000000, 0x000000000000000055555555E38E38E3, 0x00000000000000000E38E38E80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000055555555C71C71C6, 0x00000000000000010E38E38FC71C71C6}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x000000000000000040000000A0000000, 0x00000000000000002000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000400000009FFFFFFF, 0x0000000000000001DFFFFFFE60000001}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000400000008FFFFFFF, 0x0000000000000001C7FFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000400000007FFFFFFF, 0x0000000000000001C00000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000800000000000000080000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFE8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000800000000000000100000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFE7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000800000000000000100000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFE7FFFFFFDFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000800000000000000180000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFDFFFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFD7FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000800000008000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x00000000800000008000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x00000000800000007FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x00000000800000003FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x000000007FFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFFBFFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000001, 0x00000000400000000000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000001, 0x000000003FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000001, 0x000000003FFFFFFFBFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000001, 0x000000003FFFFFFF7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000001, 0x00000000000000000000000100000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFFC000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF4000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFEFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFEC000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF4000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000800000000000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFC000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001000000010000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF4000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001000000010000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001000000010000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001000000010000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFEC000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001000000018000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001000000018000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001000000018000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF4000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001FFFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001BFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFF7FFFFFFFAAAAAAAB}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFF5555555580000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFF2AAAAAAB55555555}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFF2AAAAAAB00000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFF2AAAAAAAAAAAAAAB}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFED555555655555555}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000001555555550000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x0000000155555554FFFFFFFFAAAAAAAB}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x0000000155555554D555555580000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000155555554AAAAAAAB55555555}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAAD555555500000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000012AAAAAAAD5555554AAAAAAAB}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAAAAAAAAAA80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000012AAAAAAA8000000055555555}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFF7FFFFFFFC0000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFF6000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFF4000000040000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFF4000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFF3FFFFFFFC0000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFF2000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFF0000000040000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000011FFFFFFF7FFFFFFFC0000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFF6000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000011FFFFFFF4000000040000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000FFFFFFFFC000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000FFFFFFFFBFFFFFFFC0000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000FFFFFFFFA000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF8000000040000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000018000000100000001, 0x00000000000000000000000000000002}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000001, 0x00000000800000007FFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000180000000, 0x0000000055555555FFFFFFFFAAAAAAAA, 0x00000000000000000000000100000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x000000000000000000000001FFFFFFFF, 0x0000000040000000A000000010000000, 0x00000000000000000000000010000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000000000008000000000000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000000000008000000000000001, 0x000000000000000100000001FFFFFFFC, 0x00000000000000007FFFFFFE00000005}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000000000008000000080000000, 0x000000000000000100000000FFFFFFFE, 0x00000000000000000000000100000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x000000000000000080000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000180000001, 0x00000000000000000000000100000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000180000000, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000140000000, 0x00000000000000002000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000100000000, 0x00000000000000000000000100000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000000000010000000000000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000008000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000000000010000000000000001, 0x000000000000000080000000FFFFFFFE, 0x0000000000000000FFFFFFFF00000003}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000000000010000000080000000, 0x000000000000000080000000BFFFFFFF, 0x00000000000000002000000080000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000800000007FFFFFFF, 0x00000000000000008000000180000000}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000000000010000000100000000, 0x0000000000000000800000007FFFFFFF, 0x00000000000000000000000100000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000000000010000000100000001, 0x0000000000000000800000007FFFFFFE, 0x00000000000000008000000180000003}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000000000010000000180000000, 0x0000000000000000800000003FFFFFFF, 0x00000000000000002000000180000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x000000000000000100000001FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000000000018000000000000000, 0x000000000000000055555555FFFFFFFF, 0x00000000000000010000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000000000018000000000000001, 0x000000000000000055555555FFFFFFFF, 0x0000000000000000AAAAAAAA00000002}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000000000018000000080000000, 0x000000000000000055555555E38E38E3, 0x00000000000000000E38E38E80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x000000000000000180000000FFFFFFFF, 0x000000000000000055555555C71C71C6, 0x00000000000000010E38E38FC71C71C7}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x000000000000000040000000A0000000, 0x00000000000000002000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000400000009FFFFFFF, 0x0000000000000001DFFFFFFE60000002}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000400000008FFFFFFF, 0x0000000000000001C7FFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000400000007FFFFFFF, 0x0000000000000001C000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000800000000000000000000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000800000000000000080000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFE8000000000000002}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000800000000000000100000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFE7FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000800000000000000100000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFE7FFFFFFE00000000}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000800000000000000180000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFDFFFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFD7FFFFFFF00000002}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000800000008000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000100000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000100000000}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x00000000800000008000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x00000000800000003FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x000000007FFFFFFFFFFFFFFF80000002}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFFBFFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000001, 0x000000007FFFFFFF7FFFFFFE80000002}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000001, 0x00000000400000000000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000001, 0x000000003FFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000001, 0x000000003FFFFFFFBFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000001, 0x000000003FFFFFFF7FFFFFFF80000002}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000001, 0x00000000000000000000000100000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFFC000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF8000000080000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF4000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000080000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFEC000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE8000000080000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF4000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF0000000080000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000800000000000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFC000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001000000010000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF4000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001000000010000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001000000010000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001000000010000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFEC000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001000000018000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001000000018000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFF7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001000000018000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF4000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF0000000080000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001FFFFFFFE80000002}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001BFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001000000018000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFF7FFFFFFFAAAAAAAC}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFF5555555580000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFF2AAAAAAB55555556}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFF2AAAAAAB00000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFF2AAAAAAAAAAAAAAC}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFF0000000080000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFED555555655555556}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000001555555550000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x0000000155555554FFFFFFFFAAAAAAAC}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x0000000155555554D555555580000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000155555554AAAAAAAB55555556}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAAD555555500000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000012AAAAAAAD5555554AAAAAAAC}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAAAAAAAAAA80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000012AAAAAAA8000000055555556}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFF7FFFFFFFC0000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFF6000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFF4000000040000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFF4000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFF3FFFFFFFC0000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFF2000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFF0000000040000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000011FFFFFFF7FFFFFFFC0000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFF6000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000011FFFFFFF4000000040000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000FFFFFFFFC000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000FFFFFFFFBFFFFFFFC0000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000FFFFFFFFA000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF8000000040000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000002}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE00000002}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000002}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000080000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000002}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000002}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE00000002}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000002}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000000}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000080000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000000000002}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000002}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE00000002}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000002}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000018000000100000001, 0x00000000000000000000000080000001}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000100000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000100000001, 0x00000000800000007FFFFFFF00000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000180000000, 0x0000000055555555FFFFFFFFAAAAAAAB, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x000000000000000000000001FFFFFFFF, 0x0000000040000000A000000010000000, 0x00000000000000000000000090000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000000000008000000000000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000000000008000000000000001, 0x000000000000000100000001FFFFFFFC, 0x00000000000000007FFFFFFE80000004}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000000000008000000080000000, 0x000000000000000100000000FFFFFFFE, 0x00000000000000000000000180000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000180000001, 0x00000000000000000000000180000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000180000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000140000000, 0x00000000000000002000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000100000000, 0x00000000000000000000000180000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000000000010000000000000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000008000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000000000010000000000000001, 0x000000000000000080000000FFFFFFFE, 0x0000000000000000FFFFFFFF80000002}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000000000010000000080000000, 0x000000000000000080000000BFFFFFFF, 0x00000000000000002000000100000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000800000007FFFFFFF, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000000000010000000100000000, 0x0000000000000000800000007FFFFFFF, 0x00000000000000000000000180000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000000000010000000100000001, 0x0000000000000000800000007FFFFFFE, 0x00000000000000008000000200000002}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000000000010000000180000000, 0x0000000000000000800000003FFFFFFF, 0x00000000000000002000000200000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000000000018000000000000000, 0x000000000000000055555555FFFFFFFF, 0x00000000000000010000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000000000018000000000000001, 0x000000000000000055555555FFFFFFFF, 0x0000000000000000AAAAAAAA80000001}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000000000018000000080000000, 0x000000000000000055555555E38E38E3, 0x00000000000000000E38E38F00000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000055555555C71C71C6, 0x00000000000000010E38E390471C71C6}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x000000000000000040000000A0000000, 0x00000000000000002000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000400000009FFFFFFF, 0x0000000000000001DFFFFFFEE0000001}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000400000008FFFFFFF, 0x0000000000000001C800000000000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000400000007FFFFFFF, 0x0000000000000001C0000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000800000000000000080000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000800000000000000100000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFE7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000800000000000000100000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFE7FFFFFFE7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000800000000000000180000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFDFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFD7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000800000008000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x00000000800000008000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x00000000800000007FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x00000000800000004000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000800000000000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x000000007FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFFBFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000001, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000001, 0x00000000400000000000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000001, 0x000000003FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000001, 0x000000003FFFFFFFC000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000001, 0x000000003FFFFFFF8000000000000001}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000001, 0x00000000000000000000000180000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFFC000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF8000000100000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF4000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFEC000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF4000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000800000000000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000800000000000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFC000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001000000010000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF4000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001000000010000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001000000010000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001000000010000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFEC000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001000000018000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001000000018000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001000000018000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF4000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001C000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFF800000002AAAAAAB}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFF5555555600000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFF2AAAAAABD5555555}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFF2AAAAAAB80000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFF2AAAAAAB2AAAAAAB}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFF0000000100000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFED5555556D5555555}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000001555555550000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x0000000155555555000000002AAAAAAB}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x0000000155555554D555555600000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000155555554AAAAAAABD5555555}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAAD555555580000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000012AAAAAAAD55555552AAAAAAB}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAAAAAAAAAB00000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000012AAAAAAA80000000D5555555}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFF8000000040000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFF6000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFF40000000C0000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFF4000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFF4000000040000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFF2000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFF00000000C0000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000011FFFFFFF8000000040000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFF6000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000011FFFFFFF40000000C0000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000FFFFFFFFC000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000FFFFFFFFC000000040000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000FFFFFFFFA000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF80000000C0000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000180000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000080000001}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000180000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000080000001}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000800000018000000100000002, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000800000007FFFFFFF00000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000180000000, 0x0000000055555555FFFFFFFFAAAAAAAB, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x0000000040000000A000000010000000, 0x0000000000000000000000010FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000008000000000000000, 0x000000000000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000008000000000000001, 0x000000000000000100000001FFFFFFFC, 0x00000000000000007FFFFFFF00000003}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000008000000080000000, 0x000000000000000100000000FFFFFFFE, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000180000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000180000000, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000140000000, 0x000000000000000020000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000100000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000010000000000000000, 0x000000000000000080000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000010000000000000001, 0x000000000000000080000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000010000000080000000, 0x000000000000000080000000BFFFFFFF, 0x0000000000000000200000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000800000007FFFFFFF, 0x0000000000000000800000027FFFFFFE}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000010000000100000000, 0x0000000000000000800000007FFFFFFF, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000010000000100000001, 0x0000000000000000800000007FFFFFFE, 0x00000000000000008000000280000001}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000010000000180000000, 0x0000000000000000800000003FFFFFFF, 0x0000000000000000200000027FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x00000000000000008000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000018000000000000000, 0x000000000000000055555555FFFFFFFF, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000018000000000000001, 0x000000000000000055555555FFFFFFFF, 0x0000000000000000AAAAAAAB00000000}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000018000000080000000, 0x000000000000000055555555E38E38E3, 0x00000000000000000E38E38F7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x000000000000000055555555C71C71C6, 0x00000000000000010E38E390C71C71C5}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x000000000000000040000000A0000000, 0x000000000000000020000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000400000009FFFFFFF, 0x0000000000000001DFFFFFFF60000000}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000400000008FFFFFFF, 0x0000000000000001C80000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x0000000000000000400000007FFFFFFF, 0x0000000000000001C00000017FFFFFFE}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFE7FFFFFFEFFFFFFFE}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFDFFFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFD8000000000000000}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE80000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000008000000080000001FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x0000000080000000800000007FFFFFFE}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x0000000080000000400000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000800000000000000080000000}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x000000007FFFFFFFFFFFFFFF7FFFFFFE}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x000000007FFFFFFFBFFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000001, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000001, 0x000000004000000000000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000001, 0x0000000040000000000000007FFFFFFE}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000001, 0x000000003FFFFFFFC00000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000001, 0x000000003FFFFFFF8000000080000000}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000001, 0x0000000000000000000000017FFFFFFE}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFFC0000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF40000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFEC0000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFE800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF40000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFC0000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF40000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFEC0000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFF800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF40000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001C00000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001800000017FFFFFFE}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFF80000000AAAAAAAA}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFF555555567FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFF2AAAAAAC55555554}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFF2AAAAAABFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFF2AAAAAABAAAAAAAA}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFF000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFED555555755555554}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x000000015555555500000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x000000015555555500000000AAAAAAAA}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x0000000155555554D55555567FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x0000000155555554AAAAAAAC55555554}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAAD5555555FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000012AAAAAAAD5555555AAAAAAAA}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAAAAAAAAAB7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000012AAAAAAA8000000155555554}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFF80000000BFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFF60000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFF400000013FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFF40000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFF40000000BFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFF20000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFF000000013FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000011FFFFFFF80000000BFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFF60000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000011FFFFFFF400000013FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000000FFFFFFFFC0000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000000FFFFFFFFC0000000BFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000000FFFFFFFFA0000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000FFFFFFFF800000013FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000001FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000000FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000000}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFFFFFFFFFE}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD80000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD80000001FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000000}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000001FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000001FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFE, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000018000000180000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000100000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000100000001, 0x00000000800000007FFFFFFF7FFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000180000000, 0x0000000055555555FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000001FFFFFFFF, 0x0000000040000000A00000004FFFFFFF, 0x0000000000000000000000014FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000008000000000000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000008000000000000001, 0x000000000000000100000001FFFFFFFD, 0x00000000000000007FFFFFFD00000003}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000008000000080000000, 0x000000000000000100000000FFFFFFFE, 0x00000000000000008000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000180000001, 0x00000000000000008000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000180000000, 0x0000000000000000FFFFFFFD80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000140000000, 0x00000000000000009FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000100000000, 0x00000000000000008000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000010000000000000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000010000000000000001, 0x000000000000000080000000FFFFFFFF, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000010000000080000000, 0x000000000000000080000000BFFFFFFF, 0x00000000000000009FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000800000007FFFFFFF, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000010000000100000000, 0x0000000000000000800000007FFFFFFF, 0x00000000000000008000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000010000000100000001, 0x0000000000000000800000007FFFFFFE, 0x00000000000000010000000080000002}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000010000000180000000, 0x0000000000000000800000003FFFFFFF, 0x0000000000000000A000000080000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000018000000000000000, 0x000000000000000055555555FFFFFFFF, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000018000000000000001, 0x000000000000000055555555FFFFFFFF, 0x00000000000000012AAAAAA900000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000018000000080000000, 0x000000000000000055555555E38E38E3, 0x00000000000000008E38E38D80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000055555555C71C71C7, 0x00000000000000000E38E38DC71C71C7}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000000, 0x000000000000000040000000A0000000, 0x00000000000000009FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000001, 0x000000000000000040000000A0000000, 0x00000000000000005FFFFFFE60000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000090000000, 0x000000000000000047FFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000080000000, 0x00000000000000003FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFFFFFFFFFDFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000800000000000000080000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF7FFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000800000000000000100000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFEFFFFFFFE00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000800000000000000100000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFEFFFFFFFCFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000800000000000000180000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFE7FFFFFFD80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFDFFFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000800000008000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x0000000080000000FFFFFFFE7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x0000000080000000BFFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000800000007FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x00000000800000007FFFFFFE00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x00000000800000007FFFFFFD7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x00000000800000003FFFFFFD80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000001, 0x000000007FFFFFFFFFFFFFFD80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000001, 0x00000000400000007FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000001, 0x00000000400000007FFFFFFE7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000001, 0x00000000400000003FFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000001, 0x000000003FFFFFFFFFFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000001, 0x00000000000000008000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000001, 0x00000000000000003FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFFFFFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFFBFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF7FFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF3FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFEFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x00000000BFFFFFFFFFFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFFBFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000800000003FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000010000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFBFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000010000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000010000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000010000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF3FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000018000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000018000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFFFFFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001000000018000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFBFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000003FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001FFFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFFFFFFFFFEAAAAAAAB}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFFD555555480000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFFAAAAAAAA55555555}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFFAAAAAAAA00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFFAAAAAAA9AAAAAAAB}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFF5555555555555555}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000001555555557FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000001555555557FFFFFFEAAAAAAAB}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000001555555555555555480000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000001555555552AAAAAAA55555555}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAB5555555400000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000012AAAAAAB55555553AAAAAAAB}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAB2AAAAAA980000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000012AAAAAAAFFFFFFFF55555555}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFFFFFFFFFEC0000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFFDFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFFBFFFFFFF40000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFFBFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFFBFFFFFFEC0000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFF9FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFF7FFFFFFF40000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000011FFFFFFFFFFFFFFEC0000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFFDFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000011FFFFFFFBFFFFFFF40000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000001000000003FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000001000000003FFFFFFEC0000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000001000000001FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000FFFFFFFFFFFFFFFF40000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFDFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFD80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFD00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFDFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFD80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFD00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFDFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFDFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000018000000180000000, 0x00000000000000000000000080000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000100000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000100000001, 0x00000000800000007FFFFFFF7FFFFFFF, 0x00000000000000000000000080000002}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000180000000, 0x0000000055555555FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000001FFFFFFFF, 0x0000000040000000A00000004FFFFFFF, 0x00000000000000000000000150000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000008000000000000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000008000000000000001, 0x000000000000000100000001FFFFFFFD, 0x00000000000000007FFFFFFD00000004}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000008000000080000000, 0x000000000000000100000000FFFFFFFE, 0x00000000000000008000000000000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000080000000FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000180000001, 0x00000000000000008000000000000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000180000000, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000140000000, 0x00000000000000009FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000100000000, 0x00000000000000008000000000000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000010000000000000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000010000000000000001, 0x000000000000000080000000FFFFFFFF, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000010000000080000000, 0x000000000000000080000000BFFFFFFF, 0x00000000000000009FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000800000007FFFFFFF, 0x00000000000000010000000080000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000010000000100000000, 0x0000000000000000800000007FFFFFFF, 0x00000000000000008000000000000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000010000000100000001, 0x0000000000000000800000007FFFFFFE, 0x00000000000000010000000080000003}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000010000000180000000, 0x0000000000000000800000003FFFFFFF, 0x0000000000000000A000000080000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000100000001FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000018000000000000000, 0x000000000000000055555555FFFFFFFF, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000018000000000000001, 0x000000000000000055555555FFFFFFFF, 0x00000000000000012AAAAAA900000002}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000018000000080000000, 0x000000000000000055555555E38E38E3, 0x00000000000000008E38E38D80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000180000000FFFFFFFF, 0x000000000000000055555555C71C71C7, 0x00000000000000000E38E38DC71C71C8}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000000, 0x000000000000000040000000A0000000, 0x00000000000000009FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000001, 0x000000000000000040000000A0000000, 0x00000000000000005FFFFFFE60000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000090000000, 0x000000000000000047FFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000080000000, 0x00000000000000003FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000800000000000000000000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000800000000000000080000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000800000000000000100000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFEFFFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000800000000000000100000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFEFFFFFFFD00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000800000000000000180000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFE7FFFFFFD80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFDFFFFFFFE00000002}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000800000008000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x0000000080000000FFFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x0000000080000000BFFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000800000007FFFFFFE80000002}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x00000000800000007FFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x00000000800000007FFFFFFD80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x00000000800000003FFFFFFD80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000001, 0x000000007FFFFFFFFFFFFFFD80000002}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000001, 0x00000000400000007FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000001, 0x00000000400000007FFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000001, 0x00000000400000003FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000001, 0x000000003FFFFFFFFFFFFFFE80000002}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000001, 0x00000000000000008000000000000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000001, 0x00000000000000003FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFFFFFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFFBFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF7FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF7FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF3FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x00000000BFFFFFFFFFFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFFBFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000800000003FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000010000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFBFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000010000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000010000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000010000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF3FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000018000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000018000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFFFFFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001000000018000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFBFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000003FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFFFFFFFFFEAAAAAAAC}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFFD555555480000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFFAAAAAAAA55555556}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFFAAAAAAAA00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFFAAAAAAA9AAAAAAAC}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFF7FFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFF5555555555555556}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000001555555557FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000001555555557FFFFFFEAAAAAAAC}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000001555555555555555480000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000001555555552AAAAAAA55555556}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAB5555555400000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000012AAAAAAB55555553AAAAAAAC}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAB2AAAAAA980000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000012AAAAAAAFFFFFFFF55555556}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFFFFFFFFFEC0000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFFDFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFFBFFFFFFF40000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFFBFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFFBFFFFFFEC0000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFF9FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFF7FFFFFFF40000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000011FFFFFFFFFFFFFFEC0000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFFDFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000011FFFFFFFBFFFFFFF40000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000001000000003FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000001000000003FFFFFFEC0000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000001000000001FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000FFFFFFFFFFFFFFFF40000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE00000002}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFD80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFD00000002}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE00000002}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000002}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE00000002}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFD80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFD00000002}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE00000002}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000002}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000002}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD00000002}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE00000002}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000018000000180000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000100000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000100000001, 0x00000000800000007FFFFFFF80000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000180000000, 0x0000000055555555FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000001FFFFFFFF, 0x0000000040000000A00000004FFFFFFF, 0x000000000000000000000001CFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000008000000000000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000008000000000000001, 0x000000000000000100000001FFFFFFFD, 0x00000000000000007FFFFFFD80000003}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000008000000080000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000080000000FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000180000001, 0x00000000000000008000000080000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000180000000, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000140000000, 0x00000000000000009FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000100000000, 0x00000000000000008000000080000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000010000000000000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000010000000000000001, 0x000000000000000080000000FFFFFFFF, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000010000000080000000, 0x000000000000000080000000BFFFFFFF, 0x0000000000000000A000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000100000000FFFFFFFF, 0x00000000000000008000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000010000000100000000, 0x0000000000000000800000007FFFFFFF, 0x00000000000000008000000080000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000010000000100000001, 0x0000000000000000800000007FFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000010000000180000000, 0x0000000000000000800000003FFFFFFF, 0x0000000000000000A000000100000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000018000000000000000, 0x000000000000000055555555FFFFFFFF, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000018000000000000001, 0x000000000000000055555555FFFFFFFF, 0x00000000000000012AAAAAA980000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000018000000080000000, 0x000000000000000055555555E38E38E3, 0x00000000000000008E38E38E00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000180000000FFFFFFFF, 0x000000000000000055555555C71C71C7, 0x00000000000000000E38E38E471C71C7}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000000, 0x000000000000000040000000A0000000, 0x00000000000000009FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000001, 0x000000000000000040000000A0000000, 0x00000000000000005FFFFFFEE0000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000090000000, 0x000000000000000047FFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000080000000, 0x00000000000000004000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000800000000000000000000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000800000000000000080000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000800000000000000100000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFEFFFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000800000000000000100000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFEFFFFFFFD7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000800000000000000180000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFE7FFFFFFE00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFDFFFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000800000008000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x0000000080000000FFFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x0000000080000000BFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000800000007FFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x00000000800000007FFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x00000000800000007FFFFFFDFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x00000000800000003FFFFFFE00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000001, 0x000000007FFFFFFFFFFFFFFE00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000001, 0x00000000400000007FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000001, 0x00000000400000007FFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000001, 0x00000000400000003FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000001, 0x000000003FFFFFFFFFFFFFFF00000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000001, 0x00000000000000008000000080000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000001, 0x00000000000000004000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000000000000000000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFFBFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF3FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x00000000BFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFFBFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000800000003FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000800000000000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000010000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFBFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000010000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000010000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000010000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF3FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000018000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000018000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001000000018000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFBFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000003FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFFFFFFFFFF2AAAAAAB}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFFD555555500000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFFAAAAAAAAD5555555}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFFAAAAAAAA80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFFAAAAAAAA2AAAAAAB}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFF8000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFF55555555D5555555}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000001555555557FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000001555555557FFFFFFF2AAAAAAB}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x00000001555555555555555500000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000001555555552AAAAAAAD5555555}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAB5555555480000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000012AAAAAAB555555542AAAAAAB}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAB2AAAAAAA00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000012AAAAAAAFFFFFFFFD5555555}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFFFFFFFFFF40000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFFDFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFFBFFFFFFFC0000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFFBFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFFBFFFFFFF40000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFF9FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFF7FFFFFFFC0000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000011FFFFFFFFFFFFFFF40000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFFDFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000011FFFFFFFBFFFFFFFC0000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000001000000003FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000001000000003FFFFFFF40000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000001000000001FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x00000000FFFFFFFFFFFFFFFFC0000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFD80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFD80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000800000018000000180000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x00000000800000007FFFFFFF80000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000, 0x0000000055555555FFFFFFFFFFFFFFFF, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x0000000040000000A000000050000000, 0x0000000000000000000000004FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x000000000000000100000001FFFFFFFF, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x000000000000000100000001FFFFFFFD, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000008000000080000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000180000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000180000000, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000140000000, 0x00000000000000009FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000100000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000010000000000000001, 0x000000000000000080000000FFFFFFFF, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000010000000080000000, 0x000000000000000080000000BFFFFFFF, 0x0000000000000000A00000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x00000000000000008000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000010000000100000000, 0x0000000000000000800000007FFFFFFF, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000010000000100000001, 0x0000000000000000800000007FFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000010000000180000000, 0x0000000000000000800000003FFFFFFF, 0x0000000000000000A00000017FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000018000000000000000, 0x000000000000000055555555FFFFFFFF, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000018000000000000001, 0x000000000000000055555555FFFFFFFF, 0x00000000000000012AAAAAAA00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000018000000080000000, 0x000000000000000055555555E38E38E3, 0x00000000000000008E38E38E7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x000000000000000055555555C71C71C7, 0x00000000000000000E38E38EC71C71C6}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x000000000000000040000000A0000000, 0x00000000000000009FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x000000000000000040000000A0000000, 0x00000000000000005FFFFFFF5FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000004000000090000000, 0x000000000000000047FFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000004000000080000000, 0x0000000000000000400000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFFFFFFFFFEFFFFFFFE}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000000000000100000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFEFFFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000000000000100000001, 0x00000000000000000000000100000001, 0x000000007FFFFFFEFFFFFFFDFFFFFFFE}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000000000000180000000, 0x00000000000000000000000100000001, 0x000000007FFFFFFE7FFFFFFE7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x00000000000000000000000100000001, 0x000000007FFFFFFDFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000008000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000008000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000008000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000001, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000001, 0x0000000080000000FFFFFFFF7FFFFFFE}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000001, 0x0000000080000000BFFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000001, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000001, 0x00000000800000007FFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000001, 0x00000000800000007FFFFFFE7FFFFFFE}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000001, 0x00000000800000003FFFFFFE7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000001, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000001, 0x00000000400000007FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000001, 0x00000000400000007FFFFFFF7FFFFFFE}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000001, 0x00000000400000003FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000001, 0x000000003FFFFFFFFFFFFFFF80000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000001, 0x0000000000000000800000007FFFFFFE}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000001, 0x0000000000000000400000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000001, 0x00000000000000000000000080000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFFBFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000000000000180000000, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF3FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000FFFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000008000000000000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000008000000000000001, 0x00000000000000000000000080000000, 0x00000000BFFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000, 0x00000000BFFFFFFFBFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000BFFFFFFF800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000800000007FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000800000003FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFBFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000010000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF3FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000018000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000018000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000018000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFBFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000003FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000000000000000000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000000000000000000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFFFFFFFFFFAAAAAAAA}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000000000000080000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFFD55555557FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFFAAAAAAAB55555554}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000000000000100000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFFAAAAAAAAFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000000000000100000001, 0x00000000000000000000000055555555, 0x000000017FFFFFFFAAAAAAAAAAAAAAAA}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000000000000180000000, 0x00000000000000000000000055555555, 0x000000017FFFFFFF800000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x00000000000000000000000055555555, 0x000000017FFFFFFF5555555655555554}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000008000000000000000, 0x00000000000000000000000055555555, 0x00000001555555557FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000008000000000000001, 0x00000000000000000000000055555555, 0x00000001555555557FFFFFFFAAAAAAAA}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000008000000080000000, 0x00000000000000000000000055555555, 0x0000000155555555555555557FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x00000000000000000000000055555555, 0x00000001555555552AAAAAAB55555554}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAB55555554FFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x00000000000000000000000055555555, 0x000000012AAAAAAB55555554AAAAAAAA}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x00000000000000000000000055555555, 0x000000012AAAAAAB2AAAAAAA7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000055555555, 0x000000012AAAAAAB0000000055555554}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFFFFFFFFFFBFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFFDFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFFC00000003FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFFBFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000040000000, 0x000000013FFFFFFFBFFFFFFFBFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000040000000, 0x000000013FFFFFFF9FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000040000000, 0x000000013FFFFFFF800000003FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000040000000, 0x000000011FFFFFFFFFFFFFFFBFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000040000000, 0x000000011FFFFFFFDFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000040000000, 0x000000011FFFFFFFC00000003FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000040000000, 0x00000001000000003FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000040000000, 0x00000001000000003FFFFFFFBFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000040000000, 0x00000001000000001FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000040000000, 0x0000000100000000000000003FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFE}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFEFFFFFFFE}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFE}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFFFFFFFFFE}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFEFFFFFFFE}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFFFFFFFFFE}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFE}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFE}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFEFFFFFFFE}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFE}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE0000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE00000001FFFFFFFE, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA0000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFBFFFFFFFDFFFFFFF, 0x000000000000000000000001DFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFC, 0x00000000000000000000000200000004}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000003, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA0000000F, 0x00000000000000007FFFFFEB0000000F}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFE, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x0000000000000000BFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000000, 0x0000000000000000C000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFC00000002}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000003, 0x0000000000000000BFFFFFFB80000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000006, 0x0000000000000000FFFFFFF100000006}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAA9FFFFFFFF, 0x0000000000000000D555555600000001}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C7, 0x00000000000000009C71C71C80000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E38F, 0x00000000000000009C71C71A8E38E38F}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFBFFFFFFF, 0x0000000000000001BFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFBFFFFFFF, 0x00000000000000013FFFFFFF40000001}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFF9FFFFFFF, 0x0000000000000001CFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFFFFFFFFFE00000003}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE00000004FFFFFFFD}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE0000000300000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE0000000100000003}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFD0000000480000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFC00000007FFFFFFFD}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000020000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000001FFFFFFFE00000004}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000010000000200000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000000000005FFFFFFFC}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007FFFFFFFA00000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007FFFFFFF800000006}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000006FFFFFFFD00000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000600000001FFFFFFFA}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD8000000180000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF00000002FFFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF0000000100000002}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFE8000000300000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFE00000004FFFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000008000000100000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000000000002FFFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000027FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000000FFFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000001FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000018000000100000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000100000002FFFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000010000000200000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000010000000100000002}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000008000000300000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000004FFFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000048000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000047FFFFFFF00000003}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000040000000180000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000380000003FFFFFFFD}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000006FFFFFFFD00000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000000000006FFFFFFFC00000003}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000067FFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000600000000FFFFFFFD}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFFFFFFFFF55555557}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFAAAAAAAB80000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF55555557AAAAAAA9}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF5555555700000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF5555555655555557}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF0000000280000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFEAAAAAAAEAAAAAAA9}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAB8000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAB7FFFFFFF55555557}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAB2AAAAAAB80000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAAD5555557AAAAAAA9}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555557AAAAAAA900000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555557AAAAAAA855555557}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555575555555480000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D555555700000000AAAAAAA9}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFEC000000080000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE4000000180000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE000000027FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF4000000080000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000003FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE7FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE7FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE0000000080000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE0000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000008000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE0000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE00000001FFFFFFFE, 0x00000000000000000000000000000003}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA0000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFBFFFFFFFDFFFFFFF, 0x000000000000000000000001E0000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFC, 0x00000000000000000000000200000005}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000003, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA0000000F, 0x00000000000000007FFFFFEB00000010}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFE, 0x0000000000000000FFFFFFFE00000003}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x0000000000000000BFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF, 0x00000000000000000000000100000002}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000000, 0x0000000000000000C000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFC00000003}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000001, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000003, 0x0000000000000000BFFFFFFB80000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000006, 0x0000000000000000FFFFFFF100000007}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAA9FFFFFFFF, 0x0000000000000000D555555600000002}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C7, 0x00000000000000009C71C71C80000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E38F, 0x00000000000000009C71C71A8E38E390}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFBFFFFFFF, 0x0000000000000001BFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFBFFFFFFF, 0x00000000000000013FFFFFFF40000002}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFF9FFFFFFF, 0x0000000000000001CFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFFFFFFFFFE00000004}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000180000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE00000004FFFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE0000000300000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE0000000100000004}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFD0000000480000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFC00000007FFFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000020000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000001FFFFFFFE00000005}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000010000000200000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000000000005FFFFFFFD}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007FFFFFFFA00000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007FFFFFFF800000007}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000006FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000600000001FFFFFFFB}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000100000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000000000002}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD8000000180000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD0000000300000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF7FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE8000000200000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFFFFFFFFFF00000003}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF8000000100000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF0000000200000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF0000000100000003}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFE8000000300000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFE00000004FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000000FFFFFFFF00000003}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000008000000100000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000000000002FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFD00000003}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000027FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000001FFFFFFFF00000003}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000018000000100000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000100000002FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000010000000200000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000010000000100000003}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000008000000300000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000004FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000048000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000047FFFFFFF00000004}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000040000000180000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000380000003FFFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000006FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000000000006FFFFFFFC00000004}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000067FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000600000000FFFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFFFFFFFFF55555558}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFAAAAAAAB80000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF55555557AAAAAAAA}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF5555555700000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF5555555655555558}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF0000000280000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFEAAAAAAAEAAAAAAAA}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAB8000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAB7FFFFFFF55555558}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAB2AAAAAAB80000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAAD5555557AAAAAAAA}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555557AAAAAAA900000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555557AAAAAAA855555558}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555575555555480000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D555555700000000AAAAAAAA}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFEFFFFFFFF80000002}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFEC000000080000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE8000000080000002}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE4000000180000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE0000000280000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF7FFFFFFF80000002}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF4000000080000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000007FFFFFFE80000002}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000003FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000002}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE7FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE0000000100000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE0000000080000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE0000000000000002}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF7FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF0000000000000002}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000008000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000008000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000007FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000000000000080000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000000000000000000002}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE0000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE00000001FFFFFFFE, 0x00000000000000000000000080000002}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA0000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFBFFFFFFFE0000000, 0x00000000000000000000000060000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFC, 0x00000000000000000000000280000004}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000003, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA0000000F, 0x00000000000000007FFFFFEB8000000F}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFE, 0x0000000000000000FFFFFFFE80000002}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x0000000000000000C000000000000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF, 0x00000000000000000000000180000001}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000000, 0x0000000000000000C000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFC80000002}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000003, 0x0000000000000000BFFFFFFC00000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000006, 0x0000000000000000FFFFFFF180000006}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAA9FFFFFFFF, 0x0000000000000000D555555680000001}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C7, 0x00000000000000009C71C71D00000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E38F, 0x00000000000000009C71C71B0E38E38F}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFBFFFFFFF, 0x0000000000000001BFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFBFFFFFFF, 0x00000000000000013FFFFFFFC0000001}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFF9FFFFFFF, 0x0000000000000001D000000000000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFFFFFFFFFE80000003}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE000000057FFFFFFD}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE0000000380000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE0000000180000003}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFD0000000500000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFC000000087FFFFFFD}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000020000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000001FFFFFFFE80000004}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000010000000280000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x0000000000000000000000067FFFFFFC}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007FFFFFFFA80000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007FFFFFFF880000006}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000006FFFFFFFD80000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x0000000000000006000000027FFFFFFA}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE000000027FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000180000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000080000001}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD8000000200000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD000000037FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE800000027FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFFFFFFFFFF80000002}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF000000037FFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF0000000280000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF0000000180000002}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFE8000000380000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFE000000057FFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000000FFFFFFFF80000002}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000008000000180000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000080000000000000037FFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFD80000002}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000027FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002000000017FFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000001FFFFFFFF80000002}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000018000000180000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000001000000037FFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000010000000280000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000010000000180000002}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000008000000380000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000000000000057FFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000048000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000047FFFFFFF80000003}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000040000000200000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000080000003800000047FFFFFFD}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000006FFFFFFFD80000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000000000006FFFFFFFC80000003}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000067FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000000000006000000017FFFFFFD}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFFFFFFFFFD5555557}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFAAAAAAAC00000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF555555582AAAAAA9}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF5555555780000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF55555556D5555557}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF0000000300000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFEAAAAAAAF2AAAAAA9}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAB8000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAB7FFFFFFFD5555557}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAB2AAAAAAC00000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAAD55555582AAAAAA9}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555557AAAAAAA980000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555557AAAAAAA8D5555557}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555575555555500000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555557000000012AAAAAA9}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFEC000000100000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE4000000200000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF4000000100000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000004000000000000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000010000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE800000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE0000000180000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE0000000080000001}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000000000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000008000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000008000000000000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000000000000080000001}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE0000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE00000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA0000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFBFFFFFFFE0000000, 0x000000000000000000000000DFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFC, 0x00000000000000000000000300000003}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000003, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA0000000F, 0x00000000000000007FFFFFEC0000000E}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x0000000000000000C00000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF, 0x00000000000000000000000200000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000000, 0x0000000000000000C0000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000001, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000003, 0x0000000000000000BFFFFFFC7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000006, 0x0000000000000000FFFFFFF200000005}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAA9FFFFFFFF, 0x0000000000000000D555555700000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C7, 0x00000000000000009C71C71D7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E38F, 0x00000000000000009C71C71B8E38E38E}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFBFFFFFFF, 0x0000000000000001BFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFBFFFFFFF, 0x00000000000000014000000040000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFF9FFFFFFF, 0x0000000000000001D00000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF000000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE00000005FFFFFFFC}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE00000003FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE0000000200000002}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFD000000057FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFC00000008FFFFFFFC}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x000000000000000200000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000001FFFFFFFF00000003}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x000000000000000100000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000000000006FFFFFFFB}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007FFFFFFFAFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007FFFFFFF900000005}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000006FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000600000002FFFFFFF9}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE00000002FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD800000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD00000003FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE80000002FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF00000003FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF0000000200000001}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFE80000003FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFE00000005FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000000000001}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000080000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000000000003FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000027FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000001FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000000000001}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000180000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000100000003FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000100000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000010000000200000001}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000080000003FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000005FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x000000008000000480000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000048000000000000002}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x0000000080000004000000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000380000004FFFFFFFC}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000006FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000000000006FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000067FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000600000001FFFFFFFC}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000055555555}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFAAAAAAAC7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF55555558AAAAAAA8}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF55555557FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF5555555755555556}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF000000037FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFEAAAAAAAFAAAAAAA8}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAB80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAB8000000055555556}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAB2AAAAAAC7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAAD5555558AAAAAAA8}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555557AAAAAAA9FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555557AAAAAAA955555556}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555557555555557FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D555555700000001AAAAAAA8}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFEC00000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE800000027FFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE400000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE000000037FFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF400000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF000000027FFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000400000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000000000017FFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE80000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE800000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE00000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE000000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000000000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF80000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF00000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000100000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000000000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000080000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000008000000000000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000000000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000000000000100000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE0000000000000002, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE00000001FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA0000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFBFFFFFFFE0000000, 0x000000000000000000000000E0000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000000, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFC, 0x00000000000000000000000300000004}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000003, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA0000000F, 0x00000000000000007FFFFFEC0000000F}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x0000000000000000C000000080000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF, 0x00000000000000000000000200000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000000, 0x0000000000000000C000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000001, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000003, 0x0000000000000000BFFFFFFC80000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000006, 0x0000000000000000FFFFFFF200000006}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAA9FFFFFFFF, 0x0000000000000000D555555700000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C7, 0x00000000000000009C71C71D80000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E38F, 0x00000000000000009C71C71B8E38E38F}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFBFFFFFFF, 0x0000000000000001C000000000000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFBFFFFFFF, 0x00000000000000014000000040000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFF9FFFFFFF, 0x0000000000000001D000000080000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFFFFFFFFFF00000003}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000280000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE00000005FFFFFFFD}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE0000000400000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE0000000200000003}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFD0000000580000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFC00000008FFFFFFFD}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000020000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000001FFFFFFFF00000004}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000010000000300000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000000000006FFFFFFFC}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007FFFFFFFB00000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007FFFFFFF900000006}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000006FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000600000002FFFFFFFA}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000FFFFFFFF0000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000FFFFFFFF0000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000FFFFFFFF0000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000FFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD8000000280000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD00000003FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE80000002FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF8000000200000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF00000003FFFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF0000000300000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF0000000200000002}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFE8000000400000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFE00000005FFFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000000000002}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000008000000200000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000000000003FFFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000000000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000001FFFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000000000002}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000018000000200000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000100000003FFFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000010000000300000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000010000000200000002}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000008000000400000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000005FFFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000048000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000048000000000000003}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000040000000280000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000380000004FFFFFFFD}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000006FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000000000006FFFFFFFD00000003}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000067FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000600000001FFFFFFFD}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000055555556}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFAAAAAAAC80000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF55555558AAAAAAA9}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF5555555800000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF5555555755555557}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF0000000380000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFEAAAAAAAFAAAAAAA9}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAB8000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAB8000000055555557}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAB2AAAAAAC80000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAAD5555558AAAAAAA9}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555557AAAAAAAA00000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555557AAAAAAA955555557}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555575555555580000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D555555700000001AAAAAAA9}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFEC000000180000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE800000027FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE8000000200000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE8000000180000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE4000000280000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE000000037FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF4000000180000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF000000027FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000008000000000000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000004000000080000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE0000000180000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE0000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000080000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000000000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000000000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000008000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000008000000080000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000008000000000000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000000000000200000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE0000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE00000001FFFFFFFF, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA0000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFBFFFFFFFE0000000, 0x000000000000000000000000E0000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000000, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFC, 0x00000000000000000000000300000005}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000003, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA0000000F, 0x00000000000000007FFFFFEC00000010}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x0000000000000000C000000080000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF, 0x00000000000000000000000200000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000000, 0x0000000000000000C000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFD00000003}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000001, 0x00000000000000010000000000000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000001, 0x00000000000000000000000200000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000003, 0x0000000000000000BFFFFFFC80000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000006, 0x0000000000000000FFFFFFF200000007}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAA9FFFFFFFF, 0x0000000000000000D555555700000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C7, 0x00000000000000009C71C71D80000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E38F, 0x00000000000000009C71C71B8E38E390}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFBFFFFFFF, 0x0000000000000001C000000000000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFBFFFFFFF, 0x00000000000000014000000040000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFF9FFFFFFF, 0x0000000000000001D000000080000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x00000000000000008000000080000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFFFFFFFFFF00000004}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000280000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE00000005FFFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE0000000400000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE0000000200000004}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFD0000000580000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFC00000008FFFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000020000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000001FFFFFFFF00000005}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000010000000300000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000000000006FFFFFFFD}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007FFFFFFFB00000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007FFFFFFF900000007}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000006FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000600000002FFFFFFFB}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000FFFFFFFF0000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000180000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000300000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000FFFFFFFF0000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000200000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000FFFFFFFF0000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000100000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000FFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD8000000280000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD0000000400000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000000000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000180000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE8000000300000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000200000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF8000000200000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF00000003FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF0000000300000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF0000000200000003}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFE8000000400000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFE00000005FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000000000003}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000008000000200000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000000000003FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFE00000003}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000000000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000000000003}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000018000000200000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000100000003FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000010000000300000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000010000000200000003}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000008000000400000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000005FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000048000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000048000000000000004}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000040000000280000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000380000004FFFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000006FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000000000006FFFFFFFD00000004}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000067FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000600000001FFFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000055555557}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFAAAAAAAC80000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF55555558AAAAAAAA}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF5555555800000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF5555555755555558}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF0000000380000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFEAAAAAAAFAAAAAAAA}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAB8000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAB8000000055555558}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAB2AAAAAAC80000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAAD5555558AAAAAAAA}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555557AAAAAAAA00000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555557AAAAAAA955555558}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555575555555580000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D555555700000001AAAAAAAA}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF0000000080000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFEC000000180000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE8000000280000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE8000000200000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE8000000180000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE4000000280000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE0000000380000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF8000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF8000000080000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF4000000180000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF0000000280000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000008000000000000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000007FFFFFFF80000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000004000000080000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000200000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000180000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE8000000000000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE0000000200000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE0000000180000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE0000000100000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000080000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000000000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF8000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF8000000000000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF0000000200000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF0000000180000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF0000000100000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000080000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000000000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000000000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000000000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000008000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000008000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000008000000080000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000008000000000000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000000000000200000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000000000000200000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000000000000180000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000000000000100000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE0000000000000003, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE00000001FFFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA0000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFBFFFFFFFE0000000, 0x00000000000000000000000160000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000000, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFC, 0x00000000000000000000000380000004}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000003, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA0000000F, 0x00000000000000007FFFFFEC8000000F}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x0000000000000000C000000100000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF, 0x00000000000000000000000280000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000000, 0x0000000000000000C000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFD80000002}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000001, 0x00000000000000010000000080000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000001, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000003, 0x0000000000000000BFFFFFFD00000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000006, 0x0000000000000000FFFFFFF280000006}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAA9FFFFFFFF, 0x0000000000000000D555555780000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C7, 0x00000000000000009C71C71E00000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E38F, 0x00000000000000009C71C71C0E38E38F}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFBFFFFFFF, 0x0000000000000001C000000080000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFBFFFFFFF, 0x000000000000000140000000C0000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFF9FFFFFFF, 0x0000000000000001D000000100000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFFFFFFFFFF80000003}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000300000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE000000067FFFFFFD}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE0000000480000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE0000000280000003}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFD0000000600000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFC000000097FFFFFFD}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000020000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000001FFFFFFFF80000004}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000010000000380000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x0000000000000000000000077FFFFFFC}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007FFFFFFFB80000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007FFFFFFF980000006}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000006FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x0000000000000006000000037FFFFFFA}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000FFFFFFFF0000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000200000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE000000037FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000FFFFFFFF0000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000280000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000FFFFFFFF0000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000180000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000FFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD8000000300000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD000000047FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE800000037FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000080000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF8000000280000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF000000047FFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF0000000380000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF0000000280000002}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFE8000000480000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFE000000067FFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000080000002}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000008000000280000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000080000000000000047FFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFE80000002}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000080000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002000000027FFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000080000002}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000018000000280000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000001000000047FFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000010000000380000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000010000000280000002}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000008000000480000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000000000000067FFFFFFE}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000048000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000048000000080000003}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000040000000300000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000080000003800000057FFFFFFD}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000006FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000000000006FFFFFFFD80000003}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000068000000000000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000000000006000000027FFFFFFD}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x000000000000000000000000D5555556}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFAAAAAAAD00000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF555555592AAAAAA9}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF5555555880000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF55555557D5555557}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF0000000400000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFEAAAAAAB02AAAAAA9}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAB8000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAB80000000D5555557}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAB2AAAAAAD00000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAAD55555592AAAAAA9}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555557AAAAAAAA80000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555557AAAAAAA9D5555557}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555575555555600000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555557000000022AAAAAA9}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFEC000000200000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE80000002FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE8000000280000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE8000000200000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE4000000300000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE00000003FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF8000000100000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF4000000200000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000008000000080000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000008000000000000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000004000000100000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000010000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000280000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF000000027FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000180000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE0000000280000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE000000027FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE0000000180000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000080000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF0000000280000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF000000027FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF0000000180000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000100000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000080000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000080000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000000000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000008000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000008000000100000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000008000000080000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000000000000280000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000000000027FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000000000000200000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000000000000180000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE0000000000000003, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE00000001FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA0000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFBFFFFFFFE0000000, 0x000000000000000000000001DFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFC, 0x00000000000000000000000400000003}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000003, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA0000000F, 0x00000000000000007FFFFFED0000000E}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x0000000000000000C00000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF, 0x00000000000000000000000300000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000000, 0x0000000000000000C0000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000001, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000001, 0x000000000000000000000002FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000003, 0x0000000000000000BFFFFFFD7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000006, 0x0000000000000000FFFFFFF300000005}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAA9FFFFFFFF, 0x0000000000000000D555555800000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C7, 0x00000000000000009C71C71E7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E38F, 0x00000000000000009C71C71C8E38E38E}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFBFFFFFFF, 0x0000000000000001C0000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFBFFFFFFF, 0x00000000000000014000000140000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFF9FFFFFFF, 0x0000000000000001D00000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF000000037FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE00000006FFFFFFFC}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE00000004FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE0000000300000002}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFD000000067FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFC00000009FFFFFFFC}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x000000000000000200000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x00000000000000020000000000000003}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x000000000000000100000003FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000000000007FFFFFFFB}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007FFFFFFFBFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007FFFFFFFA00000005}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000006FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000600000003FFFFFFF9}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE800000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE00000003FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD800000037FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD00000004FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF000000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE80000003FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000002FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF80000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF00000004FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF00000003FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF0000000300000001}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFE80000004FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFE00000006FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000100000001}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000080000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000000000004FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000280000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000002FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000100000001}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000180000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000100000004FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000100000003FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000010000000300000001}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000080000004FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000000000006FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x000000008000000480000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000048000000100000002}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x0000000080000004000000037FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000380000005FFFFFFFC}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000006FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000000000006FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000006800000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000600000002FFFFFFFC}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000155555555}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFAAAAAAAD7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF55555559AAAAAAA8}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF55555558FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF5555555855555556}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF000000047FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFEAAAAAAB0AAAAAAA8}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAB80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAB8000000155555556}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAB2AAAAAAD7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAAD5555559AAAAAAA8}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555557AAAAAAAAFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555557AAAAAAAA55555556}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555557555555567FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D555555700000002AAAAAAA8}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFEC00000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE800000037FFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE80000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE8000000280000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE400000037FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE000000047FFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF400000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF000000037FFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000008000000080000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000400000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000000000027FFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000002FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF000000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE80000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE00000002FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE000000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000000000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000100000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000000000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF80000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF00000002FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF000000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000100000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001000000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000100000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000100000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000000000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000080000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000080000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000008000000100000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000000000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000000000002FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000000000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000000000000200000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE0000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE000000027FFFFFFD, 0x00000000000000000000000080000003}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA0000000055555555, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFC000000020000000, 0x00000000000000000000000020000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFD, 0x00000000000000000000000200000003}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000004, 0x00000000000000007FFFFFFE00000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA00000010, 0x00000000000000007FFFFFEA00000010}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000004000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF, 0x00000000000000008000000100000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000001, 0x00000000000000003FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000003, 0x00000000000000007FFFFFFB00000003}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000002, 0x00000000000000007FFFFFFE00000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000004, 0x00000000000000003FFFFFFA00000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000007, 0x00000000000000007FFFFFEF00000007}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAA9FFFFFFFF, 0x00000000000000015555555600000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C7, 0x00000000000000011C71C71C80000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E38F, 0x00000000000000011C71C71A8E38E38F}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000004000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFBFFFFFFF, 0x0000000000000001BFFFFFFF40000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFA0000000, 0x00000000000000005000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE80000004FFFFFFFD}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE8000000300000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE8000000100000003}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFD8000000480000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFC80000007FFFFFFFD}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000028000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x00000000000000027FFFFFFE00000004}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000018000000200000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000080000005FFFFFFFC}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x00000000000000087FFFFFFA00000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x00000000000000087FFFFFF800000006}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x00000000000000077FFFFFFD00000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000680000001FFFFFFFA}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000180000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD80000002FFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF80000002FFFFFFFE}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF8000000200000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF8000000100000002}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF0000000300000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFE80000004FFFFFFFE}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000017FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000100000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000080000002FFFFFFFE}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFE00000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFD00000002}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000280000000FFFFFFFE}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000027FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000100000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000180000002FFFFFFFE}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000018000000200000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000018000000100000002}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000010000000300000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000080000004FFFFFFFE}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000050000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x0000000080000004FFFFFFFF00000003}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000048000000180000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000400000003FFFFFFFD}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000077FFFFFFD00000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x00000000000000077FFFFFFC00000003}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000006FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000680000000FFFFFFFD}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000007FFFFFFF55555556}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000002AAAAAAB00000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFD5555557AAAAAAA9}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFD555555700000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFD555555655555557}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF8000000280000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF2AAAAAAEAAAAAAA9}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC0000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAABFFFFFFFF55555557}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAABAAAAAAAB80000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAB55555557AAAAAAA9}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555582AAAAAA900000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555582AAAAAA855555557}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555557D555555480000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D555555780000000AAAAAAA9}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF4000000080000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFEC000000180000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE800000027FFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000000000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFFC000000080000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000BFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000008000000100000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE0000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000080000000, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE000000027FFFFFFD, 0x00000000000000000000000080000004}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA0000000055555555, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFC000000020000000, 0x00000000000000000000000020000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFD, 0x00000000000000000000000200000004}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000004, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA00000010, 0x00000000000000007FFFFFEA00000011}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000004000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF, 0x00000000000000008000000100000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000001, 0x00000000000000003FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000003, 0x00000000000000007FFFFFFB00000004}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000002, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000001, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000004, 0x00000000000000003FFFFFFA00000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000007, 0x00000000000000007FFFFFEF00000008}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAA9FFFFFFFF, 0x00000000000000015555555600000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C7, 0x00000000000000011C71C71C80000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E38F, 0x00000000000000011C71C71A8E38E390}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000004000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFBFFFFFFF, 0x0000000000000001BFFFFFFF40000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFA0000000, 0x00000000000000005000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x00000000000000007FFFFFFE00000003}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF8000000180000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE80000004FFFFFFFE}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE8000000300000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE8000000100000004}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFD8000000480000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFC80000007FFFFFFFE}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000028000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x00000000000000027FFFFFFE00000005}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000018000000200000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000080000005FFFFFFFD}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x00000000000000087FFFFFFA00000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x00000000000000087FFFFFF800000007}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x00000000000000077FFFFFFD00000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000680000001FFFFFFFB}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000200000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000000000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000180000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD8000000300000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF80000002FFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF8000000200000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF8000000100000003}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF0000000300000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFE80000004FFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000017FFFFFFF00000003}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000100000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000080000002FFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFD00000003}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000280000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000027FFFFFFF00000003}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000100000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000180000002FFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000018000000200000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000018000000100000003}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000010000000300000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000080000004FFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000050000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x0000000080000004FFFFFFFF00000004}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000048000000180000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000400000003FFFFFFFE}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000077FFFFFFD00000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x00000000000000077FFFFFFC00000004}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000006FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000680000000FFFFFFFE}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000007FFFFFFF55555557}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000002AAAAAAB00000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFD5555557AAAAAAAA}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFD555555700000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFD555555655555558}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF8000000280000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF2AAAAAAEAAAAAAAA}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC0000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAABFFFFFFFF55555558}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAABAAAAAAAB80000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAB55555557AAAAAAAA}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555582AAAAAA900000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555582AAAAAA855555558}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555557D555555480000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D555555780000000AAAAAAAA}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF7FFFFFFF80000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF4000000080000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF0000000080000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFEC000000180000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE8000000280000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000000000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFFFFFFFFFF80000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFFC000000080000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000FFFFFFFE80000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000BFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE8000000000000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF8000000100000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF8000000000000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000008000000100000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000008000000100000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000008000000080000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000008000000000000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE0000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000080000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE000000027FFFFFFE, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA0000000055555555, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFC000000020000000, 0x000000000000000000000000A0000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFD, 0x00000000000000000000000280000003}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000004, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA00000010, 0x00000000000000007FFFFFEA80000010}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000004000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF, 0x00000000000000008000000180000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000001, 0x00000000000000004000000000000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000003, 0x00000000000000007FFFFFFB80000003}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000002, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000001, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000004, 0x00000000000000003FFFFFFA80000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000007, 0x00000000000000007FFFFFEF80000007}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAA9FFFFFFFF, 0x00000000000000015555555680000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C7, 0x00000000000000011C71C71D00000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E38F, 0x00000000000000011C71C71B0E38E38F}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000004000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFBFFFFFFF, 0x0000000000000001BFFFFFFFC0000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFA0000000, 0x00000000000000005000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x00000000000000007FFFFFFE80000002}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF8000000200000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE800000057FFFFFFD}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE8000000380000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE8000000180000003}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFD8000000500000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFC800000087FFFFFFD}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000028000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x00000000000000027FFFFFFE80000004}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000018000000280000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x0000000000000000800000067FFFFFFC}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x00000000000000087FFFFFFA80000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x00000000000000087FFFFFF880000006}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x00000000000000077FFFFFFD80000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x0000000000000006800000027FFFFFFA}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE800000027FFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD800000037FFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF000000027FFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF800000037FFFFFFE}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF8000000280000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF8000000180000002}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF0000000380000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFE800000057FFFFFFE}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000017FFFFFFF80000002}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000180000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000080000000800000037FFFFFFE}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFD80000002}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002800000017FFFFFFE}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000027FFFFFFF80000002}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000180000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000001800000037FFFFFFE}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000018000000280000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000018000000180000002}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000010000000380000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000000800000057FFFFFFE}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000050000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x0000000080000004FFFFFFFF80000003}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000048000000200000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000080000004000000047FFFFFFD}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000077FFFFFFD80000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x00000000000000077FFFFFFC80000003}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000006FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000000000006800000017FFFFFFD}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000007FFFFFFFD5555556}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000002AAAAAAB80000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFD55555582AAAAAA9}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFD555555780000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFD5555556D5555557}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF8000000300000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF2AAAAAAF2AAAAAA9}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC0000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAABFFFFFFFFD5555557}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAABAAAAAAAC00000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAB555555582AAAAAA9}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555582AAAAAA980000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555582AAAAAA8D5555557}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555557D555555500000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555557800000012AAAAAA9}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF4000000100000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFEC000000200000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE80000002FFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000000000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001400000000000000000000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFFC000000100000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000C000000000000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000010000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000000000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001800000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000000000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000000000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000008000000180000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000008000000100000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000008000000080000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE0000000100000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000080000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000080000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE000000027FFFFFFE, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA0000000055555555, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFC000000020000000, 0x0000000000000000000000011FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFD, 0x00000000000000000000000300000002}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000004, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA00000010, 0x00000000000000007FFFFFEB0000000F}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000040000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF, 0x00000000000000008000000200000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000001, 0x0000000000000000400000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000003, 0x00000000000000007FFFFFFC00000002}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000002, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000001, 0x000000000000000080000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000004, 0x00000000000000003FFFFFFAFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000007, 0x00000000000000007FFFFFF000000006}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAA9FFFFFFFF, 0x00000000000000015555555700000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C7, 0x00000000000000011C71C71D7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E38F, 0x00000000000000011C71C71B8E38E38E}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFC0000000, 0x000000000000000040000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFBFFFFFFF, 0x0000000000000001C000000040000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFA0000000, 0x000000000000000050000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF800000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE80000005FFFFFFFC}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE80000003FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE8000000200000002}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFD800000057FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFC80000008FFFFFFFC}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x000000000000000280000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x00000000000000027FFFFFFF00000003}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x000000000000000180000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000080000006FFFFFFFB}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x00000000000000087FFFFFFAFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x00000000000000087FFFFFF900000005}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x00000000000000077FFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000680000002FFFFFFF9}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE80000002FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE000000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD80000003FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF00000002FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF80000003FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF80000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF8000000200000001}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF00000003FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFE80000005FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000000000001}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000080000003FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFE00000001}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000280000001FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000280000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000000000001}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000180000003FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000180000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000018000000200000001}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000100000003FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000080000005FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x000000008000000500000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000050000000000000002}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x0000000080000004800000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000400000004FFFFFFFC}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000077FFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x00000000000000077FFFFFFD00000002}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000006FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000680000001FFFFFFFC}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000008000000055555555}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000002AAAAAABFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFD5555558AAAAAAA8}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFD5555557FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFD555555755555556}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF800000037FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFF2AAAAAAFAAAAAAA8}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC0000000055555556}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAABAAAAAAAC7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAB55555558AAAAAAA8}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555582AAAAAA9FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555582AAAAAA955555556}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555557D55555557FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D555555780000001AAAAAAA8}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF400000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF000000027FFFFFFE}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFEC00000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFE800000037FFFFFFE}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000014000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001400000000000000080000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFFC00000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000013FFFFFFF800000027FFFFFFE}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000C00000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000800000017FFFFFFE}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000080000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE80000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000080000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000000000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000000000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF80000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000180000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001800000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000000000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000100000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000000000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000080000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000080000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000008000000100000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE00000001FFFFFFFE, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE00000002FFFFFFFC, 0x00000000000000000000000000000004}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA00000000AAAAAAAA, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFC00000005FFFFFFF, 0x0000000000000000000000015FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFE, 0x00000000000000000000000100000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000005, 0x00000000000000007FFFFFFC80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA00000011, 0x00000000000000007FFFFFE800000011}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000BFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000001, 0x0000000000000000BFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000FFFFFFFA00000003}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFD00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000004, 0x0000000000000000BFFFFFF900000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000007, 0x0000000000000000FFFFFFEE00000007}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000005555555500000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C8, 0x00000000000000001C71C71B00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E390, 0x00000000000000001C71C7188E38E390}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000BFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000003FFFFFFF40000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFA0000000, 0x0000000000000000CFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x00000000000000017FFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF00000003FFFFFFFD}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000000000003}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE0000000380000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFD00000006FFFFFFFD}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000002FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000002FFFFFFFD00000004}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000020000000100000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000100000004FFFFFFFC}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008FFFFFFF900000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008FFFFFFF700000006}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007FFFFFFFC00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000700000000FFFFFFFA}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000001000000000000000000000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF8000000200000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF00000003FFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000001FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000001FFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFD00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFC00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000001FFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000100000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000000000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000018000000200000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000100000003FFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000057FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000057FFFFFFE00000003}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000050000000080000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000480000002FFFFFFFD}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFC00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFB00000003}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000077FFFFFFD80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000000000006FFFFFFFFFFFFFFFD}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000FFFFFFFE55555556}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000AAAAAAAA00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000055555555AAAAAAAA}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000005555555500000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000005555555455555556}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFAAAAAAADAAAAAAA9}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC7FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC7FFFFFFE55555557}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC2AAAAAAA80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAABD5555556AAAAAAA9}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558AAAAAAA800000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558AAAAAAA755555557}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555585555555380000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555557FFFFFFFFAAAAAAA9}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFFBFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF4000000080000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001400000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000003FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000140000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000017FFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000017FFFFFFD80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000013FFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFD80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFD80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFD00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFD80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFD80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE00000001FFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE00000002FFFFFFFC, 0x00000000000000000000000000000005}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA00000000AAAAAAAA, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFC00000005FFFFFFF, 0x00000000000000000000000160000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFE, 0x00000000000000000000000100000003}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000005, 0x00000000000000007FFFFFFC80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA00000011, 0x00000000000000007FFFFFE800000012}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000BFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000001, 0x0000000000000000BFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000FFFFFFFA00000004}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000001, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000004, 0x0000000000000000BFFFFFF900000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000007, 0x0000000000000000FFFFFFEE00000008}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000005555555500000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C8, 0x00000000000000001C71C71B00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E390, 0x00000000000000001C71C7188E38E391}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000BFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000003FFFFFFF40000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFA0000000, 0x0000000000000000CFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFD00000003}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF00000003FFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000200000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000000000004}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE0000000380000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFD00000006FFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000002FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000002FFFFFFFD00000005}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000020000000100000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000100000004FFFFFFFD}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008FFFFFFF900000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008FFFFFFF700000007}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007FFFFFFFC00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000700000000FFFFFFFB}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000001000000000000000000000003}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF8000000200000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF00000003FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000001FFFFFFFE00000003}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000000000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFC00000003}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFE00000003}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000000000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000001FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000100000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000000000003}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000018000000200000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000100000003FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000057FFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000057FFFFFFE00000004}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000050000000080000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000480000002FFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFC00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFB00000004}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000077FFFFFFD80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000000000006FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000FFFFFFFE55555557}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000AAAAAAAA00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000055555555AAAAAAAB}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000005555555500000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000005555555455555557}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFAAAAAAADAAAAAAAA}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC7FFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC7FFFFFFE55555558}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC2AAAAAAA80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAABD5555556AAAAAAAA}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558AAAAAAA800000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558AAAAAAA755555558}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555585555555380000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555557FFFFFFFFAAAAAAAA}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFFFFFFFFFE80000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFFBFFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF7FFFFFFF80000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF4000000080000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001400000007FFFFFFE80000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000003FFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001400000000000000080000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000017FFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000017FFFFFFD80000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000013FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFD80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFD00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000000000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000000000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE00000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE00000002FFFFFFFC, 0x00000000000000000000000080000004}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA00000000AAAAAAAA, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFC00000005FFFFFFF, 0x000000000000000000000001DFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFE, 0x00000000000000000000000180000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000005, 0x00000000000000007FFFFFFD00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA00000011, 0x00000000000000007FFFFFE880000011}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000BFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000001, 0x0000000000000000BFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000FFFFFFFA80000003}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFD80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000004, 0x0000000000000000BFFFFFF980000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000007, 0x0000000000000000FFFFFFEE80000007}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000005555555580000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C8, 0x00000000000000001C71C71B80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E390, 0x00000000000000001C71C7190E38E390}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000BFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000003FFFFFFFC0000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFA0000000, 0x0000000000000000CFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFD80000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF000000047FFFFFFD}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000280000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000080000003}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE0000000400000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFD000000077FFFFFFD}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000002FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000002FFFFFFFD80000004}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000020000000180000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x0000000000000001000000057FFFFFFC}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008FFFFFFF980000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008FFFFFFF780000006}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007FFFFFFFC80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007000000017FFFFFFA}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE000000027FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000001000000000000000080000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF8000000280000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF000000047FFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000001FFFFFFFE80000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000080000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000080000001000000027FFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFD80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFC80000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003000000007FFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFE80000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000080000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002000000027FFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000180000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000080000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000018000000280000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000001000000047FFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000057FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000057FFFFFFE80000003}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000050000000100000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000080000004800000037FFFFFFD}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFC80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFB80000003}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000077FFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007000000007FFFFFFD}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000FFFFFFFED5555556}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000AAAAAAAA80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000555555562AAAAAAA}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000005555555580000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x000000000000000055555554D5555556}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFAAAAAAAE2AAAAAA9}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC7FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC7FFFFFFED5555557}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC2AAAAAAB00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAABD55555572AAAAAA9}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558AAAAAAA880000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558AAAAAAA7D5555557}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555585555555400000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558000000002AAAAAA9}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFFC000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF4000000100000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001400000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000004000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000014000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000017FFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000017FFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000013FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFD80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000080000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE7FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000080000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE00000002FFFFFFFD, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA00000000AAAAAAAA, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFC000000060000000, 0x0000000000000000000000005FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFE, 0x00000000000000000000000200000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000005, 0x00000000000000007FFFFFFD7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA00000011, 0x00000000000000007FFFFFE900000010}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000BFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000001, 0x0000000000000000BFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000FFFFFFFB00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000001, 0x000000000000000100000000FFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000004, 0x0000000000000000BFFFFFF9FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000007, 0x0000000000000000FFFFFFEF00000006}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA00000000, 0x000000000000000055555555FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C8, 0x00000000000000001C71C71BFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E390, 0x00000000000000001C71C7198E38E38F}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000BFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000400000003FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFA0000000, 0x0000000000000000CFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x00000000000000017FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF00000004FFFFFFFC}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000100000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE000000047FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFD00000007FFFFFFFC}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000002FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000002FFFFFFFE00000003}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x000000000000000200000001FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000100000005FFFFFFFB}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008FFFFFFF9FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008FFFFFFF800000005}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007FFFFFFFCFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000700000001FFFFFFF9}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE00000002FFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF80000001FFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000100000000FFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF80000002FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF00000004FFFFFFFD}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000002FFFFFFFD}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000000FFFFFFFD}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000280000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000002FFFFFFFD}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000001FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000100000001}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000180000002FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000100000004FFFFFFFD}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000057FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000057FFFFFFF00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x0000000080000005000000017FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000480000003FFFFFFFC}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFCFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFC00000002}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000077FFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000700000000FFFFFFFC}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000FFFFFFFF55555555}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000AAAAAAAAFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000055555556AAAAAAA9}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x000000000000000055555555FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000005555555555555555}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFAAAAAAAEAAAAAAA8}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC7FFFFFFF55555556}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC2AAAAAAB7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAABD5555557AAAAAAA8}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558AAAAAAA8FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558AAAAAAA855555556}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558555555547FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D555555800000000AAAAAAA8}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFFC00000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF800000017FFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF400000017FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF000000027FFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001400000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000140000000400000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000140000000000000017FFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000017FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000017FFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000013FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001000000007FFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFEFFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFEFFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000000FFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFEFFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFEFFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000100000000FFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE0000000200000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE00000002FFFFFFFD, 0x00000000000000000000000000000003}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA00000000AAAAAAAA, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFC000000060000000, 0x00000000000000000000000060000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000002, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFE, 0x00000000000000000000000200000002}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000005, 0x00000000000000007FFFFFFD80000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA00000011, 0x00000000000000007FFFFFE900000011}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000C000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000001, 0x0000000000000000BFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000FFFFFFFB00000003}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000001, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000004, 0x0000000000000000BFFFFFFA00000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000007, 0x0000000000000000FFFFFFEF00000007}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000005555555600000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C8, 0x00000000000000001C71C71C00000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E390, 0x00000000000000001C71C7198E38E390}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000C000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000004000000040000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFA0000000, 0x0000000000000000D000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF00000004FFFFFFFD}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000300000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000100000003}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE0000000480000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFD00000007FFFFFFFD}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000030000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000002FFFFFFFE00000004}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000020000000200000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000100000005FFFFFFFC}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008FFFFFFFA00000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008FFFFFFF800000006}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007FFFFFFFD00000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000700000001FFFFFFFA}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000080000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF8000000300000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF00000004FFFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000001FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000100000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000002FFFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000000FFFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000100000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000002FFFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000200000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000100000002}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000018000000300000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000100000004FFFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000058000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000057FFFFFFF00000003}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000050000000180000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000480000003FFFFFFFD}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFD00000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFC00000003}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000077FFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000700000000FFFFFFFD}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000FFFFFFFF55555556}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000AAAAAAAB00000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000055555556AAAAAAAA}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000005555555600000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000005555555555555556}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFAAAAAAAEAAAAAAA9}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC8000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC7FFFFFFF55555557}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC2AAAAAAB80000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAABD5555557AAAAAAA9}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558AAAAAAA900000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558AAAAAAA855555557}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555585555555480000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D555555800000000AAAAAAA9}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFFC000000080000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF4000000180000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF000000027FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000008000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001400000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000004000000080000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000140000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000013FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000080000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE0000000200000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE00000002FFFFFFFD, 0x00000000000000000000000000000004}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA00000000AAAAAAAA, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFC000000060000000, 0x00000000000000000000000060000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000002, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFE, 0x00000000000000000000000200000003}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000005, 0x00000000000000007FFFFFFD80000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA00000011, 0x00000000000000007FFFFFE900000012}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000001, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000C000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000001, 0x0000000000000000BFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000FFFFFFFB00000004}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000001, 0x00000000000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000004, 0x0000000000000000BFFFFFFA00000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000007, 0x0000000000000000FFFFFFEF00000008}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000005555555600000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C8, 0x00000000000000001C71C71C00000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E390, 0x00000000000000001C71C7198E38E391}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000C000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000004000000040000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFA0000000, 0x0000000000000000D000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x00000000000000017FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFE00000003}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF00000004FFFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000300000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000100000004}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE0000000480000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFD00000007FFFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000030000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000002FFFFFFFE00000005}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000020000000200000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000100000005FFFFFFFD}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008FFFFFFFA00000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008FFFFFFF800000007}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000700000001FFFFFFFB}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x00000000000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000180000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000300000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000080000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000200000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000200000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF8000000300000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF00000004FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000001FFFFFFFF00000003}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000100000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000002FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFD00000003}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFF00000003}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000100000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000002FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000200000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000100000003}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000018000000300000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000100000004FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000058000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000057FFFFFFF00000004}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000050000000180000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000480000003FFFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFC00000004}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000077FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000700000000FFFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000FFFFFFFF55555557}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000AAAAAAAB00000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000055555556AAAAAAAB}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000005555555600000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000005555555555555557}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFAAAAAAAEAAAAAAAA}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC8000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC7FFFFFFF55555558}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC2AAAAAAB80000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAABD5555557AAAAAAAA}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558AAAAAAA900000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558AAAAAAA855555558}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555585555555480000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D555555800000000AAAAAAAA}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000000000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFFFFFFFFFF80000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFFC000000080000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF8000000100000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF8000000080000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF4000000180000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF0000000280000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000008000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001400000007FFFFFFF80000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000004000000080000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001400000000000000180000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000017FFFFFFE80000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000013FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000100000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000080000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000000000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000080000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000000000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE0000000200000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000100000001, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE00000002FFFFFFFD, 0x00000000000000000000000080000003}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA00000000AAAAAAAB, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFC000000060000000, 0x000000000000000000000000E0000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000002, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFE, 0x00000000000000000000000280000002}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000005, 0x00000000000000007FFFFFFE00000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA00000011, 0x00000000000000007FFFFFE980000011}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000001, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000C000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000001, 0x0000000000000000C000000000000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000FFFFFFFB80000003}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000000000007FFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000004, 0x0000000000000000BFFFFFFA80000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000007, 0x0000000000000000FFFFFFEF80000007}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000005555555680000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C8, 0x00000000000000001C71C71C80000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E390, 0x00000000000000001C71C71A0E38E390}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000C000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFC0000000, 0x000000000000000040000000C0000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFA0000000, 0x0000000000000000D000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x00000000000000018000000000000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFE80000002}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF000000057FFFFFFD}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000380000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000180000003}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE0000000500000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFD000000087FFFFFFD}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000030000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000002FFFFFFFE80000004}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000020000000280000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x0000000000000001000000067FFFFFFC}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008FFFFFFFA80000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008FFFFFFF880000006}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007FFFFFFFD80000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007000000027FFFFFFA}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x00000000000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000200000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE000000037FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF800000027FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000000000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF8000000380000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF000000057FFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000001FFFFFFFF80000002}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000180000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000080000001000000037FFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFD80000002}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003000000017FFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFF80000002}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000180000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002000000037FFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000280000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000180000002}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000018000000380000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000001000000057FFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000058000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000057FFFFFFF80000003}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000050000000200000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000080000004800000047FFFFFFD}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFD80000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFC80000003}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000077FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007000000017FFFFFFD}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000FFFFFFFFD5555556}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000AAAAAAAB80000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000555555572AAAAAAA}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000005555555680000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x000000000000000055555555D5555556}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFAAAAAAAF2AAAAAA9}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC8000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC7FFFFFFFD5555557}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC2AAAAAAC00000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAABD55555582AAAAAA9}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558AAAAAAA980000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558AAAAAAA8D5555557}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555585555555500000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558000000012AAAAAA9}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000000000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000000000000000000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFFC000000100000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF8000000100000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF4000000200000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000008000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001400000008000000000000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000004000000100000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000014000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000014000000000000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000010000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000000000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000180000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000080000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000000000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001800000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000000000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000017FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000080000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE0000000200000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000100000002, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE00000002FFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA00000000AAAAAAAB, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFC000000060000000, 0x0000000000000000000000015FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000002, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFE, 0x00000000000000000000000300000001}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000005, 0x00000000000000007FFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA00000011, 0x00000000000000007FFFFFEA00000010}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000C0000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000002, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000001, 0x0000000000000000C00000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000FFFFFFFC00000002}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000002, 0x000000000000000000000000FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000004, 0x0000000000000000BFFFFFFAFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000007, 0x0000000000000000FFFFFFF000000006}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA00000000, 0x000000000000000055555556FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C8, 0x00000000000000001C71C71CFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E390, 0x00000000000000001C71C71A8E38E38F}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000C0000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000400000013FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFA0000000, 0x0000000000000000D0000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x0000000000000001800000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF00000005FFFFFFFC}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF00000003FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000200000002}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE000000057FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFD00000008FFFFFFFC}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x000000000000000300000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000002FFFFFFFF00000003}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x000000000000000200000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000100000006FFFFFFFB}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008FFFFFFFAFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008FFFFFFF900000005}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000700000002FFFFFFF9}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE800000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE00000003FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000000000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF80000002FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001800000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000100000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000002FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF80000003FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF00000005FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000200000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000000000001}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000180000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000003FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000001FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000000000001}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000280000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000003FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000200000001}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000180000003FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000100000005FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x000000008000000580000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000058000000000000002}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x0000000080000005000000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000480000004FFFFFFFC}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000077FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000700000001FFFFFFFC}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000010000000055555555}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000AAAAAAABFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000055555557AAAAAAA9}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x000000000000000055555556FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000005555555655555555}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFAAAAAAAFAAAAAAA8}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC8000000055555556}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC2AAAAAAC7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAABD5555558AAAAAAA8}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558AAAAAAA9FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558AAAAAAA955555556}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558555555557FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D555555800000001AAAAAAA8}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000000000000080000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFFC00000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF800000027FFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF400000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF000000037FFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000014000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001400000008000000080000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000140000000400000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000140000000000000027FFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000017FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001400000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001000000017FFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000100000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000080000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000100000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000080000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000000000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000000000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000100000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000200000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000200000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000000000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000180000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001800000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000000000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000100000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001000000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000100000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE0000000200000002, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000100000002, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE00000002FFFFFFFE, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA00000000AAAAAAAB, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFC000000060000000, 0x00000000000000000000000160000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000002, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFE, 0x00000000000000000000000300000002}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000005, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA00000011, 0x00000000000000007FFFFFEA00000011}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000001, 0x00000000000000000000000200000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000010000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000C000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000002, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000200000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000001, 0x0000000000000000C000000080000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000FFFFFFFC00000003}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000002, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000004, 0x0000000000000000BFFFFFFB00000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000007, 0x0000000000000000FFFFFFF000000007}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000005555555700000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C8, 0x00000000000000001C71C71D00000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E390, 0x00000000000000001C71C71A8E38E390}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000C000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000004000000140000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFA0000000, 0x0000000000000000D000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x00000000000000018000000080000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000200000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF00000005FFFFFFFD}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000400000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000200000003}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE0000000580000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFD00000008FFFFFFFD}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000030000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000002FFFFFFFF00000004}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000020000000300000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000100000006FFFFFFFC}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008FFFFFFFB00000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008FFFFFFF900000006}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000700000002FFFFFFFA}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x00000000000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000200000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000FFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000280000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE00000003FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000000000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000180000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF80000002FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000000000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000080000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000180000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000200000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF8000000400000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF00000005FFFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000000000002}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000200000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000003FFFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000038000000000000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000001FFFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000000000002}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000200000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000003FFFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000300000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000200000002}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000018000000400000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000100000005FFFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000058000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000058000000000000003}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000050000000280000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000480000004FFFFFFFD}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFD00000003}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000077FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000700000001FFFFFFFD}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000010000000055555556}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000AAAAAAAC00000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000055555557AAAAAAAA}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000005555555700000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000005555555655555556}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000200000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFAAAAAAAFAAAAAAA9}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC8000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC8000000055555557}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC2AAAAAAC80000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAABD5555558AAAAAAA9}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558AAAAAAAA00000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558AAAAAAA955555557}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555585555555580000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D555555800000001AAAAAAA9}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000000000000080000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFFC000000180000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF800000027FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF8000000200000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF8000000180000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF4000000280000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF000000037FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000008000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001400000008000000080000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000004000000180000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000140000000000000027FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000018000000000000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000017FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000014000000080000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000200000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000080000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000000000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000200000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000180000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000200000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000080000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000000000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000000000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000080000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000000000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000200000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000200000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE0000000200000002, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000100000002, 0x00000000000000000000000000000003}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE00000002FFFFFFFE, 0x00000000000000000000000000000003}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA00000000AAAAAAAB, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFC000000060000000, 0x00000000000000000000000160000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000002, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFE, 0x00000000000000000000000300000003}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000005, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA00000011, 0x00000000000000007FFFFFEA00000012}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000001, 0x00000000000000000000000200000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000010000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000C000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000002, 0x00000000000000000000000000000003}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000200000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000001, 0x0000000000000000C000000080000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000FFFFFFFC00000004}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000002, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000004, 0x0000000000000000BFFFFFFB00000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000007, 0x0000000000000000FFFFFFF000000008}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000005555555700000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C8, 0x00000000000000001C71C71D00000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E390, 0x00000000000000001C71C71A8E38E391}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000C000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000004000000140000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFA0000000, 0x0000000000000000D000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x00000000000000018000000080000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFF00000003}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000200000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF00000005FFFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000400000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000200000004}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE0000000580000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFD00000008FFFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000030000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000002FFFFFFFF00000005}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000020000000300000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000100000006FFFFFFFD}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008FFFFFFFB00000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008FFFFFFF900000007}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000700000002FFFFFFFB}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x00000000000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x00000000000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000000000008000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000200000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000FFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000280000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000400000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000000000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000180000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000300000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000000000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000080000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000200000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000180000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000300000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000200000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF8000000400000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF00000005FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000000000003}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000200000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000003FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFE00000003}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000038000000000000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000000000003}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000200000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000003FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000300000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000200000003}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000018000000400000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000100000005FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000058000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000058000000000000004}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000050000000280000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000480000004FFFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFD00000004}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000077FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000700000001FFFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000010000000055555557}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000AAAAAAAC00000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000055555557AAAAAAAB}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000005555555700000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000005555555655555557}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000200000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFAAAAAAAFAAAAAAAA}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC8000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC8000000055555558}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC2AAAAAAC80000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAABD5555558AAAAAAAA}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558AAAAAAAA00000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558AAAAAAA955555558}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555585555555580000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D555555800000001AAAAAAAA}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000000000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000000000000080000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFFC000000180000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF8000000280000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF8000000200000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF8000000180000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF4000000280000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF0000000380000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000008000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001400000008000000080000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000004000000180000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001400000000000000280000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000018000000000000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000017FFFFFFF80000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000014000000080000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000080000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000000000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000080000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000200000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000200000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000180000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000100000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000200000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000180000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000080000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000080000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000000000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000200000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000200000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000180000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000100000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000080000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000000000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000000000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000000000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000080000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000000000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000200000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000200000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000180000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000100000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000010000000080000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000000000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000200000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000000000000200000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000100000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE0000000200000003, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000100000002, 0x00000000000000000000000080000002}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE00000002FFFFFFFE, 0x00000000000000000000000080000002}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA00000000AAAAAAAB, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFC000000060000000, 0x000000000000000000000001E0000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000002, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFE, 0x00000000000000000000000380000002}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000005, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA00000011, 0x00000000000000007FFFFFEA80000011}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000001, 0x00000000000000000000000280000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000010000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000C000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000002, 0x00000000000000000000000080000002}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000280000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000001, 0x0000000000000000C000000100000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000FFFFFFFC80000003}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000000000017FFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000004, 0x0000000000000000BFFFFFFB80000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000007, 0x0000000000000000FFFFFFF080000007}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000005555555780000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C8, 0x00000000000000001C71C71D80000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E390, 0x00000000000000001C71C71B0E38E390}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000C000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFC0000000, 0x000000000000000040000001C0000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFA0000000, 0x0000000000000000D000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x00000000000000018000000100000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFF80000002}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000280000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF000000067FFFFFFD}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000480000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000280000003}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE0000000600000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFD000000097FFFFFFD}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000030000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000002FFFFFFFF80000004}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000020000000380000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x0000000000000001000000077FFFFFFC}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008FFFFFFFB80000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008FFFFFFF980000006}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007000000037FFFFFFA}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x00000000000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x00000000000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000000000008000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000280000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000FFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000300000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE000000047FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000080000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000200000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF800000037FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000080000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000100000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001000000027FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000080000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000200000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000037FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000280000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000180000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF8000000480000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF000000067FFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000080000002}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000280000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000080000001000000047FFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFE80000002}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000038000000080000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003000000027FFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000080000002}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000280000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002000000047FFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000380000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000280000002}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000018000000480000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000001000000067FFFFFFE}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000058000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000058000000080000003}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000050000000300000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000080000004800000057FFFFFFD}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFD80000003}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000078000000000000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007000000027FFFFFFD}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x000000000000000100000000D5555556}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000AAAAAAAC80000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000555555582AAAAAAA}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000005555555780000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x000000000000000055555556D5555556}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000000000000280000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFAAAAAAB02AAAAAA9}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC8000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC80000000D5555557}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC2AAAAAAD00000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAABD55555592AAAAAA9}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558AAAAAAAA80000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558AAAAAAA9D5555557}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555585555555600000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558000000022AAAAAA9}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000000000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000000000000100000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFFC000000200000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF80000002FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF8000000280000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF8000000200000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF4000000300000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF00000003FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000008000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001400000008000000100000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000004000000200000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000014000000000000002FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000018000000080000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000018000000000000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000014000000100000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000010000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000080000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000100000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000080000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000280000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000027FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000200000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000180000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000280000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF000000027FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000180000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000080000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000100000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000080000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000280000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000000000027FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000200000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000180000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000100000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000080000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000080000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000000000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001800000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000100000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000080000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000280000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001000000027FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000200000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000180000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000010000000100000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000080000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000010000000080000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000080000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000280000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000200000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000180000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF000000010000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000010000000180000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE0000000200000003, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000100000003, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000100000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE00000002FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA00000000AAAAAAAB, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFC000000060000001, 0x00000000000000000000000060000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000002, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFE, 0x00000000000000000000000400000001}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000005, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA00000011, 0x00000000000000007FFFFFEB00000010}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000001, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000010000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000C0000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000002, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000001, 0x0000000000000000C00000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000002, 0x000000000000000000000001FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000004, 0x0000000000000000BFFFFFFBFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000007, 0x0000000000000000FFFFFFF100000006}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA00000000, 0x000000000000000055555557FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C8, 0x00000000000000001C71C71DFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E390, 0x00000000000000001C71C71B8E38E38F}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000C0000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000400000023FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFA0000000, 0x0000000000000000D0000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x0000000000000001800000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x00000000000000010000000000000001}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF00000006FFFFFFFC}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF00000004FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000300000002}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE000000067FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFD00000009FFFFFFFC}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x000000000000000300000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x00000000000000030000000000000003}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x000000000000000200000003FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000100000007FFFFFFFB}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008FFFFFFFBFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008FFFFFFFA00000005}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000700000003FFFFFFF9}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE800000037FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE00000004FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000008000000080000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000100000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000000000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF80000003FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000200000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000000000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001800000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000100000002FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000100000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000003FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000200000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF80000004FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF00000006FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000200000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000100000001}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000180000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000004FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000380000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000002FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000100000001}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000280000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000004FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000003FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000300000001}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000180000004FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000100000006FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x000000008000000580000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000058000000100000002}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x0000000080000005000000037FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000480000005FFFFFFFC}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007800000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000700000002FFFFFFFC}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000010000000155555555}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000AAAAAAACFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000055555558AAAAAAA9}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x000000000000000055555557FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000005555555755555555}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000017FFFFFFFAAAAAAB0AAAAAAA8}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC8000000155555556}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC2AAAAAAD7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAABD5555559AAAAAAA8}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558AAAAAAAAFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558AAAAAAAA55555556}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558555555567FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D555555800000002AAAAAAA8}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000000000000180000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFFC00000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF800000037FFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF80000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF8000000280000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF400000037FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF000000047FFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000014000000080000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001400000008000000180000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000140000000400000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000140000000000000037FFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000018000000080000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001400000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001000000027FFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000100000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001000000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000100000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000100000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000080000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000080000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000100000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000002FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000200000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000002FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF000000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000100000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001000000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000100000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000100000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000080000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000080000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000100000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000000000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000000000002FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000000000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000200000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000200000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000200000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002000000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000100000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000200000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000200000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000000000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000180000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000180000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001800000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000100000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000100000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000100000002FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001000000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000010000000200000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000100000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001000000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000100000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x000000000000000080000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000002FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000200000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000100000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE0000000300000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000180000001, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE000000037FFFFFFC, 0x00000000000000000000000080000004}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA0000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFC0000000A0000000, 0x000000000000000000000000A0000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000003, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFF, 0x00000000000000000000000200000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000006, 0x00000000000000007FFFFFFD00000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA00000012, 0x00000000000000007FFFFFE800000012}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000010000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000001, 0x00000000000000004000000080000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000002, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000002, 0x00000000000000003FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000004, 0x00000000000000007FFFFFFA00000004}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000003, 0x00000000000000007FFFFFFD00000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000002, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000005, 0x00000000000000003FFFFFF880000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000008, 0x00000000000000007FFFFFED00000008}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA00000000, 0x0000000000000000D555555600000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C8, 0x00000000000000009C71C71C00000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E390, 0x00000000000000009C71C7198E38E390}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000014000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000C000000040000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFA0000000, 0x00000000000000015000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x00000000000000017FFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF80000004FFFFFFFD}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF8000000300000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF8000000100000003}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE8000000480000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFD80000007FFFFFFFD}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000038000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x00000000000000037FFFFFFE00000004}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000028000000200000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000180000005FFFFFFFC}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x00000000000000097FFFFFFA00000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x00000000000000097FFFFFF800000006}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x00000000000000087FFFFFFD00000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000780000001FFFFFFFA}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x00000000000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE80000002FFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000010000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000080000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000080000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF80000004FFFFFFFE}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000028000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000027FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000100000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000180000002FFFFFFFE}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFE00000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFD00000002}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000380000000FFFFFFFE}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000038000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000100000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000280000002FFFFFFFE}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000200000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000100000002}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000300000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000180000004FFFFFFFE}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000060000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x0000000080000005FFFFFFFF00000003}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000058000000180000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000500000003FFFFFFFD}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000087FFFFFFD00000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x00000000000000087FFFFFFC00000003}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000780000000FFFFFFFD}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000017FFFFFFF55555556}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000012AAAAAAB00000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000D5555556AAAAAAAA}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000D555555600000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000D555555555555556}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000000000002AAAAAACAAAAAAAA}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAD0000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAACFFFFFFFF55555557}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAACAAAAAAAB80000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC55555557AAAAAAA9}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555592AAAAAA900000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555592AAAAAA855555557}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558D555555480000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D555555880000000AAAAAAA9}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000008000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000004000000080000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000000000000100000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000000000000080000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFFC000000180000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF800000027FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000010000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x0000000140000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000140000000C000000080000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000140000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001BFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001800000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000100000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000100000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000080000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000028000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000100000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE0000000300000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000180000001, 0x00000000000000000000000080000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE000000037FFFFFFC, 0x00000000000000000000000080000005}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA0000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFC0000000A0000000, 0x000000000000000000000000A0000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000003, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFF, 0x00000000000000000000000200000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000006, 0x00000000000000007FFFFFFD00000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA00000012, 0x00000000000000007FFFFFE800000013}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000001, 0x00000000000000008000000100000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000010000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000001, 0x00000000000000004000000080000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000002, 0x00000000000000007FFFFFFF00000003}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000100000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000002, 0x00000000000000003FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000004, 0x00000000000000007FFFFFFA00000005}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000003, 0x00000000000000007FFFFFFD00000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000002, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000005, 0x00000000000000003FFFFFF880000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000008, 0x00000000000000007FFFFFED00000009}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA00000000, 0x0000000000000000D555555600000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C8, 0x00000000000000009C71C71C00000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E390, 0x00000000000000009C71C7198E38E391}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000014000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000C000000040000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFA0000000, 0x00000000000000015000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000000, 0x0000000000000001FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x00000000000000017FFFFFFE00000003}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000008000000100000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF80000004FFFFFFFE}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF8000000300000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF8000000100000004}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE8000000480000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFD80000007FFFFFFFE}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000038000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x00000000000000037FFFFFFE00000005}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000028000000200000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000180000005FFFFFFFD}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x00000000000000097FFFFFFA00000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x00000000000000097FFFFFF800000007}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x00000000000000087FFFFFFD00000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000780000001FFFFFFFB}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x00000000000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000000000010000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000008000000100000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000300000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000010000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000080000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000200000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000100000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000080000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000200000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000180000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF80000004FFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000028000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000027FFFFFFF00000003}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000100000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000180000002FFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFE00000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFD00000003}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000380000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000038000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFF00000003}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000100000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000280000002FFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000200000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000100000003}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000300000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000180000004FFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000060000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x0000000080000005FFFFFFFF00000004}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000058000000180000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000500000003FFFFFFFE}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000087FFFFFFD00000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x00000000000000087FFFFFFC00000004}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000780000000FFFFFFFE}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000017FFFFFFF55555557}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000012AAAAAAB00000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000D5555556AAAAAAAB}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000D555555600000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000D555555555555557}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000008000000100000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000000000002AAAAAACAAAAAAAB}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAD0000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAACFFFFFFFF55555558}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAACAAAAAAAB80000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC55555557AAAAAAAA}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555592AAAAAA900000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555592AAAAAA855555558}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558D555555480000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D555555880000000AAAAAAAA}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000008000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000007FFFFFFF80000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000004000000080000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001800000000000000180000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000000000000100000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000000000000080000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFFC000000180000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF8000000280000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000010000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x0000000140000000FFFFFFFF80000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000140000000C000000080000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001400000008000000180000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001FFFFFFFE80000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001BFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000100000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000100000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000080000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000100000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000100000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000080000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000000000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000028000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000028000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000100000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000100000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000080000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000000000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000008000000100000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000000000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE0000000300000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000180000002, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE000000037FFFFFFD, 0x00000000000000000000000000000003}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA0000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFC0000000A0000000, 0x00000000000000000000000120000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000003, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFF, 0x00000000000000000000000280000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000006, 0x00000000000000007FFFFFFD80000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA00000012, 0x00000000000000007FFFFFE880000012}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000001, 0x00000000000000008000000180000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000010000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000001, 0x00000000000000004000000100000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000002, 0x00000000000000007FFFFFFF80000002}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000180000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000002, 0x00000000000000003FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000004, 0x00000000000000007FFFFFFA80000004}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000003, 0x00000000000000007FFFFFFD80000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000800000007FFFFFFE}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000005, 0x00000000000000003FFFFFF900000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000008, 0x00000000000000007FFFFFED80000008}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA00000000, 0x0000000000000000D555555680000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C8, 0x00000000000000009C71C71C80000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E390, 0x00000000000000009C71C71A0E38E390}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000014000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000C0000000C0000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFA0000000, 0x00000000000000015000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x00000000000000017FFFFFFE80000002}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000008000000180000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF800000057FFFFFFD}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF8000000380000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF8000000180000003}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE8000000500000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFD800000087FFFFFFD}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000038000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x00000000000000037FFFFFFE80000004}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000028000000280000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x0000000000000001800000067FFFFFFC}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x00000000000000097FFFFFFA80000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x00000000000000097FFFFFF880000006}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x00000000000000087FFFFFFD80000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x0000000000000007800000027FFFFFFA}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x00000000000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000000000010000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000008000000180000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE800000037FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000010000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000100000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000000000027FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000000000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001800000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000100000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000027FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000180000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000200000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF800000057FFFFFFE}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000028000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000027FFFFFFF80000002}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000180000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000080000001800000037FFFFFFE}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFE80000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFD80000002}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003800000017FFFFFFE}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000038000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFF80000002}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000180000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002800000037FFFFFFE}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000280000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000180000002}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000020000000380000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000001800000057FFFFFFE}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000060000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x0000000080000005FFFFFFFF80000003}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000058000000200000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000080000005000000047FFFFFFD}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000087FFFFFFD80000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x00000000000000087FFFFFFC80000003}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007800000017FFFFFFD}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000017FFFFFFFD5555556}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000012AAAAAAB80000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000D55555572AAAAAAA}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000D555555680000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000D5555555D5555556}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000008000000180000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000000000002AAAAAAD2AAAAAAA}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAD0000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAACFFFFFFFFD5555557}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAACAAAAAAAC00000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC555555582AAAAAA9}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555592AAAAAA980000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555592AAAAAA8D5555557}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558D555555500000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558800000012AAAAAA9}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000008000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000008000000000000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000004000000100000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000000000000180000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000000000000100000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFFC000000200000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF80000002FFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000010000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001400000010000000000000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000140000000C000000100000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000014000000080000001FFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001C000000000000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000010000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001800000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000180000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000100000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000080000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001800000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000180000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000100000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000080000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000028000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002800000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000028000000000000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000000000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000180000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001800000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000100000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000080000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001800000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000018000000000000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000010000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000008000000180000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000080000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF000000018000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF000000018000000080000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE0000000300000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000180000002, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE000000037FFFFFFD, 0x00000000000000000000000080000002}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA0000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFC0000000A0000000, 0x0000000000000000000000019FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000003, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFF, 0x00000000000000000000000300000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000006, 0x00000000000000007FFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA00000012, 0x00000000000000007FFFFFE900000011}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000001, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000010000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000001, 0x0000000000000000400000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000002, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000002, 0x00000000000000003FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000004, 0x00000000000000007FFFFFFB00000003}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000003, 0x00000000000000007FFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000002, 0x000000000000000080000000FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000005, 0x00000000000000003FFFFFF97FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000008, 0x00000000000000007FFFFFEE00000007}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA00000000, 0x0000000000000000D5555556FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C8, 0x00000000000000009C71C71CFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E390, 0x00000000000000009C71C71A8E38E38F}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFC0000000, 0x000000000000000140000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000C00000013FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFA0000000, 0x000000000000000150000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF80000005FFFFFFFC}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF80000003FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF8000000200000002}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE800000057FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFD80000008FFFFFFFC}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x000000000000000380000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x00000000000000037FFFFFFF00000003}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x000000000000000280000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000180000006FFFFFFFB}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x00000000000000097FFFFFFAFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x00000000000000097FFFFFF900000005}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x00000000000000087FFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000780000002FFFFFFF9}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE80000003FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000008000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000010000000000000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000008000000000000002FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFF00000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000002000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000180000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000000000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001000000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000002FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF80000005FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000280000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000028000000000000001}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000200000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000180000003FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFE00000001}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000380000001FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000380000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000038000000000000001}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000280000003FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000280000002FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000200000001}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000003FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000180000005FFFFFFFD}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x000000008000000600000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000060000000000000002}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x0000000080000005800000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000500000004FFFFFFFC}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000087FFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x00000000000000087FFFFFFD00000002}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000780000001FFFFFFFC}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000018000000055555555}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000012AAAAAABFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000D5555557AAAAAAA9}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000D5555556FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000D555555655555555}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000000000002AAAAAADAAAAAAA9}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAD00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAD0000000055555556}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAACAAAAAAAC7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAC55555558AAAAAAA8}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555592AAAAAA9FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555592AAAAAA955555556}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558D55555557FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D555555880000001AAAAAAA8}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000008000000080000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000400000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000000000027FFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000000000000180000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFFC00000027FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000017FFFFFFF800000037FFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x000000014000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001400000010000000080000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000140000000C00000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000140000000800000027FFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001C00000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001800000017FFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000180000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001800000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000018000000000000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000100000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000080000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000080000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000100000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000080000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000180000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001800000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000018000000000000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000100000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000080000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000080000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000100000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000280000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000280000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002800000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000028000000000000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFF00000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000200000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000200000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000000000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000180000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000180000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001800000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000018000000100000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000180000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001800000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000018000000000000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000080000001FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF0000000180000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE00000003FFFFFFFE, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000200000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE00000003FFFFFFFB, 0x00000000000000000000000000000005}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA0000000155555554, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFC0000000DFFFFFFF, 0x000000000000000000000001DFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000003, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFE00000000, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000007, 0x00000000000000007FFFFFFB80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA00000013, 0x00000000000000007FFFFFE600000013}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000002, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000001, 0x0000000000000000BFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000002, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000002, 0x0000000000000000BFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000004, 0x0000000000000000FFFFFFF900000004}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000FFFFFFFC00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFEFFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000005, 0x0000000000000000BFFFFFF780000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000008, 0x0000000000000000FFFFFFEC00000008}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000015555555500000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C8, 0x00000000000000011C71C71B00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E390, 0x00000000000000011C71C7188E38E390}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000001BFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000013FFFFFFF40000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFA0000000, 0x0000000000000001CFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x0000000000000001FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000002FFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x00000000800000000000000000000003}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000380000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE00000006FFFFFFFD}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000003FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000003FFFFFFFD00000004}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000030000000100000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000200000004FFFFFFFC}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000009FFFFFFF900000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x0000000000000009FFFFFFF700000006}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008FFFFFFFC00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000800000000FFFFFFFA}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000017FFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000002FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000002FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000028000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000200000001FFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000004FFFFFFFD00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000004FFFFFFFC00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000038000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000001FFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000100000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000000000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000200000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000003FFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000067FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000067FFFFFFE00000003}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000060000000080000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000580000002FFFFFFFD}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000008FFFFFFFC00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000000000008FFFFFFFB00000003}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000087FFFFFFD80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFFFFFFFFFD}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x0000000000000001FFFFFFFE55555556}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000001AAAAAAAA00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000155555555AAAAAAAA}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000015555555500000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000015555555455555556}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000AAAAAAABAAAAAAAA}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAD7FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAD7FFFFFFE55555557}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAD2AAAAAAA80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAACD5555556AAAAAAA9}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555559AAAAAAA800000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555559AAAAAAA755555557}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555595555555380000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558FFFFFFFFAAAAAAA9}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000BFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000008000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000004000000080000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001400000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000013FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000140000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000027FFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000027FFFFFFD80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000023FFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFD80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFD80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFD80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFD80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFD80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE00000003FFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000200000001, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE00000003FFFFFFFB, 0x00000000000000000000000000000006}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA0000000155555554, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFC0000000DFFFFFFF, 0x000000000000000000000001E0000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000003, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFE00000000, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000007, 0x00000000000000007FFFFFFB80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA00000013, 0x00000000000000007FFFFFE600000014}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000002, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000001, 0x0000000000000000BFFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000002, 0x0000000000000000FFFFFFFE00000003}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000002, 0x0000000000000000BFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000004, 0x0000000000000000FFFFFFF900000005}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000FFFFFFFC00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000005, 0x0000000000000000BFFFFFF780000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000008, 0x0000000000000000FFFFFFEC00000009}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000015555555500000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C8, 0x00000000000000011C71C71B00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E390, 0x00000000000000011C71C7188E38E391}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000001BFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000013FFFFFFF40000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFA0000000, 0x0000000000000001CFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x00000000000000007FFFFFFE80000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x0000000000000001FFFFFFFD00000003}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000010000000000000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000002FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x00000000800000000000000000000004}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000380000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE00000006FFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000003FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000003FFFFFFFD00000005}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000030000000100000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000200000004FFFFFFFD}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000009FFFFFFF900000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x0000000000000009FFFFFFF700000007}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008FFFFFFFC00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000800000000FFFFFFFB}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000010000000000000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000017FFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000100000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000002FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000002FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000020000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000100000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000200000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFE00000003}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000028000000000000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000200000001FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000004FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000004FFFFFFFC00000003}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFE00000003}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000038000000000000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000001FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000100000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000000000003}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000200000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000003FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000067FFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000067FFFFFFE00000004}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000060000000080000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000580000002FFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000008FFFFFFFC00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000000000008FFFFFFFB00000004}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000087FFFFFFD80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000000000007FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x0000000000000001FFFFFFFE55555557}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000001AAAAAAAA00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000155555555AAAAAAAB}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000015555555500000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000015555555455555557}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000010000000000000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000AAAAAAABAAAAAAAB}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAD7FFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAD7FFFFFFE55555558}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAD2AAAAAAA80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAACD5555556AAAAAAAA}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555559AAAAAAA800000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555559AAAAAAA755555558}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555595555555380000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555558FFFFFFFFAAAAAAAA}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000FFFFFFFE80000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000BFFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001800000008000000080000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000008000000000000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000007FFFFFFF80000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000004000000080000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001800000000000000180000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001400000017FFFFFFE80000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000013FFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001400000010000000080000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000027FFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000027FFFFFFD80000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000023FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000000000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000000000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE00000003FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000200000001, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE00000003FFFFFFFB, 0x00000000000000000000000080000005}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA0000000155555555, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFC0000000E0000000, 0x00000000000000000000000060000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000003, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFE00000000, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000007, 0x00000000000000007FFFFFFC00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA00000013, 0x00000000000000007FFFFFE680000013}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000002, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000010000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000001, 0x0000000000000000C000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000002, 0x0000000000000000FFFFFFFE80000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000002, 0x0000000000000000BFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000004, 0x0000000000000000FFFFFFF980000004}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000FFFFFFFC80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFF7FFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000005, 0x0000000000000000BFFFFFF800000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000008, 0x0000000000000000FFFFFFEC80000008}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA00000000, 0x00000000000000015555555580000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C8, 0x00000000000000011C71C71B80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E390, 0x00000000000000011C71C7190E38E390}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000001BFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000013FFFFFFFC0000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFA0000000, 0x0000000000000001CFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x0000000000000001FFFFFFFD80000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000010000000080000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000000000037FFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFD, 0x00000000800000000000000080000003}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF0000000400000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE000000077FFFFFFD}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000003FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000003FFFFFFFD80000004}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000030000000180000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x0000000000000002000000057FFFFFFC}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000009FFFFFFF980000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x0000000000000009FFFFFFF780000006}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008FFFFFFFC80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008000000017FFFFFFA}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000010000000080000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000010000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000002FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000002FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000002000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000018000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001000000017FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000080000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFE80000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000028000000080000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002000000027FFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000004FFFFFFFD80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000004FFFFFFFC80000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000004000000007FFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFE80000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000038000000080000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003000000027FFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000180000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000080000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000280000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002000000047FFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000067FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000067FFFFFFE80000003}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000060000000100000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000080000005800000037FFFFFFD}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000008FFFFFFFC80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000000000008FFFFFFFB80000003}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000087FFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000000000008000000007FFFFFFD}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x0000000000000001FFFFFFFED5555556}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000001AAAAAAAA80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000000000001555555562AAAAAAA}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000015555555580000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x000000000000000155555554D5555556}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000000000010000000080000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000AAAAAAAC2AAAAAAA}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAD7FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAD7FFFFFFED5555557}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAD2AAAAAAB00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAACD55555572AAAAAA9}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555559AAAAAAA880000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555559AAAAAAA7D5555557}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D55555595555555400000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555559000000002AAAAAA9}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000C000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000008000000080000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000008000000000000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000004000000100000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001400000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000014000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000014000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000027FFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000027FFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000023FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000080000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000080000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000080000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000001FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000010000000080000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000001FFFFFFFE00000003FFFFFFFF, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000001000000000000000200000002, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE00000003FFFFFFFC, 0x00000000000000000000000000000003}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA0000000155555555, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFC0000000E0000000, 0x000000000000000000000000DFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFE00000003, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFE00000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFC00000007, 0x00000000000000007FFFFFFC7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFA00000013, 0x00000000000000007FFFFFE700000012}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000002, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000010000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000001, 0x0000000000000000C00000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000002, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFE80000002, 0x0000000000000000BFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000004, 0x0000000000000000FFFFFFFA00000003}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000FFFFFFFCFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFFFFFFFFFD}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFD80000005, 0x0000000000000000BFFFFFF87FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000008, 0x0000000000000000FFFFFFED00000007}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA00000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA00000000, 0x000000000000000155555555FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAA9C71C71C8, 0x00000000000000011C71C71BFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA98E38E390, 0x00000000000000011C71C7198E38E38F}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000001BFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000001400000003FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFA0000000, 0x0000000000000001CFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFE, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x0000000000000001FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000003FFFFFFFD}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF000000047FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE00000007FFFFFFFC}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000003FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000003FFFFFFFE00000003}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFC, 0x000000000000000300000001FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000200000005FFFFFFFB}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000009FFFFFFF9FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFA, 0x0000000000000009FFFFFFF800000005}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFA, 0x0000000000000008FFFFFFFCFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFA, 0x000000000000000800000001FFFFFFF9}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x0000000000000001FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000017FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000008000000080000001FFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000002FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000002FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000027FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000200000000FFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001800000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000100000001FFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000002FFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000280000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000200000002FFFFFFFD}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000004FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000004FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000400000000FFFFFFFD}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000380000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000002FFFFFFFD}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000001FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000100000001}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000280000002FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000004FFFFFFFD}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000067FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000067FFFFFFF00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFD, 0x0000000080000006000000017FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000580000003FFFFFFFC}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000000000008FFFFFFFCFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000000000008FFFFFFFC00000002}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000000000087FFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000000000000800000000FFFFFFFC}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x0000000000000001FFFFFFFF55555555}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000000000001AAAAAAAAFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000000000000155555556AAAAAAA9}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x000000000000000155555555FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000000000015555555555555555}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000000000000AAAAAAACAAAAAAA9}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAD7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAD7FFFFFFF55555556}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAAD2AAAAAAB7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000012AAAAAACD5555557AAAAAAA8}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555559AAAAAAA8FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555559AAAAAAA855555556}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000000D5555559555555547FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x00000000D555555900000000AAAAAAA8}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000C00000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000800000017FFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000008000000080000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000400000017FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000000000027FFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001400000017FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001400000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x0000000140000001400000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000140000001000000017FFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000027FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001000000027FFFFFFE80000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001000000023FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000100000002000000007FFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFEFFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000100000000FFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000010000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFEFFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFEFFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000100000000FFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFEFFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000027FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000200000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE0000000200000000FFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE00000002000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE000000020000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000001FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000100000000FFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE800000017FFFFFFE, 0x00000000000000000000000080000002}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA5555555555555555, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFC, 0x00000000000000000000000100000004}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFD00000002, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFB0000000D, 0x00000000000000007FFFFFEE0000000D}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000080000000, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000001000000007FFFFFFF, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE80000002, 0x00000000000000007FFFFFFC80000002}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE80000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE80000000, 0x00000000000000008000000180000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFD00000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD80000005, 0x0000000000000000FFFFFFF380000005}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA55555555, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA55555554, 0x000000000000000155555555AAAAAAAC}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA1C71C71C, 0x0000000000000000F1C71C7200000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA9E38E38E4, 0x0000000000000000C71C71C5E38E38E4}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000008000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFDFFFFFFF, 0x0000000000000001EFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000007FFFFFFFC0000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFFFFFFFFFE00000002}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE00000003FFFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE0000000000000002}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFD0000000300000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFC00000005FFFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000018000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000017FFFFFFE00000003}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000008000000180000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000008000000000000005FFFFFFFC}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFB, 0x0000000000000006FFFFFFFB00000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFB, 0x0000000000000006FFFFFFF900000005}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFB, 0x0000000000000005FFFFFFFD80000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x000000000000000500000001FFFFFFFB}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000010000000000000002FFFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000027FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000200000000FFFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000001FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000100000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000002FFFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000200000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000100000002}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000008000000300000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000000000004FFFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000100000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000002FFFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000080000006FFFFFFFD00000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000080000006FFFFFFFC00000003}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000067FFFFFFE80000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000600000000FFFFFFFD}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFFFFFFFFFF55555556}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFFAAAAAAAB00000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF55555556AAAAAAAA}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF5555555600000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF5555555555555556}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFEAAAAAAACAAAAAAAA}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB0000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAAFFFFFFFF55555556}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAAAAAAAAAB00000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAA55555556AAAAAAAA}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x0000000155555557AAAAAAA900000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x0000000155555557AAAAAAA855555557}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000001555555575555555480000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000015555555700000000AAAAAAA9}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFEC000000080000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE4000000180000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE000000027FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF4000000080000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000003FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE80000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE00000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFE80000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFE00000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE7FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE7FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000080000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE80000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE00000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE80000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE00000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000080000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000001000000008000000080000000, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE800000017FFFFFFE, 0x00000000000000000000000080000003}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA5555555555555555, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFC, 0x00000000000000000000000100000005}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFD00000002, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFB0000000D, 0x00000000000000007FFFFFEE0000000E}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000080000000, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000001000000007FFFFFFF, 0x00000000000000007FFFFFFE80000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x00000000000000000000000080000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE80000002, 0x00000000000000007FFFFFFC80000003}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE80000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE80000000, 0x00000000000000008000000180000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD80000005, 0x0000000000000000FFFFFFF380000006}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA55555555, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA55555554, 0x000000000000000155555555AAAAAAAD}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA1C71C71C, 0x0000000000000000F1C71C7200000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA9E38E38E4, 0x0000000000000000C71C71C5E38E38E5}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000008000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000017FFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFDFFFFFFF, 0x0000000000000001EFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000007FFFFFFFC0000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFFFFFFFFFE00000003}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE00000003FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE0000000200000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE0000000000000003}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFD0000000300000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFC00000005FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000018000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000017FFFFFFE00000004}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000008000000180000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000008000000000000005FFFFFFFD}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFB, 0x0000000000000006FFFFFFFB00000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFB, 0x0000000000000006FFFFFFF900000006}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFB, 0x0000000000000005FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x000000000000000500000001FFFFFFFC}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x00000000800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE0000000100000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF7FFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000200000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000000000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE8000000180000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE0000000300000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000010000000000000002FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFD00000003}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000027FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000200000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000001FFFFFFFF00000003}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000100000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000002FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000200000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000100000003}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000008000000300000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000000000004FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFF00000003}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000100000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000002FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000080000006FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000080000006FFFFFFFC00000004}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000067FFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000600000000FFFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFFFFFFFFFF55555557}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFFAAAAAAAB00000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF55555556AAAAAAAB}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF5555555600000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF5555555555555557}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFEAAAAAAACAAAAAAAB}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB0000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAAFFFFFFFF55555557}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAAAAAAAAAB00000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAA55555556AAAAAAAB}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x0000000155555557AAAAAAA900000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x0000000155555557AAAAAAA855555558}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000001555555575555555480000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000015555555700000000AAAAAAAA}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFEFFFFFFFF80000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFEC000000080000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE8000000080000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE4000000180000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE0000000280000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF7FFFFFFF80000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF4000000080000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000007FFFFFFE80000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000003FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE00000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFE00000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE7FFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000100000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000080000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000000000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE00000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000080000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000000000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE00000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000080000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000000000002}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000008000000080000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE800000017FFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA5555555555555555, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFC, 0x00000000000000000000000180000004}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFD00000002, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFB0000000D, 0x00000000000000007FFFFFEE8000000D}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000080000000, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000001000000007FFFFFFF, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE80000002, 0x00000000000000007FFFFFFD00000002}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE80000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE80000000, 0x00000000000000008000000200000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFD80000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD80000005, 0x0000000000000000FFFFFFF400000005}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA55555555, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA55555554, 0x0000000000000001555555562AAAAAAC}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA1C71C71C, 0x0000000000000000F1C71C7280000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA9E38E38E4, 0x0000000000000000C71C71C6638E38E4}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000008000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000017FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFDFFFFFFF, 0x0000000000000001F000000000000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000008000000040000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFFFFFFFFFE80000002}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE000000047FFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE0000000280000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE0000000080000002}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFD0000000380000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFC000000067FFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000018000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000017FFFFFFE80000003}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000008000000200000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x0000000080000000000000067FFFFFFC}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFB, 0x0000000000000006FFFFFFFB80000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFB, 0x0000000000000006FFFFFFF980000005}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFB, 0x0000000000000005FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x0000000000000005000000027FFFFFFB}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x00000000800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE0000000180000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE800000027FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000000000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF000000027FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE8000000200000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE000000037FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000100000000000000037FFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFD80000002}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000027FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002000000017FFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000001FFFFFFFF80000002}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000180000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000080000001000000037FFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000280000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000180000002}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000008000000380000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000080000000000000057FFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002FFFFFFFF80000002}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000180000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002000000037FFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000080000006FFFFFFFD80000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000080000006FFFFFFFC80000003}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000067FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000080000006000000017FFFFFFD}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFFFFFFFFFFD5555556}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFFAAAAAAAB80000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF555555572AAAAAAA}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF5555555680000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF55555555D5555556}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFEAAAAAAAD2AAAAAAA}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB0000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAAFFFFFFFFD5555556}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAAAAAAAAAB80000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAA555555572AAAAAAA}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x0000000155555557AAAAAAA980000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x0000000155555557AAAAAAA8D5555557}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000001555555575555555500000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x0000000155555557000000012AAAAAA9}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFEC000000100000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE4000000200000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF4000000100000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000004000000000000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000018000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE800000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000180000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE000000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000080000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000000000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000080000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000180000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE000000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000080000001}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000001000000008000000080000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE800000017FFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA5555555555555555, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000800000000000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFC, 0x00000000000000000000000200000003}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFD00000002, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFB0000000D, 0x00000000000000007FFFFFEF0000000C}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000080000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000001000000007FFFFFFF, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE80000002, 0x00000000000000007FFFFFFD80000001}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE80000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE80000000, 0x0000000000000000800000027FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD80000005, 0x0000000000000000FFFFFFF480000004}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA55555555, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA55555554, 0x000000000000000155555556AAAAAAAB}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA1C71C71C, 0x0000000000000000F1C71C72FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA9E38E38E4, 0x0000000000000000C71C71C6E38E38E3}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000008000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000018000000000000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFDFFFFFFF, 0x0000000000000001F00000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFFC0000000, 0x000000000000000080000000BFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE00000004FFFFFFFD}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE0000000100000001}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFD00000003FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFC00000006FFFFFFFD}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFD, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000017FFFFFFF00000002}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x0000000000000000800000027FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000008000000000000006FFFFFFFB}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFB, 0x0000000000000006FFFFFFFBFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFB, 0x0000000000000006FFFFFFFA00000004}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFB, 0x0000000000000005FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x000000000000000500000002FFFFFFFA}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE80000002FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000008000000000000001FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF00000002FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE800000027FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE00000003FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000010000000000000003FFFFFFFD}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000027FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000200000001FFFFFFFD}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000200000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000000000001}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000180000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000003FFFFFFFD}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000002FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000200000001}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000080000003FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000000000005FFFFFFFD}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000000000001}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000280000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000003FFFFFFFD}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000080000006FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000080000006FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000067FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000600000001FFFFFFFC}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000800000000000000055555555}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFFAAAAAAABFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF55555557AAAAAAA9}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF55555556FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF5555555655555555}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFEAAAAAAADAAAAAAA9}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB0000000055555555}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAAAAAAAAABFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAA55555557AAAAAAA9}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x0000000155555557AAAAAAA9FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x0000000155555557AAAAAAA955555556}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x0000000155555557555555557FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000015555555700000001AAAAAAA8}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFEC00000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE800000027FFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE400000027FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE000000037FFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF400000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF000000027FFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000400000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000000000017FFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF8000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF80000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF00000001FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF00000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE80000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE800000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE00000001FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE000000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000001FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000100000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000080000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000000000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000000000001FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000100000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000001FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000001FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE000000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFF0000000000000002, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000008000000080000001, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE800000017FFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA5555555555555556, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x000000000000000000000001FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFC, 0x00000000000000000000000200000004}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFD00000002, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFB0000000D, 0x00000000000000007FFFFFEF0000000D}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000080000000, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000001000000007FFFFFFF, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000010000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000001, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x00000000000000000000000180000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE80000002, 0x00000000000000007FFFFFFD80000002}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE80000001, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE80000000, 0x00000000000000008000000280000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD80000005, 0x0000000000000000FFFFFFF480000005}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA55555555, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA55555554, 0x000000000000000155555556AAAAAAAC}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA1C71C71C, 0x0000000000000000F1C71C7300000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA9E38E38E4, 0x0000000000000000C71C71C6E38E38E4}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000008000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000018000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFDFFFFFFF, 0x0000000000000001F000000080000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFFC0000000, 0x000000000000000080000000C0000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE00000004FFFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE0000000300000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE0000000100000002}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFD0000000400000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFC00000006FFFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000018000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000017FFFFFFF00000003}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000008000000280000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000008000000000000006FFFFFFFC}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFB, 0x0000000000000006FFFFFFFC00000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFB, 0x0000000000000006FFFFFFFA00000005}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFB, 0x0000000000000005FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x000000000000000500000002FFFFFFFB}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x00000000800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE80000002FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000010000000000000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000080000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE8000000280000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE00000003FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000010000000000000003FFFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000028000000000000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000200000001FFFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000000000002}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000200000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000003FFFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000300000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000200000002}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000008000000400000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000000000005FFFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000000000002}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000200000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000003FFFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000080000006FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000080000006FFFFFFFD00000003}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000067FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000600000001FFFFFFFD}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000800000000000000055555556}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFFAAAAAAAC00000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF55555557AAAAAAAA}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF5555555700000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF5555555655555556}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFEAAAAAAADAAAAAAAA}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB0000000055555556}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAAAAAAAAAC00000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAA55555557AAAAAAAA}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x0000000155555557AAAAAAAA00000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x0000000155555557AAAAAAA955555557}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000001555555575555555580000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000015555555700000001AAAAAAA9}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFEC000000180000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE800000027FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE8000000200000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE8000000180000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE4000000280000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE000000037FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF4000000180000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF000000027FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000008000000000000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000004000000080000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000180000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000080000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000080000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000200000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000180000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000080000000, 0x00000001FFFFFFFF0000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000001000000008000000080000001, 0x00000000000000000000000080000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE800000017FFFFFFF, 0x00000000000000000000000080000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA5555555555555556, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x000000000000000000000001FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFC, 0x00000000000000000000000200000005}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFD00000002, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFB0000000D, 0x00000000000000007FFFFFEF0000000E}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000080000000, 0x00000000000000008000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000001000000007FFFFFFF, 0x00000000000000007FFFFFFF80000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000010000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000001, 0x00000000000000000000000080000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x00000000000000000000000180000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE80000002, 0x00000000000000007FFFFFFD80000003}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE80000001, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE80000000, 0x00000000000000008000000280000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD80000005, 0x0000000000000000FFFFFFF480000006}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA55555555, 0x00000000000000008000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA55555554, 0x000000000000000155555556AAAAAAAD}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA1C71C71C, 0x0000000000000000F1C71C7300000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA9E38E38E4, 0x0000000000000000C71C71C6E38E38E5}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000008000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000018000000000000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFDFFFFFFF, 0x0000000000000001F000000080000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFFC0000000, 0x000000000000000080000000C0000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFFFFFFFFFF00000003}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFF0000000200000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE00000004FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE0000000300000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE0000000100000003}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFD0000000400000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFC00000006FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000018000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000017FFFFFFF00000004}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000008000000280000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000008000000000000006FFFFFFFD}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFB, 0x0000000000000006FFFFFFFC00000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFB, 0x0000000000000006FFFFFFFA00000006}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFB, 0x0000000000000005FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x000000000000000500000002FFFFFFFC}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x00000000800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x00000000800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000200000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE0000000200000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000300000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000010000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000080000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000200000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000000000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000180000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000300000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000200000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000100000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE8000000280000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE0000000400000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000180000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000010000000000000003FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFE00000003}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000028000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000200000001FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000000000003}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000200000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000003FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000300000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000200000003}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000008000000400000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000000000005FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000000000003}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000200000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000003FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000080000006FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000080000006FFFFFFFD00000004}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000067FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000600000001FFFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000800000000000000055555557}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFFAAAAAAAC00000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF55555557AAAAAAAB}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF5555555700000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF5555555655555557}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF0000000200000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFEAAAAAAADAAAAAAAB}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB0000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB0000000055555557}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAAAAAAAAAC00000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAA55555557AAAAAAAB}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x0000000155555557AAAAAAAA00000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x0000000155555557AAAAAAA955555558}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000001555555575555555580000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000015555555700000001AAAAAAAA}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFEC000000180000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE8000000280000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE8000000200000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE8000000180000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE4000000280000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE0000000380000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF8000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF8000000080000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF4000000180000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF0000000280000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000008000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000007FFFFFFF80000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000004000000080000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000080000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000000000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000000000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000200000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000180000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000100000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000000000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000200000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000180000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000100000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000200000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000180000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000080000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000080000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000000000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000200000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000200000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000180000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000100000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000800000000000000080000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000000000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000200000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000180000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000180000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFF0000000000000003, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000008000000080000002, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE8000000180000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA5555555555555556, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x000000000000000000000001FFFFFFFF, 0x00000000800000000000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFC, 0x00000000000000000000000280000004}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFD00000003, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFB0000000D, 0x00000000000000007FFFFFEF8000000D}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000080000000, 0x00000000000000008000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000001000000007FFFFFFF, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000010000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000001, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x00000000000000000000000200000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE80000002, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE80000001, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE80000000, 0x00000000000000008000000300000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD80000005, 0x0000000000000000FFFFFFF500000005}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA55555555, 0x00000000000000008000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA55555554, 0x0000000000000001555555572AAAAAAC}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA1C71C71C, 0x0000000000000000F1C71C7380000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA9E38E38E4, 0x0000000000000000C71C71C7638E38E4}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000008000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000018000000080000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFDFFFFFFF, 0x0000000000000001F000000100000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000008000000140000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFFFFFFFFFF80000002}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFF0000000280000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE000000057FFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE0000000380000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE0000000180000002}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFD0000000480000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFC000000077FFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000018000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000017FFFFFFF80000003}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000008000000300000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x0000000080000000000000077FFFFFFC}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFB, 0x0000000000000006FFFFFFFC80000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFB, 0x0000000000000006FFFFFFFA80000005}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFB, 0x0000000000000005FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x0000000000000005000000037FFFFFFB}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x00000000800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x00000000800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000280000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE0000000280000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE800000037FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000010000000080000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000100000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000000000027FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000080000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000200000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF000000037FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000280000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000180000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE8000000300000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE000000047FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000200000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000100000000000000047FFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFE80000002}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000028000000080000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002000000027FFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000080000002}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000280000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000080000001000000047FFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000380000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000280000002}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000008000000480000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000080000000000000067FFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000080000002}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000028000000280000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002000000047FFFFFFE}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000080000006FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000080000006FFFFFFFD80000003}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000068000000000000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000080000006000000027FFFFFFD}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x000000008000000000000000D5555556}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFFAAAAAAAC80000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF555555582AAAAAAA}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF5555555780000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF55555556D5555556}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF0000000280000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFEAAAAAAAE2AAAAAAA}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB0000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB00000000D5555556}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAAAAAAAAAC80000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAA555555582AAAAAAA}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x0000000155555557AAAAAAAA80000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x0000000155555557AAAAAAA9D5555557}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000001555555575555555600000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x0000000155555557000000022AAAAAA9}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFEC000000200000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE80000002FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE8000000280000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE8000000200000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE4000000300000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE00000003FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF8000000100000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF4000000200000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000008000000080000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000008000000000000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000004000000100000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000018000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000080000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000280000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF000000027FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000180000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000280000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE000000027FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000180000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000280000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF000000027FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000180000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001000000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000100000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000080000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000080000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000100000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000080000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000280000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000000000027FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000200000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000180000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000800000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000080000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000800000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000280000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000027FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000180000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000280000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE000000027FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000180000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000180000000}, + [_]u128{0xFFFFFFFF800000000000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000000000000180000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000001FFFFFFFF0000000000000003, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000001000000008000000080000002, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE8000000180000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA5555555555555556, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000800000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFC, 0x00000000000000000000000300000003}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFD00000003, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFB0000000D, 0x00000000000000007FFFFFF00000000C}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000080000000, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000001000000007FFFFFFF, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000010000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000001, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x00000000000000000000000280000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE80000002, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE80000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE80000000, 0x0000000000000000800000037FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE00000002, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD80000005, 0x0000000000000000FFFFFFF580000004}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA55555555, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA55555554, 0x000000000000000155555557AAAAAAAB}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA1C71C71C, 0x0000000000000000F1C71C73FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA9E38E38E4, 0x0000000000000000C71C71C7E38E38E3}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000008000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000018000000100000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFDFFFFFFF, 0x0000000000000001F00000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFFC0000000, 0x000000000000000080000001BFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFF00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE00000005FFFFFFFD}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE00000003FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE0000000200000001}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFD00000004FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFC00000007FFFFFFFD}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFD, 0x000000000000000180000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000018000000000000002}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x0000000000000000800000037FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000008000000000000007FFFFFFFB}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFB, 0x0000000000000006FFFFFFFCFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFB, 0x0000000000000006FFFFFFFB00000004}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFB, 0x0000000000000005FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x000000000000000500000003FFFFFFFA}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF000000027FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE80000003FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x000000008000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000010000000000000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000008000000000000002FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000100000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF800000027FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF00000003FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE800000037FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE00000004FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000010000000000000004FFFFFFFD}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000280000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000200000002FFFFFFFD}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000200000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000100000001}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000180000002FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000004FFFFFFFD}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000003FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000300000001}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000080000004FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000000000006FFFFFFFD}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000100000001}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000280000002FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000200000004FFFFFFFD}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000080000006FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000080000006FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x0000000080000006800000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000600000002FFFFFFFC}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000800000000000000155555555}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFFAAAAAAACFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF55555558AAAAAAA9}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF55555557FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF5555555755555555}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFEAAAAAAAEAAAAAAA9}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB0000000155555555}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAAAAAAAAACFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAA55555558AAAAAAA9}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x0000000155555557AAAAAAAAFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x0000000155555557AAAAAAAA55555556}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x0000000155555557555555567FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000015555555700000002AAAAAAA8}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFEC00000027FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE800000037FFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE80000002FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE8000000280000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE400000037FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE000000047FFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF400000027FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF000000037FFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000008000000080000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000400000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000000000027FFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF8000000000000001FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000100000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF8000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF80000001FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF00000002FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF000000027FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF00000001FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF00000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE80000001FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE00000002FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE000000027FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000001FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000001FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000002FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF000000027FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000100000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000100000001FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001000000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000100000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000100000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000080000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000080000001FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000100000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000000000002FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000000000002FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000000000027FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000000000000200000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x000000008000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x000000008000000000000001FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000100000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000001FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000002FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000027FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000001FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000001FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000002FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE000000027FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000000000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000008000000100000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE80000001FFFFFFFE, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA55555555AAAAAAAA, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000800000000000000040000000, 0x00000000000000000000000040000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFD, 0x00000000000000000000000100000003}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFD00000003, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFB0000000E, 0x00000000000000007FFFFFED0000000E}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000080000001, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000001000000007FFFFFFF, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000010000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x00000000000000008000000080000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE80000002, 0x0000000000000000FFFFFFFC80000002}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE80000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE80000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE00000003, 0x00000000000000007FFFFFFB80000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD80000006, 0x00000000000000007FFFFFF180000006}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA55555555, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA55555555, 0x000000000000000055555555AAAAAAAB}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA1C71C71C, 0x000000000000000171C71C7200000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA9E38E38E4, 0x0000000000000001471C71C5E38E38E4}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000008000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000008000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFE0000000, 0x00000000000000007000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000FFFFFFFFC0000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE80000003FFFFFFFE}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE8000000200000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE8000000000000002}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFD8000000300000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFC80000005FFFFFFFE}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000020000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x0000000000000001FFFFFFFE00000003}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000010000000180000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000000000000000000004FFFFFFFD}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFB, 0x00000000000000077FFFFFFB00000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFB, 0x00000000000000077FFFFFF900000005}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFB, 0x00000000000000067FFFFFFD80000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x000000000000000580000001FFFFFFFB}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x00000000800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000017FFFFFFE00000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000080000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE80000002FFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000037FFFFFFE00000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000037FFFFFFD00000002}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000280000000FFFFFFFE}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000028000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000027FFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000100000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000180000002FFFFFFFE}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000200000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000100000002}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000300000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000080000004FFFFFFFE}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000038000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000100000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000280000002FFFFFFFE}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000077FFFFFFD00000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000077FFFFFFC00000003}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x0000000080000006FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000680000000FFFFFFFD}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000800000007FFFFFFF55555556}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000800000002AAAAAAB00000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFFD5555556AAAAAAAA}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFFD555555600000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFFD555555555555556}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF2AAAAAACAAAAAAAA}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB8000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB7FFFFFFF55555556}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB2AAAAAAB00000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAAD5555556AAAAAAAA}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000001555555582AAAAAA900000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000001555555582AAAAAA855555557}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x0000000155555557D555555480000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000015555555780000000AAAAAAA9}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x00000000000000004000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFEC000000180000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE800000027FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001C00000000000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFFC000000080000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000BFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFE80000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFE00000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000018000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFE80000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFE00000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000100000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE00000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000001000000008000000100000001, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE80000001FFFFFFFE, 0x00000000000000000000000000000003}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA55555555AAAAAAAA, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000800000000000000040000000, 0x00000000000000000000000040000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFD, 0x00000000000000000000000100000004}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFD00000003, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFB0000000E, 0x00000000000000007FFFFFED0000000F}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000080000001, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000001000000007FFFFFFF, 0x0000000000000000FFFFFFFE80000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000010000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000001, 0x00000000000000007FFFFFFF80000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x00000000000000008000000080000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE80000002, 0x0000000000000000FFFFFFFC80000003}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE80000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE80000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE00000003, 0x00000000000000007FFFFFFB80000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD80000006, 0x00000000000000007FFFFFF180000007}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA55555555, 0x00000000000000010000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA55555555, 0x000000000000000055555555AAAAAAAC}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA1C71C71C, 0x000000000000000171C71C7200000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA9E38E38E4, 0x0000000000000001471C71C5E38E38E5}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000008000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000008000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFE0000000, 0x00000000000000007000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFFC0000000, 0x0000000000000000FFFFFFFFC0000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFF8000000100000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE80000003FFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE8000000200000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE8000000000000003}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFD8000000300000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFC80000005FFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000020000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x0000000000000001FFFFFFFE00000004}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000010000000180000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000000000000000000004FFFFFFFE}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFB, 0x00000000000000077FFFFFFB00000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFB, 0x00000000000000077FFFFFF900000006}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFB, 0x00000000000000067FFFFFFD80000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x000000000000000580000001FFFFFFFC}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x00000000800000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x00000000800000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000800000000000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000100000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000017FFFFFFE00000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000100000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000080000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000200000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000100000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000000000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000180000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE8000000300000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000200000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000037FFFFFFE00000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000037FFFFFFD00000003}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000280000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000028000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000027FFFFFFF00000003}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000100000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000180000002FFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000200000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000100000003}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000300000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000080000004FFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000038000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFF00000003}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000100000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000280000002FFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000077FFFFFFD00000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000077FFFFFFC00000004}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x0000000080000006FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000680000000FFFFFFFE}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000800000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000800000007FFFFFFF55555557}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000800000002AAAAAAB00000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFFD5555556AAAAAAAB}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFFD555555600000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFFD555555555555557}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF8000000100000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF2AAAAAACAAAAAAAB}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB8000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB7FFFFFFF55555557}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB2AAAAAAB00000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAAD5555556AAAAAAAB}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000001555555582AAAAAA900000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000001555555582AAAAAA855555558}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x0000000155555557D555555480000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000015555555780000000AAAAAAAA}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x00000000000000004000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF0000000080000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFEC000000180000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE8000000280000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001C00000000000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFFFFFFFFFF80000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFFC000000080000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000FFFFFFFE80000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000BFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001800000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000100000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000000000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFE00000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000000000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000018000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000018000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFE00000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000100000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000100000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000080000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000000000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000800000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE00000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000008000000100000001, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE80000001FFFFFFFE, 0x00000000000000000000000080000002}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA55555555AAAAAAAB, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000800000000000000040000000, 0x000000000000000000000000C0000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFD, 0x00000000000000000000000180000003}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFD00000003, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFB0000000E, 0x00000000000000007FFFFFED8000000E}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000080000001, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000010000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000010000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000001, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x00000000000000008000000100000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE80000002, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE80000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE80000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE00000003, 0x00000000000000007FFFFFFC00000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD80000006, 0x00000000000000007FFFFFF200000006}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA55555555, 0x00000000000000010000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA55555555, 0x0000000000000000555555562AAAAAAB}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA1C71C71C, 0x000000000000000171C71C7280000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA9E38E38E4, 0x0000000000000001471C71C6638E38E4}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000008000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000008000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFE0000000, 0x00000000000000007000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000010000000040000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE800000047FFFFFFE}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE8000000280000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE8000000080000002}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFD8000000380000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFC800000067FFFFFFE}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000020000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x0000000000000001FFFFFFFE80000003}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000010000000200000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x0000000000000000000000057FFFFFFD}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFB, 0x00000000000000077FFFFFFB80000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFB, 0x00000000000000077FFFFFF980000005}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFB, 0x00000000000000067FFFFFFE00000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x0000000000000005800000027FFFFFFB}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x00000000800000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000800000000000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF000000027FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000010000000000000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000100000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF800000027FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE800000037FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000037FFFFFFE80000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000037FFFFFFD80000002}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002800000017FFFFFFE}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000028000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000027FFFFFFF80000002}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000180000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000080000001800000037FFFFFFE}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000280000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000180000002}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000010000000380000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000080000000800000057FFFFFFE}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000038000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFF80000002}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000030000000180000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000002800000037FFFFFFE}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000077FFFFFFD80000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000077FFFFFFC80000003}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x0000000080000006FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000080000006800000017FFFFFFD}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000800000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000800000007FFFFFFFD5555556}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000800000002AAAAAAB80000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFFD55555572AAAAAAA}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFFD555555680000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFFD5555555D5555556}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF2AAAAAAD2AAAAAAA}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB8000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB7FFFFFFFD5555556}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB2AAAAAAB80000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAAD55555572AAAAAAA}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000001555555582AAAAAA980000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000001555555582AAAAAA8D5555557}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x0000000155555557D555555500000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x0000000155555557800000012AAAAAA9}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x00000000000000004000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFEC000000200000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE80000002FFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001C00000000000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001C00000000000000000000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFFC000000100000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000C000000000000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x000000018000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000018000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001800000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000018000000000000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000180000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000100000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000080000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000800000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000800000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000000000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000080000000}, + [_]u128{0xFFFFFFFF800000008000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF800000008000000080000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000001000000008000000100000002, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE80000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA55555555AAAAAAAB, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000800000000000000040000000, 0x0000000000000000000000013FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFD, 0x00000000000000000000000200000002}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFD00000003, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFB0000000E, 0x00000000000000007FFFFFEE0000000D}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000080000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000010000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000010000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000001, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x00000000000000008000000180000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE80000002, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE80000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE80000001, 0x0000000000000000000000017FFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE00000003, 0x00000000000000007FFFFFFC7FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD80000006, 0x00000000000000007FFFFFF280000005}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA55555555, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA55555555, 0x000000000000000055555556AAAAAAAA}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA1C71C71C, 0x000000000000000171C71C72FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA9E38E38E4, 0x0000000000000001471C71C6E38E38E3}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000008000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000008000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFE0000000, 0x000000000000000070000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFFC0000000, 0x000000000000000100000000BFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE80000004FFFFFFFD}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE80000002FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFD80000003FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFC80000006FFFFFFFD}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFD, 0x000000000000000200000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x0000000000000001FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x0000000000000001000000027FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000000000000000000005FFFFFFFC}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFB, 0x00000000000000077FFFFFFBFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFB, 0x00000000000000077FFFFFFA00000004}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFB, 0x00000000000000067FFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x000000000000000580000002FFFFFFFA}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x00000000800000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF00000002FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000017FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000008000000080000001FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000000000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF80000002FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF000000027FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE80000003FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000002FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000037FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000037FFFFFFE00000001}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000280000001FFFFFFFD}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000280000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000028000000000000001}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000200000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000180000003FFFFFFFD}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000180000002FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000200000001}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000003FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000080000005FFFFFFFD}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000380000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000038000000000000001}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000280000003FFFFFFFD}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000077FFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x00000000800000077FFFFFFD00000002}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x0000000080000006FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000680000001FFFFFFFC}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000800000008000000055555555}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000800000002AAAAAABFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFFD5555557AAAAAAA9}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFFD5555556FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFFD555555655555555}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFF2AAAAAADAAAAAAA9}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB8000000055555555}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB2AAAAAABFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAAD5555557AAAAAAA9}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x00000001555555582AAAAAA9FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x00000001555555582AAAAAA955555556}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x0000000155555557D55555557FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000015555555780000001AAAAAAA8}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x000000000000000040000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFEC00000027FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFE800000037FFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001C000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001C00000000000000080000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFFC00000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001BFFFFFFF800000027FFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000C00000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000800000017FFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF8000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF8000000080000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF800000008000000000000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF8000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF80000001FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF80000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF00000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE80000001FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000080000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000001FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000180000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001800000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000018000000000000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000100000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000080000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000080000001FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000008000000100000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x000000008000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x000000008000000080000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000008000000000000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000001FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000001FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF8000000080000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFE, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000008000000180000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE800000027FFFFFFC, 0x00000000000000000000000080000004}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA55555555FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFF, 0x0000000080000000000000007FFFFFFF, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFE, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFD00000004, 0x00000000000000007FFFFFFD00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFB0000000F, 0x00000000000000007FFFFFEB0000000F}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000080000001, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE80000003, 0x00000000000000007FFFFFFA80000003}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE80000002, 0x00000000000000007FFFFFFD00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE80000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000FFFFFFFA80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD80000006, 0x0000000000000000FFFFFFF080000006}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA55555555, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA55555555, 0x0000000000000000D5555554AAAAAAAB}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA1C71C71D, 0x000000000000000071C71C7080000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA9E38E38E5, 0x0000000000000000471C71C3E38E38E5}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000008000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000008000000000000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFE0000000, 0x0000000000000000EFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000017FFFFFFEC0000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFF00000002FFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFD00000004FFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000027FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000027FFFFFFD00000003}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000018000000080000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000000000000080000003FFFFFFFD}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFB, 0x0000000000000007FFFFFFFA00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFB, 0x0000000000000007FFFFFFF800000005}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFB, 0x0000000000000006FFFFFFFC80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x000000000000000600000000FFFFFFFB}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x0000000080000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000001FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000080000001FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000017FFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000003FFFFFFFD00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000003FFFFFFFC00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000037FFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000028000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000200000001FFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000100000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000000000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000200000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000003FFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000038000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000001FFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000080000007FFFFFFFC00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000080000007FFFFFFFB00000003}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000077FFFFFFD80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000080000006FFFFFFFFFFFFFFFD}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x0000000080000000FFFFFFFE55555556}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000080000000AAAAAAAA00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000008000000055555555AAAAAAAA}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000800000005555555500000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000800000005555555455555556}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFFAAAAAAABAAAAAAAA}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAABFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAABFFFFFFFE55555556}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAABAAAAAAAA00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB55555555AAAAAAAA}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x0000000155555558AAAAAAA800000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x0000000155555558AAAAAAA755555557}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000001555555585555555380000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x0000000155555557FFFFFFFFAAAAAAA9}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x0000000000000000BFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x00000000000000003FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001C00000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001C00000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001C00000003FFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001C0000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000017FFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000017FFFFFFD80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000013FFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFD80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFD80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFD00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFD80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFD80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFD80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000001000000008000000180000000, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE800000027FFFFFFC, 0x00000000000000000000000080000005}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA55555555FFFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFF, 0x0000000080000000000000007FFFFFFF, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFE, 0x00000000000000000000000000000003}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFD00000004, 0x00000000000000007FFFFFFD00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFB0000000F, 0x00000000000000007FFFFFEB00000010}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000080000001, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000001, 0x0000000000000000FFFFFFFE80000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x0000000000000000FFFFFFFF80000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE80000003, 0x00000000000000007FFFFFFA80000004}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE80000002, 0x00000000000000007FFFFFFD00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE80000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000FFFFFFFA80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD80000006, 0x0000000000000000FFFFFFF080000007}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA55555555, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA55555555, 0x0000000000000000D5555554AAAAAAAC}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA1C71C71D, 0x000000000000000071C71C7080000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA9E38E38E5, 0x0000000000000000471C71C3E38E38E6}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000008000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000008000000000000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFE0000000, 0x0000000000000000EFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000017FFFFFFEC0000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000800000000000000000000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFF00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFEFFFFFFFF00000003}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE0000000200000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFD00000004FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000027FFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000027FFFFFFD00000004}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000018000000080000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000000000000080000003FFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFB, 0x0000000000000007FFFFFFFA00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFB, 0x0000000000000007FFFFFFF800000006}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFB, 0x0000000000000006FFFFFFFC80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x000000000000000600000000FFFFFFFC}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x0000000080000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000800000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000800000000000000000000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000001FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000080000001FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000800000010000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000100000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000000000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFE00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000003FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000003FFFFFFFC00000003}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000037FFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFE00000003}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000028000000000000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000200000001FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000100000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000000000003}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000200000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000003FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFE00000003}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000038000000000000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000001FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000080000007FFFFFFFC00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000080000007FFFFFFFB00000004}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000077FFFFFFD80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000080000006FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x0000000080000000FFFFFFFE55555557}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000080000000AAAAAAAA00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000008000000055555555AAAAAAAB}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000800000005555555500000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000800000005555555455555557}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000800000000000000000000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFFAAAAAAABAAAAAAAB}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAABFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAABFFFFFFFE55555557}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAABAAAAAAAA00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB55555555AAAAAAAB}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x0000000155555558AAAAAAA800000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x0000000155555558AAAAAAA755555558}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000001555555585555555380000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x0000000155555557FFFFFFFFAAAAAAAA}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x0000000000000000BFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x00000000000000003FFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001C00000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001C00000007FFFFFFE80000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001C00000003FFFFFFF80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001C00000000000000080000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000017FFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000017FFFFFFD80000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000013FFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000000000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFD80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFD00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFE00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFE00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000008000000180000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE800000027FFFFFFD, 0x00000000000000000000000000000003}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA55555555FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFF, 0x00000000800000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFE, 0x00000000000000000000000080000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFD00000004, 0x00000000000000007FFFFFFD80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFB0000000F, 0x00000000000000007FFFFFEB8000000F}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000080000001, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE80000003, 0x00000000000000007FFFFFFB00000003}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE80000002, 0x00000000000000007FFFFFFD80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE80000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000FFFFFFFB00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD80000006, 0x0000000000000000FFFFFFF100000006}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA55555555, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA55555555, 0x0000000000000000D55555552AAAAAAB}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA1C71C71D, 0x000000000000000071C71C7100000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA9E38E38E5, 0x0000000000000000471C71C4638E38E5}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000008000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000008000000000000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFE0000000, 0x0000000000000000EFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000017FFFFFFF40000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFF000000037FFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFEFFFFFFFF80000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE0000000280000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFD000000057FFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000027FFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000027FFFFFFD80000003}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000018000000100000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x0000000000000000800000047FFFFFFD}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFB, 0x0000000000000007FFFFFFFA80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFB, 0x0000000000000007FFFFFFF880000005}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFB, 0x0000000000000006FFFFFFFD00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x0000000000000006000000017FFFFFFB}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x0000000080000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000800000000000000080000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000001FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000080000001FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000080000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000008000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000080000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF000000027FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000003FFFFFFFD80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000003FFFFFFFC80000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000037FFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000080000003000000007FFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFE80000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000028000000080000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002000000027FFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000180000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000080000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000280000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000080000001000000047FFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFE80000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000038000000080000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003000000027FFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000080000007FFFFFFFC80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000080000007FFFFFFFB80000003}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000077FFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x0000000080000007000000007FFFFFFD}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x0000000080000000FFFFFFFED5555556}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000080000000AAAAAAAA80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000080000000555555562AAAAAAA}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000800000005555555580000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x000000008000000055555554D5555556}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000800000000000000080000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFFAAAAAAAC2AAAAAAA}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAABFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAABFFFFFFFED5555556}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAABAAAAAAAA80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB555555562AAAAAAA}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x0000000155555558AAAAAAA880000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x0000000155555558AAAAAAA7D5555557}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x00000001555555585555555400000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x0000000155555558000000002AAAAAA9}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x0000000000000000BFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x00000000000000003FFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001C00000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001C00000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001C00000004000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001C000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000017FFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000017FFFFFFE00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000013FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000080000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFD80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000080000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000800000000000000080000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000001000000008000000180000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x00000000FFFFFFFE800000027FFFFFFD, 0x00000000000000000000000080000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000, 0x00000000AAAAAAAA55555555FFFFFFFF, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000800000000000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFEFFFFFFFE, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFD00000004, 0x00000000000000007FFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFB0000000F, 0x00000000000000007FFFFFEC0000000E}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000080000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000010000000080000000, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000010000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE80000003, 0x00000000000000007FFFFFFB80000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFE80000002, 0x00000000000000007FFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFE80000001, 0x0000000000000000800000007FFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000FFFFFFFB7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFD80000006, 0x0000000000000000FFFFFFF180000005}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAA55555555, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAA55555555, 0x0000000000000000D5555555AAAAAAAA}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA1C71C71D, 0x000000000000000071C71C717FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAA9E38E38E5, 0x0000000000000000471C71C4E38E38E4}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000008000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x00000000000000008000000000000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000007FFFFFFFE0000000, 0x0000000000000000EFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFFC0000000, 0x00000000000000017FFFFFFFBFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFF, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFF00000003FFFFFFFD}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFE00000002FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFE, 0x000000007FFFFFFD00000005FFFFFFFD}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFD, 0x00000000000000027FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x00000000000000027FFFFFFE00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x0000000000000001800000017FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000000000000080000004FFFFFFFC}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFB, 0x0000000000000007FFFFFFFAFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFB, 0x0000000000000007FFFFFFF900000004}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFB, 0x0000000000000006FFFFFFFD7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFB, 0x000000000000000600000001FFFFFFFA}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x0000000080000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000800000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000001FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000080000001FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000017FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000008000000100000000FFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000008000000000000001FFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF00000002FFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000001FFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000003FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000003FFFFFFFD00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000037FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000300000000FFFFFFFD}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000280000000FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000200000002FFFFFFFD}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000200000001FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000100000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000180000002FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000004FFFFFFFD}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF00000001}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000380000000FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000002FFFFFFFD}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFD, 0x0000000080000007FFFFFFFCFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFD, 0x0000000080000007FFFFFFFC00000002}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFD, 0x00000000800000077FFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFD, 0x000000008000000700000000FFFFFFFC}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x0000000080000000FFFFFFFF55555555}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x0000000080000000AAAAAAAAFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000008000000055555556AAAAAAA9}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x000000008000000055555555FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000800000005555555555555555}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000007FFFFFFFAAAAAAACAAAAAAA9}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAABFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAABFFFFFFFF55555555}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAABAAAAAAAAFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000002AAAAAAB55555556AAAAAAA9}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAA9, 0x0000000155555558AAAAAAA8FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAA9, 0x0000000155555558AAAAAAA855555556}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAA9, 0x0000000155555558555555547FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAA9, 0x000000015555555800000000AAAAAAA8}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x0000000000000000BFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x00000000000000003FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x0000000000000000000000007FFFFFFF, 0x00000001C00000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x0000000000000000000000007FFFFFFF, 0x00000001C00000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x0000000000000000000000007FFFFFFF, 0x00000001C0000000400000007FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001C0000000000000017FFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000017FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001800000017FFFFFFE80000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001800000013FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x0000000180000001000000007FFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFEFFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF8000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF8000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF80000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF800000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFEFFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF00000000FFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFEFFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFEFFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFE8000000100000000FFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFE80000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFE800000010000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFEFFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000080000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000008000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFEFFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFE00000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAAAAAAAAAA00000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000800000003FFFFFFF9FFFFFFF, 0x0000000000000000000000019FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFE, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFA, 0x00000000000000000000000000000006}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFE00000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFC00000009, 0x00000000000000007FFFFFF300000009}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x000000000000000100000000FFFFFFFE, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000001000000007FFFFFFF, 0x00000000000000003FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x00000000000000004000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFEFFFFFFFF, 0x00000000000000000000000200000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE80000001, 0x00000000000000003FFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000FFFFFFF800000003}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAAAAAAAAAA, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAAAAAAAAA9, 0x0000000000000000D555555555555557}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA71C71C71, 0x0000000000000000471C71C780000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAAA38E38E38, 0x000000000000000171C71C7238E38E38}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x0000000000000000800000003FFFFFFF, 0x00000000000000013FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000800000003FFFFFFF, 0x0000000000000000BFFFFFFEC0000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000800000001FFFFFFF, 0x00000000000000010FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFEFFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFE0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD00000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFCFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFC0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFB00000003FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x00000000800000007FFFFFFE00000003}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE80000004FFFFFFFD}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000004FFFFFFFC00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000004FFFFFFFA00000004}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000003FFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000300000001FFFFFFFC}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFDFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFD8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFD0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD00000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000100000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000001000000008000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000010000000000000002FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000001000000000000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000001000000000000000100000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF8000000300000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF00000004FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000001FFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000002FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFD00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFEFFFFFFFF55555556}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFEAAAAAAAB00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE55555556AAAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE5555555600000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE5555555555555556}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFDAAAAAAACAAAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAA9FFFFFFFF55555556}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAA9AAAAAAAB00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAA955555556AAAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAAA, 0x0000000055555555AAAAAAAA00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAAA, 0x0000000055555555AAAAAAA955555556}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAAA, 0x00000000555555555555555500000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000005555555500000000AAAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFEC000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFE7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE4000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFEC000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF3FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFE00000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000100000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000180000000, 0x00000000AAAAAAAAAAAAAAAA00000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000800000003FFFFFFF9FFFFFFF, 0x000000000000000000000001A0000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFA, 0x00000000000000000000000000000007}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFE00000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFC00000009, 0x00000000000000007FFFFFF30000000A}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x000000000000000100000000FFFFFFFE, 0x0000000000000000FFFFFFFD00000003}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000001000000007FFFFFFF, 0x00000000000000003FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE, 0x00000000000000000000000000000003}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x00000000000000004000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFEFFFFFFFF, 0x00000000000000000000000200000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE80000001, 0x00000000000000003FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000FFFFFFF800000004}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAAAAAAAAAA, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAAAAAAAAA9, 0x0000000000000000D555555555555558}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA71C71C71, 0x0000000000000000471C71C780000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAAA38E38E38, 0x000000000000000171C71C7238E38E39}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x0000000000000000800000003FFFFFFF, 0x00000000000000013FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000800000003FFFFFFF, 0x0000000000000000BFFFFFFEC0000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000800000001FFFFFFF, 0x00000000000000010FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000018000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFEFFFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFE0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD0000000300000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFCFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFC0000000180000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFB0000000400000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x00000000800000007FFFFFFE00000004}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF8000000180000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE80000004FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000004FFFFFFFC00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000004FFFFFFFA00000005}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000003FFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000300000001FFFFFFFD}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFDFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFD8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFD0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD8000000180000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD0000000300000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF7FFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE8000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000100000000FFFFFFFF00000003}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000001000000008000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000010000000000000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000001000000000000000200000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000001000000000000000100000003}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF8000000300000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF00000004FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000001FFFFFFFF00000003}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFD00000003}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFEFFFFFFFF55555557}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFEAAAAAAAB00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE55555556AAAAAAAB}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE5555555600000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE5555555555555557}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFDAAAAAAACAAAAAAAB}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAA9FFFFFFFF55555557}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAA9AAAAAAAB00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAA955555556AAAAAAAB}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAAA, 0x0000000055555555AAAAAAAA00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAAA, 0x0000000055555555AAAAAAA955555557}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAAA, 0x00000000555555555555555500000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000005555555500000000AAAAAAAB}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFEC000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFE7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE4000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFEC000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF7FFFFFFE80000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF3FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD7FFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD0000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE7FFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD7FFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFE00000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000010000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAAAAAAAAAA00000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000800000003FFFFFFFA0000000, 0x00000000000000000000000020000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFE, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFA, 0x00000000000000000000000080000006}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFE00000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFC00000009, 0x00000000000000007FFFFFF380000009}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x000000000000000100000000FFFFFFFE, 0x0000000000000000FFFFFFFD80000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000001000000007FFFFFFF, 0x00000000000000004000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE, 0x00000000000000000000000080000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x00000000000000004000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFEFFFFFFFF, 0x00000000000000000000000280000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE80000001, 0x00000000000000003FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000FFFFFFF880000003}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAAAAAAAAAA, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAAAAAAAAA9, 0x0000000000000000D5555555D5555557}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA71C71C71, 0x0000000000000000471C71C800000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAAA38E38E38, 0x000000000000000171C71C72B8E38E38}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x0000000000000000800000003FFFFFFF, 0x00000000000000013FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000800000003FFFFFFF, 0x0000000000000000BFFFFFFF40000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000800000001FFFFFFF, 0x00000000000000011000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFFFFFFFFFF, 0x0000000000000001800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFEFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD000000037FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFCFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFC0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFB000000047FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x00000000800000007FFFFFFE80000003}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF8000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE800000057FFFFFFD}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000004FFFFFFFC80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000004FFFFFFFA80000004}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000003FFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x0000000000000003000000027FFFFFFC}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFDFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFD8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFD0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE000000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD8000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD000000037FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE800000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000100000000FFFFFFFF80000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000001000000008000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000100000000000000037FFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000001000000000000000280000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000001000000000000000180000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF8000000380000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF000000057FFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000001FFFFFFFF80000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000080000001000000037FFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFD80000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003000000017FFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFEFFFFFFFFD5555556}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFEAAAAAAAB80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE555555572AAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE5555555680000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE55555555D5555556}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFDAAAAAAAD2AAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAA9FFFFFFFFD5555556}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAA9AAAAAAAB80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAA9555555572AAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAAA, 0x0000000055555555AAAAAAAA80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAAA, 0x0000000055555555AAAAAAA9D5555556}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAAA, 0x00000000555555555555555580000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000055555555000000012AAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFEC000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE4000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFEC000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF4000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFE00000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000FFFFFFFF0000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000180000000, 0x00000000AAAAAAAAAAAAAAAA00000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000800000003FFFFFFFA0000000, 0x0000000000000000000000009FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFE, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFA, 0x00000000000000000000000100000005}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFE00000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFC00000009, 0x00000000000000007FFFFFF400000008}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x000000000000000100000000FFFFFFFE, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000001000000007FFFFFFF, 0x0000000000000000400000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x0000000000000000400000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFEFFFFFFFF, 0x00000000000000000000000300000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE80000001, 0x00000000000000003FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000FFFFFFF900000002}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAAAAAAAAAA, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAAAAAAAAA9, 0x0000000000000000D555555655555556}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA71C71C71, 0x0000000000000000471C71C87FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAAA38E38E38, 0x000000000000000171C71C7338E38E37}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x0000000000000000800000003FFFFFFF, 0x00000000000000013FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000800000003FFFFFFF, 0x0000000000000000BFFFFFFFC0000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000800000001FFFFFFF, 0x0000000000000001100000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFFFFFFFFFF, 0x000000000000000180000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFE000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD00000003FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFC000000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFB00000004FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x00000000800000007FFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF800000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE80000005FFFFFFFC}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000004FFFFFFFCFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000004FFFFFFFB00000003}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000003FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000300000002FFFFFFFB}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFDFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFD80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFD00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE00000002FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD800000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD00000003FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE80000002FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000010000000080000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000010000000000000003FFFFFFFD}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x000000010000000000000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000001000000000000000200000001}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF80000003FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF00000005FFFFFFFD}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000200000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000180000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000003FFFFFFFD}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000037FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000001FFFFFFFD}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF0000000055555555}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFEAAAAAAABFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE55555557AAAAAAA9}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE55555556FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE5555555655555555}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFDAAAAAAADAAAAAAA9}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA0000000055555555}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAA9AAAAAAABFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAA955555557AAAAAAA9}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAAA, 0x0000000055555555AAAAAAAAFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAAA, 0x0000000055555555AAAAAAAA55555555}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAAA, 0x000000005555555555555555FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000005555555500000001AAAAAAA9}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFEC0000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFE800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE40000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFEC0000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF400000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF000000017FFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF00000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE80000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE00000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE00000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD80000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD00000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF00000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE80000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE00000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD80000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD00000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFE00000002, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAAAAAAAAAA00000000, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x000000000000000000000001FFFFFFFF, 0x00000000800000003FFFFFFFA0000000, 0x000000000000000000000000A0000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFE, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFA, 0x00000000000000000000000100000006}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFE00000000, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFC00000009, 0x00000000000000007FFFFFF400000009}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000100000000, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x0000000000000000FFFFFFFF00000001, 0x000000000000000100000000FFFFFFFE, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000001000000007FFFFFFF, 0x00000000000000004000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE, 0x00000000000000000000000100000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x00000000000000004000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFEFFFFFFFF, 0x00000000000000000000000300000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE80000001, 0x00000000000000003FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000FFFFFFF900000003}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAAAAAAAAAA, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAAAAAAAAA9, 0x0000000000000000D555555655555557}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA71C71C71, 0x0000000000000000471C71C880000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAAA38E38E38, 0x000000000000000171C71C7338E38E38}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x0000000000000001FFFFFFFF00000000, 0x0000000000000000800000003FFFFFFF, 0x00000000000000014000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000800000003FFFFFFF, 0x0000000000000000BFFFFFFFC0000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000800000001FFFFFFF, 0x00000000000000011000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFFFFFFFFFF, 0x000000000000000180000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFE0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD00000003FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFC0000000280000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFB00000004FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x00000000800000007FFFFFFF00000003}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF8000000280000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE80000005FFFFFFFD}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000004FFFFFFFD00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000004FFFFFFFB00000004}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000003FFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000300000002FFFFFFFC}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000001, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFD8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFD0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE00000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD8000000280000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD00000003FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE80000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000001000000008000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000010000000000000003FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000001000000000000000300000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000001000000000000000200000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF8000000400000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF00000005FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000003FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000038000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF0000000055555556}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFEAAAAAAAC00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE55555557AAAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE5555555700000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE5555555655555556}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFDAAAAAAADAAAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA0000000055555556}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAA9AAAAAAAC00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAA955555557AAAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAAA, 0x0000000055555555AAAAAAAB00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAAA, 0x0000000055555555AAAAAAAA55555556}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAAA, 0x00000000555555555555555600000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000005555555500000001AAAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFEC000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE4000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFEC000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF4000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFE00000002, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000100000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000180000000, 0x00000000AAAAAAAAAAAAAAAA00000000, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x000000000000000000000001FFFFFFFF, 0x00000000800000003FFFFFFFA0000000, 0x000000000000000000000000A0000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFE, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFA, 0x00000000000000000000000100000007}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFE00000000, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFC00000009, 0x00000000000000007FFFFFF40000000A}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000100000000, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x0000000000000000FFFFFFFF00000001, 0x000000000000000100000000FFFFFFFE, 0x0000000000000000FFFFFFFE00000003}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000001000000007FFFFFFF, 0x00000000000000004000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE, 0x00000000000000000000000100000003}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x00000000000000004000000180000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFEFFFFFFFF, 0x00000000000000000000000300000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE80000001, 0x00000000000000003FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000FFFFFFF900000004}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAAAAAAAAAA, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAAAAAAAAA9, 0x0000000000000000D555555655555558}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA71C71C71, 0x0000000000000000471C71C880000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAAA38E38E38, 0x000000000000000171C71C7338E38E39}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x0000000000000001FFFFFFFF00000000, 0x0000000000000000800000003FFFFFFF, 0x00000000000000014000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000800000003FFFFFFF, 0x0000000000000000BFFFFFFFC0000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000800000001FFFFFFF, 0x00000000000000011000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFFFFFFFFFF, 0x00000000000000018000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFE0000000180000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD0000000400000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD0000000200000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD0000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFC0000000280000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFB0000000500000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x00000000800000007FFFFFFF00000004}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF8000000280000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE80000005FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000004FFFFFFFD00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000004FFFFFFFB00000005}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000003FFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000300000002FFFFFFFD}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000001, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE0000000200000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFD8000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFD0000000200000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE0000000200000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000180000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000300000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000200000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000100000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD8000000280000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD0000000400000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000180000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE8000000300000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000001000000008000000200000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000010000000000000003FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000001000000000000000300000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000001000000000000000200000003}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF8000000400000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF00000005FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000000000003}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000200000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000003FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFE00000003}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000038000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF0000000055555557}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFEAAAAAAAC00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE55555557AAAAAAAB}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE5555555700000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE5555555655555557}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE0000000200000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFDAAAAAAADAAAAAAAB}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA0000000055555557}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAA9AAAAAAAC00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAA955555557AAAAAAAB}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAAA, 0x0000000055555555AAAAAAAB00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAAA, 0x0000000055555555AAAAAAAA55555557}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAAA, 0x00000000555555555555555600000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000005555555500000001AAAAAAAB}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFEC000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000180000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE4000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE0000000180000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFEC000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFE8000000180000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF7FFFFFFF80000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF4000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000200000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000180000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000100000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD8000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD8000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD0000000200000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD0000000180000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD0000000100000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000200000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000180000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000100000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000200000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000180000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000100000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000200000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000180000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000200000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000180000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000100000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000180000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000100000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000100000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFE00000003, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000010000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFF0000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAAAAAAAAAA00000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x000000000000000000000001FFFFFFFF, 0x00000000800000003FFFFFFFA0000000, 0x00000000000000000000000120000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFE, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFA, 0x00000000000000000000000180000006}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFE00000000, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFC00000009, 0x00000000000000007FFFFFF480000009}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000100000000, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x0000000000000000FFFFFFFF00000001, 0x000000000000000100000000FFFFFFFE, 0x0000000000000000FFFFFFFE80000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000001000000007FFFFFFF, 0x00000000000000004000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE, 0x00000000000000000000000180000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x00000000000000004000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFEFFFFFFFF, 0x00000000000000000000000380000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE80000001, 0x00000000000000004000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000FFFFFFF980000003}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAAAAAAAAAA, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAAAAAAAAA9, 0x0000000000000000D5555556D5555557}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA71C71C71, 0x0000000000000000471C71C900000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAAA38E38E38, 0x000000000000000171C71C73B8E38E38}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x0000000000000001FFFFFFFF00000000, 0x0000000000000000800000003FFFFFFF, 0x00000000000000014000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000800000003FFFFFFF, 0x0000000000000000C000000040000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000800000001FFFFFFF, 0x00000000000000011000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFFFFFFFFFF, 0x0000000000000001800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD000000047FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD0000000280000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFC0000000300000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFB000000057FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFD, 0x00000000800000007FFFFFFF80000003}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF8000000300000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE800000067FFFFFFD}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000004FFFFFFFD80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000004FFFFFFFB80000004}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000003FFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x0000000000000003000000037FFFFFFC}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000001, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE0000000280000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFD8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFD0000000280000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE0000000280000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF000000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE000000037FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000280000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000180000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD8000000300000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD000000047FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE800000037FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000001000000008000000280000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000100000000000000047FFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000001000000000000000380000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000001000000000000000280000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF8000000480000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF000000067FFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000080000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000018000000280000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000080000001000000047FFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFE80000002}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000038000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003000000027FFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF00000000D5555556}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFEAAAAAAAC80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE555555582AAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE5555555780000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE55555556D5555556}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE0000000280000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFDAAAAAAAE2AAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA00000000D5555556}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAA9AAAAAAAC80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAA9555555582AAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAAA, 0x0000000055555555AAAAAAAB80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAAA, 0x0000000055555555AAAAAAAAD5555556}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAAA, 0x00000000555555555555555680000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000055555555000000022AAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFEC000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE4000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFEC000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFE8000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF4000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000280000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE000000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000180000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD0000000280000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD000000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD0000000180000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000280000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE000000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000180000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000280000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF000000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000180000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000280000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000180000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000280000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD000000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000180000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000280000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE000000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000180000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF0000000180000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFE00000003, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000001000000010000000000000002, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000FFFFFFFF0000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000180000000, 0x00000000AAAAAAAAAAAAAAAA00000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000800000003FFFFFFFA0000000, 0x0000000000000000000000019FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFE, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFA, 0x00000000000000000000000200000005}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFE00000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFC00000009, 0x00000000000000007FFFFFF500000008}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000100000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000001000000007FFFFFFF, 0x0000000000000000400000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE, 0x00000000000000000000000200000001}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x0000000000000000400000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFEFFFFFFFF, 0x00000000000000000000000400000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE80000001, 0x0000000000000000400000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFE00000003, 0x0000000000000000FFFFFFFA00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAAAAAAAAAA, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAAAAAAAAA9, 0x0000000000000000D555555755555556}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA71C71C71, 0x0000000000000000471C71C97FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAAA38E38E38, 0x000000000000000171C71C7438E38E37}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x0000000000000000800000003FFFFFFF, 0x000000000000000140000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000800000003FFFFFFF, 0x0000000000000000C0000000C0000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000800000001FFFFFFF, 0x0000000000000001100000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFFFFFFFFFF, 0x000000000000000180000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFE000000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD00000004FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD00000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFC000000037FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFB00000005FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF800000037FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFE80000006FFFFFFFC}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000004FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000004FFFFFFFC00000003}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000003FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000300000003FFFFFFFB}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE00000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFD80000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFD00000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE00000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000100000000, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF00000002FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE800000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE00000003FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE00000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD800000037FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD00000004FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF000000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFE80000003FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000002FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000010000000080000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000010000000000000004FFFFFFFD}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x000000010000000000000003FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000001000000000000000300000001}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF80000004FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF00000006FFFFFFFD}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000200000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000180000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000100000004FFFFFFFD}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x000000000000000380000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000300000002FFFFFFFD}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF0000000155555555}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFEAAAAAAACFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE55555558AAAAAAA9}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE55555557FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE5555555755555555}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE00000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFDAAAAAAAEAAAAAAA9}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA0000000155555555}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAA9AAAAAAACFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAA955555558AAAAAAA9}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAAA, 0x0000000055555555AAAAAAABFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAAA, 0x0000000055555555AAAAAAAB55555555}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAAA, 0x000000005555555555555556FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000005555555500000002AAAAAAA9}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFEC0000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE800000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFE40000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE000000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFEC0000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFE800000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF400000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF000000027FFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF00000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF00000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE80000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE00000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE00000002FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE000000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE00000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE00000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD80000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD80000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD00000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD00000002FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD000000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF00000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF00000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE80000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE00000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE00000002FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE000000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF00000002FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF000000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000002FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD80000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD80000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD00000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD00000002FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD000000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE00000002FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE000000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFF000000007FFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAAAAAAAAAA55555555, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x000000000000000000000001FFFFFFFF, 0x00000000800000003FFFFFFFDFFFFFFF, 0x000000000000000000000001DFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFB, 0x00000000000000000000000000000005}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFE00000000, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFC0000000A, 0x00000000000000007FFFFFF20000000A}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000100000000, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x0000000000000000FFFFFFFF00000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000001000000007FFFFFFF, 0x0000000000000000BFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE, 0x00000000000000008000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x0000000000000000C000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFEFFFFFFFF, 0x00000000000000008000000200000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE80000001, 0x0000000000000000BFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFE00000004, 0x00000000000000007FFFFFF600000004}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAAAAAAAAAA, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAAAAAAAAA9, 0x00000000000000015555555555555557}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA71C71C71, 0x0000000000000000C71C71C780000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAAA38E38E39, 0x000000000000000071C71C7138E38E39}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x0000000000000001FFFFFFFF00000000, 0x0000000000000000800000003FFFFFFF, 0x0000000000000001BFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000800000003FFFFFFF, 0x00000000000000013FFFFFFEC0000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000800000001FFFFFFF, 0x00000000000000018FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFF7FFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD80000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFC8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFB80000003FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFE, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x00000000800000000000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF00000004FFFFFFFD}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000057FFFFFFC00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFC, 0x00000000000000057FFFFFFA00000004}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000047FFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000380000001FFFFFFFC}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000001, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFD8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD80000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000010000000080000002FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000001000000008000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000001000000008000000100000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000001000000000000000300000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF80000004FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000028000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000027FFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000180000002FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFD00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000380000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF7FFFFFFF55555556}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF2AAAAAAB00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFED5555556AAAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFED555555600000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFED555555555555556}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE2AAAAAACAAAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA7FFFFFFF55555556}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA2AAAAAAB00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAA9D5555556AAAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAAA, 0x00000000555555562AAAAAAA00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAAA, 0x00000000555555562AAAAAA955555556}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAAA, 0x0000000055555555D555555500000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000005555555580000000AAAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF4000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFEC000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF4000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFFBFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000001000000010000000080000000, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000100000001, 0x00000000FFFFFFFF000000007FFFFFFF, 0x00000000000000000000000080000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000180000000, 0x00000000AAAAAAAAAAAAAAAA55555555, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x000000000000000000000001FFFFFFFF, 0x00000000800000003FFFFFFFDFFFFFFF, 0x000000000000000000000001E0000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFB, 0x00000000000000000000000000000006}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFE00000000, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFC0000000A, 0x00000000000000007FFFFFF20000000B}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000100000000, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x0000000000000000FFFFFFFF00000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000001000000007FFFFFFF, 0x0000000000000000BFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE, 0x00000000000000008000000000000003}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x0000000000000000C000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFEFFFFFFFF, 0x00000000000000008000000200000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE80000001, 0x0000000000000000BFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFE00000004, 0x00000000000000007FFFFFF600000005}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAAAAAAAAAA, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAAAAAAAAA9, 0x00000000000000015555555555555558}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA71C71C71, 0x0000000000000000C71C71C780000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAAA38E38E39, 0x000000000000000071C71C7138E38E3A}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x0000000000000001FFFFFFFF00000000, 0x0000000000000000800000003FFFFFFF, 0x0000000000000001BFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000800000003FFFFFFF, 0x00000000000000013FFFFFFEC0000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000800000001FFFFFFF, 0x00000000000000018FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFF7FFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD8000000300000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD8000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD7FFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFC8000000180000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFB8000000400000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFE, 0x00000000000000007FFFFFFE00000003}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x00000000800000000000000180000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF00000004FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000057FFFFFFC00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFC, 0x00000000000000057FFFFFFA00000005}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000047FFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000380000001FFFFFFFD}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000001, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFD8000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF7FFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000180000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD8000000300000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000010000000080000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000001000000008000000200000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000001000000008000000100000003}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000001000000000000000300000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF80000004FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000028000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000027FFFFFFF00000003}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000180000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFD00000003}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000380000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF7FFFFFFF55555557}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF2AAAAAAB00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFED5555556AAAAAAAB}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFED555555600000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFED555555555555557}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE2AAAAAACAAAAAAAB}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA7FFFFFFF55555557}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA2AAAAAAB00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAA9D5555556AAAAAAAB}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAAA, 0x00000000555555562AAAAAAA00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAAA, 0x00000000555555562AAAAAA955555557}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAAA, 0x0000000055555555D555555500000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000005555555580000000AAAAAAAB}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF4000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFEC000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF4000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFFFFFFFFFE80000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFFBFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD8000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD8000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000010000000080000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAAAAAAAAAA55555555, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x000000000000000000000001FFFFFFFF, 0x00000000800000003FFFFFFFE0000000, 0x00000000000000000000000060000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFB, 0x00000000000000000000000080000005}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFE00000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFC0000000A, 0x00000000000000007FFFFFF28000000A}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000100000000, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x0000000000000000FFFFFFFF00000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000001000000007FFFFFFF, 0x0000000000000000C000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE, 0x00000000000000008000000080000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x0000000000000000C000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFEFFFFFFFF, 0x00000000000000008000000280000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE80000001, 0x0000000000000000BFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFE00000004, 0x00000000000000007FFFFFF680000004}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAAAAAAAAAA, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAAAAAAAAA9, 0x000000000000000155555555D5555557}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA71C71C71, 0x0000000000000000C71C71C800000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAAA38E38E39, 0x000000000000000071C71C71B8E38E39}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x0000000000000001FFFFFFFF00000000, 0x0000000000000000800000003FFFFFFF, 0x0000000000000001BFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000800000003FFFFFFF, 0x00000000000000013FFFFFFF40000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000800000001FFFFFFF, 0x00000000000000019000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD800000037FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFC8000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFB800000047FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFE, 0x00000000000000007FFFFFFE80000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x00000000800000000000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF000000057FFFFFFD}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000057FFFFFFC80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFC, 0x00000000000000057FFFFFFA80000004}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000047FFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x0000000000000003800000027FFFFFFC}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000001, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFD8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE800000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD800000037FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF000000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000100000000800000037FFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x00000001000000008000000280000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000001000000008000000180000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000001000000000000000380000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF800000057FFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000028000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000027FFFFFFF80000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000020000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000080000001800000037FFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFD80000002}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003800000017FFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF7FFFFFFFD5555556}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF2AAAAAAB80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFED55555572AAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFED555555680000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFED5555555D5555556}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE2AAAAAAD2AAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA7FFFFFFFD5555556}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA2AAAAAAB80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAA9D55555572AAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAAA, 0x00000000555555562AAAAAAA80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAAA, 0x00000000555555562AAAAAA9D5555556}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAAA, 0x0000000055555555D555555580000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000055555555800000012AAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF4000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFEC000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF4000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFFC000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000180000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x00000000000000008000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF8000000080000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000001000000010000000080000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000FFFFFFFF0000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000180000000, 0x00000000AAAAAAAAAAAAAAAA55555555, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000800000003FFFFFFFE0000000, 0x000000000000000000000000DFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFB, 0x00000000000000000000000100000004}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFE00000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFC0000000A, 0x00000000000000007FFFFFF300000009}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000100000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x000000000000000100000000FFFFFFFF, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x0000000000000001000000007FFFFFFF, 0x0000000000000000C00000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE, 0x00000000000000008000000100000001}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF7FFFFFFF, 0x0000000000000000C00000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFEFFFFFFFF, 0x00000000000000008000000300000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE80000001, 0x0000000000000000BFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFE00000004, 0x00000000000000007FFFFFF700000003}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAAAAAAAAAA, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAAAAAAAAA9, 0x00000000000000015555555655555556}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA71C71C71, 0x0000000000000000C71C71C87FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAAA38E38E39, 0x000000000000000071C71C7238E38E38}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x0000000000000000800000003FFFFFFF, 0x0000000000000001BFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000800000003FFFFFFF, 0x00000000000000013FFFFFFFC0000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x0000000000000000800000001FFFFFFF, 0x0000000000000001900000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD80000003FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD80000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFC800000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFB80000004FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFE, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFE, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFD, 0x0000000080000000000000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF00000005FFFFFFFC}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000057FFFFFFCFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFC, 0x00000000000000057FFFFFFB00000003}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFC, 0x00000000000000047FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000380000002FFFFFFFB}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFD80000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000100000000, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF80000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE80000002FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE000000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFD80000003FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000008000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF00000002FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000010000000080000003FFFFFFFD}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFE, 0x000000010000000080000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000001000000008000000200000001}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x000000010000000000000003FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x00000000FFFFFFFF80000005FFFFFFFD}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000280000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x00000000800000028000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000200000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000180000003FFFFFFFD}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000380000001FFFFFFFD}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF8000000055555555}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF2AAAAAABFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFED5555557AAAAAAA9}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFED5555556FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFED555555655555555}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFE2AAAAAADAAAAAAA9}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA8000000055555555}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA2AAAAAABFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAA9D5555557AAAAAAA9}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAAA, 0x00000000555555562AAAAAAAFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAAA, 0x00000000555555562AAAAAAA55555555}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAAA, 0x0000000055555555D5555555FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000005555555580000001AAAAAAA9}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF40000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFEC0000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFF40000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFFC00000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFF800000017FFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF80000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF00000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE80000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE80000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE00000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD80000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD80000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFD8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF80000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF00000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE80000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000080000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000008000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF80000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF80000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE80000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD80000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD80000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFD8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF80000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFE80000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x000000000000000080000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFE, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFF00000000FFFFFFFE, 0x00000000000000000000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAAAAAAAAAAAAAAAAAA, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x000000000000000000000001FFFFFFFF, 0x0000000080000000400000001FFFFFFF, 0x0000000000000000000000011FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFB, 0x00000000000000007FFFFFFF00000005}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFE00000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFC0000000B, 0x00000000000000007FFFFFF00000000B}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFD00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000010000000080000000, 0x00000000000000003FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE, 0x0000000000000000FFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000003FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFD00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE80000002, 0x00000000000000003FFFFFFC00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFE00000004, 0x0000000000000000FFFFFFF500000004}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAAAAAAAAAA, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAAAAAAAAAA, 0x00000000000000005555555455555556}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA71C71C71, 0x0000000000000001471C71C680000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAAA38E38E39, 0x0000000000000000F1C71C7038E38E39}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000008000000040000000, 0x00000000000000003FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000800000003FFFFFFF, 0x0000000000000001BFFFFFFDC0000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000008000000020000000, 0x00000000000000000FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFFFFFFFFD00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFE00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFDFFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFC00000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF80000003FFFFFFFD}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000005FFFFFFFB00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000005FFFFFFF900000004}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000004FFFFFFFD00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000400000000FFFFFFFC}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFEFFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE00000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF80000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFD00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000001000000010000000000000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000001000000008000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000010000000000000003FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000028000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000200000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000004FFFFFFFD00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000004FFFFFFFC00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFFFFFFFFFE55555556}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFFAAAAAAAA00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF55555555AAAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF5555555500000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF5555555455555556}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFEAAAAAAABAAAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAAFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAAFFFFFFFE55555556}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAAAAAAAAAA00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA55555555AAAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAAA, 0x0000000055555556AAAAAAA900000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAAA, 0x0000000055555556AAAAAAA855555556}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAAA, 0x00000000555555565555555400000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000055555555FFFFFFFFAAAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFBFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF3FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFFFFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFBFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000003FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFD80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFD00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFD80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFD00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFD80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFD00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFD80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFD00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFD80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFD00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFD80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFD00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000100000001, 0x00000000FFFFFFFF00000000FFFFFFFE, 0x00000000000000000000000000000003}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000180000000, 0x00000000AAAAAAAAAAAAAAAAAAAAAAAA, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x000000000000000000000001FFFFFFFF, 0x0000000080000000400000001FFFFFFF, 0x00000000000000000000000120000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFB, 0x00000000000000007FFFFFFF00000006}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFE00000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFC0000000B, 0x00000000000000007FFFFFF00000000C}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000100000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x0000000000000000FFFFFFFF00000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000010000000080000000, 0x00000000000000003FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE, 0x0000000000000000FFFFFFFF00000003}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000003FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE80000002, 0x00000000000000003FFFFFFC00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFE00000004, 0x0000000000000000FFFFFFF500000005}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAAAAAAAAAA, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAAAAAAAAAA, 0x00000000000000005555555455555557}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA71C71C71, 0x0000000000000001471C71C680000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAAA38E38E39, 0x0000000000000000F1C71C7038E38E3A}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000008000000040000000, 0x00000000000000003FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000800000003FFFFFFF, 0x0000000000000001BFFFFFFDC0000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000008000000020000000, 0x00000000000000000FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFFFFFFFFD00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFE0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFDFFFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD0000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFC0000000300000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFD00000003}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF80000003FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000005FFFFFFFB00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000005FFFFFFF900000005}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000004FFFFFFFD00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000400000000FFFFFFFD}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFEFFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000080000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE0000000200000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFD00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000010000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000007FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000001000000010000000000000003}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000001000000008000000200000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000010000000000000003FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFE00000003}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000028000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000200000001FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000004FFFFFFFD00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000004FFFFFFFC00000003}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000003FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFFFFFFFFFE55555557}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFFAAAAAAAA00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF55555555AAAAAAAB}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF5555555500000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF5555555455555557}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFEAAAAAAABAAAAAAAB}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAAFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAAFFFFFFFE55555557}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAAAAAAAAAA00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA55555555AAAAAAAB}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAAA, 0x0000000055555556AAAAAAA900000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAAA, 0x0000000055555556AAAAAAA855555557}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAAA, 0x00000000555555565555555400000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000055555555FFFFFFFFAAAAAAAB}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFBFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF3FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFBFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF7FFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000003FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFD80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFD00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFD80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFD00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFD80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFD00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFD80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFD00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFD80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFD00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFD80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFD00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE00000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000001000000010000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000100000001, 0x00000000FFFFFFFF00000000FFFFFFFE, 0x00000000000000000000000080000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000180000000, 0x00000000AAAAAAAAAAAAAAAAAAAAAAAA, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x000000000000000000000001FFFFFFFF, 0x0000000080000000400000001FFFFFFF, 0x0000000000000000000000019FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFB, 0x00000000000000007FFFFFFF80000005}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFE00000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFC0000000B, 0x00000000000000007FFFFFF08000000B}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000100000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x0000000000000000FFFFFFFF00000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000010000000080000000, 0x00000000000000003FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE, 0x0000000000000000FFFFFFFF80000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000003FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE80000002, 0x00000000000000003FFFFFFC80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFE00000004, 0x0000000000000000FFFFFFF580000004}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAAAAAAAAAA, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAAAAAAAAAA, 0x000000000000000055555554D5555556}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA71C71C71, 0x0000000000000001471C71C700000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAAA38E38E39, 0x0000000000000000F1C71C70B8E38E39}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000008000000040000000, 0x00000000000000003FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000800000003FFFFFFF, 0x0000000000000001BFFFFFFE40000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000008000000020000000, 0x00000000000000000FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFFFFFFFFD80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFE000000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFE0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFDFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD0000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFC000000037FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFD80000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFE, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF800000047FFFFFFD}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000005FFFFFFFB80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000005FFFFFFF980000004}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000004FFFFFFFD80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x0000000000000004000000017FFFFFFC}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFEFFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE8000000100000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE000000027FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFD80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000008000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFE, 0x00000001000000010000000080000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x00000001000000008000000280000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000100000000000000047FFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFE80000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x00000000800000028000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002000000027FFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000004FFFFFFFD80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000004FFFFFFFC80000002}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x0000000000000004000000007FFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFFFFFFFFFED5555556}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFFAAAAAAAA80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF555555562AAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF5555555580000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF55555554D5555556}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFEAAAAAAAC2AAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAAFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAAFFFFFFFED5555556}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAAAAAAAAAA80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA555555562AAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAAA, 0x0000000055555556AAAAAAA980000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAAA, 0x0000000055555556AAAAAAA8D5555556}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAAA, 0x00000000555555565555555480000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x0000000055555556000000002AAAAAAA}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFBFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF3FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFBFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF8000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000003FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFD80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFD80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFDFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFD80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFD80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFEFFFFFFFFFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFD80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFD80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFDFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFD80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFEFFFFFFFF80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFD80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFE80000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000000000000000000080000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000001000000010000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000100000001, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000180000000, 0x00000000AAAAAAAAAAAAAAAAAAAAAAAA, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x00000000800000004000000020000000, 0x0000000000000000000000001FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000008000000000000001, 0x0000000000000001FFFFFFFFFFFFFFFC, 0x00000000000000000000000000000003}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000008000000080000000, 0x0000000000000001FFFFFFFE00000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000080000000FFFFFFFF, 0x0000000000000001FFFFFFFC0000000B, 0x00000000000000007FFFFFF10000000A}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000000, 0x00000000000000010000000100000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000010000000080000000, 0x00000000000000003FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000010000000000000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000010000000000000000, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000010000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000010000000080000000, 0x0000000000000000FFFFFFFF80000000, 0x00000000000000003FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000100000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000010000000100000000, 0x0000000000000000FFFFFFFF00000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000010000000100000001, 0x0000000000000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000010000000180000000, 0x0000000000000000FFFFFFFE80000002, 0x00000000000000003FFFFFFCFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000100000001FFFFFFFF, 0x0000000000000000FFFFFFFE00000004, 0x0000000000000000FFFFFFF600000003}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000018000000000000000, 0x0000000000000000AAAAAAAAAAAAAAAA, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000018000000000000001, 0x0000000000000000AAAAAAAAAAAAAAAA, 0x00000000000000005555555555555555}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000018000000080000000, 0x0000000000000000AAAAAAAA71C71C71, 0x0000000000000001471C71C77FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x000000000000000180000000FFFFFFFF, 0x0000000000000000AAAAAAAA38E38E39, 0x0000000000000000F1C71C7138E38E38}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000000, 0x00000000000000008000000040000000, 0x00000000000000003FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF00000001, 0x0000000000000000800000003FFFFFFF, 0x0000000000000001BFFFFFFEC0000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFF80000000, 0x00000000000000008000000020000000, 0x00000000000000000FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000008000000000000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000000000000000000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000000000000000000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000000000000080000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x000000008000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFE00000002FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000000000000100000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFE00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000000000000100000001, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFDFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000000000000180000000, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFD000000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x000000008000000000000001FFFFFFFF, 0x000000000000000000000001FFFFFFFF, 0x000000007FFFFFFC00000003FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000008000000000000000, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000008000000000000001, 0x000000000000000000000001FFFFFFFE, 0x0000000000000000FFFFFFFE00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000800000008000000080000000, 0x000000000000000000000001FFFFFFFE, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x000000008000000080000000FFFFFFFF, 0x000000000000000000000001FFFFFFFD, 0x000000007FFFFFFF80000004FFFFFFFC}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000005FFFFFFFBFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF00000001, 0x000000000000000000000001FFFFFFFC, 0x0000000000000005FFFFFFFA00000003}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFF80000000, 0x000000000000000000000001FFFFFFFC, 0x0000000000000004FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000080000000FFFFFFFFFFFFFFFF, 0x000000000000000000000001FFFFFFFC, 0x000000000000000400000001FFFFFFFB}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000000, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000000000001, 0x00000000000000000000000100000001, 0x0000000000000000FFFFFFFEFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000080000000, 0x00000000000000000000000100000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000100000001, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000100000001, 0x00000000000000000000000100000000, 0x00000000FFFFFFFEFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF0000000180000000, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000100000000, 0x00000000FFFFFFFE00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000000000001, 0x00000000000000000000000100000000, 0x000000007FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF8000000080000000, 0x00000000000000000000000100000000, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000100000000, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000100000000, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000100000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000100000000, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000000000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000000000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000000000000080000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x000000010000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF00000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000000000000100000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000000000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000000000000180000000, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE800000017FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x000000010000000000000001FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x00000000FFFFFFFE00000002FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000008000000000000000, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000008000000000000001, 0x000000000000000000000000FFFFFFFF, 0x00000000800000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000008000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000080000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x000000010000000080000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000007FFFFFFF80000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000001FFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFF, 0x00000000000000017FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000100000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000010000000000000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000010000000000000001, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000010000000080000000, 0x000000000000000000000000FFFFFFFF, 0x0000000000000000800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x000000010000000100000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000001FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000010000000100000000, 0x000000000000000000000000FFFFFFFF, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000010000000100000001, 0x000000000000000000000000FFFFFFFF, 0x00000000000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000010000000180000000, 0x000000000000000000000000FFFFFFFE, 0x000000010000000080000002FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x000000010000000100000001FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000010000000000000004FFFFFFFD}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000018000000000000000, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000018000000000000001, 0x000000000000000000000000FFFFFFFE, 0x0000000080000002FFFFFFFF00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001000000018000000080000000, 0x000000000000000000000000FFFFFFFE, 0x000000008000000280000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x000000010000000180000000FFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000008000000200000002FFFFFFFD}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000000, 0x000000000000000000000000FFFFFFFE, 0x0000000000000004FFFFFFFDFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF00000001, 0x000000000000000000000000FFFFFFFE, 0x0000000000000004FFFFFFFD00000001}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFF80000000, 0x000000000000000000000000FFFFFFFE, 0x00000000000000047FFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000100000001FFFFFFFFFFFFFFFF, 0x000000000000000000000000FFFFFFFE, 0x000000000000000400000000FFFFFFFD}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000000000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000000000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFFFFFFFFFF55555555}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000000000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFFAAAAAAAAFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x000000018000000000000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF55555556AAAAAAA9}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000000000000100000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF55555555FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000000000000100000001, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF5555555555555555}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000000000000180000000, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x000000018000000000000001FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000FFFFFFFEAAAAAAACAAAAAAA9}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000008000000000000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAAFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000008000000000000001, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAAFFFFFFFF55555555}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001800000008000000080000000, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAAAAAAAAAAFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x000000018000000080000000FFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x00000000AAAAAAAA55555556AAAAAAA9}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000000, 0x000000000000000000000000AAAAAAAA, 0x0000000055555556AAAAAAA9FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF00000001, 0x000000000000000000000000AAAAAAAA, 0x0000000055555556AAAAAAA955555555}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFF80000000, 0x000000000000000000000000AAAAAAAA, 0x000000005555555655555554FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x0000000180000000FFFFFFFFFFFFFFFF, 0x000000000000000000000000AAAAAAAA, 0x000000005555555600000000AAAAAAA9}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000000000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000080000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFFBFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000100000001, 0x00000000000000000000000080000000, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF0000000180000000, 0x00000000000000000000000080000000, 0x000000007FFFFFFF3FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000080000000, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000000000001, 0x00000000000000000000000080000000, 0x000000003FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF8000000080000000, 0x00000000000000000000000080000000, 0x000000003FFFFFFFBFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000080000000, 0x000000003FFFFFFF800000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000080000000, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000080000000, 0x00000000000000003FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000001FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000080000000, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x800000000000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFEFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x800000000000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x800000000000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF00000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000010000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000010000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000010000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x800000000000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000010000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000010000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFEFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000010000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x800000000000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFEFFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000018000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000018000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000000000018000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x800000000000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE00000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000000000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFFFFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000000000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000000000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000000000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x800000008000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000000000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000000000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFEFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000000000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x800000008000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000008000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000008000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000800000008000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x800000008000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF00000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x8000000080000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF7FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFEFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x7FFFFFFF0000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x7FFFFFFF00000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x80000000FFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x7FFFFFFF000000000000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFEFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000000000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000008000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF00000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000100000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFEFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000010000000180000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000100000001FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFEFFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000000000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF000000018000000080000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF0000000180000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE00000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF00000001FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000FFFFFFFE0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000100000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFEFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000000000000180000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000000000001FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFFFFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000000000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF800000008000000080000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF8000000080000000FFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF7FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000007FFFFFFF00000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFF80000000, 0x00000000000000000000000000000001, 0x000000007FFFFFFF000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFF80000000FFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x000000007FFFFFFF0000000000000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000000000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000080000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000000FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000100000001, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFEFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF0000000180000000, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF00000001FFFFFFFF, 0x00000000000000000000000000000001, 0x0000000000000000FFFFFFFE00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000000000001, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFFFFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF8000000080000000, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF7FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF80000000FFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000007FFFFFFF00000000}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000000, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF00000001, 0x00000000000000000000000000000001, 0x000000000000000000000000FFFFFFFE}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFF80000000, 0x00000000000000000000000000000001, 0x0000000000000000000000007FFFFFFF}, + [_]u128{0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, 0x00000000000000000000000000000001, 0x00000000000000000000000000000000}, +}; diff --git a/lib/std/special/compiler_rt/udivti3.zig b/lib/std/special/compiler_rt/udivti3.zig new file mode 100644 index 0000000000..ab451859bf --- /dev/null +++ b/lib/std/special/compiler_rt/udivti3.zig @@ -0,0 +1,13 @@ +const udivmodti4 = @import("udivmodti4.zig"); +const builtin = @import("builtin"); + +pub extern fn __udivti3(a: u128, b: u128) u128 { + @setRuntimeSafety(builtin.is_test); + return udivmodti4.__udivmodti4(a, b, null); +} + +const v128 = @Vector(2, u64); +pub extern fn __udivti3_windows_x86_64(a: v128, b: v128) v128 { + @setRuntimeSafety(builtin.is_test); + return udivmodti4.__udivmodti4_windows_x86_64(a, b, null); +} diff --git a/lib/std/special/compiler_rt/umodti3.zig b/lib/std/special/compiler_rt/umodti3.zig new file mode 100644 index 0000000000..7add0b2ffe --- /dev/null +++ b/lib/std/special/compiler_rt/umodti3.zig @@ -0,0 +1,15 @@ +const udivmodti4 = @import("udivmodti4.zig"); +const builtin = @import("builtin"); +const compiler_rt = @import("../compiler_rt.zig"); + +pub extern fn __umodti3(a: u128, b: u128) u128 { + @setRuntimeSafety(builtin.is_test); + var r: u128 = undefined; + _ = udivmodti4.__udivmodti4(a, b, &r); + return r; +} + +const v128 = @Vector(2, u64); +pub extern fn __umodti3_windows_x86_64(a: v128, b: v128) v128 { + return @bitCast(v128, @inlineCall(__umodti3, @bitCast(u128, a), @bitCast(u128, b))); +} diff --git a/lib/std/special/init-exe/build.zig b/lib/std/special/init-exe/build.zig new file mode 100644 index 0000000000..0b7410f2ad --- /dev/null +++ b/lib/std/special/init-exe/build.zig @@ -0,0 +1,14 @@ +const Builder = @import("std").build.Builder; + +pub fn build(b: *Builder) void { + const mode = b.standardReleaseOptions(); + const exe = b.addExecutable("$", "src/main.zig"); + exe.setBuildMode(mode); + exe.install(); + + const run_cmd = exe.run(); + run_cmd.step.dependOn(b.getInstallStep()); + + const run_step = b.step("run", "Run the app"); + run_step.dependOn(&run_cmd.step); +} diff --git a/lib/std/special/init-exe/src/main.zig b/lib/std/special/init-exe/src/main.zig new file mode 100644 index 0000000000..128820d3ee --- /dev/null +++ b/lib/std/special/init-exe/src/main.zig @@ -0,0 +1,5 @@ +const std = @import("std"); + +pub fn main() anyerror!void { + std.debug.warn("All your base are belong to us.\n"); +} diff --git a/lib/std/special/init-lib/build.zig b/lib/std/special/init-lib/build.zig new file mode 100644 index 0000000000..558e447c15 --- /dev/null +++ b/lib/std/special/init-lib/build.zig @@ -0,0 +1,14 @@ +const Builder = @import("std").build.Builder; + +pub fn build(b: *Builder) void { + const mode = b.standardReleaseOptions(); + const lib = b.addStaticLibrary("$", "src/main.zig"); + lib.setBuildMode(mode); + lib.install(); + + var main_tests = b.addTest("src/main.zig"); + main_tests.setBuildMode(mode); + + const test_step = b.step("test", "Run library tests"); + test_step.dependOn(&main_tests.step); +} diff --git a/lib/std/special/init-lib/src/main.zig b/lib/std/special/init-lib/src/main.zig new file mode 100644 index 0000000000..747bb08573 --- /dev/null +++ b/lib/std/special/init-lib/src/main.zig @@ -0,0 +1,10 @@ +const std = @import("std"); +const testing = std.testing; + +export fn add(a: i32, b: i32) i32 { + return a + b; +} + +test "basic add functionality" { + testing.expect(add(3, 7) == 10); +} diff --git a/lib/std/special/panic.zig b/lib/std/special/panic.zig new file mode 100644 index 0000000000..f42085126b --- /dev/null +++ b/lib/std/special/panic.zig @@ -0,0 +1,31 @@ +// This file is the default panic handler if the root source file does not +// have a `pub fn panic`. +// If this file wants to import other files *by name*, support for that would +// have to be added in the compiler. + +const builtin = @import("builtin"); +const std = @import("std"); + +pub fn panic(msg: []const u8, error_return_trace: ?*builtin.StackTrace) noreturn { + @setCold(true); + switch (builtin.os) { + .freestanding => { + while (true) { + @breakpoint(); + } + }, + .wasi => { + std.debug.warn("{}", msg); + _ = std.os.wasi.proc_raise(std.os.wasi.SIGABRT); + unreachable; + }, + .uefi => { + // TODO look into using the debug info and logging helpful messages + std.os.abort(); + }, + else => { + const first_trace_addr = @returnAddress(); + std.debug.panicExtra(error_return_trace, first_trace_addr, "{}", msg); + }, + } +} diff --git a/lib/std/special/start.zig b/lib/std/special/start.zig new file mode 100644 index 0000000000..ca7d7986ed --- /dev/null +++ b/lib/std/special/start.zig @@ -0,0 +1,212 @@ +// This file is included in the compilation unit when exporting an executable. + +const root = @import("root"); +const std = @import("std"); +const builtin = @import("builtin"); +const assert = std.debug.assert; +const uefi = std.os.uefi; + +var starting_stack_ptr: [*]usize = undefined; + +const is_wasm = switch (builtin.arch) { + .wasm32, .wasm64 => true, + else => false, +}; + +comptime { + if (builtin.link_libc) { + @export("main", main, .Strong); + } else if (builtin.os == .windows) { + @export("WinMainCRTStartup", WinMainCRTStartup, .Strong); + } else if (is_wasm and builtin.os == .freestanding) { + @export("_start", wasm_freestanding_start, .Strong); + } else if (builtin.os == .uefi) { + @export("EfiMain", EfiMain, .Strong); + } else { + if (!@hasDecl(root, "_start")) @export("_start", _start, .Strong); + } +} + +extern fn wasm_freestanding_start() void { + _ = callMain(); +} + +extern fn EfiMain(handle: uefi.Handle, system_table: *uefi.tables.SystemTable) usize { + const bad_efi_main_ret = "expected return type of main to be 'void', 'noreturn', or 'usize'"; + uefi.handle = handle; + uefi.system_table = system_table; + + switch (@typeInfo(@typeOf(root.main).ReturnType)) { + .NoReturn => { + root.main(); + }, + .Void => { + root.main(); + return 0; + }, + .Int => |info| { + if (info.bits != @typeInfo(usize).Int.bits) { + @compileError(bad_efi_main_ret); + } + return root.main(); + }, + else => @compileError(bad_efi_main_ret), + } +} + +nakedcc fn _start() noreturn { + if (builtin.os == builtin.Os.wasi) { + std.os.wasi.proc_exit(callMain()); + } + + switch (builtin.arch) { + .x86_64 => { + starting_stack_ptr = asm ("" + : [argc] "={rsp}" (-> [*]usize) + ); + }, + .i386 => { + starting_stack_ptr = asm ("" + : [argc] "={esp}" (-> [*]usize) + ); + }, + .aarch64, .aarch64_be, .arm => { + starting_stack_ptr = asm ("mov %[argc], sp" + : [argc] "=r" (-> [*]usize) + ); + }, + .riscv64 => { + starting_stack_ptr = asm ("mv %[argc], sp" + : [argc] "=r" (-> [*]usize) + ); + }, + else => @compileError("unsupported arch"), + } + // If LLVM inlines stack variables into _start, they will overwrite + // the command line argument data. + @noInlineCall(posixCallMainAndExit); +} + +extern fn WinMainCRTStartup() noreturn { + @setAlignStack(16); + if (!builtin.single_threaded) { + _ = @import("start_windows_tls.zig"); + } + + std.debug.maybeEnableSegfaultHandler(); + + std.os.windows.kernel32.ExitProcess(callMain()); +} + +// TODO https://github.com/ziglang/zig/issues/265 +fn posixCallMainAndExit() noreturn { + if (builtin.os == builtin.Os.freebsd) { + @setAlignStack(16); + } + const argc = starting_stack_ptr[0]; + const argv = @ptrCast([*][*]u8, starting_stack_ptr + 1); + + const envp_optional = @ptrCast([*]?[*]u8, argv + argc + 1); + var envp_count: usize = 0; + while (envp_optional[envp_count]) |_| : (envp_count += 1) {} + const envp = @ptrCast([*][*]u8, envp_optional)[0..envp_count]; + + if (builtin.os == .linux) { + // Find the beginning of the auxiliary vector + const auxv = @ptrCast([*]std.elf.Auxv, envp.ptr + envp_count + 1); + std.os.linux.elf_aux_maybe = auxv; + // Initialize the TLS area + const gnu_stack_phdr = std.os.linux.tls.initTLS() orelse @panic("ELF missing stack size"); + + if (std.os.linux.tls.tls_image) |tls_img| { + const tls_addr = std.os.linux.tls.allocateTLS(tls_img.alloc_size); + const tp = std.os.linux.tls.copyTLS(tls_addr); + std.os.linux.tls.setThreadPointer(tp); + } + + // TODO This is disabled because what should we do when linking libc and this code + // does not execute? And also it's causing a test failure in stack traces in release modes. + + //// Linux ignores the stack size from the ELF file, and instead always does 8 MiB. A further + //// problem is that it uses PROT_GROWSDOWN which prevents stores to addresses too far down + //// the stack and requires "probing". So here we allocate our own stack. + //const wanted_stack_size = gnu_stack_phdr.p_memsz; + //assert(wanted_stack_size % std.mem.page_size == 0); + //// Allocate an extra page as the guard page. + //const total_size = wanted_stack_size + std.mem.page_size; + //const new_stack = std.os.mmap( + // null, + // total_size, + // std.os.PROT_READ | std.os.PROT_WRITE, + // std.os.MAP_PRIVATE | std.os.MAP_ANONYMOUS, + // -1, + // 0, + //) catch @panic("out of memory"); + //std.os.mprotect(new_stack[0..std.mem.page_size], std.os.PROT_NONE) catch {}; + //std.os.exit(@newStackCall(new_stack, callMainWithArgs, argc, argv, envp)); + } + + std.os.exit(@inlineCall(callMainWithArgs, argc, argv, envp)); +} + +fn callMainWithArgs(argc: usize, argv: [*][*]u8, envp: [][*]u8) u8 { + std.os.argv = argv[0..argc]; + std.os.environ = envp; + + std.debug.maybeEnableSegfaultHandler(); + + return callMain(); +} + +extern fn main(c_argc: i32, c_argv: [*][*]u8, c_envp: [*]?[*]u8) i32 { + var env_count: usize = 0; + while (c_envp[env_count] != null) : (env_count += 1) {} + const envp = @ptrCast([*][*]u8, c_envp)[0..env_count]; + return @inlineCall(callMainWithArgs, @intCast(usize, c_argc), c_argv, envp); +} + +// General error message for a malformed return type +const bad_main_ret = "expected return type of main to be 'void', '!void', 'noreturn', 'u8', or '!u8'"; + +// This is marked inline because for some reason LLVM in release mode fails to inline it, +// and we want fewer call frames in stack traces. +inline fn callMain() u8 { + switch (@typeInfo(@typeOf(root.main).ReturnType)) { + .NoReturn => { + root.main(); + }, + .Void => { + root.main(); + return 0; + }, + .Int => |info| { + if (info.bits != 8) { + @compileError(bad_main_ret); + } + return root.main(); + }, + .ErrorUnion => { + const result = root.main() catch |err| { + std.debug.warn("error: {}\n", @errorName(err)); + if (@errorReturnTrace()) |trace| { + std.debug.dumpStackTrace(trace.*); + } + return 1; + }; + switch (@typeInfo(@typeOf(result))) { + .Void => return 0, + .Int => |info| { + if (info.bits != 8) { + @compileError(bad_main_ret); + } + return result; + }, + else => @compileError(bad_main_ret), + } + }, + else => @compileError(bad_main_ret), + } +} + +const main_thread_tls_align = 32; +var main_thread_tls_bytes: [64]u8 align(main_thread_tls_align) = [1]u8{0} ** 64; diff --git a/lib/std/special/start_lib.zig b/lib/std/special/start_lib.zig new file mode 100644 index 0000000000..701eee389d --- /dev/null +++ b/lib/std/special/start_lib.zig @@ -0,0 +1,16 @@ +// This file is included in the compilation unit when exporting a DLL on windows. + +const std = @import("std"); +const builtin = @import("builtin"); + +comptime { + @export("_DllMainCRTStartup", _DllMainCRTStartup, builtin.GlobalLinkage.Strong); +} + +stdcallcc fn _DllMainCRTStartup( + hinstDLL: std.os.windows.HINSTANCE, + fdwReason: std.os.windows.DWORD, + lpReserved: std.os.windows.LPVOID, +) std.os.windows.BOOL { + return std.os.windows.TRUE; +} diff --git a/lib/std/special/start_windows_tls.zig b/lib/std/special/start_windows_tls.zig new file mode 100644 index 0000000000..71165d355b --- /dev/null +++ b/lib/std/special/start_windows_tls.zig @@ -0,0 +1,36 @@ +const std = @import("std"); + +export var _tls_index: u32 = std.os.windows.TLS_OUT_OF_INDEXES; +export var _tls_start: u8 linksection(".tls") = 0; +export var _tls_end: u8 linksection(".tls$ZZZ") = 0; +export var __xl_a: std.os.windows.PIMAGE_TLS_CALLBACK linksection(".CRT$XLA") = null; +export var __xl_z: std.os.windows.PIMAGE_TLS_CALLBACK linksection(".CRT$XLZ") = null; + +// TODO this is how I would like it to be expressed +// TODO also note, ReactOS has a +1 on StartAddressOfRawData and AddressOfCallBacks. Investigate +// why they do that. +//export const _tls_used linksection(".rdata$T") = std.os.windows.IMAGE_TLS_DIRECTORY { +// .StartAddressOfRawData = @ptrToInt(&_tls_start), +// .EndAddressOfRawData = @ptrToInt(&_tls_end), +// .AddressOfIndex = @ptrToInt(&_tls_index), +// .AddressOfCallBacks = @ptrToInt(__xl_a), +// .SizeOfZeroFill = 0, +// .Characteristics = 0, +//}; +// This is the workaround because we can't do @ptrToInt at comptime like that. +pub const IMAGE_TLS_DIRECTORY = extern struct { + StartAddressOfRawData: *c_void, + EndAddressOfRawData: *c_void, + AddressOfIndex: *c_void, + AddressOfCallBacks: *c_void, + SizeOfZeroFill: u32, + Characteristics: u32, +}; +export const _tls_used linksection(".rdata$T") = IMAGE_TLS_DIRECTORY{ + .StartAddressOfRawData = &_tls_start, + .EndAddressOfRawData = &_tls_end, + .AddressOfIndex = &_tls_index, + .AddressOfCallBacks = &__xl_a, + .SizeOfZeroFill = 0, + .Characteristics = 0, +}; diff --git a/lib/std/special/test_runner.zig b/lib/std/special/test_runner.zig new file mode 100644 index 0000000000..db01293059 --- /dev/null +++ b/lib/std/special/test_runner.zig @@ -0,0 +1,29 @@ +const std = @import("std"); +const io = std.io; +const builtin = @import("builtin"); +const test_fn_list = builtin.test_functions; +const warn = std.debug.warn; + +pub fn main() !void { + var ok_count: usize = 0; + var skip_count: usize = 0; + for (test_fn_list) |test_fn, i| { + warn("{}/{} {}...", i + 1, test_fn_list.len, test_fn.name); + + if (test_fn.func()) |_| { + ok_count += 1; + warn("OK\n"); + } else |err| switch (err) { + error.SkipZigTest => { + skip_count += 1; + warn("SKIP\n"); + }, + else => return err, + } + } + if (ok_count == test_fn_list.len) { + warn("All tests passed.\n"); + } else { + warn("{} passed; {} skipped.\n", ok_count, skip_count); + } +} diff --git a/lib/std/spinlock.zig b/lib/std/spinlock.zig new file mode 100644 index 0000000000..905460a2d0 --- /dev/null +++ b/lib/std/spinlock.zig @@ -0,0 +1,32 @@ +const std = @import("std.zig"); +const builtin = @import("builtin"); +const AtomicOrder = builtin.AtomicOrder; +const AtomicRmwOp = builtin.AtomicRmwOp; +const assert = std.debug.assert; + +pub const SpinLock = struct { + lock: u8, // TODO use a bool or enum + + pub const Held = struct { + spinlock: *SpinLock, + + pub fn release(self: Held) void { + assert(@atomicRmw(u8, &self.spinlock.lock, builtin.AtomicRmwOp.Xchg, 0, AtomicOrder.SeqCst) == 1); + } + }; + + pub fn init() SpinLock { + return SpinLock{ .lock = 0 }; + } + + pub fn acquire(self: *SpinLock) Held { + while (@atomicRmw(u8, &self.lock, builtin.AtomicRmwOp.Xchg, 1, AtomicOrder.SeqCst) != 0) {} + return Held{ .spinlock = self }; + } +}; + +test "spinlock" { + var lock = SpinLock.init(); + const held = lock.acquire(); + defer held.release(); +} diff --git a/lib/std/statically_initialized_mutex.zig b/lib/std/statically_initialized_mutex.zig new file mode 100644 index 0000000000..2ad47b5d91 --- /dev/null +++ b/lib/std/statically_initialized_mutex.zig @@ -0,0 +1,105 @@ +const std = @import("std.zig"); +const builtin = @import("builtin"); +const AtomicOrder = builtin.AtomicOrder; +const AtomicRmwOp = builtin.AtomicRmwOp; +const assert = std.debug.assert; +const expect = std.testing.expect; +const windows = std.os.windows; + +/// Lock may be held only once. If the same thread +/// tries to acquire the same mutex twice, it deadlocks. +/// This type is intended to be initialized statically. If you don't +/// require static initialization, use std.Mutex. +/// On Windows, this mutex allocates resources when it is +/// first used, and the resources cannot be freed. +/// On Linux, this is an alias of std.Mutex. +pub const StaticallyInitializedMutex = switch (builtin.os) { + builtin.Os.linux => std.Mutex, + builtin.Os.windows => struct { + lock: windows.CRITICAL_SECTION, + init_once: windows.RTL_RUN_ONCE, + + pub const Held = struct { + mutex: *StaticallyInitializedMutex, + + pub fn release(self: Held) void { + windows.kernel32.LeaveCriticalSection(&self.mutex.lock); + } + }; + + pub fn init() StaticallyInitializedMutex { + return StaticallyInitializedMutex{ + .lock = undefined, + .init_once = windows.INIT_ONCE_STATIC_INIT, + }; + } + + extern fn initCriticalSection( + InitOnce: *windows.RTL_RUN_ONCE, + Parameter: ?*c_void, + Context: ?*c_void, + ) windows.BOOL { + const lock = @ptrCast(*windows.CRITICAL_SECTION, @alignCast(@alignOf(windows.CRITICAL_SECTION), Parameter)); + windows.kernel32.InitializeCriticalSection(lock); + return windows.TRUE; + } + + /// TODO: once https://github.com/ziglang/zig/issues/287 is solved and std.Mutex has a better + /// implementation of a runtime initialized mutex, remove this function. + pub fn deinit(self: *StaticallyInitializedMutex) void { + windows.InitOnceExecuteOnce(&self.init_once, initCriticalSection, &self.lock, null); + windows.kernel32.DeleteCriticalSection(&self.lock); + } + + pub fn acquire(self: *StaticallyInitializedMutex) Held { + windows.InitOnceExecuteOnce(&self.init_once, initCriticalSection, &self.lock, null); + windows.kernel32.EnterCriticalSection(&self.lock); + return Held{ .mutex = self }; + } + }, + else => std.Mutex, +}; + +test "std.StaticallyInitializedMutex" { + const TestContext = struct { + data: i128, + + const TestContext = @This(); + const incr_count = 10000; + + var mutex = StaticallyInitializedMutex.init(); + + fn worker(ctx: *TestContext) void { + var i: usize = 0; + while (i != TestContext.incr_count) : (i += 1) { + const held = mutex.acquire(); + defer held.release(); + + ctx.data += 1; + } + } + }; + + var plenty_of_memory = try std.heap.direct_allocator.alloc(u8, 300 * 1024); + defer std.heap.direct_allocator.free(plenty_of_memory); + + var fixed_buffer_allocator = std.heap.ThreadSafeFixedBufferAllocator.init(plenty_of_memory); + var a = &fixed_buffer_allocator.allocator; + + var context = TestContext{ .data = 0 }; + + if (builtin.single_threaded) { + TestContext.worker(&context); + expect(context.data == TestContext.incr_count); + } else { + const thread_count = 10; + var threads: [thread_count]*std.Thread = undefined; + for (threads) |*t| { + t.* = try std.Thread.spawn(&context, TestContext.worker); + } + for (threads) |t| + t.wait(); + + expect(context.data == thread_count * TestContext.incr_count); + } +} diff --git a/lib/std/std.zig b/lib/std/std.zig new file mode 100644 index 0000000000..1c64242c4b --- /dev/null +++ b/lib/std/std.zig @@ -0,0 +1,122 @@ +pub const AlignedArrayList = @import("array_list.zig").AlignedArrayList; +pub const ArrayList = @import("array_list.zig").ArrayList; +pub const AutoHashMap = @import("hash_map.zig").AutoHashMap; +pub const BloomFilter = @import("bloom_filter.zig").BloomFilter; +pub const BufMap = @import("buf_map.zig").BufMap; +pub const BufSet = @import("buf_set.zig").BufSet; +pub const Buffer = @import("buffer.zig").Buffer; +pub const BufferOutStream = @import("io.zig").BufferOutStream; +pub const DynLib = @import("dynamic_library.zig").DynLib; +pub const HashMap = @import("hash_map.zig").HashMap; +pub const Mutex = @import("mutex.zig").Mutex; +pub const PackedIntArrayEndian = @import("packed_int_array.zig").PackedIntArrayEndian; +pub const PackedIntArray = @import("packed_int_array.zig").PackedIntArray; +pub const PackedIntSliceEndian = @import("packed_int_array.zig").PackedIntSliceEndian; +pub const PackedIntSlice = @import("packed_int_array.zig").PackedIntSlice; +pub const PriorityQueue = @import("priority_queue.zig").PriorityQueue; +pub const SinglyLinkedList = @import("linked_list.zig").SinglyLinkedList; +pub const StaticallyInitializedMutex = @import("statically_initialized_mutex.zig").StaticallyInitializedMutex; +pub const SegmentedList = @import("segmented_list.zig").SegmentedList; +pub const SpinLock = @import("spinlock.zig").SpinLock; +pub const StringHashMap = @import("hash_map.zig").StringHashMap; +pub const ChildProcess = @import("child_process.zig").ChildProcess; +pub const TailQueue = @import("linked_list.zig").TailQueue; +pub const Thread = @import("thread.zig").Thread; + +pub const atomic = @import("atomic.zig"); +pub const base64 = @import("base64.zig"); +pub const build = @import("build.zig"); +pub const c = @import("c.zig"); +pub const coff = @import("coff.zig"); +pub const crypto = @import("crypto.zig"); +pub const cstr = @import("cstr.zig"); +pub const debug = @import("debug.zig"); +pub const dwarf = @import("dwarf.zig"); +pub const elf = @import("elf.zig"); +pub const event = @import("event.zig"); +pub const fmt = @import("fmt.zig"); +pub const fs = @import("fs.zig"); +pub const hash = @import("hash.zig"); +pub const hash_map = @import("hash_map.zig"); +pub const heap = @import("heap.zig"); +pub const http = @import("http.zig"); +pub const io = @import("io.zig"); +pub const json = @import("json.zig"); +pub const lazyInit = @import("lazy_init.zig").lazyInit; +pub const macho = @import("macho.zig"); +pub const math = @import("math.zig"); +pub const mem = @import("mem.zig"); +pub const meta = @import("meta.zig"); +pub const net = @import("net.zig"); +pub const os = @import("os.zig"); +pub const packed_int_array = @import("packed_int_array.zig"); +pub const pdb = @import("pdb.zig"); +pub const process = @import("process.zig"); +pub const rand = @import("rand.zig"); +pub const rb = @import("rb.zig"); +pub const sort = @import("sort.zig"); +pub const ascii = @import("ascii.zig"); +pub const testing = @import("testing.zig"); +pub const time = @import("time.zig"); +pub const unicode = @import("unicode.zig"); +pub const valgrind = @import("valgrind.zig"); +pub const zig = @import("zig.zig"); + +test "std" { + // run tests from these + _ = @import("array_list.zig"); + _ = @import("atomic.zig"); + _ = @import("bloom_filter.zig"); + _ = @import("buf_map.zig"); + _ = @import("buf_set.zig"); + _ = @import("buffer.zig"); + _ = @import("hash_map.zig"); + _ = @import("linked_list.zig"); + _ = @import("mutex.zig"); + _ = @import("statically_initialized_mutex.zig"); + _ = @import("segmented_list.zig"); + _ = @import("spinlock.zig"); + _ = @import("child_process.zig"); + + _ = @import("ascii.zig"); + _ = @import("base64.zig"); + _ = @import("build.zig"); + _ = @import("c.zig"); + _ = @import("coff.zig"); + _ = @import("crypto.zig"); + _ = @import("cstr.zig"); + _ = @import("debug.zig"); + _ = @import("dwarf.zig"); + _ = @import("dynamic_library.zig"); + _ = @import("elf.zig"); + _ = @import("event.zig"); + _ = @import("fmt.zig"); + _ = @import("fs.zig"); + _ = @import("hash.zig"); + _ = @import("heap.zig"); + _ = @import("http.zig"); + _ = @import("io.zig"); + _ = @import("json.zig"); + _ = @import("lazy_init.zig"); + _ = @import("macho.zig"); + _ = @import("math.zig"); + _ = @import("mem.zig"); + _ = @import("meta.zig"); + _ = @import("net.zig"); + _ = @import("os.zig"); + _ = @import("pdb.zig"); + _ = @import("process.zig"); + _ = @import("packed_int_array.zig"); + _ = @import("priority_queue.zig"); + _ = @import("rand.zig"); + _ = @import("rb.zig"); + _ = @import("sort.zig"); + _ = @import("testing.zig"); + _ = @import("thread.zig"); + _ = @import("time.zig"); + _ = @import("unicode.zig"); + _ = @import("valgrind.zig"); + _ = @import("zig.zig"); + + _ = @import("debug/leb128.zig"); +} diff --git a/lib/std/testing.zig b/lib/std/testing.zig new file mode 100644 index 0000000000..7f347b0c24 --- /dev/null +++ b/lib/std/testing.zig @@ -0,0 +1,150 @@ +const builtin = @import("builtin"); +const TypeId = builtin.TypeId; +const std = @import("std.zig"); + +/// This function is intended to be used only in tests. It prints diagnostics to stderr +/// and then aborts when actual_error_union is not expected_error. +pub fn expectError(expected_error: anyerror, actual_error_union: var) void { + if (actual_error_union) |actual_payload| { + // TODO remove workaround here for https://github.com/ziglang/zig/issues/557 + if (@sizeOf(@typeOf(actual_payload)) == 0) { + std.debug.panic("expected error.{}, found {} value", @errorName(expected_error), @typeName(@typeOf(actual_payload))); + } else { + std.debug.panic("expected error.{}, found {}", @errorName(expected_error), actual_payload); + } + } else |actual_error| { + if (expected_error != actual_error) { + std.debug.panic("expected error.{}, found error.{}", @errorName(expected_error), @errorName(actual_error)); + } + } +} + +/// This function is intended to be used only in tests. When the two values are not +/// equal, prints diagnostics to stderr to show exactly how they are not equal, +/// then aborts. +/// The types must match exactly. +pub fn expectEqual(expected: var, actual: @typeOf(expected)) void { + switch (@typeInfo(@typeOf(actual))) { + .NoReturn, + .BoundFn, + .ArgTuple, + .Opaque, + .Frame, + .AnyFrame, + => @compileError("value of type " ++ @typeName(@typeOf(actual)) ++ " encountered"), + + .Undefined, + .Null, + .Void, + => return, + + .Type, + .Bool, + .Int, + .Float, + .ComptimeFloat, + .ComptimeInt, + .EnumLiteral, + .Enum, + .Fn, + .Vector, + .ErrorSet, + => { + if (actual != expected) { + std.debug.panic("expected {}, found {}", expected, actual); + } + }, + + .Pointer => |pointer| { + switch (pointer.size) { + builtin.TypeInfo.Pointer.Size.One, + builtin.TypeInfo.Pointer.Size.Many, + builtin.TypeInfo.Pointer.Size.C, + => { + if (actual != expected) { + std.debug.panic("expected {}, found {}", expected, actual); + } + }, + + builtin.TypeInfo.Pointer.Size.Slice => { + if (actual.ptr != expected.ptr) { + std.debug.panic("expected slice ptr {}, found {}", expected.ptr, actual.ptr); + } + if (actual.len != expected.len) { + std.debug.panic("expected slice len {}, found {}", expected.len, actual.len); + } + }, + } + }, + + .Array => |array| expectEqualSlices(array.child, &expected, &actual), + + .Struct => |structType| { + inline for (structType.fields) |field| { + expectEqual(@field(expected, field.name), @field(actual, field.name)); + } + }, + + .Union => |union_info| { + if (union_info.tag_type == null) { + @compileError("Unable to compare untagged union values"); + } + @compileError("TODO implement testing.expectEqual for tagged unions"); + }, + + .Optional => { + if (expected) |expected_payload| { + if (actual) |actual_payload| { + expectEqual(expected_payload, actual_payload); + } else { + std.debug.panic("expected {}, found null", expected_payload); + } + } else { + if (actual) |actual_payload| { + std.debug.panic("expected null, found {}", actual_payload); + } + } + }, + + .ErrorUnion => { + if (expected) |expected_payload| { + if (actual) |actual_payload| { + expectEqual(expected_payload, actual_payload); + } else |actual_err| { + std.debug.panic("expected {}, found {}", expected_payload, actual_err); + } + } else |expected_err| { + if (actual) |actual_payload| { + std.debug.panic("expected {}, found {}", expected_err, actual_payload); + } else |actual_err| { + expectEqual(expected_err, actual_err); + } + } + }, + } +} + +/// This function is intended to be used only in tests. When the two slices are not +/// equal, prints diagnostics to stderr to show exactly how they are not equal, +/// then aborts. +pub fn expectEqualSlices(comptime T: type, expected: []const T, actual: []const T) void { + // TODO better printing of the difference + // If the arrays are small enough we could print the whole thing + // If the child type is u8 and no weird bytes, we could print it as strings + // Even for the length difference, it would be useful to see the values of the slices probably. + if (expected.len != actual.len) { + std.debug.panic("slice lengths differ. expected {}, found {}", expected.len, actual.len); + } + var i: usize = 0; + while (i < expected.len) : (i += 1) { + if (expected[i] != actual[i]) { + std.debug.panic("index {} incorrect. expected {}, found {}", i, expected[i], actual[i]); + } + } +} + +/// This function is intended to be used only in tests. When `ok` is false, the test fails. +/// A message is printed to stderr and then abort is called. +pub fn expect(ok: bool) void { + if (!ok) @panic("test failure"); +} diff --git a/lib/std/thread.zig b/lib/std/thread.zig new file mode 100644 index 0000000000..278fcc827c --- /dev/null +++ b/lib/std/thread.zig @@ -0,0 +1,363 @@ +const builtin = @import("builtin"); +const std = @import("std.zig"); +const os = std.os; +const mem = std.mem; +const windows = std.os.windows; +const c = std.c; +const assert = std.debug.assert; + +pub const Thread = struct { + data: Data, + + pub const use_pthreads = !windows.is_the_target and builtin.link_libc; + + /// Represents a kernel thread handle. + /// May be an integer or a pointer depending on the platform. + /// On Linux and POSIX, this is the same as Id. + pub const Handle = if (use_pthreads) + c.pthread_t + else switch (builtin.os) { + .linux => i32, + .windows => windows.HANDLE, + else => @compileError("Unsupported OS"), + }; + + /// Represents a unique ID per thread. + /// May be an integer or pointer depending on the platform. + /// On Linux and POSIX, this is the same as Handle. + pub const Id = switch (builtin.os) { + .windows => windows.DWORD, + else => Handle, + }; + + pub const Data = if (use_pthreads) + struct { + handle: Thread.Handle, + memory: []align(mem.page_size) u8, + } + else switch (builtin.os) { + .linux => struct { + handle: Thread.Handle, + memory: []align(mem.page_size) u8, + }, + .windows => struct { + handle: Thread.Handle, + alloc_start: *c_void, + heap_handle: windows.HANDLE, + }, + else => @compileError("Unsupported OS"), + }; + + /// Returns the ID of the calling thread. + /// Makes a syscall every time the function is called. + /// On Linux and POSIX, this Id is the same as a Handle. + pub fn getCurrentId() Id { + if (use_pthreads) { + return c.pthread_self(); + } else + return switch (builtin.os) { + .linux => os.linux.gettid(), + .windows => windows.kernel32.GetCurrentThreadId(), + else => @compileError("Unsupported OS"), + }; + } + + /// Returns the handle of this thread. + /// On Linux and POSIX, this is the same as Id. + /// On Linux, it is possible that the thread spawned with `spawn` + /// finishes executing entirely before the clone syscall completes. In this + /// case, this function will return 0 rather than the no-longer-existing thread's + /// pid. + pub fn handle(self: Thread) Handle { + return self.data.handle; + } + + pub fn wait(self: *const Thread) void { + if (use_pthreads) { + const err = c.pthread_join(self.data.handle, null); + switch (err) { + 0 => {}, + os.EINVAL => unreachable, + os.ESRCH => unreachable, + os.EDEADLK => unreachable, + else => unreachable, + } + os.munmap(self.data.memory); + } else switch (builtin.os) { + .linux => { + while (true) { + const pid_value = @atomicLoad(i32, &self.data.handle, .SeqCst); + if (pid_value == 0) break; + const rc = os.linux.futex_wait(&self.data.handle, os.linux.FUTEX_WAIT, pid_value, null); + switch (os.linux.getErrno(rc)) { + 0 => continue, + os.EINTR => continue, + os.EAGAIN => continue, + else => unreachable, + } + } + os.munmap(self.data.memory); + }, + .windows => { + windows.WaitForSingleObject(self.data.handle, windows.INFINITE) catch unreachable; + windows.CloseHandle(self.data.handle); + windows.HeapFree(self.data.heap_handle, 0, self.data.alloc_start); + }, + else => @compileError("Unsupported OS"), + } + } + + pub const SpawnError = error{ + /// A system-imposed limit on the number of threads was encountered. + /// There are a number of limits that may trigger this error: + /// * the RLIMIT_NPROC soft resource limit (set via setrlimit(2)), + /// which limits the number of processes and threads for a real + /// user ID, was reached; + /// * the kernel's system-wide limit on the number of processes and + /// threads, /proc/sys/kernel/threads-max, was reached (see + /// proc(5)); + /// * the maximum number of PIDs, /proc/sys/kernel/pid_max, was + /// reached (see proc(5)); or + /// * the PID limit (pids.max) imposed by the cgroup "process num‐ + /// ber" (PIDs) controller was reached. + ThreadQuotaExceeded, + + /// The kernel cannot allocate sufficient memory to allocate a task structure + /// for the child, or to copy those parts of the caller's context that need to + /// be copied. + SystemResources, + + /// Not enough userland memory to spawn the thread. + OutOfMemory, + + /// `mlockall` is enabled, and the memory needed to spawn the thread + /// would exceed the limit. + LockedMemoryLimitExceeded, + + Unexpected, + }; + + /// caller must call wait on the returned thread + /// fn startFn(@typeOf(context)) T + /// where T is u8, noreturn, void, or !void + /// caller must call wait on the returned thread + pub fn spawn(context: var, comptime startFn: var) SpawnError!*Thread { + if (builtin.single_threaded) @compileError("cannot spawn thread when building in single-threaded mode"); + // TODO compile-time call graph analysis to determine stack upper bound + // https://github.com/ziglang/zig/issues/157 + const default_stack_size = 16 * 1024 * 1024; + + const Context = @typeOf(context); + comptime assert(@ArgType(@typeOf(startFn), 0) == Context); + + if (builtin.os == builtin.Os.windows) { + const WinThread = struct { + const OuterContext = struct { + thread: Thread, + inner: Context, + }; + extern fn threadMain(raw_arg: windows.LPVOID) windows.DWORD { + const arg = if (@sizeOf(Context) == 0) {} else @ptrCast(*Context, @alignCast(@alignOf(Context), raw_arg)).*; + switch (@typeId(@typeOf(startFn).ReturnType)) { + .Int => { + return startFn(arg); + }, + .Void => { + startFn(arg); + return 0; + }, + else => @compileError("expected return type of startFn to be 'u8', 'noreturn', 'void', or '!void'"), + } + } + }; + + const heap_handle = windows.kernel32.GetProcessHeap() orelse return error.OutOfMemory; + const byte_count = @alignOf(WinThread.OuterContext) + @sizeOf(WinThread.OuterContext); + const bytes_ptr = windows.kernel32.HeapAlloc(heap_handle, 0, byte_count) orelse return error.OutOfMemory; + errdefer assert(windows.kernel32.HeapFree(heap_handle, 0, bytes_ptr) != 0); + const bytes = @ptrCast([*]u8, bytes_ptr)[0..byte_count]; + const outer_context = std.heap.FixedBufferAllocator.init(bytes).allocator.create(WinThread.OuterContext) catch unreachable; + outer_context.* = WinThread.OuterContext{ + .thread = Thread{ + .data = Thread.Data{ + .heap_handle = heap_handle, + .alloc_start = bytes_ptr, + .handle = undefined, + }, + }, + .inner = context, + }; + + const parameter = if (@sizeOf(Context) == 0) null else @ptrCast(*c_void, &outer_context.inner); + outer_context.thread.data.handle = windows.kernel32.CreateThread(null, default_stack_size, WinThread.threadMain, parameter, 0, null) orelse { + switch (windows.kernel32.GetLastError()) { + else => |err| return windows.unexpectedError(err), + } + }; + return &outer_context.thread; + } + + const MainFuncs = struct { + extern fn linuxThreadMain(ctx_addr: usize) u8 { + const arg = if (@sizeOf(Context) == 0) {} else @intToPtr(*const Context, ctx_addr).*; + + switch (@typeId(@typeOf(startFn).ReturnType)) { + .Int => { + return startFn(arg); + }, + .Void => { + startFn(arg); + return 0; + }, + else => @compileError("expected return type of startFn to be 'u8', 'noreturn', 'void', or '!void'"), + } + } + extern fn posixThreadMain(ctx: ?*c_void) ?*c_void { + if (@sizeOf(Context) == 0) { + _ = startFn({}); + return null; + } else { + _ = startFn(@ptrCast(*const Context, @alignCast(@alignOf(Context), ctx)).*); + return null; + } + } + }; + + var guard_end_offset: usize = undefined; + var stack_end_offset: usize = undefined; + var thread_start_offset: usize = undefined; + var context_start_offset: usize = undefined; + var tls_start_offset: usize = undefined; + const mmap_len = blk: { + var l: usize = mem.page_size; + // Allocate a guard page right after the end of the stack region + guard_end_offset = l; + // The stack itself, which grows downwards. + l = mem.alignForward(l + default_stack_size, mem.page_size); + stack_end_offset = l; + // Above the stack, so that it can be in the same mmap call, put the Thread object. + l = mem.alignForward(l, @alignOf(Thread)); + thread_start_offset = l; + l += @sizeOf(Thread); + // Next, the Context object. + if (@sizeOf(Context) != 0) { + l = mem.alignForward(l, @alignOf(Context)); + context_start_offset = l; + l += @sizeOf(Context); + } + // Finally, the Thread Local Storage, if any. + if (!Thread.use_pthreads) { + if (os.linux.tls.tls_image) |tls_img| { + l = mem.alignForward(l, @alignOf(usize)); + tls_start_offset = l; + l += tls_img.alloc_size; + } + } + break :blk l; + }; + // Map the whole stack with no rw permissions to avoid committing the + // whole region right away + const mmap_slice = os.mmap( + null, + mem.alignForward(mmap_len, mem.page_size), + os.PROT_NONE, + os.MAP_PRIVATE | os.MAP_ANONYMOUS, + -1, + 0, + ) catch |err| switch (err) { + error.MemoryMappingNotSupported => unreachable, + error.AccessDenied => unreachable, + error.PermissionDenied => unreachable, + else => |e| return e, + }; + errdefer os.munmap(mmap_slice); + + // Map everything but the guard page as rw + os.mprotect( + mmap_slice, + os.PROT_READ | os.PROT_WRITE, + ) catch |err| switch (err) { + error.AccessDenied => unreachable, + else => |e| return e, + }; + + const mmap_addr = @ptrToInt(mmap_slice.ptr); + + const thread_ptr = @alignCast(@alignOf(Thread), @intToPtr(*Thread, mmap_addr + thread_start_offset)); + thread_ptr.data.memory = mmap_slice; + + var arg: usize = undefined; + if (@sizeOf(Context) != 0) { + arg = mmap_addr + context_start_offset; + const context_ptr = @alignCast(@alignOf(Context), @intToPtr(*Context, arg)); + context_ptr.* = context; + } + + if (Thread.use_pthreads) { + // use pthreads + var attr: c.pthread_attr_t = undefined; + if (c.pthread_attr_init(&attr) != 0) return error.SystemResources; + defer assert(c.pthread_attr_destroy(&attr) == 0); + + assert(c.pthread_attr_setstack(&attr, mmap_slice.ptr, stack_end_offset) == 0); + + const err = c.pthread_create(&thread_ptr.data.handle, &attr, MainFuncs.posixThreadMain, @intToPtr(*c_void, arg)); + switch (err) { + 0 => return thread_ptr, + os.EAGAIN => return error.SystemResources, + os.EPERM => unreachable, + os.EINVAL => unreachable, + else => return os.unexpectedErrno(@intCast(usize, err)), + } + } else if (os.linux.is_the_target) { + var flags: u32 = os.CLONE_VM | os.CLONE_FS | os.CLONE_FILES | os.CLONE_SIGHAND | + os.CLONE_THREAD | os.CLONE_SYSVSEM | os.CLONE_PARENT_SETTID | os.CLONE_CHILD_CLEARTID | + os.CLONE_DETACHED; + var newtls: usize = undefined; + if (os.linux.tls.tls_image) |tls_img| { + newtls = os.linux.tls.copyTLS(mmap_addr + tls_start_offset); + flags |= os.CLONE_SETTLS; + } + const rc = os.linux.clone(MainFuncs.linuxThreadMain, mmap_addr + stack_end_offset, flags, arg, &thread_ptr.data.handle, newtls, &thread_ptr.data.handle); + switch (os.errno(rc)) { + 0 => return thread_ptr, + os.EAGAIN => return error.ThreadQuotaExceeded, + os.EINVAL => unreachable, + os.ENOMEM => return error.SystemResources, + os.ENOSPC => unreachable, + os.EPERM => unreachable, + os.EUSERS => unreachable, + else => |err| return os.unexpectedErrno(err), + } + } else { + @compileError("Unsupported OS"); + } + } + + pub const CpuCountError = error{ + OutOfMemory, + PermissionDenied, + SystemResources, + Unexpected, + }; + + pub fn cpuCount() CpuCountError!usize { + if (os.linux.is_the_target) { + const cpu_set = try os.sched_getaffinity(0); + return usize(os.CPU_COUNT(cpu_set)); // TODO should not need this usize cast + } + if (os.windows.is_the_target) { + var system_info: windows.SYSTEM_INFO = undefined; + windows.kernel32.GetSystemInfo(&system_info); + return @intCast(usize, system_info.dwNumberOfProcessors); + } + var count: c_int = undefined; + var count_len: usize = @sizeOf(c_int); + const name = if (os.darwin.is_the_target) c"hw.logicalcpu" else c"hw.ncpu"; + os.sysctlbynameC(name, &count, &count_len, null, 0) catch |err| switch (err) { + error.NameTooLong => unreachable, + else => |e| return e, + }; + return @intCast(usize, count); + } +}; diff --git a/lib/std/time.zig b/lib/std/time.zig new file mode 100644 index 0000000000..caf6c31b31 --- /dev/null +++ b/lib/std/time.zig @@ -0,0 +1,221 @@ +const builtin = @import("builtin"); +const std = @import("std.zig"); +const assert = std.debug.assert; +const testing = std.testing; +const os = std.os; +const math = std.math; + +pub const epoch = @import("time/epoch.zig"); + +/// Spurious wakeups are possible and no precision of timing is guaranteed. +pub fn sleep(nanoseconds: u64) void { + if (os.windows.is_the_target) { + const ns_per_ms = ns_per_s / ms_per_s; + const big_ms_from_ns = nanoseconds / ns_per_ms; + const ms = math.cast(os.windows.DWORD, big_ms_from_ns) catch math.maxInt(os.windows.DWORD); + os.windows.kernel32.Sleep(ms); + return; + } + const s = nanoseconds / ns_per_s; + const ns = nanoseconds % ns_per_s; + std.os.nanosleep(s, ns); +} + +/// Get the posix timestamp, UTC, in seconds +/// TODO audit this function. is it possible to return an error? +pub fn timestamp() u64 { + return @divFloor(milliTimestamp(), ms_per_s); +} + +/// Get the posix timestamp, UTC, in milliseconds +/// TODO audit this function. is it possible to return an error? +pub fn milliTimestamp() u64 { + if (os.windows.is_the_target) { + //FileTime has a granularity of 100 nanoseconds + // and uses the NTFS/Windows epoch + var ft: os.windows.FILETIME = undefined; + os.windows.kernel32.GetSystemTimeAsFileTime(&ft); + const hns_per_ms = (ns_per_s / 100) / ms_per_s; + const epoch_adj = epoch.windows * ms_per_s; + + const ft64 = (u64(ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + return @divFloor(ft64, hns_per_ms) - -epoch_adj; + } + if (os.wasi.is_the_target and !builtin.link_libc) { + var ns: os.wasi.timestamp_t = undefined; + + // TODO: Verify that precision is ignored + const err = os.wasi.clock_time_get(os.wasi.CLOCK_REALTIME, 1, &ns); + assert(err == os.wasi.ESUCCESS); + + const ns_per_ms = 1000; + return @divFloor(ns, ns_per_ms); + } + if (os.darwin.is_the_target) { + var tv: os.darwin.timeval = undefined; + var err = os.darwin.gettimeofday(&tv, null); + assert(err == 0); + const sec_ms = tv.tv_sec * ms_per_s; + const usec_ms = @divFloor(tv.tv_usec, us_per_s / ms_per_s); + return @intCast(u64, sec_ms + usec_ms); + } + var ts: os.timespec = undefined; + //From what I can tell there's no reason clock_gettime + // should ever fail for us with CLOCK_REALTIME, + // seccomp aside. + os.clock_gettime(os.CLOCK_REALTIME, &ts) catch unreachable; + const sec_ms = @intCast(u64, ts.tv_sec) * ms_per_s; + const nsec_ms = @divFloor(@intCast(u64, ts.tv_nsec), ns_per_s / ms_per_s); + return sec_ms + nsec_ms; +} + +/// Multiples of a base unit (nanoseconds) +pub const nanosecond = 1; +pub const microsecond = 1000 * nanosecond; +pub const millisecond = 1000 * microsecond; +pub const second = 1000 * millisecond; +pub const minute = 60 * second; +pub const hour = 60 * minute; + +/// Divisions of a second +pub const ns_per_s = 1000000000; +pub const us_per_s = 1000000; +pub const ms_per_s = 1000; +pub const cs_per_s = 100; + +/// Common time divisions +pub const s_per_min = 60; +pub const s_per_hour = s_per_min * 60; +pub const s_per_day = s_per_hour * 24; +pub const s_per_week = s_per_day * 7; + +/// A monotonic high-performance timer. +/// Timer.start() must be called to initialize the struct, which captures +/// the counter frequency on windows and darwin, records the resolution, +/// and gives the user an opportunity to check for the existnece of +/// monotonic clocks without forcing them to check for error on each read. +/// .resolution is in nanoseconds on all platforms but .start_time's meaning +/// depends on the OS. On Windows and Darwin it is a hardware counter +/// value that requires calculation to convert to a meaninful unit. +pub const Timer = struct { + ///if we used resolution's value when performing the + /// performance counter calc on windows/darwin, it would + /// be less precise + frequency: switch (builtin.os) { + .windows => u64, + .macosx, .ios, .tvos, .watchos => os.darwin.mach_timebase_info_data, + else => void, + }, + resolution: u64, + start_time: u64, + + const Error = error{TimerUnsupported}; + + ///At some point we may change our minds on RAW, but for now we're + /// sticking with posix standard MONOTONIC. For more information, see: + /// https://github.com/ziglang/zig/pull/933 + const monotonic_clock_id = os.CLOCK_MONOTONIC; + /// Initialize the timer structure. + //This gives us an opportunity to grab the counter frequency in windows. + //On Windows: QueryPerformanceCounter will succeed on anything >= XP/2000. + //On Posix: CLOCK_MONOTONIC will only fail if the monotonic counter is not + // supported, or if the timespec pointer is out of bounds, which should be + // impossible here barring cosmic rays or other such occurrences of + // incredibly bad luck. + //On Darwin: This cannot fail, as far as I am able to tell. + pub fn start() Error!Timer { + var self: Timer = undefined; + + if (os.windows.is_the_target) { + self.frequency = os.windows.QueryPerformanceFrequency(); + self.resolution = @divFloor(ns_per_s, self.frequency); + self.start_time = os.windows.QueryPerformanceCounter(); + } else if (os.darwin.is_the_target) { + os.darwin.mach_timebase_info(&self.frequency); + self.resolution = @divFloor(self.frequency.numer, self.frequency.denom); + self.start_time = os.darwin.mach_absolute_time(); + } else { + //On Linux, seccomp can do arbitrary things to our ability to call + // syscalls, including return any errno value it wants and + // inconsistently throwing errors. Since we can't account for + // abuses of seccomp in a reasonable way, we'll assume that if + // seccomp is going to block us it will at least do so consistently + var ts: os.timespec = undefined; + os.clock_getres(monotonic_clock_id, &ts) catch return error.TimerUnsupported; + self.resolution = @intCast(u64, ts.tv_sec) * u64(ns_per_s) + @intCast(u64, ts.tv_nsec); + + os.clock_gettime(monotonic_clock_id, &ts) catch return error.TimerUnsupported; + self.start_time = @intCast(u64, ts.tv_sec) * u64(ns_per_s) + @intCast(u64, ts.tv_nsec); + } + + return self; + } + + /// Reads the timer value since start or the last reset in nanoseconds + pub fn read(self: *Timer) u64 { + var clock = clockNative() - self.start_time; + if (os.windows.is_the_target) { + return @divFloor(clock * ns_per_s, self.frequency); + } + if (os.darwin.is_the_target) { + return @divFloor(clock * self.frequency.numer, self.frequency.denom); + } + return clock; + } + + /// Resets the timer value to 0/now. + pub fn reset(self: *Timer) void { + self.start_time = clockNative(); + } + + /// Returns the current value of the timer in nanoseconds, then resets it + pub fn lap(self: *Timer) u64 { + var now = clockNative(); + var lap_time = self.read(); + self.start_time = now; + return lap_time; + } + + fn clockNative() u64 { + if (os.windows.is_the_target) { + return os.windows.QueryPerformanceCounter(); + } + if (os.darwin.is_the_target) { + return os.darwin.mach_absolute_time(); + } + var ts: os.timespec = undefined; + os.clock_gettime(monotonic_clock_id, &ts) catch unreachable; + return @intCast(u64, ts.tv_sec) * u64(ns_per_s) + @intCast(u64, ts.tv_nsec); + } +}; + +test "sleep" { + sleep(1); +} + +test "timestamp" { + const ns_per_ms = (ns_per_s / ms_per_s); + const margin = 50; + + const time_0 = milliTimestamp(); + sleep(ns_per_ms); + const time_1 = milliTimestamp(); + const interval = time_1 - time_0; + testing.expect(interval > 0 and interval < margin); +} + +test "Timer" { + const ns_per_ms = (ns_per_s / ms_per_s); + const margin = ns_per_ms * 150; + + var timer = try Timer.start(); + sleep(10 * ns_per_ms); + const time_0 = timer.read(); + testing.expect(time_0 > 0 and time_0 < margin); + + const time_1 = timer.lap(); + testing.expect(time_1 >= time_0); + + timer.reset(); + testing.expect(timer.read() < time_1); +} diff --git a/lib/std/time/epoch.zig b/lib/std/time/epoch.zig new file mode 100644 index 0000000000..fc031521a5 --- /dev/null +++ b/lib/std/time/epoch.zig @@ -0,0 +1,26 @@ +/// Epoch reference times in terms of their difference from +/// posix epoch in seconds. +pub const posix = 0; //Jan 01, 1970 AD +pub const dos = 315532800; //Jan 01, 1980 AD +pub const ios = 978307200; //Jan 01, 2001 AD +pub const openvms = -3506716800; //Nov 17, 1858 AD +pub const zos = -2208988800; //Jan 01, 1900 AD +pub const windows = -11644473600; //Jan 01, 1601 AD +pub const amiga = 252460800; //Jan 01, 1978 AD +pub const pickos = -63244800; //Dec 31, 1967 AD +pub const gps = 315964800; //Jan 06, 1980 AD +pub const clr = -62135769600; //Jan 01, 0001 AD + +pub const unix = posix; +pub const android = posix; +pub const os2 = dos; +pub const bios = dos; +pub const vfat = dos; +pub const ntfs = windows; +pub const ntp = zos; +pub const jbase = pickos; +pub const aros = amiga; +pub const morphos = amiga; +pub const brew = gps; +pub const atsc = gps; +pub const go = clr; diff --git a/lib/std/unicode.zig b/lib/std/unicode.zig new file mode 100644 index 0000000000..2e96147166 --- /dev/null +++ b/lib/std/unicode.zig @@ -0,0 +1,593 @@ +const std = @import("./std.zig"); +const builtin = @import("builtin"); +const assert = std.debug.assert; +const testing = std.testing; +const mem = std.mem; + +/// Returns how many bytes the UTF-8 representation would require +/// for the given codepoint. +pub fn utf8CodepointSequenceLength(c: u32) !u3 { + if (c < 0x80) return u3(1); + if (c < 0x800) return u3(2); + if (c < 0x10000) return u3(3); + if (c < 0x110000) return u3(4); + return error.CodepointTooLarge; +} + +/// Given the first byte of a UTF-8 codepoint, +/// returns a number 1-4 indicating the total length of the codepoint in bytes. +/// If this byte does not match the form of a UTF-8 start byte, returns Utf8InvalidStartByte. +pub fn utf8ByteSequenceLength(first_byte: u8) !u3 { + if (first_byte < 0b10000000) return u3(1); + if (first_byte & 0b11100000 == 0b11000000) return u3(2); + if (first_byte & 0b11110000 == 0b11100000) return u3(3); + if (first_byte & 0b11111000 == 0b11110000) return u3(4); + return error.Utf8InvalidStartByte; +} + +/// Encodes the given codepoint into a UTF-8 byte sequence. +/// c: the codepoint. +/// out: the out buffer to write to. Must have a len >= utf8CodepointSequenceLength(c). +/// Errors: if c cannot be encoded in UTF-8. +/// Returns: the number of bytes written to out. +pub fn utf8Encode(c: u32, out: []u8) !u3 { + const length = try utf8CodepointSequenceLength(c); + assert(out.len >= length); + switch (length) { + // The pattern for each is the same + // - Increasing the initial shift by 6 each time + // - Each time after the first shorten the shifted + // value to a max of 0b111111 (63) + 1 => out[0] = @intCast(u8, c), // Can just do 0 + codepoint for initial range + 2 => { + out[0] = @intCast(u8, 0b11000000 | (c >> 6)); + out[1] = @intCast(u8, 0b10000000 | (c & 0b111111)); + }, + 3 => { + if (0xd800 <= c and c <= 0xdfff) return error.Utf8CannotEncodeSurrogateHalf; + out[0] = @intCast(u8, 0b11100000 | (c >> 12)); + out[1] = @intCast(u8, 0b10000000 | ((c >> 6) & 0b111111)); + out[2] = @intCast(u8, 0b10000000 | (c & 0b111111)); + }, + 4 => { + out[0] = @intCast(u8, 0b11110000 | (c >> 18)); + out[1] = @intCast(u8, 0b10000000 | ((c >> 12) & 0b111111)); + out[2] = @intCast(u8, 0b10000000 | ((c >> 6) & 0b111111)); + out[3] = @intCast(u8, 0b10000000 | (c & 0b111111)); + }, + else => unreachable, + } + return length; +} + +const Utf8DecodeError = Utf8Decode2Error || Utf8Decode3Error || Utf8Decode4Error; + +/// Decodes the UTF-8 codepoint encoded in the given slice of bytes. +/// bytes.len must be equal to utf8ByteSequenceLength(bytes[0]) catch unreachable. +/// If you already know the length at comptime, you can call one of +/// utf8Decode2,utf8Decode3,utf8Decode4 directly instead of this function. +pub fn utf8Decode(bytes: []const u8) Utf8DecodeError!u32 { + return switch (bytes.len) { + 1 => u32(bytes[0]), + 2 => utf8Decode2(bytes), + 3 => utf8Decode3(bytes), + 4 => utf8Decode4(bytes), + else => unreachable, + }; +} + +const Utf8Decode2Error = error{ + Utf8ExpectedContinuation, + Utf8OverlongEncoding, +}; +pub fn utf8Decode2(bytes: []const u8) Utf8Decode2Error!u32 { + assert(bytes.len == 2); + assert(bytes[0] & 0b11100000 == 0b11000000); + var value: u32 = bytes[0] & 0b00011111; + + if (bytes[1] & 0b11000000 != 0b10000000) return error.Utf8ExpectedContinuation; + value <<= 6; + value |= bytes[1] & 0b00111111; + + if (value < 0x80) return error.Utf8OverlongEncoding; + + return value; +} + +const Utf8Decode3Error = error{ + Utf8ExpectedContinuation, + Utf8OverlongEncoding, + Utf8EncodesSurrogateHalf, +}; +pub fn utf8Decode3(bytes: []const u8) Utf8Decode3Error!u32 { + assert(bytes.len == 3); + assert(bytes[0] & 0b11110000 == 0b11100000); + var value: u32 = bytes[0] & 0b00001111; + + if (bytes[1] & 0b11000000 != 0b10000000) return error.Utf8ExpectedContinuation; + value <<= 6; + value |= bytes[1] & 0b00111111; + + if (bytes[2] & 0b11000000 != 0b10000000) return error.Utf8ExpectedContinuation; + value <<= 6; + value |= bytes[2] & 0b00111111; + + if (value < 0x800) return error.Utf8OverlongEncoding; + if (0xd800 <= value and value <= 0xdfff) return error.Utf8EncodesSurrogateHalf; + + return value; +} + +const Utf8Decode4Error = error{ + Utf8ExpectedContinuation, + Utf8OverlongEncoding, + Utf8CodepointTooLarge, +}; +pub fn utf8Decode4(bytes: []const u8) Utf8Decode4Error!u32 { + assert(bytes.len == 4); + assert(bytes[0] & 0b11111000 == 0b11110000); + var value: u32 = bytes[0] & 0b00000111; + + if (bytes[1] & 0b11000000 != 0b10000000) return error.Utf8ExpectedContinuation; + value <<= 6; + value |= bytes[1] & 0b00111111; + + if (bytes[2] & 0b11000000 != 0b10000000) return error.Utf8ExpectedContinuation; + value <<= 6; + value |= bytes[2] & 0b00111111; + + if (bytes[3] & 0b11000000 != 0b10000000) return error.Utf8ExpectedContinuation; + value <<= 6; + value |= bytes[3] & 0b00111111; + + if (value < 0x10000) return error.Utf8OverlongEncoding; + if (value > 0x10FFFF) return error.Utf8CodepointTooLarge; + + return value; +} + +pub fn utf8ValidateSlice(s: []const u8) bool { + var i: usize = 0; + while (i < s.len) { + if (utf8ByteSequenceLength(s[i])) |cp_len| { + if (i + cp_len > s.len) { + return false; + } + + if (utf8Decode(s[i .. i + cp_len])) |_| {} else |_| { + return false; + } + i += cp_len; + } else |err| { + return false; + } + } + return true; +} + +/// Utf8View iterates the code points of a utf-8 encoded string. +/// +/// ``` +/// var utf8 = (try std.unicode.Utf8View.init("hi there")).iterator(); +/// while (utf8.nextCodepointSlice()) |codepoint| { +/// std.debug.warn("got codepoint {}\n", codepoint); +/// } +/// ``` +pub const Utf8View = struct { + bytes: []const u8, + + pub fn init(s: []const u8) !Utf8View { + if (!utf8ValidateSlice(s)) { + return error.InvalidUtf8; + } + + return initUnchecked(s); + } + + pub fn initUnchecked(s: []const u8) Utf8View { + return Utf8View{ .bytes = s }; + } + + /// TODO: https://github.com/ziglang/zig/issues/425 + pub fn initComptime(comptime s: []const u8) Utf8View { + if (comptime init(s)) |r| { + return r; + } else |err| switch (err) { + error.InvalidUtf8 => { + @compileError("invalid utf8"); + unreachable; + }, + } + } + + pub fn iterator(s: Utf8View) Utf8Iterator { + return Utf8Iterator{ + .bytes = s.bytes, + .i = 0, + }; + } +}; + +pub const Utf8Iterator = struct { + bytes: []const u8, + i: usize, + + pub fn nextCodepointSlice(it: *Utf8Iterator) ?[]const u8 { + if (it.i >= it.bytes.len) { + return null; + } + + const cp_len = utf8ByteSequenceLength(it.bytes[it.i]) catch unreachable; + it.i += cp_len; + return it.bytes[it.i - cp_len .. it.i]; + } + + pub fn nextCodepoint(it: *Utf8Iterator) ?u32 { + const slice = it.nextCodepointSlice() orelse return null; + + switch (slice.len) { + 1 => return u32(slice[0]), + 2 => return utf8Decode2(slice) catch unreachable, + 3 => return utf8Decode3(slice) catch unreachable, + 4 => return utf8Decode4(slice) catch unreachable, + else => unreachable, + } + } +}; + +pub const Utf16LeIterator = struct { + bytes: []const u8, + i: usize, + + pub fn init(s: []const u16) Utf16LeIterator { + return Utf16LeIterator{ + .bytes = @sliceToBytes(s), + .i = 0, + }; + } + + pub fn nextCodepoint(it: *Utf16LeIterator) !?u32 { + assert(it.i <= it.bytes.len); + if (it.i == it.bytes.len) return null; + const c0: u32 = mem.readIntSliceLittle(u16, it.bytes[it.i .. it.i + 2]); + if (c0 & ~u32(0x03ff) == 0xd800) { + // surrogate pair + it.i += 2; + if (it.i >= it.bytes.len) return error.DanglingSurrogateHalf; + const c1: u32 = mem.readIntSliceLittle(u16, it.bytes[it.i .. it.i + 2]); + if (c1 & ~u32(0x03ff) != 0xdc00) return error.ExpectedSecondSurrogateHalf; + it.i += 2; + return 0x10000 + (((c0 & 0x03ff) << 10) | (c1 & 0x03ff)); + } else if (c0 & ~u32(0x03ff) == 0xdc00) { + return error.UnexpectedSecondSurrogateHalf; + } else { + it.i += 2; + return c0; + } + } +}; + +test "utf8 encode" { + comptime testUtf8Encode() catch unreachable; + try testUtf8Encode(); +} +fn testUtf8Encode() !void { + // A few taken from wikipedia a few taken elsewhere + var array: [4]u8 = undefined; + testing.expect((try utf8Encode(try utf8Decode("€"), array[0..])) == 3); + testing.expect(array[0] == 0b11100010); + testing.expect(array[1] == 0b10000010); + testing.expect(array[2] == 0b10101100); + + testing.expect((try utf8Encode(try utf8Decode("$"), array[0..])) == 1); + testing.expect(array[0] == 0b00100100); + + testing.expect((try utf8Encode(try utf8Decode("¢"), array[0..])) == 2); + testing.expect(array[0] == 0b11000010); + testing.expect(array[1] == 0b10100010); + + testing.expect((try utf8Encode(try utf8Decode("𐍈"), array[0..])) == 4); + testing.expect(array[0] == 0b11110000); + testing.expect(array[1] == 0b10010000); + testing.expect(array[2] == 0b10001101); + testing.expect(array[3] == 0b10001000); +} + +test "utf8 encode error" { + comptime testUtf8EncodeError(); + testUtf8EncodeError(); +} +fn testUtf8EncodeError() void { + var array: [4]u8 = undefined; + testErrorEncode(0xd800, array[0..], error.Utf8CannotEncodeSurrogateHalf); + testErrorEncode(0xdfff, array[0..], error.Utf8CannotEncodeSurrogateHalf); + testErrorEncode(0x110000, array[0..], error.CodepointTooLarge); + testErrorEncode(0xffffffff, array[0..], error.CodepointTooLarge); +} + +fn testErrorEncode(codePoint: u32, array: []u8, expectedErr: anyerror) void { + testing.expectError(expectedErr, utf8Encode(codePoint, array)); +} + +test "utf8 iterator on ascii" { + comptime testUtf8IteratorOnAscii(); + testUtf8IteratorOnAscii(); +} +fn testUtf8IteratorOnAscii() void { + const s = Utf8View.initComptime("abc"); + + var it1 = s.iterator(); + testing.expect(std.mem.eql(u8, "a", it1.nextCodepointSlice().?)); + testing.expect(std.mem.eql(u8, "b", it1.nextCodepointSlice().?)); + testing.expect(std.mem.eql(u8, "c", it1.nextCodepointSlice().?)); + testing.expect(it1.nextCodepointSlice() == null); + + var it2 = s.iterator(); + testing.expect(it2.nextCodepoint().? == 'a'); + testing.expect(it2.nextCodepoint().? == 'b'); + testing.expect(it2.nextCodepoint().? == 'c'); + testing.expect(it2.nextCodepoint() == null); +} + +test "utf8 view bad" { + comptime testUtf8ViewBad(); + testUtf8ViewBad(); +} +fn testUtf8ViewBad() void { + // Compile-time error. + // const s3 = Utf8View.initComptime("\xfe\xf2"); + testing.expectError(error.InvalidUtf8, Utf8View.init("hel\xadlo")); +} + +test "utf8 view ok" { + comptime testUtf8ViewOk(); + testUtf8ViewOk(); +} +fn testUtf8ViewOk() void { + const s = Utf8View.initComptime("東京市"); + + var it1 = s.iterator(); + testing.expect(std.mem.eql(u8, "東", it1.nextCodepointSlice().?)); + testing.expect(std.mem.eql(u8, "京", it1.nextCodepointSlice().?)); + testing.expect(std.mem.eql(u8, "市", it1.nextCodepointSlice().?)); + testing.expect(it1.nextCodepointSlice() == null); + + var it2 = s.iterator(); + testing.expect(it2.nextCodepoint().? == 0x6771); + testing.expect(it2.nextCodepoint().? == 0x4eac); + testing.expect(it2.nextCodepoint().? == 0x5e02); + testing.expect(it2.nextCodepoint() == null); +} + +test "bad utf8 slice" { + comptime testBadUtf8Slice(); + testBadUtf8Slice(); +} +fn testBadUtf8Slice() void { + testing.expect(utf8ValidateSlice("abc")); + testing.expect(!utf8ValidateSlice("abc\xc0")); + testing.expect(!utf8ValidateSlice("abc\xc0abc")); + testing.expect(utf8ValidateSlice("abc\xdf\xbf")); +} + +test "valid utf8" { + comptime testValidUtf8(); + testValidUtf8(); +} +fn testValidUtf8() void { + testValid("\x00", 0x0); + testValid("\x20", 0x20); + testValid("\x7f", 0x7f); + testValid("\xc2\x80", 0x80); + testValid("\xdf\xbf", 0x7ff); + testValid("\xe0\xa0\x80", 0x800); + testValid("\xe1\x80\x80", 0x1000); + testValid("\xef\xbf\xbf", 0xffff); + testValid("\xf0\x90\x80\x80", 0x10000); + testValid("\xf1\x80\x80\x80", 0x40000); + testValid("\xf3\xbf\xbf\xbf", 0xfffff); + testValid("\xf4\x8f\xbf\xbf", 0x10ffff); +} + +test "invalid utf8 continuation bytes" { + comptime testInvalidUtf8ContinuationBytes(); + testInvalidUtf8ContinuationBytes(); +} +fn testInvalidUtf8ContinuationBytes() void { + // unexpected continuation + testError("\x80", error.Utf8InvalidStartByte); + testError("\xbf", error.Utf8InvalidStartByte); + // too many leading 1's + testError("\xf8", error.Utf8InvalidStartByte); + testError("\xff", error.Utf8InvalidStartByte); + // expected continuation for 2 byte sequences + testError("\xc2", error.UnexpectedEof); + testError("\xc2\x00", error.Utf8ExpectedContinuation); + testError("\xc2\xc0", error.Utf8ExpectedContinuation); + // expected continuation for 3 byte sequences + testError("\xe0", error.UnexpectedEof); + testError("\xe0\x00", error.UnexpectedEof); + testError("\xe0\xc0", error.UnexpectedEof); + testError("\xe0\xa0", error.UnexpectedEof); + testError("\xe0\xa0\x00", error.Utf8ExpectedContinuation); + testError("\xe0\xa0\xc0", error.Utf8ExpectedContinuation); + // expected continuation for 4 byte sequences + testError("\xf0", error.UnexpectedEof); + testError("\xf0\x00", error.UnexpectedEof); + testError("\xf0\xc0", error.UnexpectedEof); + testError("\xf0\x90\x00", error.UnexpectedEof); + testError("\xf0\x90\xc0", error.UnexpectedEof); + testError("\xf0\x90\x80\x00", error.Utf8ExpectedContinuation); + testError("\xf0\x90\x80\xc0", error.Utf8ExpectedContinuation); +} + +test "overlong utf8 codepoint" { + comptime testOverlongUtf8Codepoint(); + testOverlongUtf8Codepoint(); +} +fn testOverlongUtf8Codepoint() void { + testError("\xc0\x80", error.Utf8OverlongEncoding); + testError("\xc1\xbf", error.Utf8OverlongEncoding); + testError("\xe0\x80\x80", error.Utf8OverlongEncoding); + testError("\xe0\x9f\xbf", error.Utf8OverlongEncoding); + testError("\xf0\x80\x80\x80", error.Utf8OverlongEncoding); + testError("\xf0\x8f\xbf\xbf", error.Utf8OverlongEncoding); +} + +test "misc invalid utf8" { + comptime testMiscInvalidUtf8(); + testMiscInvalidUtf8(); +} +fn testMiscInvalidUtf8() void { + // codepoint out of bounds + testError("\xf4\x90\x80\x80", error.Utf8CodepointTooLarge); + testError("\xf7\xbf\xbf\xbf", error.Utf8CodepointTooLarge); + // surrogate halves + testValid("\xed\x9f\xbf", 0xd7ff); + testError("\xed\xa0\x80", error.Utf8EncodesSurrogateHalf); + testError("\xed\xbf\xbf", error.Utf8EncodesSurrogateHalf); + testValid("\xee\x80\x80", 0xe000); +} + +fn testError(bytes: []const u8, expected_err: anyerror) void { + testing.expectError(expected_err, testDecode(bytes)); +} + +fn testValid(bytes: []const u8, expected_codepoint: u32) void { + testing.expect((testDecode(bytes) catch unreachable) == expected_codepoint); +} + +fn testDecode(bytes: []const u8) !u32 { + const length = try utf8ByteSequenceLength(bytes[0]); + if (bytes.len < length) return error.UnexpectedEof; + testing.expect(bytes.len == length); + return utf8Decode(bytes); +} + +/// Caller must free returned memory. +pub fn utf16leToUtf8Alloc(allocator: *mem.Allocator, utf16le: []const u16) ![]u8 { + var result = std.ArrayList(u8).init(allocator); + // optimistically guess that it will all be ascii. + try result.ensureCapacity(utf16le.len); + var out_index: usize = 0; + var it = Utf16LeIterator.init(utf16le); + while (try it.nextCodepoint()) |codepoint| { + const utf8_len = utf8CodepointSequenceLength(codepoint) catch unreachable; + try result.resize(result.len + utf8_len); + assert((utf8Encode(codepoint, result.items[out_index..]) catch unreachable) == utf8_len); + out_index += utf8_len; + } + + return result.toOwnedSlice(); +} + +/// Asserts that the output buffer is big enough. +/// Returns end byte index into utf8. +pub fn utf16leToUtf8(utf8: []u8, utf16le: []const u16) !usize { + var end_index: usize = 0; + var it = Utf16LeIterator.init(utf16le); + while (try it.nextCodepoint()) |codepoint| { + end_index += try utf8Encode(codepoint, utf8[end_index..]); + } + return end_index; +} + +test "utf16leToUtf8" { + var utf16le: [2]u16 = undefined; + const utf16le_as_bytes = @sliceToBytes(utf16le[0..]); + + { + mem.writeIntSliceLittle(u16, utf16le_as_bytes[0..], 'A'); + mem.writeIntSliceLittle(u16, utf16le_as_bytes[2..], 'a'); + const utf8 = try utf16leToUtf8Alloc(std.debug.global_allocator, utf16le); + testing.expect(mem.eql(u8, utf8, "Aa")); + } + + { + mem.writeIntSliceLittle(u16, utf16le_as_bytes[0..], 0x80); + mem.writeIntSliceLittle(u16, utf16le_as_bytes[2..], 0xffff); + const utf8 = try utf16leToUtf8Alloc(std.debug.global_allocator, utf16le); + testing.expect(mem.eql(u8, utf8, "\xc2\x80" ++ "\xef\xbf\xbf")); + } + + { + // the values just outside the surrogate half range + mem.writeIntSliceLittle(u16, utf16le_as_bytes[0..], 0xd7ff); + mem.writeIntSliceLittle(u16, utf16le_as_bytes[2..], 0xe000); + const utf8 = try utf16leToUtf8Alloc(std.debug.global_allocator, utf16le); + testing.expect(mem.eql(u8, utf8, "\xed\x9f\xbf" ++ "\xee\x80\x80")); + } + + { + // smallest surrogate pair + mem.writeIntSliceLittle(u16, utf16le_as_bytes[0..], 0xd800); + mem.writeIntSliceLittle(u16, utf16le_as_bytes[2..], 0xdc00); + const utf8 = try utf16leToUtf8Alloc(std.debug.global_allocator, utf16le); + testing.expect(mem.eql(u8, utf8, "\xf0\x90\x80\x80")); + } + + { + // largest surrogate pair + mem.writeIntSliceLittle(u16, utf16le_as_bytes[0..], 0xdbff); + mem.writeIntSliceLittle(u16, utf16le_as_bytes[2..], 0xdfff); + const utf8 = try utf16leToUtf8Alloc(std.debug.global_allocator, utf16le); + testing.expect(mem.eql(u8, utf8, "\xf4\x8f\xbf\xbf")); + } + + { + mem.writeIntSliceLittle(u16, utf16le_as_bytes[0..], 0xdbff); + mem.writeIntSliceLittle(u16, utf16le_as_bytes[2..], 0xdc00); + const utf8 = try utf16leToUtf8Alloc(std.debug.global_allocator, utf16le); + testing.expect(mem.eql(u8, utf8, "\xf4\x8f\xb0\x80")); + } +} + +/// TODO support codepoints bigger than 16 bits +/// TODO type for null terminated pointer +pub fn utf8ToUtf16LeWithNull(allocator: *mem.Allocator, utf8: []const u8) ![]u16 { + var result = std.ArrayList(u16).init(allocator); + // optimistically guess that it will not require surrogate pairs + try result.ensureCapacity(utf8.len + 1); + + const view = try Utf8View.init(utf8); + var it = view.iterator(); + while (it.nextCodepoint()) |codepoint| { + try result.append(@intCast(u16, codepoint)); // TODO surrogate pairs + } + + try result.append(0); + return result.toOwnedSlice(); +} + +/// Returns index of next character. If exact fit, returned index equals output slice length. +/// Assumes there is enough space for the output. +/// TODO support codepoints bigger than 16 bits +pub fn utf8ToUtf16Le(utf16le: []u16, utf8: []const u8) !usize { + var dest_i: usize = 0; + var src_i: usize = 0; + while (src_i < utf8.len) { + const byte = utf8[src_i]; + const n = @clz(u8, ~byte); + switch (n) { + 0 => { + utf16le[dest_i] = byte; + dest_i += 1; + src_i += 1; + continue; + }, + 2, 3, 4 => { + const next_src_i = src_i + n; + const codepoint = utf8Decode(utf8[src_i..next_src_i]) catch return error.InvalidUtf8; + const short = @intCast(u16, codepoint); // TODO surrogate pairs + utf16le[dest_i] = switch (builtin.endian) { + .Little => short, + .Big => @byteSwap(u16, short), + }; + dest_i += 1; + src_i = next_src_i; + }, + else => return error.InvalidUtf8, + } + } + return dest_i; +} diff --git a/lib/std/unicode/throughput_test.zig b/lib/std/unicode/throughput_test.zig new file mode 100644 index 0000000000..f8b18af734 --- /dev/null +++ b/lib/std/unicode/throughput_test.zig @@ -0,0 +1,37 @@ +const builtin = @import("builtin"); +const std = @import("std"); + +pub fn main() !void { + var stdout_file = try std.io.getStdOut(); + var stdout_out_stream = stdout_file.outStream(); + const stdout = &stdout_out_stream.stream; + + const args = try std.process.argsAlloc(std.heap.direct_allocator); + + @fence(.SeqCst); + var timer = try std.time.Timer.start(); + @fence(.SeqCst); + + var buffer1: [32767]u16 = undefined; + _ = try std.unicode.utf8ToUtf16Le(&buffer1, args[1]); + + @fence(.SeqCst); + const elapsed_ns_orig = timer.lap(); + @fence(.SeqCst); + + var buffer2: [32767]u16 = undefined; + _ = try std.unicode.utf8ToUtf16Le_better(&buffer2, args[1]); + + @fence(.SeqCst); + const elapsed_ns_better = timer.lap(); + @fence(.SeqCst); + + std.debug.warn("original utf8ToUtf16Le: elapsed: {} ns ({} ms)\n", elapsed_ns_orig, elapsed_ns_orig / 1000000); + std.debug.warn("new utf8ToUtf16Le: elapsed: {} ns ({} ms)\n", elapsed_ns_better, elapsed_ns_better / 1000000); + asm volatile ("nop" + : + : [a] "r" (&buffer1), + [b] "r" (&buffer2) + : "memory" + ); +} diff --git a/lib/std/valgrind.zig b/lib/std/valgrind.zig new file mode 100644 index 0000000000..0d7f79dfa2 --- /dev/null +++ b/lib/std/valgrind.zig @@ -0,0 +1,267 @@ +const builtin = @import("builtin"); +const math = @import("index.zig").math; + +pub fn doClientRequest(default: usize, request: usize, a1: usize, a2: usize, a3: usize, a4: usize, a5: usize) usize { + if (!builtin.valgrind_support) { + return default; + } + + switch (builtin.arch) { + builtin.Arch.i386 => { + return asm volatile ( + \\ roll $3, %%edi ; roll $13, %%edi + \\ roll $29, %%edi ; roll $19, %%edi + \\ xchgl %%ebx,%%ebx + : [_] "={edx}" (-> usize) + : [_] "{eax}" (&[]usize{ request, a1, a2, a3, a4, a5 }), + [_] "0" (default) + : "cc", "memory" + ); + }, + builtin.Arch.x86_64 => { + return asm volatile ( + \\ rolq $3, %%rdi ; rolq $13, %%rdi + \\ rolq $61, %%rdi ; rolq $51, %%rdi + \\ xchgq %%rbx,%%rbx + : [_] "={rdx}" (-> usize) + : [_] "{rax}" (&[]usize{ request, a1, a2, a3, a4, a5 }), + [_] "0" (default) + : "cc", "memory" + ); + }, + // ppc32 + // ppc64 + // arm + // arm64 + // s390x + // mips32 + // mips64 + else => { + return default; + }, + } +} + +pub const ClientRequest = extern enum { + RunningOnValgrind = 4097, + DiscardTranslations = 4098, + ClientCall0 = 4353, + ClientCall1 = 4354, + ClientCall2 = 4355, + ClientCall3 = 4356, + CountErrors = 4609, + GdbMonitorCommand = 4610, + MalloclikeBlock = 4865, + ResizeinplaceBlock = 4875, + FreelikeBlock = 4866, + CreateMempool = 4867, + DestroyMempool = 4868, + MempoolAlloc = 4869, + MempoolFree = 4870, + MempoolTrim = 4871, + MoveMempool = 4872, + MempoolChange = 4873, + MempoolExists = 4874, + Printf = 5121, + PrintfBacktrace = 5122, + PrintfValistByRef = 5123, + PrintfBacktraceValistByRef = 5124, + StackRegister = 5377, + StackDeregister = 5378, + StackChange = 5379, + LoadPdbDebuginfo = 5633, + MapIpToSrcloc = 5889, + ChangeErrDisablement = 6145, + VexInitForIri = 6401, + InnerThreads = 6402, +}; +pub fn ToolBase(base: [2]u8) u32 { + return (u32(base[0] & 0xff) << 24) | (u32(base[1] & 0xff) << 16); +} +pub fn IsTool(base: [2]u8, code: usize) bool { + return ToolBase(base) == (code & 0xffff0000); +} + +fn doClientRequestExpr(default: usize, request: ClientRequest, a1: usize, a2: usize, a3: usize, a4: usize, a5: usize) usize { + return doClientRequest(default, @intCast(usize, @enumToInt(request)), a1, a2, a3, a4, a5); +} + +fn doClientRequestStmt(request: ClientRequest, a1: usize, a2: usize, a3: usize, a4: usize, a5: usize) void { + _ = doClientRequestExpr(0, request, a1, a2, a3, a4, a5); +} + +/// Returns the number of Valgrinds this code is running under. That +/// is, 0 if running natively, 1 if running under Valgrind, 2 if +/// running under Valgrind which is running under another Valgrind, +/// etc. +pub fn runningOnValgrind() usize { + return doClientRequestExpr(0, ClientRequest.RunningOnValgrind, 0, 0, 0, 0, 0); +} + +/// Discard translation of code in the slice qzz. Useful if you are debugging +/// a JITter or some such, since it provides a way to make sure valgrind will +/// retranslate the invalidated area. Returns no value. +pub fn discardTranslations(qzz: []const u8) void { + doClientRequestStmt(ClientRequest.DiscardTranslations, @ptrToInt(qzz.ptr), qzz.len, 0, 0, 0); +} + +pub fn innerThreads(qzz: [*]u8) void { + doClientRequestStmt(ClientRequest.InnerThreads, qzz, 0, 0, 0, 0); +} + +//pub fn printf(format: [*]const u8, args: ...) usize { +// return doClientRequestExpr(0, +// ClientRequest.PrintfValistByRef, +// @ptrToInt(format), @ptrToInt(args), +// 0, 0, 0); +//} + +//pub fn printfBacktrace(format: [*]const u8, args: ...) usize { +// return doClientRequestExpr(0, +// ClientRequest.PrintfBacktraceValistByRef, +// @ptrToInt(format), @ptrToInt(args), +// 0, 0, 0); +//} + +pub fn nonSIMDCall0(func: fn (usize) usize) usize { + return doClientRequestExpr(0, ClientRequest.ClientCall0, @ptrToInt(func), 0, 0, 0, 0); +} + +pub fn nonSIMDCall1(func: fn (usize, usize) usize, a1: usize) usize { + return doClientRequestExpr(0, ClientRequest.ClientCall1, @ptrToInt(func), a1, 0, 0, 0); +} + +pub fn nonSIMDCall2(func: fn (usize, usize, usize) usize, a1: usize, a2: usize) usize { + return doClientRequestExpr(0, ClientRequest.ClientCall2, @ptrToInt(func), a1, a2, 0, 0); +} + +pub fn nonSIMDCall3(func: fn (usize, usize, usize, usize) usize, a1: usize, a2: usize, a3: usize) usize { + return doClientRequestExpr(0, ClientRequest.ClientCall3, @ptrToInt(func), a1, a2, a3, 0); +} + +/// Counts the number of errors that have been recorded by a tool. Nb: +/// the tool must record the errors with VG_(maybe_record_error)() or +/// VG_(unique_error)() for them to be counted. +pub fn countErrors() usize { + return doClientRequestExpr(0, // default return + ClientRequest.CountErrors, 0, 0, 0, 0, 0); +} + +pub fn mallocLikeBlock(mem: []u8, rzB: usize, is_zeroed: bool) void { + doClientRequestStmt(ClientRequest.MalloclikeBlock, @ptrToInt(mem.ptr), mem.len, rzB, @boolToInt(is_zeroed), 0); +} + +pub fn resizeInPlaceBlock(oldmem: []u8, newsize: usize, rzB: usize) void { + doClientRequestStmt(ClientRequest.ResizeinplaceBlock, @ptrToInt(oldmem.ptr), oldmem.len, newsize, rzB, 0); +} + +pub fn freeLikeBlock(addr: [*]u8, rzB: usize) void { + doClientRequestStmt(ClientRequest.FreelikeBlock, @ptrToInt(addr), rzB, 0, 0, 0); +} + +/// Create a memory pool. +pub const MempoolFlags = extern enum { + AutoFree = 1, + MetaPool = 2, +}; +pub fn createMempool(pool: [*]u8, rzB: usize, is_zeroed: bool, flags: usize) void { + doClientRequestStmt(ClientRequest.CreateMempool, @ptrToInt(pool), rzB, @boolToInt(is_zeroed), flags, 0); +} + +/// Destroy a memory pool. +pub fn destroyMempool(pool: [*]u8) void { + doClientRequestStmt(ClientRequest.DestroyMempool, pool, 0, 0, 0, 0); +} + +/// Associate a piece of memory with a memory pool. +pub fn mempoolAlloc(pool: [*]u8, mem: []u8) void { + doClientRequestStmt(ClientRequest.MempoolAlloc, @ptrToInt(pool), @ptrToInt(mem.ptr), mem.len, 0, 0); +} + +/// Disassociate a piece of memory from a memory pool. +pub fn mempoolFree(pool: [*]u8, addr: [*]u8) void { + doClientRequestStmt(ClientRequest.MempoolFree, @ptrToInt(pool), @ptrToInt(addr), 0, 0, 0); +} + +/// Disassociate any pieces outside a particular range. +pub fn mempoolTrim(pool: [*]u8, mem: []u8) void { + doClientRequestStmt(ClientRequest.MempoolTrim, @ptrToInt(pool), @ptrToInt(mem.ptr), mem.len, 0, 0); +} + +/// Resize and/or move a piece associated with a memory pool. +pub fn moveMempool(poolA: [*]u8, poolB: [*]u8) void { + doClientRequestStmt(ClientRequest.MoveMempool, @ptrToInt(poolA), @ptrToInt(poolB), 0, 0, 0); +} + +/// Resize and/or move a piece associated with a memory pool. +pub fn mempoolChange(pool: [*]u8, addrA: [*]u8, mem: []u8) void { + doClientRequestStmt(ClientRequest.MempoolChange, @ptrToInt(pool), @ptrToInt(addrA), @ptrToInt(mem.ptr), mem.len, 0); +} + +/// Return if a mempool exists. +pub fn mempoolExists(pool: [*]u8) bool { + return doClientRequestExpr(0, ClientRequest.MempoolExists, @ptrToInt(pool), 0, 0, 0, 0) != 0; +} + +/// Mark a piece of memory as being a stack. Returns a stack id. +/// start is the lowest addressable stack byte, end is the highest +/// addressable stack byte. +pub fn stackRegister(stack: []u8) usize { + return doClientRequestExpr(0, ClientRequest.StackRegister, @ptrToInt(stack.ptr), @ptrToInt(stack.ptr) + stack.len, 0, 0, 0); +} + +/// Unmark the piece of memory associated with a stack id as being a stack. +pub fn stackDeregister(id: usize) void { + doClientRequestStmt(ClientRequest.StackDeregister, id, 0, 0, 0, 0); +} + +/// Change the start and end address of the stack id. +/// start is the new lowest addressable stack byte, end is the new highest +/// addressable stack byte. +pub fn stackChange(id: usize, newstack: []u8) void { + doClientRequestStmt(ClientRequest.StackChange, id, @ptrToInt(newstack.ptr), @ptrToInt(newstack.ptr) + newstack.len, 0, 0); +} + +// Load PDB debug info for Wine PE image_map. +// pub fn loadPdbDebuginfo(fd, ptr, total_size, delta) void { +// doClientRequestStmt(ClientRequest.LoadPdbDebuginfo, +// fd, ptr, total_size, delta, +// 0); +// } + +/// Map a code address to a source file name and line number. buf64 +/// must point to a 64-byte buffer in the caller's address space. The +/// result will be dumped in there and is guaranteed to be zero +/// terminated. If no info is found, the first byte is set to zero. +pub fn mapIpToSrcloc(addr: *const u8, buf64: [64]u8) usize { + return doClientRequestExpr(0, ClientRequest.MapIpToSrcloc, @ptrToInt(addr), @ptrToInt(&buf64[0]), 0, 0, 0); +} + +/// Disable error reporting for this thread. Behaves in a stack like +/// way, so you can safely call this multiple times provided that +/// enableErrorReporting() is called the same number of times +/// to re-enable reporting. The first call of this macro disables +/// reporting. Subsequent calls have no effect except to increase the +/// number of enableErrorReporting() calls needed to re-enable +/// reporting. Child threads do not inherit this setting from their +/// parents -- they are always created with reporting enabled. +pub fn disableErrorReporting() void { + doClientRequestStmt(ClientRequest.ChangeErrDisablement, 1, 0, 0, 0, 0); +} + +/// Re-enable error reporting, (see disableErrorReporting()) +pub fn enableErrorReporting() void { + doClientRequestStmt(ClientRequest.ChangeErrDisablement, math.maxInt(usize), 0, 0, 0, 0); +} + +/// Execute a monitor command from the client program. +/// If a connection is opened with GDB, the output will be sent +/// according to the output mode set for vgdb. +/// If no connection is opened, output will go to the log output. +/// Returns 1 if command not recognised, 0 otherwise. +pub fn monitorCommand(command: [*]u8) bool { + return doClientRequestExpr(0, ClientRequest.GdbMonitorCommand, @ptrToInt(command.ptr), 0, 0, 0, 0) != 0; +} + +pub const memcheck = @import("memcheck.zig"); +pub const callgrind = @import("callgrind.zig"); diff --git a/lib/std/valgrind/callgrind.zig b/lib/std/valgrind/callgrind.zig new file mode 100644 index 0000000000..d008294870 --- /dev/null +++ b/lib/std/valgrind/callgrind.zig @@ -0,0 +1,64 @@ +const std = @import("../index.zig"); +const valgrind = std.valgrind; + +pub const CallgrindClientRequest = extern enum { + DumpStats = valgrind.ToolBase("CT"), + ZeroStats, + ToggleCollect, + DumpStatsAt, + StartInstrumentation, + StopInstrumentation, +}; + +fn doCallgrindClientRequestExpr(default: usize, request: CallgrindClientRequest, a1: usize, a2: usize, a3: usize, a4: usize, a5: usize) usize { + return valgrind.doClientRequest(default, @intCast(usize, @enumToInt(request)), a1, a2, a3, a4, a5); +} + +fn doCallgrindClientRequestStmt(request: CallgrindClientRequest, a1: usize, a2: usize, a3: usize, a4: usize, a5: usize) void { + _ = doCallgrindClientRequestExpr(0, request, a1, a2, a3, a4, a5); +} + +/// Dump current state of cost centers, and zero them afterwards +pub fn dumpStats() void { + doCallgrindClientRequestStmt(CallgrindClientRequest.DumpStats, 0, 0, 0, 0, 0); +} + +/// Dump current state of cost centers, and zero them afterwards. +/// The argument is appended to a string stating the reason which triggered +/// the dump. This string is written as a description field into the +/// profile data dump. +pub fn dumpStatsAt(pos_str: [*]u8) void { + doCallgrindClientRequestStmt(CallgrindClientRequest.DumpStatsAt, @ptrToInt(pos_str), 0, 0, 0, 0); +} + +/// Zero cost centers +pub fn zeroStats() void { + doCallgrindClientRequestStmt(CallgrindClientRequest.ZeroStats, 0, 0, 0, 0, 0); +} + +/// Toggles collection state. +/// The collection state specifies whether the happening of events +/// should be noted or if they are to be ignored. Events are noted +/// by increment of counters in a cost center +pub fn toggleCollect() void { + doCallgrindClientRequestStmt(CallgrindClientRequest.ToggleCollect, 0, 0, 0, 0, 0); +} + +/// Start full callgrind instrumentation if not already switched on. +/// When cache simulation is done, it will flush the simulated cache; +/// this will lead to an artificial cache warmup phase afterwards with +/// cache misses which would not have happened in reality. +pub fn startInstrumentation() void { + doCallgrindClientRequestStmt(CallgrindClientRequest.StartInstrumentation, 0, 0, 0, 0, 0); +} + +/// Stop full callgrind instrumentation if not already switched off. +/// This flushes Valgrinds translation cache, and does no additional +/// instrumentation afterwards, which effectivly will run at the same +/// speed as the "none" tool (ie. at minimal slowdown). +/// Use this to bypass Callgrind aggregation for uninteresting code parts. +/// To start Callgrind in this mode to ignore the setup phase, use +/// the option "--instr-atstart=no". +pub fn stopInstrumentation() void { + doCallgrindClientRequestStmt(CallgrindClientRequest.StopInstrumentation, 0, 0, 0, 0, 0); +} diff --git a/lib/std/valgrind/memcheck.zig b/lib/std/valgrind/memcheck.zig new file mode 100644 index 0000000000..2830f58dbd --- /dev/null +++ b/lib/std/valgrind/memcheck.zig @@ -0,0 +1,185 @@ +const std = @import("../index.zig"); +const valgrind = std.valgrind; + +pub const MemCheckClientRequest = extern enum { + MakeMemNoAccess = valgrind.ToolBase("MC"), + MakeMemUndefined, + MakeMemDefined, + Discard, + CheckMemIsAddressable, + CheckMemIsDefined, + DoLeakCheck, + CountLeaks, + GetVbits, + SetVbits, + CreateBlock, + MakeMemDefinedIfAddressable, + CountLeakBlocks, + EnableAddrErrorReportingInRange, + DisableAddrErrorReportingInRange, +}; + +fn doMemCheckClientRequestExpr(default: usize, request: MemCheckClientRequest, a1: usize, a2: usize, a3: usize, a4: usize, a5: usize) usize { + return valgrind.doClientRequest(default, @intCast(usize, @enumToInt(request)), a1, a2, a3, a4, a5); +} + +fn doMemCheckClientRequestStmt(request: MemCheckClientRequest, a1: usize, a2: usize, a3: usize, a4: usize, a5: usize) void { + _ = doMemCheckClientRequestExpr(0, request, a1, a2, a3, a4, a5); +} + +/// Mark memory at qzz.ptr as unaddressable for qzz.len bytes. +/// This returns -1 when run on Valgrind and 0 otherwise. +pub fn makeMemNoAccess(qzz: []u8) i1 { + return @intCast(i1, doMemCheckClientRequestExpr(0, // default return + MemCheckClientRequest.MakeMemNoAccess, @ptrToInt(qzz.ptr), qzz.len, 0, 0, 0)); +} + +/// Similarly, mark memory at qzz.ptr as addressable but undefined +/// for qzz.len bytes. +/// This returns -1 when run on Valgrind and 0 otherwise. +pub fn makeMemUndefined(qzz: []u8) i1 { + return @intCast(i1, doMemCheckClientRequestExpr(0, // default return + MemCheckClientRequest.MakeMemUndefined, @ptrToInt(qzz.ptr), qzz.len, 0, 0, 0)); +} + +/// Similarly, mark memory at qzz.ptr as addressable and defined +/// for qzz.len bytes. +pub fn makeMemDefined(qzz: []u8) i1 { + // This returns -1 when run on Valgrind and 0 otherwise. + return @intCast(i1, doMemCheckClientRequestExpr(0, // default return + MemCheckClientRequest.MakeMemDefined, @ptrToInt(qzz.ptr), qzz.len, 0, 0, 0)); +} + +/// Similar to makeMemDefined except that addressability is +/// not altered: bytes which are addressable are marked as defined, +/// but those which are not addressable are left unchanged. +/// This returns -1 when run on Valgrind and 0 otherwise. +pub fn makeMemDefinedIfAddressable(qzz: []u8) i1 { + return @intCast(i1, doMemCheckClientRequestExpr(0, // default return + MemCheckClientRequest.MakeMemDefinedIfAddressable, @ptrToInt(qzz.ptr), qzz.len, 0, 0, 0)); +} + +/// Create a block-description handle. The description is an ascii +/// string which is included in any messages pertaining to addresses +/// within the specified memory range. Has no other effect on the +/// properties of the memory range. +pub fn createBlock(qzz: []u8, desc: [*]u8) usize { + return doMemCheckClientRequestExpr(0, // default return + MemCheckClientRequest.CreateBlock, @ptrToInt(qzz.ptr), qzz.len, @ptrToInt(desc), 0, 0); +} + +/// Discard a block-description-handle. Returns 1 for an +/// invalid handle, 0 for a valid handle. +pub fn discard(blkindex) bool { + return doMemCheckClientRequestExpr(0, // default return + MemCheckClientRequest.Discard, 0, blkindex, 0, 0, 0) != 0; +} + +/// Check that memory at qzz.ptr is addressable for qzz.len bytes. +/// If suitable addressibility is not established, Valgrind prints an +/// error message and returns the address of the first offending byte. +/// Otherwise it returns zero. +pub fn checkMemIsAddressable(qzz: []u8) usize { + return doMemCheckClientRequestExpr(0, MemCheckClientRequest.CheckMemIsAddressable, @ptrToInt(qzz.ptr), qzz.len, 0, 0, 0); +} + +/// Check that memory at qzz.ptr is addressable and defined for +/// qzz.len bytes. If suitable addressibility and definedness are not +/// established, Valgrind prints an error message and returns the +/// address of the first offending byte. Otherwise it returns zero. +pub fn checkMemIsDefined(qzz: []u8) usize { + return doMemCheckClientRequestExpr(0, MemCheckClientRequest.CheckMemIsDefined, @ptrToInt(qzz.ptr), qzz.len, 0, 0, 0); +} + +/// Do a full memory leak check (like --leak-check=full) mid-execution. +pub fn doLeakCheck() void { + doMemCheckClientRequestStmt(MemCheckClientRequest.DO_LEAK_CHECK, 0, 0, 0, 0, 0); +} + +/// Same as doLeakCheck() but only showing the entries for +/// which there was an increase in leaked bytes or leaked nr of blocks +/// since the previous leak search. +pub fn doAddedLeakCheck() void { + doMemCheckClientRequestStmt(MemCheckClientRequest.DO_LEAK_CHECK, 0, 1, 0, 0, 0); +} + +/// Same as doAddedLeakCheck() but showing entries with +/// increased or decreased leaked bytes/blocks since previous leak +/// search. +pub fn doChangedLeakCheck() void { + doMemCheckClientRequestStmt(MemCheckClientRequest.DO_LEAK_CHECK, 0, 2, 0, 0, 0); +} + +/// Do a summary memory leak check (like --leak-check=summary) mid-execution. +pub fn doQuickLeakCheck() void { + doMemCheckClientRequestStmt(MemCheckClientRequest.DO_LEAK_CHECK, 1, 0, 0, 0, 0); +} + +/// Return number of leaked, dubious, reachable and suppressed bytes found by +/// all previous leak checks. +const CountResult = struct { + leaked: usize, + dubious: usize, + reachable: usize, + suppressed: usize, +}; + +pub fn countLeaks() CountResult { + var res = CountResult{ + .leaked = 0, + .dubious = 0, + .reachable = 0, + .suppressed = 0, + }; + doMemCheckClientRequestStmt(MemCheckClientRequest.CountLeaks, &res.leaked, &res.dubious, &res.reachable, &res.suppressed, 0); + return res; +} + +pub fn countLeakBlocks() CountResult { + var res = CountResult{ + .leaked = 0, + .dubious = 0, + .reachable = 0, + .suppressed = 0, + }; + doMemCheckClientRequestStmt(MemCheckClientRequest.CountLeakBlocks, &res.leaked, &res.dubious, &res.reachable, &res.suppressed, 0); + return res; +} + +/// Get the validity data for addresses zza and copy it +/// into the provided zzvbits array. Return values: +/// 0 if not running on valgrind +/// 1 success +/// 2 [previously indicated unaligned arrays; these are now allowed] +/// 3 if any parts of zzsrc/zzvbits are not addressable. +/// The metadata is not copied in cases 0, 2 or 3 so it should be +/// impossible to segfault your system by using this call. +pub fn getVbits(zza: []u8, zzvbits: []u8) u2 { + std.debug.assert(zzvbits.len >= zza.len / 8); + return @intCast(u2, doMemCheckClientRequestExpr(0, MemCheckClientRequest.GetVbits, @ptrToInt(zza.ptr), @ptrToInt(zzvbits), zza.len, 0, 0)); +} + +/// Set the validity data for addresses zza, copying it +/// from the provided zzvbits array. Return values: +/// 0 if not running on valgrind +/// 1 success +/// 2 [previously indicated unaligned arrays; these are now allowed] +/// 3 if any parts of zza/zzvbits are not addressable. +/// The metadata is not copied in cases 0, 2 or 3 so it should be +/// impossible to segfault your system by using this call. +pub fn setVbits(zzvbits: []u8, zza: []u8) u2 { + std.debug.assert(zzvbits.len >= zza.len / 8); + return @intCast(u2, doMemCheckClientRequestExpr(0, MemCheckClientRequest.SetVbits, @ptrToInt(zza.ptr), @ptrToInt(zzvbits), zza.len, 0, 0)); +} + +/// Disable and re-enable reporting of addressing errors in the +/// specified address range. +pub fn disableAddrErrorReportingInRange(qzz: []u8) usize { + return doMemCheckClientRequestExpr(0, // default return + MemCheckClientRequest.DisableAddrErrorReportingInRange, @ptrToInt(qzz.ptr), qzz.len, 0, 0, 0); +} + +pub fn enableAddrErrorReportingInRange(qzz: []u8) usize { + return doMemCheckClientRequestExpr(0, // default return + MemCheckClientRequest.EnableAddrErrorReportingInRange, @ptrToInt(qzz.ptr), qzz.len, 0, 0, 0); +} diff --git a/lib/std/zig.zig b/lib/std/zig.zig new file mode 100644 index 0000000000..494c9d0057 --- /dev/null +++ b/lib/std/zig.zig @@ -0,0 +1,15 @@ +const tokenizer = @import("zig/tokenizer.zig"); +pub const Token = tokenizer.Token; +pub const Tokenizer = tokenizer.Tokenizer; +pub const parse = @import("zig/parse.zig").parse; +pub const parseStringLiteral = @import("zig/parse_string_literal.zig").parseStringLiteral; +pub const render = @import("zig/render.zig").render; +pub const ast = @import("zig/ast.zig"); + +test "std.zig tests" { + _ = @import("zig/ast.zig"); + _ = @import("zig/parse.zig"); + _ = @import("zig/render.zig"); + _ = @import("zig/tokenizer.zig"); + _ = @import("zig/parse_string_literal.zig"); +} diff --git a/lib/std/zig/ast.zig b/lib/std/zig/ast.zig new file mode 100644 index 0000000000..79e6647144 --- /dev/null +++ b/lib/std/zig/ast.zig @@ -0,0 +1,2252 @@ +const std = @import("../std.zig"); +const assert = std.debug.assert; +const testing = std.testing; +const SegmentedList = std.SegmentedList; +const mem = std.mem; +const Token = std.zig.Token; + +pub const TokenIndex = usize; + +pub const Tree = struct { + source: []const u8, + tokens: TokenList, + root_node: *Node.Root, + arena_allocator: std.heap.ArenaAllocator, + errors: ErrorList, + + pub const TokenList = SegmentedList(Token, 64); + pub const ErrorList = SegmentedList(Error, 0); + + pub fn deinit(self: *Tree) void { + // Here we copy the arena allocator into stack memory, because + // otherwise it would destroy itself while it was still working. + var arena_allocator = self.arena_allocator; + arena_allocator.deinit(); + // self is destroyed + } + + pub fn renderError(self: *Tree, parse_error: *Error, stream: var) !void { + return parse_error.render(&self.tokens, stream); + } + + pub fn tokenSlice(self: *Tree, token_index: TokenIndex) []const u8 { + return self.tokenSlicePtr(self.tokens.at(token_index)); + } + + pub fn tokenSlicePtr(self: *Tree, token: *const Token) []const u8 { + return self.source[token.start..token.end]; + } + + pub fn getNodeSource(self: *const Tree, node: *const Node) []const u8 { + const first_token = self.tokens.at(node.firstToken()); + const last_token = self.tokens.at(node.lastToken()); + return self.source[first_token.start..last_token.end]; + } + + pub const Location = struct { + line: usize, + column: usize, + line_start: usize, + line_end: usize, + }; + + /// Return the Location of the token relative to the offset specified by `start_index`. + pub fn tokenLocationPtr(self: *Tree, start_index: usize, token: *const Token) Location { + var loc = Location{ + .line = 0, + .column = 0, + .line_start = start_index, + .line_end = self.source.len, + }; + const token_start = token.start; + for (self.source[start_index..]) |c, i| { + if (i + start_index == token_start) { + loc.line_end = i + start_index; + while (loc.line_end < self.source.len and self.source[loc.line_end] != '\n') : (loc.line_end += 1) {} + return loc; + } + if (c == '\n') { + loc.line += 1; + loc.column = 0; + loc.line_start = i + 1; + } else { + loc.column += 1; + } + } + return loc; + } + + pub fn tokenLocation(self: *Tree, start_index: usize, token_index: TokenIndex) Location { + return self.tokenLocationPtr(start_index, self.tokens.at(token_index)); + } + + pub fn tokensOnSameLine(self: *Tree, token1_index: TokenIndex, token2_index: TokenIndex) bool { + return self.tokensOnSameLinePtr(self.tokens.at(token1_index), self.tokens.at(token2_index)); + } + + pub fn tokensOnSameLinePtr(self: *Tree, token1: *const Token, token2: *const Token) bool { + return mem.indexOfScalar(u8, self.source[token1.end..token2.start], '\n') == null; + } + + pub fn dump(self: *Tree) void { + self.root_node.base.dump(0); + } + + /// Skips over comments + pub fn prevToken(self: *Tree, token_index: TokenIndex) TokenIndex { + var index = token_index - 1; + while (self.tokens.at(index).id == Token.Id.LineComment) { + index -= 1; + } + return index; + } + + /// Skips over comments + pub fn nextToken(self: *Tree, token_index: TokenIndex) TokenIndex { + var index = token_index + 1; + while (self.tokens.at(index).id == Token.Id.LineComment) { + index += 1; + } + return index; + } +}; + +pub const Error = union(enum) { + InvalidToken: InvalidToken, + ExpectedContainerMembers: ExpectedContainerMembers, + ExpectedStringLiteral: ExpectedStringLiteral, + ExpectedIntegerLiteral: ExpectedIntegerLiteral, + ExpectedPubItem: ExpectedPubItem, + ExpectedIdentifier: ExpectedIdentifier, + ExpectedStatement: ExpectedStatement, + ExpectedVarDeclOrFn: ExpectedVarDeclOrFn, + ExpectedVarDecl: ExpectedVarDecl, + ExpectedReturnType: ExpectedReturnType, + ExpectedAggregateKw: ExpectedAggregateKw, + UnattachedDocComment: UnattachedDocComment, + ExpectedEqOrSemi: ExpectedEqOrSemi, + ExpectedSemiOrLBrace: ExpectedSemiOrLBrace, + ExpectedSemiOrElse: ExpectedSemiOrElse, + ExpectedLabelOrLBrace: ExpectedLabelOrLBrace, + ExpectedLBrace: ExpectedLBrace, + ExpectedColonOrRParen: ExpectedColonOrRParen, + ExpectedLabelable: ExpectedLabelable, + ExpectedInlinable: ExpectedInlinable, + ExpectedAsmOutputReturnOrType: ExpectedAsmOutputReturnOrType, + ExpectedCall: ExpectedCall, + ExpectedCallOrFnProto: ExpectedCallOrFnProto, + ExpectedSliceOrRBracket: ExpectedSliceOrRBracket, + ExtraAlignQualifier: ExtraAlignQualifier, + ExtraConstQualifier: ExtraConstQualifier, + ExtraVolatileQualifier: ExtraVolatileQualifier, + ExtraAllowZeroQualifier: ExtraAllowZeroQualifier, + ExpectedTypeExpr: ExpectedTypeExpr, + ExpectedPrimaryTypeExpr: ExpectedPrimaryTypeExpr, + ExpectedParamType: ExpectedParamType, + ExpectedExpr: ExpectedExpr, + ExpectedPrimaryExpr: ExpectedPrimaryExpr, + ExpectedToken: ExpectedToken, + ExpectedCommaOrEnd: ExpectedCommaOrEnd, + ExpectedParamList: ExpectedParamList, + ExpectedPayload: ExpectedPayload, + ExpectedBlockOrAssignment: ExpectedBlockOrAssignment, + ExpectedBlockOrExpression: ExpectedBlockOrExpression, + ExpectedExprOrAssignment: ExpectedExprOrAssignment, + ExpectedPrefixExpr: ExpectedPrefixExpr, + ExpectedLoopExpr: ExpectedLoopExpr, + ExpectedDerefOrUnwrap: ExpectedDerefOrUnwrap, + ExpectedSuffixOp: ExpectedSuffixOp, + + pub fn render(self: *const Error, tokens: *Tree.TokenList, stream: var) !void { + switch (self.*) { + .InvalidToken => |*x| return x.render(tokens, stream), + .ExpectedContainerMembers => |*x| return x.render(tokens, stream), + .ExpectedStringLiteral => |*x| return x.render(tokens, stream), + .ExpectedIntegerLiteral => |*x| return x.render(tokens, stream), + .ExpectedPubItem => |*x| return x.render(tokens, stream), + .ExpectedIdentifier => |*x| return x.render(tokens, stream), + .ExpectedStatement => |*x| return x.render(tokens, stream), + .ExpectedVarDeclOrFn => |*x| return x.render(tokens, stream), + .ExpectedVarDecl => |*x| return x.render(tokens, stream), + .ExpectedReturnType => |*x| return x.render(tokens, stream), + .ExpectedAggregateKw => |*x| return x.render(tokens, stream), + .UnattachedDocComment => |*x| return x.render(tokens, stream), + .ExpectedEqOrSemi => |*x| return x.render(tokens, stream), + .ExpectedSemiOrLBrace => |*x| return x.render(tokens, stream), + .ExpectedSemiOrElse => |*x| return x.render(tokens, stream), + .ExpectedLabelOrLBrace => |*x| return x.render(tokens, stream), + .ExpectedLBrace => |*x| return x.render(tokens, stream), + .ExpectedColonOrRParen => |*x| return x.render(tokens, stream), + .ExpectedLabelable => |*x| return x.render(tokens, stream), + .ExpectedInlinable => |*x| return x.render(tokens, stream), + .ExpectedAsmOutputReturnOrType => |*x| return x.render(tokens, stream), + .ExpectedCall => |*x| return x.render(tokens, stream), + .ExpectedCallOrFnProto => |*x| return x.render(tokens, stream), + .ExpectedSliceOrRBracket => |*x| return x.render(tokens, stream), + .ExtraAlignQualifier => |*x| return x.render(tokens, stream), + .ExtraConstQualifier => |*x| return x.render(tokens, stream), + .ExtraVolatileQualifier => |*x| return x.render(tokens, stream), + .ExtraAllowZeroQualifier => |*x| return x.render(tokens, stream), + .ExpectedTypeExpr => |*x| return x.render(tokens, stream), + .ExpectedPrimaryTypeExpr => |*x| return x.render(tokens, stream), + .ExpectedParamType => |*x| return x.render(tokens, stream), + .ExpectedExpr => |*x| return x.render(tokens, stream), + .ExpectedPrimaryExpr => |*x| return x.render(tokens, stream), + .ExpectedToken => |*x| return x.render(tokens, stream), + .ExpectedCommaOrEnd => |*x| return x.render(tokens, stream), + .ExpectedParamList => |*x| return x.render(tokens, stream), + .ExpectedPayload => |*x| return x.render(tokens, stream), + .ExpectedBlockOrAssignment => |*x| return x.render(tokens, stream), + .ExpectedBlockOrExpression => |*x| return x.render(tokens, stream), + .ExpectedExprOrAssignment => |*x| return x.render(tokens, stream), + .ExpectedPrefixExpr => |*x| return x.render(tokens, stream), + .ExpectedLoopExpr => |*x| return x.render(tokens, stream), + .ExpectedDerefOrUnwrap => |*x| return x.render(tokens, stream), + .ExpectedSuffixOp => |*x| return x.render(tokens, stream), + } + } + + pub fn loc(self: *const Error) TokenIndex { + switch (self.*) { + .InvalidToken => |x| return x.token, + .ExpectedContainerMembers => |x| return x.token, + .ExpectedStringLiteral => |x| return x.token, + .ExpectedIntegerLiteral => |x| return x.token, + .ExpectedPubItem => |x| return x.token, + .ExpectedIdentifier => |x| return x.token, + .ExpectedStatement => |x| return x.token, + .ExpectedVarDeclOrFn => |x| return x.token, + .ExpectedVarDecl => |x| return x.token, + .ExpectedReturnType => |x| return x.token, + .ExpectedAggregateKw => |x| return x.token, + .UnattachedDocComment => |x| return x.token, + .ExpectedEqOrSemi => |x| return x.token, + .ExpectedSemiOrLBrace => |x| return x.token, + .ExpectedSemiOrElse => |x| return x.token, + .ExpectedLabelOrLBrace => |x| return x.token, + .ExpectedLBrace => |x| return x.token, + .ExpectedColonOrRParen => |x| return x.token, + .ExpectedLabelable => |x| return x.token, + .ExpectedInlinable => |x| return x.token, + .ExpectedAsmOutputReturnOrType => |x| return x.token, + .ExpectedCall => |x| return x.node.firstToken(), + .ExpectedCallOrFnProto => |x| return x.node.firstToken(), + .ExpectedSliceOrRBracket => |x| return x.token, + .ExtraAlignQualifier => |x| return x.token, + .ExtraConstQualifier => |x| return x.token, + .ExtraVolatileQualifier => |x| return x.token, + .ExtraAllowZeroQualifier => |x| return x.token, + .ExpectedTypeExpr => |x| return x.token, + .ExpectedPrimaryTypeExpr => |x| return x.token, + .ExpectedParamType => |x| return x.token, + .ExpectedExpr => |x| return x.token, + .ExpectedPrimaryExpr => |x| return x.token, + .ExpectedToken => |x| return x.token, + .ExpectedCommaOrEnd => |x| return x.token, + .ExpectedParamList => |x| return x.token, + .ExpectedPayload => |x| return x.token, + .ExpectedBlockOrAssignment => |x| return x.token, + .ExpectedBlockOrExpression => |x| return x.token, + .ExpectedExprOrAssignment => |x| return x.token, + .ExpectedPrefixExpr => |x| return x.token, + .ExpectedLoopExpr => |x| return x.token, + .ExpectedDerefOrUnwrap => |x| return x.token, + .ExpectedSuffixOp => |x| return x.token, + } + } + + pub const InvalidToken = SingleTokenError("Invalid token '{}'"); + pub const ExpectedContainerMembers = SingleTokenError("Expected test, comptime, var decl, or container field, found '{}'"); + pub const ExpectedStringLiteral = SingleTokenError("Expected string literal, found '{}'"); + pub const ExpectedIntegerLiteral = SingleTokenError("Expected integer literal, found '{}'"); + pub const ExpectedIdentifier = SingleTokenError("Expected identifier, found '{}'"); + pub const ExpectedStatement = SingleTokenError("Expected statement, found '{}'"); + pub const ExpectedVarDeclOrFn = SingleTokenError("Expected variable declaration or function, found '{}'"); + pub const ExpectedVarDecl = SingleTokenError("Expected variable declaration, found '{}'"); + pub const ExpectedReturnType = SingleTokenError("Expected 'var' or return type expression, found '{}'"); + pub const ExpectedAggregateKw = SingleTokenError("Expected '" ++ Token.Id.Keyword_struct.symbol() ++ "', '" ++ Token.Id.Keyword_union.symbol() ++ "', or '" ++ Token.Id.Keyword_enum.symbol() ++ "', found '{}'"); + pub const ExpectedEqOrSemi = SingleTokenError("Expected '=' or ';', found '{}'"); + pub const ExpectedSemiOrLBrace = SingleTokenError("Expected ';' or '{{', found '{}'"); + pub const ExpectedSemiOrElse = SingleTokenError("Expected ';' or 'else', found '{}'"); + pub const ExpectedLBrace = SingleTokenError("Expected '{{', found '{}'"); + pub const ExpectedLabelOrLBrace = SingleTokenError("Expected label or '{{', found '{}'"); + pub const ExpectedColonOrRParen = SingleTokenError("Expected ':' or ')', found '{}'"); + pub const ExpectedLabelable = SingleTokenError("Expected 'while', 'for', 'inline', 'suspend', or '{{', found '{}'"); + pub const ExpectedInlinable = SingleTokenError("Expected 'while' or 'for', found '{}'"); + pub const ExpectedAsmOutputReturnOrType = SingleTokenError("Expected '->' or '" ++ Token.Id.Identifier.symbol() ++ "', found '{}'"); + pub const ExpectedSliceOrRBracket = SingleTokenError("Expected ']' or '..', found '{}'"); + pub const ExpectedTypeExpr = SingleTokenError("Expected type expression, found '{}'"); + pub const ExpectedPrimaryTypeExpr = SingleTokenError("Expected primary type expression, found '{}'"); + pub const ExpectedExpr = SingleTokenError("Expected expression, found '{}'"); + pub const ExpectedPrimaryExpr = SingleTokenError("Expected primary expression, found '{}'"); + pub const ExpectedParamList = SingleTokenError("Expected parameter list, found '{}'"); + pub const ExpectedPayload = SingleTokenError("Expected loop payload, found '{}'"); + pub const ExpectedBlockOrAssignment = SingleTokenError("Expected block or assignment, found '{}'"); + pub const ExpectedBlockOrExpression = SingleTokenError("Expected block or expression, found '{}'"); + pub const ExpectedExprOrAssignment = SingleTokenError("Expected expression or assignment, found '{}'"); + pub const ExpectedPrefixExpr = SingleTokenError("Expected prefix expression, found '{}'"); + pub const ExpectedLoopExpr = SingleTokenError("Expected loop expression, found '{}'"); + pub const ExpectedDerefOrUnwrap = SingleTokenError("Expected pointer dereference or optional unwrap, found '{}'"); + pub const ExpectedSuffixOp = SingleTokenError("Expected pointer dereference, optional unwrap, or field access, found '{}'"); + + pub const ExpectedParamType = SimpleError("Expected parameter type"); + pub const ExpectedPubItem = SimpleError("Pub must be followed by fn decl, var decl, or container member"); + pub const UnattachedDocComment = SimpleError("Unattached documentation comment"); + pub const ExtraAlignQualifier = SimpleError("Extra align qualifier"); + pub const ExtraConstQualifier = SimpleError("Extra const qualifier"); + pub const ExtraVolatileQualifier = SimpleError("Extra volatile qualifier"); + pub const ExtraAllowZeroQualifier = SimpleError("Extra allowzero qualifier"); + + pub const ExpectedCall = struct { + node: *Node, + + pub fn render(self: *const ExpectedCall, tokens: *Tree.TokenList, stream: var) !void { + return stream.print("expected " ++ @tagName(@TagType(Node.SuffixOp.Op).Call) ++ ", found {}", @tagName(self.node.id)); + } + }; + + pub const ExpectedCallOrFnProto = struct { + node: *Node, + + pub fn render(self: *const ExpectedCallOrFnProto, tokens: *Tree.TokenList, stream: var) !void { + return stream.print("expected " ++ @tagName(@TagType(Node.SuffixOp.Op).Call) ++ " or " ++ @tagName(Node.Id.FnProto) ++ ", found {}", @tagName(self.node.id)); + } + }; + + pub const ExpectedToken = struct { + token: TokenIndex, + expected_id: Token.Id, + + pub fn render(self: *const ExpectedToken, tokens: *Tree.TokenList, stream: var) !void { + const found_token = tokens.at(self.token); + switch (found_token.id) { + .Invalid_ampersands => { + return stream.print("`&&` is invalid. Note that `and` is boolean AND."); + }, + .Invalid => { + return stream.print("expected '{}', found invalid bytes", self.expected_id.symbol()); + }, + else => { + const token_name = found_token.id.symbol(); + return stream.print("expected '{}', found '{}'", self.expected_id.symbol(), token_name); + }, + } + } + }; + + pub const ExpectedCommaOrEnd = struct { + token: TokenIndex, + end_id: Token.Id, + + pub fn render(self: *const ExpectedCommaOrEnd, tokens: *Tree.TokenList, stream: var) !void { + const actual_token = tokens.at(self.token); + return stream.print("expected ',' or '{}', found '{}'", self.end_id.symbol(), actual_token.id.symbol()); + } + }; + + fn SingleTokenError(comptime msg: []const u8) type { + return struct { + const ThisError = @This(); + + token: TokenIndex, + + pub fn render(self: *const ThisError, tokens: *Tree.TokenList, stream: var) !void { + const actual_token = tokens.at(self.token); + return stream.print(msg, actual_token.id.symbol()); + } + }; + } + + fn SimpleError(comptime msg: []const u8) type { + return struct { + const ThisError = @This(); + + token: TokenIndex, + + pub fn render(self: *const ThisError, tokens: *Tree.TokenList, stream: var) !void { + return stream.write(msg); + } + }; + } +}; + +pub const Node = struct { + id: Id, + + pub const Id = enum { + // Top level + Root, + Use, + TestDecl, + + // Statements + VarDecl, + Defer, + + // Operators + InfixOp, + PrefixOp, + SuffixOp, + + // Control flow + Switch, + While, + For, + If, + ControlFlowExpression, + Suspend, + + // Type expressions + VarType, + ErrorType, + FnProto, + AnyFrameType, + + // Primary expressions + IntegerLiteral, + FloatLiteral, + EnumLiteral, + StringLiteral, + MultilineStringLiteral, + CharLiteral, + BoolLiteral, + NullLiteral, + UndefinedLiteral, + Unreachable, + Identifier, + GroupedExpression, + BuiltinCall, + ErrorSetDecl, + ContainerDecl, + Asm, + Comptime, + Block, + + // Misc + DocComment, + SwitchCase, + SwitchElse, + Else, + Payload, + PointerPayload, + PointerIndexPayload, + ContainerField, + ErrorTag, + AsmInput, + AsmOutput, + ParamDecl, + FieldInitializer, + }; + + pub fn cast(base: *Node, comptime T: type) ?*T { + if (base.id == comptime typeToId(T)) { + return @fieldParentPtr(T, "base", base); + } + return null; + } + + pub fn iterate(base: *Node, index: usize) ?*Node { + comptime var i = 0; + inline while (i < @memberCount(Id)) : (i += 1) { + if (base.id == @field(Id, @memberName(Id, i))) { + const T = @field(Node, @memberName(Id, i)); + return @fieldParentPtr(T, "base", base).iterate(index); + } + } + unreachable; + } + + pub fn firstToken(base: *const Node) TokenIndex { + comptime var i = 0; + inline while (i < @memberCount(Id)) : (i += 1) { + if (base.id == @field(Id, @memberName(Id, i))) { + const T = @field(Node, @memberName(Id, i)); + return @fieldParentPtr(T, "base", base).firstToken(); + } + } + unreachable; + } + + pub fn lastToken(base: *const Node) TokenIndex { + comptime var i = 0; + inline while (i < @memberCount(Id)) : (i += 1) { + if (base.id == @field(Id, @memberName(Id, i))) { + const T = @field(Node, @memberName(Id, i)); + return @fieldParentPtr(T, "base", base).lastToken(); + } + } + unreachable; + } + + pub fn typeToId(comptime T: type) Id { + comptime var i = 0; + inline while (i < @memberCount(Id)) : (i += 1) { + if (T == @field(Node, @memberName(Id, i))) { + return @field(Id, @memberName(Id, i)); + } + } + unreachable; + } + + pub fn requireSemiColon(base: *const Node) bool { + var n = base; + while (true) { + switch (n.id) { + Id.Root, + Id.ContainerField, + Id.ParamDecl, + Id.Block, + Id.Payload, + Id.PointerPayload, + Id.PointerIndexPayload, + Id.Switch, + Id.SwitchCase, + Id.SwitchElse, + Id.FieldInitializer, + Id.DocComment, + Id.TestDecl, + => return false, + Id.While => { + const while_node = @fieldParentPtr(While, "base", n); + if (while_node.@"else") |@"else"| { + n = &@"else".base; + continue; + } + + return while_node.body.id != Id.Block; + }, + Id.For => { + const for_node = @fieldParentPtr(For, "base", n); + if (for_node.@"else") |@"else"| { + n = &@"else".base; + continue; + } + + return for_node.body.id != Id.Block; + }, + Id.If => { + const if_node = @fieldParentPtr(If, "base", n); + if (if_node.@"else") |@"else"| { + n = &@"else".base; + continue; + } + + return if_node.body.id != Id.Block; + }, + Id.Else => { + const else_node = @fieldParentPtr(Else, "base", n); + n = else_node.body; + continue; + }, + Id.Defer => { + const defer_node = @fieldParentPtr(Defer, "base", n); + return defer_node.expr.id != Id.Block; + }, + Id.Comptime => { + const comptime_node = @fieldParentPtr(Comptime, "base", n); + return comptime_node.expr.id != Id.Block; + }, + Id.Suspend => { + const suspend_node = @fieldParentPtr(Suspend, "base", n); + if (suspend_node.body) |body| { + return body.id != Id.Block; + } + + return true; + }, + else => return true, + } + } + } + + pub fn dump(self: *Node, indent: usize) void { + { + var i: usize = 0; + while (i < indent) : (i += 1) { + std.debug.warn(" "); + } + } + std.debug.warn("{}\n", @tagName(self.id)); + + var child_i: usize = 0; + while (self.iterate(child_i)) |child| : (child_i += 1) { + child.dump(indent + 2); + } + } + + pub const Root = struct { + base: Node, + doc_comments: ?*DocComment, + decls: DeclList, + eof_token: TokenIndex, + + pub const DeclList = SegmentedList(*Node, 4); + + pub fn iterate(self: *Root, index: usize) ?*Node { + if (index < self.decls.len) { + return self.decls.at(index).*; + } + return null; + } + + pub fn firstToken(self: *const Root) TokenIndex { + return if (self.decls.len == 0) self.eof_token else (self.decls.at(0).*).firstToken(); + } + + pub fn lastToken(self: *const Root) TokenIndex { + return if (self.decls.len == 0) self.eof_token else (self.decls.at(self.decls.len - 1).*).lastToken(); + } + }; + + pub const VarDecl = struct { + base: Node, + doc_comments: ?*DocComment, + visib_token: ?TokenIndex, + thread_local_token: ?TokenIndex, + name_token: TokenIndex, + eq_token: TokenIndex, + mut_token: TokenIndex, + comptime_token: ?TokenIndex, + extern_export_token: ?TokenIndex, + lib_name: ?*Node, + type_node: ?*Node, + align_node: ?*Node, + section_node: ?*Node, + init_node: ?*Node, + semicolon_token: TokenIndex, + + pub fn iterate(self: *VarDecl, index: usize) ?*Node { + var i = index; + + if (self.type_node) |type_node| { + if (i < 1) return type_node; + i -= 1; + } + + if (self.align_node) |align_node| { + if (i < 1) return align_node; + i -= 1; + } + + if (self.section_node) |section_node| { + if (i < 1) return section_node; + i -= 1; + } + + if (self.init_node) |init_node| { + if (i < 1) return init_node; + i -= 1; + } + + return null; + } + + pub fn firstToken(self: *const VarDecl) TokenIndex { + if (self.visib_token) |visib_token| return visib_token; + if (self.thread_local_token) |thread_local_token| return thread_local_token; + if (self.comptime_token) |comptime_token| return comptime_token; + if (self.extern_export_token) |extern_export_token| return extern_export_token; + assert(self.lib_name == null); + return self.mut_token; + } + + pub fn lastToken(self: *const VarDecl) TokenIndex { + return self.semicolon_token; + } + }; + + pub const Use = struct { + base: Node, + doc_comments: ?*DocComment, + visib_token: ?TokenIndex, + use_token: TokenIndex, + expr: *Node, + semicolon_token: TokenIndex, + + pub fn iterate(self: *Use, index: usize) ?*Node { + var i = index; + + if (i < 1) return self.expr; + i -= 1; + + return null; + } + + pub fn firstToken(self: *const Use) TokenIndex { + if (self.visib_token) |visib_token| return visib_token; + return self.use_token; + } + + pub fn lastToken(self: *const Use) TokenIndex { + return self.semicolon_token; + } + }; + + pub const ErrorSetDecl = struct { + base: Node, + error_token: TokenIndex, + decls: DeclList, + rbrace_token: TokenIndex, + + pub const DeclList = SegmentedList(*Node, 2); + + pub fn iterate(self: *ErrorSetDecl, index: usize) ?*Node { + var i = index; + + if (i < self.decls.len) return self.decls.at(i).*; + i -= self.decls.len; + + return null; + } + + pub fn firstToken(self: *const ErrorSetDecl) TokenIndex { + return self.error_token; + } + + pub fn lastToken(self: *const ErrorSetDecl) TokenIndex { + return self.rbrace_token; + } + }; + + pub const ContainerDecl = struct { + base: Node, + layout_token: ?TokenIndex, + kind_token: TokenIndex, + init_arg_expr: InitArg, + fields_and_decls: DeclList, + lbrace_token: TokenIndex, + rbrace_token: TokenIndex, + + pub const DeclList = Root.DeclList; + + pub const InitArg = union(enum) { + None, + Enum: ?*Node, + Type: *Node, + }; + + pub fn iterate(self: *ContainerDecl, index: usize) ?*Node { + var i = index; + + switch (self.init_arg_expr) { + InitArg.Type => |t| { + if (i < 1) return t; + i -= 1; + }, + InitArg.None, InitArg.Enum => {}, + } + + if (i < self.fields_and_decls.len) return self.fields_and_decls.at(i).*; + i -= self.fields_and_decls.len; + + return null; + } + + pub fn firstToken(self: *const ContainerDecl) TokenIndex { + if (self.layout_token) |layout_token| { + return layout_token; + } + return self.kind_token; + } + + pub fn lastToken(self: *const ContainerDecl) TokenIndex { + return self.rbrace_token; + } + }; + + pub const ContainerField = struct { + base: Node, + doc_comments: ?*DocComment, + visib_token: ?TokenIndex, + name_token: TokenIndex, + type_expr: ?*Node, + value_expr: ?*Node, + align_expr: ?*Node, + + pub fn iterate(self: *ContainerField, index: usize) ?*Node { + var i = index; + + if (self.type_expr) |type_expr| { + if (i < 1) return type_expr; + i -= 1; + } + + if (self.value_expr) |value_expr| { + if (i < 1) return value_expr; + i -= 1; + } + + return null; + } + + pub fn firstToken(self: *const ContainerField) TokenIndex { + if (self.visib_token) |visib_token| return visib_token; + return self.name_token; + } + + pub fn lastToken(self: *const ContainerField) TokenIndex { + if (self.value_expr) |value_expr| { + return value_expr.lastToken(); + } + if (self.type_expr) |type_expr| { + return type_expr.lastToken(); + } + + return self.name_token; + } + }; + + pub const ErrorTag = struct { + base: Node, + doc_comments: ?*DocComment, + name_token: TokenIndex, + + pub fn iterate(self: *ErrorTag, index: usize) ?*Node { + var i = index; + + if (self.doc_comments) |comments| { + if (i < 1) return &comments.base; + i -= 1; + } + + return null; + } + + pub fn firstToken(self: *const ErrorTag) TokenIndex { + return self.name_token; + } + + pub fn lastToken(self: *const ErrorTag) TokenIndex { + return self.name_token; + } + }; + + pub const Identifier = struct { + base: Node, + token: TokenIndex, + + pub fn iterate(self: *Identifier, index: usize) ?*Node { + return null; + } + + pub fn firstToken(self: *const Identifier) TokenIndex { + return self.token; + } + + pub fn lastToken(self: *const Identifier) TokenIndex { + return self.token; + } + }; + + pub const FnProto = struct { + base: Node, + doc_comments: ?*DocComment, + visib_token: ?TokenIndex, + fn_token: TokenIndex, + name_token: ?TokenIndex, + params: ParamList, + return_type: ReturnType, + var_args_token: ?TokenIndex, + extern_export_inline_token: ?TokenIndex, + cc_token: ?TokenIndex, + body_node: ?*Node, + lib_name: ?*Node, // populated if this is an extern declaration + align_expr: ?*Node, // populated if align(A) is present + section_expr: ?*Node, // populated if linksection(A) is present + + pub const ParamList = SegmentedList(*Node, 2); + + pub const ReturnType = union(enum) { + Explicit: *Node, + InferErrorSet: *Node, + }; + + pub fn iterate(self: *FnProto, index: usize) ?*Node { + var i = index; + + if (self.lib_name) |lib_name| { + if (i < 1) return lib_name; + i -= 1; + } + + if (i < self.params.len) return self.params.at(self.params.len - i - 1).*; + i -= self.params.len; + + if (self.align_expr) |align_expr| { + if (i < 1) return align_expr; + i -= 1; + } + + if (self.section_expr) |section_expr| { + if (i < 1) return section_expr; + i -= 1; + } + + switch (self.return_type) { + // TODO allow this and next prong to share bodies since the types are the same + ReturnType.Explicit => |node| { + if (i < 1) return node; + i -= 1; + }, + ReturnType.InferErrorSet => |node| { + if (i < 1) return node; + i -= 1; + }, + } + + if (self.body_node) |body_node| { + if (i < 1) return body_node; + i -= 1; + } + + return null; + } + + pub fn firstToken(self: *const FnProto) TokenIndex { + if (self.visib_token) |visib_token| return visib_token; + if (self.extern_export_inline_token) |extern_export_inline_token| return extern_export_inline_token; + assert(self.lib_name == null); + if (self.cc_token) |cc_token| return cc_token; + return self.fn_token; + } + + pub fn lastToken(self: *const FnProto) TokenIndex { + if (self.body_node) |body_node| return body_node.lastToken(); + switch (self.return_type) { + // TODO allow this and next prong to share bodies since the types are the same + ReturnType.Explicit => |node| return node.lastToken(), + ReturnType.InferErrorSet => |node| return node.lastToken(), + } + } + }; + + pub const AnyFrameType = struct { + base: Node, + anyframe_token: TokenIndex, + result: ?Result, + + pub const Result = struct { + arrow_token: TokenIndex, + return_type: *Node, + }; + + pub fn iterate(self: *AnyFrameType, index: usize) ?*Node { + var i = index; + + if (self.result) |result| { + if (i < 1) return result.return_type; + i -= 1; + } + + return null; + } + + pub fn firstToken(self: *const AnyFrameType) TokenIndex { + return self.anyframe_token; + } + + pub fn lastToken(self: *const AnyFrameType) TokenIndex { + if (self.result) |result| return result.return_type.lastToken(); + return self.anyframe_token; + } + }; + + pub const ParamDecl = struct { + base: Node, + doc_comments: ?*DocComment, + comptime_token: ?TokenIndex, + noalias_token: ?TokenIndex, + name_token: ?TokenIndex, + type_node: *Node, + var_args_token: ?TokenIndex, + + pub fn iterate(self: *ParamDecl, index: usize) ?*Node { + var i = index; + + if (i < 1) return self.type_node; + i -= 1; + + return null; + } + + pub fn firstToken(self: *const ParamDecl) TokenIndex { + if (self.comptime_token) |comptime_token| return comptime_token; + if (self.noalias_token) |noalias_token| return noalias_token; + if (self.name_token) |name_token| return name_token; + return self.type_node.firstToken(); + } + + pub fn lastToken(self: *const ParamDecl) TokenIndex { + if (self.var_args_token) |var_args_token| return var_args_token; + return self.type_node.lastToken(); + } + }; + + pub const Block = struct { + base: Node, + label: ?TokenIndex, + lbrace: TokenIndex, + statements: StatementList, + rbrace: TokenIndex, + + pub const StatementList = Root.DeclList; + + pub fn iterate(self: *Block, index: usize) ?*Node { + var i = index; + + if (i < self.statements.len) return self.statements.at(i).*; + i -= self.statements.len; + + return null; + } + + pub fn firstToken(self: *const Block) TokenIndex { + if (self.label) |label| { + return label; + } + + return self.lbrace; + } + + pub fn lastToken(self: *const Block) TokenIndex { + return self.rbrace; + } + }; + + pub const Defer = struct { + base: Node, + defer_token: TokenIndex, + expr: *Node, + + pub fn iterate(self: *Defer, index: usize) ?*Node { + var i = index; + + if (i < 1) return self.expr; + i -= 1; + + return null; + } + + pub fn firstToken(self: *const Defer) TokenIndex { + return self.defer_token; + } + + pub fn lastToken(self: *const Defer) TokenIndex { + return self.expr.lastToken(); + } + }; + + pub const Comptime = struct { + base: Node, + doc_comments: ?*DocComment, + comptime_token: TokenIndex, + expr: *Node, + + pub fn iterate(self: *Comptime, index: usize) ?*Node { + var i = index; + + if (i < 1) return self.expr; + i -= 1; + + return null; + } + + pub fn firstToken(self: *const Comptime) TokenIndex { + return self.comptime_token; + } + + pub fn lastToken(self: *const Comptime) TokenIndex { + return self.expr.lastToken(); + } + }; + + pub const Payload = struct { + base: Node, + lpipe: TokenIndex, + error_symbol: *Node, + rpipe: TokenIndex, + + pub fn iterate(self: *Payload, index: usize) ?*Node { + var i = index; + + if (i < 1) return self.error_symbol; + i -= 1; + + return null; + } + + pub fn firstToken(self: *const Payload) TokenIndex { + return self.lpipe; + } + + pub fn lastToken(self: *const Payload) TokenIndex { + return self.rpipe; + } + }; + + pub const PointerPayload = struct { + base: Node, + lpipe: TokenIndex, + ptr_token: ?TokenIndex, + value_symbol: *Node, + rpipe: TokenIndex, + + pub fn iterate(self: *PointerPayload, index: usize) ?*Node { + var i = index; + + if (i < 1) return self.value_symbol; + i -= 1; + + return null; + } + + pub fn firstToken(self: *const PointerPayload) TokenIndex { + return self.lpipe; + } + + pub fn lastToken(self: *const PointerPayload) TokenIndex { + return self.rpipe; + } + }; + + pub const PointerIndexPayload = struct { + base: Node, + lpipe: TokenIndex, + ptr_token: ?TokenIndex, + value_symbol: *Node, + index_symbol: ?*Node, + rpipe: TokenIndex, + + pub fn iterate(self: *PointerIndexPayload, index: usize) ?*Node { + var i = index; + + if (i < 1) return self.value_symbol; + i -= 1; + + if (self.index_symbol) |index_symbol| { + if (i < 1) return index_symbol; + i -= 1; + } + + return null; + } + + pub fn firstToken(self: *const PointerIndexPayload) TokenIndex { + return self.lpipe; + } + + pub fn lastToken(self: *const PointerIndexPayload) TokenIndex { + return self.rpipe; + } + }; + + pub const Else = struct { + base: Node, + else_token: TokenIndex, + payload: ?*Node, + body: *Node, + + pub fn iterate(self: *Else, index: usize) ?*Node { + var i = index; + + if (self.payload) |payload| { + if (i < 1) return payload; + i -= 1; + } + + if (i < 1) return self.body; + i -= 1; + + return null; + } + + pub fn firstToken(self: *const Else) TokenIndex { + return self.else_token; + } + + pub fn lastToken(self: *const Else) TokenIndex { + return self.body.lastToken(); + } + }; + + pub const Switch = struct { + base: Node, + switch_token: TokenIndex, + expr: *Node, + + /// these must be SwitchCase nodes + cases: CaseList, + rbrace: TokenIndex, + + pub const CaseList = SegmentedList(*Node, 2); + + pub fn iterate(self: *Switch, index: usize) ?*Node { + var i = index; + + if (i < 1) return self.expr; + i -= 1; + + if (i < self.cases.len) return self.cases.at(i).*; + i -= self.cases.len; + + return null; + } + + pub fn firstToken(self: *const Switch) TokenIndex { + return self.switch_token; + } + + pub fn lastToken(self: *const Switch) TokenIndex { + return self.rbrace; + } + }; + + pub const SwitchCase = struct { + base: Node, + items: ItemList, + arrow_token: TokenIndex, + payload: ?*Node, + expr: *Node, + + pub const ItemList = SegmentedList(*Node, 1); + + pub fn iterate(self: *SwitchCase, index: usize) ?*Node { + var i = index; + + if (i < self.items.len) return self.items.at(i).*; + i -= self.items.len; + + if (self.payload) |payload| { + if (i < 1) return payload; + i -= 1; + } + + if (i < 1) return self.expr; + i -= 1; + + return null; + } + + pub fn firstToken(self: *const SwitchCase) TokenIndex { + return (self.items.at(0).*).firstToken(); + } + + pub fn lastToken(self: *const SwitchCase) TokenIndex { + return self.expr.lastToken(); + } + }; + + pub const SwitchElse = struct { + base: Node, + token: TokenIndex, + + pub fn iterate(self: *SwitchElse, index: usize) ?*Node { + return null; + } + + pub fn firstToken(self: *const SwitchElse) TokenIndex { + return self.token; + } + + pub fn lastToken(self: *const SwitchElse) TokenIndex { + return self.token; + } + }; + + pub const While = struct { + base: Node, + label: ?TokenIndex, + inline_token: ?TokenIndex, + while_token: TokenIndex, + condition: *Node, + payload: ?*Node, + continue_expr: ?*Node, + body: *Node, + @"else": ?*Else, + + pub fn iterate(self: *While, index: usize) ?*Node { + var i = index; + + if (i < 1) return self.condition; + i -= 1; + + if (self.payload) |payload| { + if (i < 1) return payload; + i -= 1; + } + + if (self.continue_expr) |continue_expr| { + if (i < 1) return continue_expr; + i -= 1; + } + + if (i < 1) return self.body; + i -= 1; + + if (self.@"else") |@"else"| { + if (i < 1) return &@"else".base; + i -= 1; + } + + return null; + } + + pub fn firstToken(self: *const While) TokenIndex { + if (self.label) |label| { + return label; + } + + if (self.inline_token) |inline_token| { + return inline_token; + } + + return self.while_token; + } + + pub fn lastToken(self: *const While) TokenIndex { + if (self.@"else") |@"else"| { + return @"else".body.lastToken(); + } + + return self.body.lastToken(); + } + }; + + pub const For = struct { + base: Node, + label: ?TokenIndex, + inline_token: ?TokenIndex, + for_token: TokenIndex, + array_expr: *Node, + payload: *Node, + body: *Node, + @"else": ?*Else, + + pub fn iterate(self: *For, index: usize) ?*Node { + var i = index; + + if (i < 1) return self.array_expr; + i -= 1; + + if (i < 1) return self.payload; + i -= 1; + + if (i < 1) return self.body; + i -= 1; + + if (self.@"else") |@"else"| { + if (i < 1) return &@"else".base; + i -= 1; + } + + return null; + } + + pub fn firstToken(self: *const For) TokenIndex { + if (self.label) |label| { + return label; + } + + if (self.inline_token) |inline_token| { + return inline_token; + } + + return self.for_token; + } + + pub fn lastToken(self: *const For) TokenIndex { + if (self.@"else") |@"else"| { + return @"else".body.lastToken(); + } + + return self.body.lastToken(); + } + }; + + pub const If = struct { + base: Node, + if_token: TokenIndex, + condition: *Node, + payload: ?*Node, + body: *Node, + @"else": ?*Else, + + pub fn iterate(self: *If, index: usize) ?*Node { + var i = index; + + if (i < 1) return self.condition; + i -= 1; + + if (self.payload) |payload| { + if (i < 1) return payload; + i -= 1; + } + + if (i < 1) return self.body; + i -= 1; + + if (self.@"else") |@"else"| { + if (i < 1) return &@"else".base; + i -= 1; + } + + return null; + } + + pub fn firstToken(self: *const If) TokenIndex { + return self.if_token; + } + + pub fn lastToken(self: *const If) TokenIndex { + if (self.@"else") |@"else"| { + return @"else".body.lastToken(); + } + + return self.body.lastToken(); + } + }; + + pub const InfixOp = struct { + base: Node, + op_token: TokenIndex, + lhs: *Node, + op: Op, + rhs: *Node, + + pub const Op = union(enum) { + Add, + AddWrap, + ArrayCat, + ArrayMult, + Assign, + AssignBitAnd, + AssignBitOr, + AssignBitShiftLeft, + AssignBitShiftRight, + AssignBitXor, + AssignDiv, + AssignMinus, + AssignMinusWrap, + AssignMod, + AssignPlus, + AssignPlusWrap, + AssignTimes, + AssignTimesWarp, + BangEqual, + BitAnd, + BitOr, + BitShiftLeft, + BitShiftRight, + BitXor, + BoolAnd, + BoolOr, + Catch: ?*Node, + Div, + EqualEqual, + ErrorUnion, + GreaterOrEqual, + GreaterThan, + LessOrEqual, + LessThan, + MergeErrorSets, + Mod, + Mult, + MultWrap, + Period, + Range, + Sub, + SubWrap, + UnwrapOptional, + }; + + pub fn iterate(self: *InfixOp, index: usize) ?*Node { + var i = index; + + if (i < 1) return self.lhs; + i -= 1; + + switch (self.op) { + Op.Catch => |maybe_payload| { + if (maybe_payload) |payload| { + if (i < 1) return payload; + i -= 1; + } + }, + + Op.Add, + Op.AddWrap, + Op.ArrayCat, + Op.ArrayMult, + Op.Assign, + Op.AssignBitAnd, + Op.AssignBitOr, + Op.AssignBitShiftLeft, + Op.AssignBitShiftRight, + Op.AssignBitXor, + Op.AssignDiv, + Op.AssignMinus, + Op.AssignMinusWrap, + Op.AssignMod, + Op.AssignPlus, + Op.AssignPlusWrap, + Op.AssignTimes, + Op.AssignTimesWarp, + Op.BangEqual, + Op.BitAnd, + Op.BitOr, + Op.BitShiftLeft, + Op.BitShiftRight, + Op.BitXor, + Op.BoolAnd, + Op.BoolOr, + Op.Div, + Op.EqualEqual, + Op.ErrorUnion, + Op.GreaterOrEqual, + Op.GreaterThan, + Op.LessOrEqual, + Op.LessThan, + Op.MergeErrorSets, + Op.Mod, + Op.Mult, + Op.MultWrap, + Op.Period, + Op.Range, + Op.Sub, + Op.SubWrap, + Op.UnwrapOptional, + => {}, + } + + if (i < 1) return self.rhs; + i -= 1; + + return null; + } + + pub fn firstToken(self: *const InfixOp) TokenIndex { + return self.lhs.firstToken(); + } + + pub fn lastToken(self: *const InfixOp) TokenIndex { + return self.rhs.lastToken(); + } + }; + + pub const PrefixOp = struct { + base: Node, + op_token: TokenIndex, + op: Op, + rhs: *Node, + + pub const Op = union(enum) { + AddressOf, + ArrayType: *Node, + Await, + BitNot, + BoolNot, + Cancel, + OptionalType, + Negation, + NegationWrap, + Resume, + PtrType: PtrInfo, + SliceType: PtrInfo, + Try, + }; + + pub const PtrInfo = struct { + allowzero_token: ?TokenIndex, + align_info: ?Align, + const_token: ?TokenIndex, + volatile_token: ?TokenIndex, + + pub const Align = struct { + node: *Node, + bit_range: ?BitRange, + + pub const BitRange = struct { + start: *Node, + end: *Node, + }; + }; + }; + + pub fn iterate(self: *PrefixOp, index: usize) ?*Node { + var i = index; + + switch (self.op) { + // TODO https://github.com/ziglang/zig/issues/1107 + Op.SliceType => |addr_of_info| { + if (addr_of_info.align_info) |align_info| { + if (i < 1) return align_info.node; + i -= 1; + } + }, + + Op.PtrType => |addr_of_info| { + if (addr_of_info.align_info) |align_info| { + if (i < 1) return align_info.node; + i -= 1; + } + }, + + Op.ArrayType => |size_expr| { + if (i < 1) return size_expr; + i -= 1; + }, + + Op.AddressOf, + Op.Await, + Op.BitNot, + Op.BoolNot, + Op.Cancel, + Op.OptionalType, + Op.Negation, + Op.NegationWrap, + Op.Try, + Op.Resume, + => {}, + } + + if (i < 1) return self.rhs; + i -= 1; + + return null; + } + + pub fn firstToken(self: *const PrefixOp) TokenIndex { + return self.op_token; + } + + pub fn lastToken(self: *const PrefixOp) TokenIndex { + return self.rhs.lastToken(); + } + }; + + pub const FieldInitializer = struct { + base: Node, + period_token: TokenIndex, + name_token: TokenIndex, + expr: *Node, + + pub fn iterate(self: *FieldInitializer, index: usize) ?*Node { + var i = index; + + if (i < 1) return self.expr; + i -= 1; + + return null; + } + + pub fn firstToken(self: *const FieldInitializer) TokenIndex { + return self.period_token; + } + + pub fn lastToken(self: *const FieldInitializer) TokenIndex { + return self.expr.lastToken(); + } + }; + + pub const SuffixOp = struct { + base: Node, + lhs: *Node, + op: Op, + rtoken: TokenIndex, + + pub const Op = union(enum) { + Call: Call, + ArrayAccess: *Node, + Slice: Slice, + ArrayInitializer: InitList, + StructInitializer: InitList, + Deref, + UnwrapOptional, + + pub const InitList = SegmentedList(*Node, 2); + + pub const Call = struct { + params: ParamList, + async_token: ?TokenIndex, + + pub const ParamList = SegmentedList(*Node, 2); + }; + + pub const Slice = struct { + start: *Node, + end: ?*Node, + }; + }; + + pub fn iterate(self: *SuffixOp, index: usize) ?*Node { + var i = index; + + if (i < 1) return self.lhs; + i -= 1; + + switch (self.op) { + .Call => |*call_info| { + if (i < call_info.params.len) return call_info.params.at(i).*; + i -= call_info.params.len; + }, + .ArrayAccess => |index_expr| { + if (i < 1) return index_expr; + i -= 1; + }, + .Slice => |range| { + if (i < 1) return range.start; + i -= 1; + + if (range.end) |end| { + if (i < 1) return end; + i -= 1; + } + }, + .ArrayInitializer => |*exprs| { + if (i < exprs.len) return exprs.at(i).*; + i -= exprs.len; + }, + .StructInitializer => |*fields| { + if (i < fields.len) return fields.at(i).*; + i -= fields.len; + }, + .UnwrapOptional, + .Deref, + => {}, + } + + return null; + } + + pub fn firstToken(self: *const SuffixOp) TokenIndex { + switch (self.op) { + .Call => |*call_info| if (call_info.async_token) |async_token| return async_token, + else => {}, + } + return self.lhs.firstToken(); + } + + pub fn lastToken(self: *const SuffixOp) TokenIndex { + return self.rtoken; + } + }; + + pub const GroupedExpression = struct { + base: Node, + lparen: TokenIndex, + expr: *Node, + rparen: TokenIndex, + + pub fn iterate(self: *GroupedExpression, index: usize) ?*Node { + var i = index; + + if (i < 1) return self.expr; + i -= 1; + + return null; + } + + pub fn firstToken(self: *const GroupedExpression) TokenIndex { + return self.lparen; + } + + pub fn lastToken(self: *const GroupedExpression) TokenIndex { + return self.rparen; + } + }; + + pub const ControlFlowExpression = struct { + base: Node, + ltoken: TokenIndex, + kind: Kind, + rhs: ?*Node, + + pub const Kind = union(enum) { + Break: ?*Node, + Continue: ?*Node, + Return, + }; + + pub fn iterate(self: *ControlFlowExpression, index: usize) ?*Node { + var i = index; + + switch (self.kind) { + Kind.Break => |maybe_label| { + if (maybe_label) |label| { + if (i < 1) return label; + i -= 1; + } + }, + Kind.Continue => |maybe_label| { + if (maybe_label) |label| { + if (i < 1) return label; + i -= 1; + } + }, + Kind.Return => {}, + } + + if (self.rhs) |rhs| { + if (i < 1) return rhs; + i -= 1; + } + + return null; + } + + pub fn firstToken(self: *const ControlFlowExpression) TokenIndex { + return self.ltoken; + } + + pub fn lastToken(self: *const ControlFlowExpression) TokenIndex { + if (self.rhs) |rhs| { + return rhs.lastToken(); + } + + switch (self.kind) { + Kind.Break => |maybe_label| { + if (maybe_label) |label| { + return label.lastToken(); + } + }, + Kind.Continue => |maybe_label| { + if (maybe_label) |label| { + return label.lastToken(); + } + }, + Kind.Return => return self.ltoken, + } + + return self.ltoken; + } + }; + + pub const Suspend = struct { + base: Node, + suspend_token: TokenIndex, + body: ?*Node, + + pub fn iterate(self: *Suspend, index: usize) ?*Node { + var i = index; + + if (self.body) |body| { + if (i < 1) return body; + i -= 1; + } + + return null; + } + + pub fn firstToken(self: *const Suspend) TokenIndex { + return self.suspend_token; + } + + pub fn lastToken(self: *const Suspend) TokenIndex { + if (self.body) |body| { + return body.lastToken(); + } + + return self.suspend_token; + } + }; + + pub const IntegerLiteral = struct { + base: Node, + token: TokenIndex, + + pub fn iterate(self: *IntegerLiteral, index: usize) ?*Node { + return null; + } + + pub fn firstToken(self: *const IntegerLiteral) TokenIndex { + return self.token; + } + + pub fn lastToken(self: *const IntegerLiteral) TokenIndex { + return self.token; + } + }; + + pub const EnumLiteral = struct { + base: Node, + dot: TokenIndex, + name: TokenIndex, + + pub fn iterate(self: *EnumLiteral, index: usize) ?*Node { + return null; + } + + pub fn firstToken(self: *const EnumLiteral) TokenIndex { + return self.dot; + } + + pub fn lastToken(self: *const EnumLiteral) TokenIndex { + return self.name; + } + }; + + pub const FloatLiteral = struct { + base: Node, + token: TokenIndex, + + pub fn iterate(self: *FloatLiteral, index: usize) ?*Node { + return null; + } + + pub fn firstToken(self: *const FloatLiteral) TokenIndex { + return self.token; + } + + pub fn lastToken(self: *const FloatLiteral) TokenIndex { + return self.token; + } + }; + + pub const BuiltinCall = struct { + base: Node, + builtin_token: TokenIndex, + params: ParamList, + rparen_token: TokenIndex, + + pub const ParamList = SegmentedList(*Node, 2); + + pub fn iterate(self: *BuiltinCall, index: usize) ?*Node { + var i = index; + + if (i < self.params.len) return self.params.at(i).*; + i -= self.params.len; + + return null; + } + + pub fn firstToken(self: *const BuiltinCall) TokenIndex { + return self.builtin_token; + } + + pub fn lastToken(self: *const BuiltinCall) TokenIndex { + return self.rparen_token; + } + }; + + pub const StringLiteral = struct { + base: Node, + token: TokenIndex, + + pub fn iterate(self: *StringLiteral, index: usize) ?*Node { + return null; + } + + pub fn firstToken(self: *const StringLiteral) TokenIndex { + return self.token; + } + + pub fn lastToken(self: *const StringLiteral) TokenIndex { + return self.token; + } + }; + + pub const MultilineStringLiteral = struct { + base: Node, + lines: LineList, + + pub const LineList = SegmentedList(TokenIndex, 4); + + pub fn iterate(self: *MultilineStringLiteral, index: usize) ?*Node { + return null; + } + + pub fn firstToken(self: *const MultilineStringLiteral) TokenIndex { + return self.lines.at(0).*; + } + + pub fn lastToken(self: *const MultilineStringLiteral) TokenIndex { + return self.lines.at(self.lines.len - 1).*; + } + }; + + pub const CharLiteral = struct { + base: Node, + token: TokenIndex, + + pub fn iterate(self: *CharLiteral, index: usize) ?*Node { + return null; + } + + pub fn firstToken(self: *const CharLiteral) TokenIndex { + return self.token; + } + + pub fn lastToken(self: *const CharLiteral) TokenIndex { + return self.token; + } + }; + + pub const BoolLiteral = struct { + base: Node, + token: TokenIndex, + + pub fn iterate(self: *BoolLiteral, index: usize) ?*Node { + return null; + } + + pub fn firstToken(self: *const BoolLiteral) TokenIndex { + return self.token; + } + + pub fn lastToken(self: *const BoolLiteral) TokenIndex { + return self.token; + } + }; + + pub const NullLiteral = struct { + base: Node, + token: TokenIndex, + + pub fn iterate(self: *NullLiteral, index: usize) ?*Node { + return null; + } + + pub fn firstToken(self: *const NullLiteral) TokenIndex { + return self.token; + } + + pub fn lastToken(self: *const NullLiteral) TokenIndex { + return self.token; + } + }; + + pub const UndefinedLiteral = struct { + base: Node, + token: TokenIndex, + + pub fn iterate(self: *UndefinedLiteral, index: usize) ?*Node { + return null; + } + + pub fn firstToken(self: *const UndefinedLiteral) TokenIndex { + return self.token; + } + + pub fn lastToken(self: *const UndefinedLiteral) TokenIndex { + return self.token; + } + }; + + pub const AsmOutput = struct { + base: Node, + lbracket: TokenIndex, + symbolic_name: *Node, + constraint: *Node, + kind: Kind, + rparen: TokenIndex, + + pub const Kind = union(enum) { + Variable: *Identifier, + Return: *Node, + }; + + pub fn iterate(self: *AsmOutput, index: usize) ?*Node { + var i = index; + + if (i < 1) return self.symbolic_name; + i -= 1; + + if (i < 1) return self.constraint; + i -= 1; + + switch (self.kind) { + Kind.Variable => |variable_name| { + if (i < 1) return &variable_name.base; + i -= 1; + }, + Kind.Return => |return_type| { + if (i < 1) return return_type; + i -= 1; + }, + } + + return null; + } + + pub fn firstToken(self: *const AsmOutput) TokenIndex { + return self.lbracket; + } + + pub fn lastToken(self: *const AsmOutput) TokenIndex { + return self.rparen; + } + }; + + pub const AsmInput = struct { + base: Node, + lbracket: TokenIndex, + symbolic_name: *Node, + constraint: *Node, + expr: *Node, + rparen: TokenIndex, + + pub fn iterate(self: *AsmInput, index: usize) ?*Node { + var i = index; + + if (i < 1) return self.symbolic_name; + i -= 1; + + if (i < 1) return self.constraint; + i -= 1; + + if (i < 1) return self.expr; + i -= 1; + + return null; + } + + pub fn firstToken(self: *const AsmInput) TokenIndex { + return self.lbracket; + } + + pub fn lastToken(self: *const AsmInput) TokenIndex { + return self.rparen; + } + }; + + pub const Asm = struct { + base: Node, + asm_token: TokenIndex, + volatile_token: ?TokenIndex, + template: *Node, + outputs: OutputList, + inputs: InputList, + clobbers: ClobberList, + rparen: TokenIndex, + + pub const OutputList = SegmentedList(*AsmOutput, 2); + pub const InputList = SegmentedList(*AsmInput, 2); + pub const ClobberList = SegmentedList(*Node, 2); + + pub fn iterate(self: *Asm, index: usize) ?*Node { + var i = index; + + if (i < self.outputs.len) return &self.outputs.at(index).*.base; + i -= self.outputs.len; + + if (i < self.inputs.len) return &self.inputs.at(index).*.base; + i -= self.inputs.len; + + return null; + } + + pub fn firstToken(self: *const Asm) TokenIndex { + return self.asm_token; + } + + pub fn lastToken(self: *const Asm) TokenIndex { + return self.rparen; + } + }; + + pub const Unreachable = struct { + base: Node, + token: TokenIndex, + + pub fn iterate(self: *Unreachable, index: usize) ?*Node { + return null; + } + + pub fn firstToken(self: *const Unreachable) TokenIndex { + return self.token; + } + + pub fn lastToken(self: *const Unreachable) TokenIndex { + return self.token; + } + }; + + pub const ErrorType = struct { + base: Node, + token: TokenIndex, + + pub fn iterate(self: *ErrorType, index: usize) ?*Node { + return null; + } + + pub fn firstToken(self: *const ErrorType) TokenIndex { + return self.token; + } + + pub fn lastToken(self: *const ErrorType) TokenIndex { + return self.token; + } + }; + + pub const VarType = struct { + base: Node, + token: TokenIndex, + + pub fn iterate(self: *VarType, index: usize) ?*Node { + return null; + } + + pub fn firstToken(self: *const VarType) TokenIndex { + return self.token; + } + + pub fn lastToken(self: *const VarType) TokenIndex { + return self.token; + } + }; + + pub const DocComment = struct { + base: Node, + lines: LineList, + + pub const LineList = SegmentedList(TokenIndex, 4); + + pub fn iterate(self: *DocComment, index: usize) ?*Node { + return null; + } + + pub fn firstToken(self: *const DocComment) TokenIndex { + return self.lines.at(0).*; + } + + pub fn lastToken(self: *const DocComment) TokenIndex { + return self.lines.at(self.lines.len - 1).*; + } + }; + + pub const TestDecl = struct { + base: Node, + doc_comments: ?*DocComment, + test_token: TokenIndex, + name: *Node, + body_node: *Node, + + pub fn iterate(self: *TestDecl, index: usize) ?*Node { + var i = index; + + if (i < 1) return self.body_node; + i -= 1; + + return null; + } + + pub fn firstToken(self: *const TestDecl) TokenIndex { + return self.test_token; + } + + pub fn lastToken(self: *const TestDecl) TokenIndex { + return self.body_node.lastToken(); + } + }; +}; + +test "iterate" { + var root = Node.Root{ + .base = Node{ .id = Node.Id.Root }, + .doc_comments = null, + .decls = Node.Root.DeclList.init(std.debug.global_allocator), + .eof_token = 0, + }; + var base = &root.base; + testing.expect(base.iterate(0) == null); +} diff --git a/lib/std/zig/parse.zig b/lib/std/zig/parse.zig new file mode 100644 index 0000000000..151784284d --- /dev/null +++ b/lib/std/zig/parse.zig @@ -0,0 +1,3009 @@ +const std = @import("../std.zig"); +const assert = std.debug.assert; +const Allocator = std.mem.Allocator; +const ast = std.zig.ast; +const Node = ast.Node; +const Tree = ast.Tree; +const AstError = ast.Error; +const TokenIndex = ast.TokenIndex; +const Token = std.zig.Token; +const TokenIterator = Tree.TokenList.Iterator; + +pub const Error = error{ParseError} || Allocator.Error; + +/// Result should be freed with tree.deinit() when there are +/// no more references to any of the tokens or nodes. +pub fn parse(allocator: *Allocator, source: []const u8) !*Tree { + const tree = blk: { + // This block looks unnecessary, but is a "foot-shield" to prevent the SegmentedLists + // from being initialized with a pointer to this `arena`, which is created on + // the stack. Following code should instead refer to `&tree.arena_allocator`, a + // pointer to data which lives safely on the heap and will outlive `parse`. See: + // https://github.com/ziglang/zig/commit/cb4fb14b6e66bd213575f69eec9598be8394fae6 + var arena = std.heap.ArenaAllocator.init(allocator); + errdefer arena.deinit(); + const tree = try arena.allocator.create(ast.Tree); + tree.* = ast.Tree{ + .source = source, + .root_node = undefined, + .arena_allocator = arena, + .tokens = undefined, + .errors = undefined, + }; + break :blk tree; + }; + errdefer tree.deinit(); + const arena = &tree.arena_allocator.allocator; + + tree.tokens = ast.Tree.TokenList.init(arena); + tree.errors = ast.Tree.ErrorList.init(arena); + + var tokenizer = std.zig.Tokenizer.init(source); + while (true) { + const tree_token = try tree.tokens.addOne(); + tree_token.* = tokenizer.next(); + if (tree_token.id == .Eof) break; + } + var it = tree.tokens.iterator(0); + + while (it.peek().?.id == .LineComment) _ = it.next(); + + tree.root_node = try parseRoot(arena, &it, tree); + return tree; +} + +/// Root <- skip ContainerMembers eof +fn parseRoot(arena: *Allocator, it: *TokenIterator, tree: *Tree) Allocator.Error!*Node.Root { + const node = try arena.create(Node.Root); + node.* = Node.Root{ + .base = Node{ .id = .Root }, + .decls = undefined, + // TODO: Because zig fmt collapses consecutive comments separated by blank lines into + // a single multi-line comment, it is currently impossible to have a container-level + // doc comment and NO doc comment on the first decl. For now, simply + // ignore the problem and assume that there will be no container-level + // doc comments. + // See: https://github.com/ziglang/zig/issues/2288 + .doc_comments = null, + .eof_token = undefined, + }; + node.decls = parseContainerMembers(arena, it, tree) catch |err| { + // TODO: Switch on the error type + // https://github.com/ziglang/zig/issues/2473 + if (err == error.ParseError) return node; + assert(err == Allocator.Error.OutOfMemory); + return Allocator.Error.OutOfMemory; + }; + node.eof_token = eatToken(it, .Eof) orelse { + try tree.errors.push(AstError{ + .ExpectedContainerMembers = AstError.ExpectedContainerMembers{ .token = it.index }, + }); + return node; + }; + return node; +} + +/// ContainerMembers +/// <- TestDecl ContainerMembers +/// / TopLevelComptime ContainerMembers +/// / KEYWORD_pub? TopLevelDecl ContainerMembers +/// / KEYWORD_pub? ContainerField COMMA ContainerMembers +/// / KEYWORD_pub? ContainerField +/// / +fn parseContainerMembers(arena: *Allocator, it: *TokenIterator, tree: *Tree) !Node.Root.DeclList { + var list = Node.Root.DeclList.init(arena); + + while (true) { + const doc_comments = try parseDocComment(arena, it, tree); + + if (try parseTestDecl(arena, it, tree)) |node| { + node.cast(Node.TestDecl).?.doc_comments = doc_comments; + try list.push(node); + continue; + } + + if (try parseTopLevelComptime(arena, it, tree)) |node| { + node.cast(Node.Comptime).?.doc_comments = doc_comments; + try list.push(node); + continue; + } + + const visib_token = eatToken(it, .Keyword_pub); + + if (try parseTopLevelDecl(arena, it, tree)) |node| { + switch (node.id) { + .FnProto => { + node.cast(Node.FnProto).?.doc_comments = doc_comments; + node.cast(Node.FnProto).?.visib_token = visib_token; + }, + .VarDecl => { + node.cast(Node.VarDecl).?.doc_comments = doc_comments; + node.cast(Node.VarDecl).?.visib_token = visib_token; + }, + .Use => { + node.cast(Node.Use).?.doc_comments = doc_comments; + node.cast(Node.Use).?.visib_token = visib_token; + }, + else => unreachable, + } + try list.push(node); + if (try parseAppendedDocComment(arena, it, tree, node.lastToken())) |appended_comment| { + switch (node.id) { + .FnProto => {}, + .VarDecl => node.cast(Node.VarDecl).?.doc_comments = appended_comment, + .Use => node.cast(Node.Use).?.doc_comments = appended_comment, + else => unreachable, + } + } + continue; + } + + if (try parseContainerField(arena, it, tree)) |node| { + const field = node.cast(Node.ContainerField).?; + field.visib_token = visib_token; + field.doc_comments = doc_comments; + try list.push(node); + const comma = eatToken(it, .Comma) orelse break; + if (try parseAppendedDocComment(arena, it, tree, comma)) |appended_comment| + field.doc_comments = appended_comment; + continue; + } + + // Dangling pub + if (visib_token != null) { + try tree.errors.push(AstError{ + .ExpectedPubItem = AstError.ExpectedPubItem{ .token = it.index }, + }); + } + + break; + } + + return list; +} + +/// TestDecl <- KEYWORD_test STRINGLITERAL Block +fn parseTestDecl(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const test_token = eatToken(it, .Keyword_test) orelse return null; + const name_node = try expectNode(arena, it, tree, parseStringLiteral, AstError{ + .ExpectedStringLiteral = AstError.ExpectedStringLiteral{ .token = it.index }, + }); + const block_node = try expectNode(arena, it, tree, parseBlock, AstError{ + .ExpectedLBrace = AstError.ExpectedLBrace{ .token = it.index }, + }); + + const test_node = try arena.create(Node.TestDecl); + test_node.* = Node.TestDecl{ + .base = Node{ .id = .TestDecl }, + .doc_comments = null, + .test_token = test_token, + .name = name_node, + .body_node = block_node, + }; + return &test_node.base; +} + +/// TopLevelComptime <- KEYWORD_comptime BlockExpr +fn parseTopLevelComptime(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const tok = eatToken(it, .Keyword_comptime) orelse return null; + const block_node = try expectNode(arena, it, tree, parseBlockExpr, AstError{ + .ExpectedLabelOrLBrace = AstError.ExpectedLabelOrLBrace{ .token = it.index }, + }); + + const comptime_node = try arena.create(Node.Comptime); + comptime_node.* = Node.Comptime{ + .base = Node{ .id = .Comptime }, + .doc_comments = null, + .comptime_token = tok, + .expr = block_node, + }; + return &comptime_node.base; +} + +/// TopLevelDecl +/// <- (KEYWORD_export / KEYWORD_extern STRINGLITERAL? / (KEYWORD_inline / KEYWORD_noinline))? FnProto (SEMICOLON / Block) +/// / (KEYWORD_export / KEYWORD_extern STRINGLITERAL?)? KEYWORD_threadlocal? VarDecl +/// / KEYWORD_usingnamespace Expr SEMICOLON +fn parseTopLevelDecl(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + var lib_name: ?*Node = null; + const extern_export_inline_token = blk: { + if (eatToken(it, .Keyword_export)) |token| break :blk token; + if (eatToken(it, .Keyword_extern)) |token| { + lib_name = try parseStringLiteral(arena, it, tree); + break :blk token; + } + if (eatToken(it, .Keyword_inline)) |token| break :blk token; + if (eatToken(it, .Keyword_noinline)) |token| break :blk token; + break :blk null; + }; + + if (try parseFnProto(arena, it, tree)) |node| { + const fn_node = node.cast(Node.FnProto).?; + fn_node.*.extern_export_inline_token = extern_export_inline_token; + fn_node.*.lib_name = lib_name; + if (eatToken(it, .Semicolon)) |_| return node; + if (try parseBlock(arena, it, tree)) |body_node| { + fn_node.body_node = body_node; + return node; + } + try tree.errors.push(AstError{ + .ExpectedSemiOrLBrace = AstError.ExpectedSemiOrLBrace{ .token = it.index }, + }); + return null; + } + + if (extern_export_inline_token) |token| { + if (tree.tokens.at(token).id == .Keyword_inline or + tree.tokens.at(token).id == .Keyword_noinline) + { + putBackToken(it, token); + return null; + } + } + + const thread_local_token = eatToken(it, .Keyword_threadlocal); + + if (try parseVarDecl(arena, it, tree)) |node| { + var var_decl = node.cast(Node.VarDecl).?; + var_decl.*.thread_local_token = thread_local_token; + var_decl.*.comptime_token = null; + var_decl.*.extern_export_token = extern_export_inline_token; + var_decl.*.lib_name = lib_name; + return node; + } + + if (thread_local_token != null) { + try tree.errors.push(AstError{ + .ExpectedVarDecl = AstError.ExpectedVarDecl{ .token = it.index }, + }); + return error.ParseError; + } + + if (extern_export_inline_token) |token| { + if (lib_name) |string_literal_node| + putBackToken(it, string_literal_node.cast(Node.StringLiteral).?.token); + putBackToken(it, token); + return null; + } + + const use_node = (try parseUse(arena, it, tree)) orelse return null; + const expr_node = try expectNode(arena, it, tree, parseExpr, AstError{ + .ExpectedExpr = AstError.ExpectedExpr{ .token = it.index }, + }); + const semicolon_token = try expectToken(it, tree, .Semicolon); + const use_node_raw = use_node.cast(Node.Use).?; + use_node_raw.*.expr = expr_node; + use_node_raw.*.semicolon_token = semicolon_token; + + return use_node; +} + +/// FnProto <- FnCC? KEYWORD_fn IDENTIFIER? LPAREN ParamDeclList RPAREN ByteAlign? LinkSection? EXCLAMATIONMARK? (KEYWORD_var / TypeExpr) +fn parseFnProto(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const cc = parseFnCC(arena, it, tree); + const fn_token = eatToken(it, .Keyword_fn) orelse { + if (cc == null) return null else return error.ParseError; + }; + const name_token = eatToken(it, .Identifier); + const lparen = try expectToken(it, tree, .LParen); + const params = try parseParamDeclList(arena, it, tree); + const rparen = try expectToken(it, tree, .RParen); + const align_expr = try parseByteAlign(arena, it, tree); + const section_expr = try parseLinkSection(arena, it, tree); + const exclamation_token = eatToken(it, .Bang); + + const return_type_expr = (try parseVarType(arena, it, tree)) orelse + try expectNode(arena, it, tree, parseTypeExpr, AstError{ + .ExpectedReturnType = AstError.ExpectedReturnType{ .token = it.index }, + }); + + const return_type = if (exclamation_token != null) + Node.FnProto.ReturnType{ + .InferErrorSet = return_type_expr, + } + else + Node.FnProto.ReturnType{ + .Explicit = return_type_expr, + }; + + const var_args_token = if (params.len > 0) + params.at(params.len - 1).*.cast(Node.ParamDecl).?.var_args_token + else + null; + + const fn_proto_node = try arena.create(Node.FnProto); + fn_proto_node.* = Node.FnProto{ + .base = Node{ .id = .FnProto }, + .doc_comments = null, + .visib_token = null, + .fn_token = fn_token, + .name_token = name_token, + .params = params, + .return_type = return_type, + .var_args_token = var_args_token, + .extern_export_inline_token = null, + .cc_token = null, + .body_node = null, + .lib_name = null, + .align_expr = align_expr, + .section_expr = section_expr, + }; + + if (cc) |kind| { + switch (kind) { + .CC => |token| fn_proto_node.cc_token = token, + .Extern => |token| fn_proto_node.extern_export_inline_token = token, + } + } + + return &fn_proto_node.base; +} + +/// VarDecl <- (KEYWORD_const / KEYWORD_var) IDENTIFIER (COLON TypeExpr)? ByteAlign? LinkSection? (EQUAL Expr)? SEMICOLON +fn parseVarDecl(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const mut_token = eatToken(it, .Keyword_const) orelse + eatToken(it, .Keyword_var) orelse + return null; + + const name_token = try expectToken(it, tree, .Identifier); + const type_node = if (eatToken(it, .Colon) != null) + try expectNode(arena, it, tree, parseTypeExpr, AstError{ + .ExpectedTypeExpr = AstError.ExpectedTypeExpr{ .token = it.index }, + }) + else + null; + const align_node = try parseByteAlign(arena, it, tree); + const section_node = try parseLinkSection(arena, it, tree); + const eq_token = eatToken(it, .Equal); + const init_node = if (eq_token != null) blk: { + break :blk try expectNode(arena, it, tree, parseExpr, AstError{ + .ExpectedExpr = AstError.ExpectedExpr{ .token = it.index }, + }); + } else null; + const semicolon_token = try expectToken(it, tree, .Semicolon); + + const node = try arena.create(Node.VarDecl); + node.* = Node.VarDecl{ + .base = Node{ .id = .VarDecl }, + .doc_comments = null, + .visib_token = null, + .thread_local_token = null, + .name_token = name_token, + .eq_token = eq_token orelse undefined, + .mut_token = mut_token, + .comptime_token = null, + .extern_export_token = null, + .lib_name = null, + .type_node = type_node, + .align_node = align_node, + .section_node = section_node, + .init_node = init_node, + .semicolon_token = semicolon_token, + }; + return &node.base; +} + +/// ContainerField <- IDENTIFIER (COLON TypeExpr ByteAlign?)? (EQUAL Expr)? +fn parseContainerField(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const name_token = eatToken(it, .Identifier) orelse return null; + + var align_expr: ?*Node = null; + var type_expr: ?*Node = null; + if (eatToken(it, .Colon)) |_| { + type_expr = try expectNode(arena, it, tree, parseTypeExpr, AstError{ + .ExpectedTypeExpr = AstError.ExpectedTypeExpr{ .token = it.index }, + }); + align_expr = try parseByteAlign(arena, it, tree); + } + + const value_expr = if (eatToken(it, .Equal)) |_| + try expectNode(arena, it, tree, parseExpr, AstError{ + .ExpectedExpr = AstError.ExpectedExpr{ .token = it.index }, + }) + else + null; + + const node = try arena.create(Node.ContainerField); + node.* = Node.ContainerField{ + .base = Node{ .id = .ContainerField }, + .doc_comments = null, + .visib_token = null, + .name_token = name_token, + .type_expr = type_expr, + .value_expr = value_expr, + .align_expr = align_expr, + }; + return &node.base; +} + +/// Statement +/// <- KEYWORD_comptime? VarDecl +/// / KEYWORD_comptime BlockExprStatement +/// / KEYWORD_suspend (SEMICOLON / BlockExprStatement) +/// / KEYWORD_defer BlockExprStatement +/// / KEYWORD_errdefer BlockExprStatement +/// / IfStatement +/// / LabeledStatement +/// / SwitchExpr +/// / AssignExpr SEMICOLON +fn parseStatement(arena: *Allocator, it: *TokenIterator, tree: *Tree) Error!?*Node { + const comptime_token = eatToken(it, .Keyword_comptime); + + const var_decl_node = try parseVarDecl(arena, it, tree); + if (var_decl_node) |node| { + const var_decl = node.cast(Node.VarDecl).?; + var_decl.comptime_token = comptime_token; + return node; + } + + if (comptime_token) |token| { + const block_expr = try expectNode(arena, it, tree, parseBlockExprStatement, AstError{ + .ExpectedBlockOrAssignment = AstError.ExpectedBlockOrAssignment{ .token = it.index }, + }); + + const node = try arena.create(Node.Comptime); + node.* = Node.Comptime{ + .base = Node{ .id = .Comptime }, + .doc_comments = null, + .comptime_token = token, + .expr = block_expr, + }; + return &node.base; + } + + if (eatToken(it, .Keyword_suspend)) |suspend_token| { + const semicolon = eatToken(it, .Semicolon); + + const body_node = if (semicolon == null) blk: { + break :blk try expectNode(arena, it, tree, parseBlockExprStatement, AstError{ + .ExpectedBlockOrExpression = AstError.ExpectedBlockOrExpression{ .token = it.index }, + }); + } else null; + + const node = try arena.create(Node.Suspend); + node.* = Node.Suspend{ + .base = Node{ .id = .Suspend }, + .suspend_token = suspend_token, + .body = body_node, + }; + return &node.base; + } + + const defer_token = eatToken(it, .Keyword_defer) orelse eatToken(it, .Keyword_errdefer); + if (defer_token) |token| { + const expr_node = try expectNode(arena, it, tree, parseBlockExprStatement, AstError{ + .ExpectedBlockOrExpression = AstError.ExpectedBlockOrExpression{ .token = it.index }, + }); + const node = try arena.create(Node.Defer); + node.* = Node.Defer{ + .base = Node{ .id = .Defer }, + .defer_token = token, + .expr = expr_node, + }; + return &node.base; + } + + if (try parseIfStatement(arena, it, tree)) |node| return node; + if (try parseLabeledStatement(arena, it, tree)) |node| return node; + if (try parseSwitchExpr(arena, it, tree)) |node| return node; + if (try parseAssignExpr(arena, it, tree)) |node| { + _ = try expectToken(it, tree, .Semicolon); + return node; + } + + return null; +} + +/// IfStatement +/// <- IfPrefix BlockExpr ( KEYWORD_else Payload? Statement )? +/// / IfPrefix AssignExpr ( SEMICOLON / KEYWORD_else Payload? Statement ) +fn parseIfStatement(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const if_node = (try parseIfPrefix(arena, it, tree)) orelse return null; + const if_prefix = if_node.cast(Node.If).?; + + const block_expr = (try parseBlockExpr(arena, it, tree)); + const assign_expr = if (block_expr == null) blk: { + break :blk (try parseAssignExpr(arena, it, tree)) orelse null; + } else null; + + if (block_expr == null and assign_expr == null) { + try tree.errors.push(AstError{ + .ExpectedBlockOrAssignment = AstError.ExpectedBlockOrAssignment{ .token = it.index }, + }); + return error.ParseError; + } + + const semicolon = if (assign_expr != null) eatToken(it, .Semicolon) else null; + + const else_node = if (semicolon == null) blk: { + const else_token = eatToken(it, .Keyword_else) orelse break :blk null; + const payload = try parsePayload(arena, it, tree); + const else_body = try expectNode(arena, it, tree, parseStatement, AstError{ + .InvalidToken = AstError.InvalidToken{ .token = it.index }, + }); + + const node = try arena.create(Node.Else); + node.* = Node.Else{ + .base = Node{ .id = .Else }, + .else_token = else_token, + .payload = payload, + .body = else_body, + }; + + break :blk node; + } else null; + + if (block_expr) |body| { + if_prefix.body = body; + if_prefix.@"else" = else_node; + return if_node; + } + + if (assign_expr) |body| { + if_prefix.body = body; + if (semicolon != null) return if_node; + if (else_node != null) { + if_prefix.@"else" = else_node; + return if_node; + } + try tree.errors.push(AstError{ + .ExpectedSemiOrElse = AstError.ExpectedSemiOrElse{ .token = it.index }, + }); + return error.ParseError; + } + + unreachable; +} + +/// LabeledStatement <- BlockLabel? (Block / LoopStatement) +fn parseLabeledStatement(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const label_token = parseBlockLabel(arena, it, tree); + + if (try parseBlock(arena, it, tree)) |node| { + node.cast(Node.Block).?.label = label_token; + return node; + } + + if (try parseLoopStatement(arena, it, tree)) |node| { + if (node.cast(Node.For)) |for_node| { + for_node.label = label_token; + } else if (node.cast(Node.While)) |while_node| { + while_node.label = label_token; + } else unreachable; + return node; + } + + if (label_token != null) { + try tree.errors.push(AstError{ + .ExpectedLabelable = AstError.ExpectedLabelable{ .token = it.index }, + }); + return error.ParseError; + } + + return null; +} + +/// LoopStatement <- KEYWORD_inline? (ForStatement / WhileStatement) +fn parseLoopStatement(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const inline_token = eatToken(it, .Keyword_inline); + + if (try parseForStatement(arena, it, tree)) |node| { + node.cast(Node.For).?.inline_token = inline_token; + return node; + } + + if (try parseWhileStatement(arena, it, tree)) |node| { + node.cast(Node.While).?.inline_token = inline_token; + return node; + } + + return null; +} + +/// ForStatement +/// <- ForPrefix BlockExpr ( KEYWORD_else Statement )? +/// / ForPrefix AssignExpr ( SEMICOLON / KEYWORD_else Statement ) +fn parseForStatement(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const node = (try parseForPrefix(arena, it, tree)) orelse return null; + const for_prefix = node.cast(Node.For).?; + + if (try parseBlockExpr(arena, it, tree)) |block_expr_node| { + for_prefix.body = block_expr_node; + + if (eatToken(it, .Keyword_else)) |else_token| { + const statement_node = try expectNode(arena, it, tree, parseStatement, AstError{ + .InvalidToken = AstError.InvalidToken{ .token = it.index }, + }); + + const else_node = try arena.create(Node.Else); + else_node.* = Node.Else{ + .base = Node{ .id = .Else }, + .else_token = else_token, + .payload = null, + .body = statement_node, + }; + for_prefix.@"else" = else_node; + + return node; + } + + return node; + } + + if (try parseAssignExpr(arena, it, tree)) |assign_expr| { + for_prefix.body = assign_expr; + + if (eatToken(it, .Semicolon) != null) return node; + + if (eatToken(it, .Keyword_else)) |else_token| { + const statement_node = try expectNode(arena, it, tree, parseStatement, AstError{ + .ExpectedStatement = AstError.ExpectedStatement{ .token = it.index }, + }); + + const else_node = try arena.create(Node.Else); + else_node.* = Node.Else{ + .base = Node{ .id = .Else }, + .else_token = else_token, + .payload = null, + .body = statement_node, + }; + for_prefix.@"else" = else_node; + return node; + } + + try tree.errors.push(AstError{ + .ExpectedSemiOrElse = AstError.ExpectedSemiOrElse{ .token = it.index }, + }); + return null; + } + + return null; +} + +/// WhileStatement +/// <- WhilePrefix BlockExpr ( KEYWORD_else Payload? Statement )? +/// / WhilePrefix AssignExpr ( SEMICOLON / KEYWORD_else Payload? Statement ) +fn parseWhileStatement(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const node = (try parseWhilePrefix(arena, it, tree)) orelse return null; + const while_prefix = node.cast(Node.While).?; + + if (try parseBlockExpr(arena, it, tree)) |block_expr_node| { + while_prefix.body = block_expr_node; + + if (eatToken(it, .Keyword_else)) |else_token| { + const payload = try parsePayload(arena, it, tree); + + const statement_node = try expectNode(arena, it, tree, parseStatement, AstError{ + .InvalidToken = AstError.InvalidToken{ .token = it.index }, + }); + + const else_node = try arena.create(Node.Else); + else_node.* = Node.Else{ + .base = Node{ .id = .Else }, + .else_token = else_token, + .payload = payload, + .body = statement_node, + }; + while_prefix.@"else" = else_node; + + return node; + } + + return node; + } + + if (try parseAssignExpr(arena, it, tree)) |assign_expr_node| { + while_prefix.body = assign_expr_node; + + if (eatToken(it, .Semicolon) != null) return node; + + if (eatToken(it, .Keyword_else)) |else_token| { + const payload = try parsePayload(arena, it, tree); + + const statement_node = try expectNode(arena, it, tree, parseStatement, AstError{ + .ExpectedStatement = AstError.ExpectedStatement{ .token = it.index }, + }); + + const else_node = try arena.create(Node.Else); + else_node.* = Node.Else{ + .base = Node{ .id = .Else }, + .else_token = else_token, + .payload = payload, + .body = statement_node, + }; + while_prefix.@"else" = else_node; + return node; + } + + try tree.errors.push(AstError{ + .ExpectedSemiOrElse = AstError.ExpectedSemiOrElse{ .token = it.index }, + }); + return null; + } + + return null; +} + +/// BlockExprStatement +/// <- BlockExpr +/// / AssignExpr SEMICOLON +fn parseBlockExprStatement(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + if (try parseBlockExpr(arena, it, tree)) |node| return node; + if (try parseAssignExpr(arena, it, tree)) |node| { + _ = try expectToken(it, tree, .Semicolon); + return node; + } + return null; +} + +/// BlockExpr <- BlockLabel? Block +fn parseBlockExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) Error!?*Node { + const label_token = parseBlockLabel(arena, it, tree); + const block_node = (try parseBlock(arena, it, tree)) orelse { + if (label_token) |label| { + putBackToken(it, label + 1); // ":" + putBackToken(it, label); // IDENTIFIER + } + return null; + }; + block_node.cast(Node.Block).?.label = label_token; + return block_node; +} + +/// AssignExpr <- Expr (AssignOp Expr)? +fn parseAssignExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + return parseBinOpExpr(arena, it, tree, parseAssignOp, parseExpr, .Once); +} + +/// Expr <- KEYWORD_try* BoolOrExpr +fn parseExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) Error!?*Node { + return parsePrefixOpExpr(arena, it, tree, parseTry, parseBoolOrExpr); +} + +/// BoolOrExpr <- BoolAndExpr (KEYWORD_or BoolAndExpr)* +fn parseBoolOrExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + return parseBinOpExpr( + arena, + it, + tree, + SimpleBinOpParseFn(.Keyword_or, Node.InfixOp.Op.BoolOr), + parseBoolAndExpr, + .Infinitely, + ); +} + +/// BoolAndExpr <- CompareExpr (KEYWORD_and CompareExpr)* +fn parseBoolAndExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + return parseBinOpExpr( + arena, + it, + tree, + SimpleBinOpParseFn(.Keyword_and, .BoolAnd), + parseCompareExpr, + .Infinitely, + ); +} + +/// CompareExpr <- BitwiseExpr (CompareOp BitwiseExpr)? +fn parseCompareExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + return parseBinOpExpr(arena, it, tree, parseCompareOp, parseBitwiseExpr, .Once); +} + +/// BitwiseExpr <- BitShiftExpr (BitwiseOp BitShiftExpr)* +fn parseBitwiseExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + return parseBinOpExpr(arena, it, tree, parseBitwiseOp, parseBitShiftExpr, .Infinitely); +} + +/// BitShiftExpr <- AdditionExpr (BitShiftOp AdditionExpr)* +fn parseBitShiftExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + return parseBinOpExpr(arena, it, tree, parseBitShiftOp, parseAdditionExpr, .Infinitely); +} + +/// AdditionExpr <- MultiplyExpr (AdditionOp MultiplyExpr)* +fn parseAdditionExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + return parseBinOpExpr(arena, it, tree, parseAdditionOp, parseMultiplyExpr, .Infinitely); +} + +/// MultiplyExpr <- PrefixExpr (MultiplyOp PrefixExpr)* +fn parseMultiplyExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + return parseBinOpExpr(arena, it, tree, parseMultiplyOp, parsePrefixExpr, .Infinitely); +} + +/// PrefixExpr <- PrefixOp* PrimaryExpr +fn parsePrefixExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + return parsePrefixOpExpr(arena, it, tree, parsePrefixOp, parsePrimaryExpr); +} + +/// PrimaryExpr +/// <- AsmExpr +/// / IfExpr +/// / KEYWORD_break BreakLabel? Expr? +/// / KEYWORD_comptime Expr +/// / KEYWORD_continue BreakLabel? +/// / KEYWORD_resume Expr +/// / KEYWORD_return Expr? +/// / BlockLabel? LoopExpr +/// / Block +/// / CurlySuffixExpr +fn parsePrimaryExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + if (try parseAsmExpr(arena, it, tree)) |node| return node; + if (try parseIfExpr(arena, it, tree)) |node| return node; + + if (eatToken(it, .Keyword_break)) |token| { + const label = try parseBreakLabel(arena, it, tree); + const expr_node = try parseExpr(arena, it, tree); + const node = try arena.create(Node.ControlFlowExpression); + node.* = Node.ControlFlowExpression{ + .base = Node{ .id = .ControlFlowExpression }, + .ltoken = token, + .kind = Node.ControlFlowExpression.Kind{ .Break = label }, + .rhs = expr_node, + }; + return &node.base; + } + + if (eatToken(it, .Keyword_comptime)) |token| { + const expr_node = try expectNode(arena, it, tree, parseExpr, AstError{ + .ExpectedExpr = AstError.ExpectedExpr{ .token = it.index }, + }); + const node = try arena.create(Node.Comptime); + node.* = Node.Comptime{ + .base = Node{ .id = .Comptime }, + .doc_comments = null, + .comptime_token = token, + .expr = expr_node, + }; + return &node.base; + } + + if (eatToken(it, .Keyword_continue)) |token| { + const label = try parseBreakLabel(arena, it, tree); + const node = try arena.create(Node.ControlFlowExpression); + node.* = Node.ControlFlowExpression{ + .base = Node{ .id = .ControlFlowExpression }, + .ltoken = token, + .kind = Node.ControlFlowExpression.Kind{ .Continue = label }, + .rhs = null, + }; + return &node.base; + } + + if (eatToken(it, .Keyword_resume)) |token| { + const expr_node = try expectNode(arena, it, tree, parseExpr, AstError{ + .ExpectedExpr = AstError.ExpectedExpr{ .token = it.index }, + }); + const node = try arena.create(Node.PrefixOp); + node.* = Node.PrefixOp{ + .base = Node{ .id = .PrefixOp }, + .op_token = token, + .op = Node.PrefixOp.Op.Resume, + .rhs = expr_node, + }; + return &node.base; + } + + if (eatToken(it, .Keyword_return)) |token| { + const expr_node = try parseExpr(arena, it, tree); + const node = try arena.create(Node.ControlFlowExpression); + node.* = Node.ControlFlowExpression{ + .base = Node{ .id = .ControlFlowExpression }, + .ltoken = token, + .kind = Node.ControlFlowExpression.Kind.Return, + .rhs = expr_node, + }; + return &node.base; + } + + const label = parseBlockLabel(arena, it, tree); + if (try parseLoopExpr(arena, it, tree)) |node| { + if (node.cast(Node.For)) |for_node| { + for_node.label = label; + } else if (node.cast(Node.While)) |while_node| { + while_node.label = label; + } else unreachable; + return node; + } + if (label) |token| { + putBackToken(it, token + 1); // ":" + putBackToken(it, token); // IDENTIFIER + } + + if (try parseBlock(arena, it, tree)) |node| return node; + if (try parseCurlySuffixExpr(arena, it, tree)) |node| return node; + + return null; +} + +/// IfExpr <- IfPrefix Expr (KEYWORD_else Payload? Expr)? +fn parseIfExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + return parseIf(arena, it, tree, parseExpr); +} + +/// Block <- LBRACE Statement* RBRACE +fn parseBlock(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const lbrace = eatToken(it, .LBrace) orelse return null; + + var statements = Node.Block.StatementList.init(arena); + while (true) { + const statement = (try parseStatement(arena, it, tree)) orelse break; + try statements.push(statement); + } + + const rbrace = try expectToken(it, tree, .RBrace); + + const block_node = try arena.create(Node.Block); + block_node.* = Node.Block{ + .base = Node{ .id = .Block }, + .label = null, + .lbrace = lbrace, + .statements = statements, + .rbrace = rbrace, + }; + + return &block_node.base; +} + +/// LoopExpr <- KEYWORD_inline? (ForExpr / WhileExpr) +fn parseLoopExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const inline_token = eatToken(it, .Keyword_inline); + + if (try parseForExpr(arena, it, tree)) |node| { + node.cast(Node.For).?.inline_token = inline_token; + return node; + } + + if (try parseWhileExpr(arena, it, tree)) |node| { + node.cast(Node.While).?.inline_token = inline_token; + return node; + } + + if (inline_token == null) return null; + + // If we've seen "inline", there should have been a "for" or "while" + try tree.errors.push(AstError{ + .ExpectedInlinable = AstError.ExpectedInlinable{ .token = it.index }, + }); + return error.ParseError; +} + +/// ForExpr <- ForPrefix Expr (KEYWORD_else Expr)? +fn parseForExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const node = (try parseForPrefix(arena, it, tree)) orelse return null; + const for_prefix = node.cast(Node.For).?; + + const body_node = try expectNode(arena, it, tree, parseExpr, AstError{ + .ExpectedExpr = AstError.ExpectedExpr{ .token = it.index }, + }); + for_prefix.body = body_node; + + if (eatToken(it, .Keyword_else)) |else_token| { + const body = try expectNode(arena, it, tree, parseExpr, AstError{ + .ExpectedExpr = AstError.ExpectedExpr{ .token = it.index }, + }); + + const else_node = try arena.create(Node.Else); + else_node.* = Node.Else{ + .base = Node{ .id = .Else }, + .else_token = else_token, + .payload = null, + .body = body, + }; + + for_prefix.@"else" = else_node; + } + + return node; +} + +/// WhileExpr <- WhilePrefix Expr (KEYWORD_else Payload? Expr)? +fn parseWhileExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const node = (try parseWhilePrefix(arena, it, tree)) orelse return null; + const while_prefix = node.cast(Node.While).?; + + const body_node = try expectNode(arena, it, tree, parseExpr, AstError{ + .ExpectedExpr = AstError.ExpectedExpr{ .token = it.index }, + }); + while_prefix.body = body_node; + + if (eatToken(it, .Keyword_else)) |else_token| { + const payload = try parsePayload(arena, it, tree); + const body = try expectNode(arena, it, tree, parseExpr, AstError{ + .ExpectedExpr = AstError.ExpectedExpr{ .token = it.index }, + }); + + const else_node = try arena.create(Node.Else); + else_node.* = Node.Else{ + .base = Node{ .id = .Else }, + .else_token = else_token, + .payload = payload, + .body = body, + }; + + while_prefix.@"else" = else_node; + } + + return node; +} + +/// CurlySuffixExpr <- TypeExpr InitList? +fn parseCurlySuffixExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const type_expr = (try parseTypeExpr(arena, it, tree)) orelse return null; + const init_list = (try parseInitList(arena, it, tree)) orelse return type_expr; + init_list.cast(Node.SuffixOp).?.lhs = type_expr; + return init_list; +} + +/// InitList +/// <- LBRACE FieldInit (COMMA FieldInit)* COMMA? RBRACE +/// / LBRACE Expr (COMMA Expr)* COMMA? RBRACE +/// / LBRACE RBRACE +fn parseInitList(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const lbrace = eatToken(it, .LBrace) orelse return null; + var init_list = Node.SuffixOp.Op.InitList.init(arena); + + const op = blk: { + if (try parseFieldInit(arena, it, tree)) |field_init| { + try init_list.push(field_init); + while (eatToken(it, .Comma)) |_| { + const next = (try parseFieldInit(arena, it, tree)) orelse break; + try init_list.push(next); + } + break :blk Node.SuffixOp.Op{ .StructInitializer = init_list }; + } + + if (try parseExpr(arena, it, tree)) |expr| { + try init_list.push(expr); + while (eatToken(it, .Comma)) |_| { + const next = (try parseExpr(arena, it, tree)) orelse break; + try init_list.push(next); + } + break :blk Node.SuffixOp.Op{ .ArrayInitializer = init_list }; + } + + break :blk Node.SuffixOp.Op{ .StructInitializer = init_list }; + }; + + const node = try arena.create(Node.SuffixOp); + node.* = Node.SuffixOp{ + .base = Node{ .id = .SuffixOp }, + .lhs = undefined, // set by caller + .op = op, + .rtoken = try expectToken(it, tree, .RBrace), + }; + return &node.base; +} + +/// TypeExpr <- PrefixTypeOp* ErrorUnionExpr +fn parseTypeExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) Error!?*Node { + return parsePrefixOpExpr(arena, it, tree, parsePrefixTypeOp, parseErrorUnionExpr); +} + +/// ErrorUnionExpr <- SuffixExpr (EXCLAMATIONMARK TypeExpr)? +fn parseErrorUnionExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const suffix_expr = (try parseSuffixExpr(arena, it, tree)) orelse return null; + + if (try SimpleBinOpParseFn(.Bang, Node.InfixOp.Op.ErrorUnion)(arena, it, tree)) |node| { + const error_union = node.cast(Node.InfixOp).?; + const type_expr = try expectNode(arena, it, tree, parseTypeExpr, AstError{ + .ExpectedTypeExpr = AstError.ExpectedTypeExpr{ .token = it.index }, + }); + error_union.lhs = suffix_expr; + error_union.rhs = type_expr; + return node; + } + + return suffix_expr; +} + +/// SuffixExpr +/// <- KEYWORD_async PrimaryTypeExpr SuffixOp* FnCallArguments +/// / KEYWORD_noasync PrimaryTypeExpr SuffixOp* FnCallArguments +/// / PrimaryTypeExpr (SuffixOp / FnCallArguments)* +fn parseSuffixExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + var maybe_async = eatAnnotatedToken(it, .Keyword_async) orelse eatAnnotatedToken(it, .Keyword_noasync); + if (maybe_async) |async_token| { + const token_fn = eatToken(it, .Keyword_fn); + if (async_token.ptr.id == .Keyword_async and token_fn != null) { + // HACK: If we see the keyword `fn`, then we assume that + // we are parsing an async fn proto, and not a call. + // We therefore put back all tokens consumed by the async + // prefix... + putBackToken(it, token_fn.?); + putBackToken(it, async_token.index); + return parsePrimaryTypeExpr(arena, it, tree); + } + // TODO: Implement hack for parsing `async fn ...` in ast_parse_suffix_expr + var res = try expectNode(arena, it, tree, parsePrimaryTypeExpr, AstError{ + .ExpectedPrimaryTypeExpr = AstError.ExpectedPrimaryTypeExpr{ .token = it.index }, + }); + + while (try parseSuffixOp(arena, it, tree)) |node| { + switch (node.id) { + .SuffixOp => node.cast(Node.SuffixOp).?.lhs = res, + .InfixOp => node.cast(Node.InfixOp).?.lhs = res, + else => unreachable, + } + res = node; + } + + const params = (try parseFnCallArguments(arena, it, tree)) orelse { + try tree.errors.push(AstError{ + .ExpectedParamList = AstError.ExpectedParamList{ .token = it.index }, + }); + return null; + }; + const node = try arena.create(Node.SuffixOp); + node.* = Node.SuffixOp{ + .base = Node{ .id = .SuffixOp }, + .lhs = res, + .op = Node.SuffixOp.Op{ + .Call = Node.SuffixOp.Op.Call{ + .params = params.list, + .async_token = async_token.index, + }, + }, + .rtoken = params.rparen, + }; + return &node.base; + } + if (try parsePrimaryTypeExpr(arena, it, tree)) |expr| { + var res = expr; + + while (true) { + if (try parseSuffixOp(arena, it, tree)) |node| { + switch (node.id) { + .SuffixOp => node.cast(Node.SuffixOp).?.lhs = res, + .InfixOp => node.cast(Node.InfixOp).?.lhs = res, + else => unreachable, + } + res = node; + continue; + } + if (try parseFnCallArguments(arena, it, tree)) |params| { + const call = try arena.create(Node.SuffixOp); + call.* = Node.SuffixOp{ + .base = Node{ .id = .SuffixOp }, + .lhs = res, + .op = Node.SuffixOp.Op{ + .Call = Node.SuffixOp.Op.Call{ + .params = params.list, + .async_token = null, + }, + }, + .rtoken = params.rparen, + }; + res = &call.base; + continue; + } + break; + } + return res; + } + + return null; +} + +/// PrimaryTypeExpr +/// <- BUILTINIDENTIFIER FnCallArguments +/// / CHAR_LITERAL +/// / ContainerDecl +/// / DOT IDENTIFIER +/// / ErrorSetDecl +/// / FLOAT +/// / FnProto +/// / GroupedExpr +/// / LabeledTypeExpr +/// / IDENTIFIER +/// / IfTypeExpr +/// / INTEGER +/// / KEYWORD_comptime TypeExpr +/// / KEYWORD_error DOT IDENTIFIER +/// / KEYWORD_false +/// / KEYWORD_null +/// / KEYWORD_anyframe +/// / KEYWORD_true +/// / KEYWORD_undefined +/// / KEYWORD_unreachable +/// / STRINGLITERAL +/// / SwitchExpr +fn parsePrimaryTypeExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + if (try parseBuiltinCall(arena, it, tree)) |node| return node; + if (eatToken(it, .CharLiteral)) |token| { + const node = try arena.create(Node.CharLiteral); + node.* = Node.CharLiteral{ + .base = Node{ .id = .CharLiteral }, + .token = token, + }; + return &node.base; + } + if (try parseContainerDecl(arena, it, tree)) |node| return node; + if (try parseEnumLiteral(arena, it, tree)) |node| return node; + if (try parseErrorSetDecl(arena, it, tree)) |node| return node; + if (try parseFloatLiteral(arena, it, tree)) |node| return node; + if (try parseFnProto(arena, it, tree)) |node| return node; + if (try parseGroupedExpr(arena, it, tree)) |node| return node; + if (try parseLabeledTypeExpr(arena, it, tree)) |node| return node; + if (try parseIdentifier(arena, it, tree)) |node| return node; + if (try parseIfTypeExpr(arena, it, tree)) |node| return node; + if (try parseIntegerLiteral(arena, it, tree)) |node| return node; + if (eatToken(it, .Keyword_comptime)) |token| { + const expr = (try parseTypeExpr(arena, it, tree)) orelse return null; + const node = try arena.create(Node.Comptime); + node.* = Node.Comptime{ + .base = Node{ .id = .Comptime }, + .doc_comments = null, + .comptime_token = token, + .expr = expr, + }; + return &node.base; + } + if (eatToken(it, .Keyword_error)) |token| { + const period = try expectToken(it, tree, .Period); + const identifier = try expectNode(arena, it, tree, parseIdentifier, AstError{ + .ExpectedIdentifier = AstError.ExpectedIdentifier{ .token = it.index }, + }); + const global_error_set = try createLiteral(arena, Node.ErrorType, token); + const node = try arena.create(Node.InfixOp); + node.* = Node.InfixOp{ + .base = Node{ .id = .InfixOp }, + .op_token = period, + .lhs = global_error_set, + .op = Node.InfixOp.Op.Period, + .rhs = identifier, + }; + return &node.base; + } + if (eatToken(it, .Keyword_false)) |token| return createLiteral(arena, Node.BoolLiteral, token); + if (eatToken(it, .Keyword_null)) |token| return createLiteral(arena, Node.NullLiteral, token); + if (eatToken(it, .Keyword_anyframe)) |token| { + const node = try arena.create(Node.AnyFrameType); + node.* = Node.AnyFrameType{ + .base = Node{ .id = .AnyFrameType }, + .anyframe_token = token, + .result = null, + }; + return &node.base; + } + if (eatToken(it, .Keyword_true)) |token| return createLiteral(arena, Node.BoolLiteral, token); + if (eatToken(it, .Keyword_undefined)) |token| return createLiteral(arena, Node.UndefinedLiteral, token); + if (eatToken(it, .Keyword_unreachable)) |token| return createLiteral(arena, Node.Unreachable, token); + if (try parseStringLiteral(arena, it, tree)) |node| return node; + if (try parseSwitchExpr(arena, it, tree)) |node| return node; + + return null; +} + +/// ContainerDecl <- (KEYWORD_extern / KEYWORD_packed)? ContainerDeclAuto +fn parseContainerDecl(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const layout_token = eatToken(it, .Keyword_extern) orelse + eatToken(it, .Keyword_packed); + + const node = (try parseContainerDeclAuto(arena, it, tree)) orelse { + if (layout_token) |token| + putBackToken(it, token); + return null; + }; + node.cast(Node.ContainerDecl).?.*.layout_token = layout_token; + return node; +} + +/// ErrorSetDecl <- KEYWORD_error LBRACE IdentifierList RBRACE +fn parseErrorSetDecl(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const error_token = eatToken(it, .Keyword_error) orelse return null; + if (eatToken(it, .LBrace) == null) { + // Might parse as `KEYWORD_error DOT IDENTIFIER` later in PrimaryTypeExpr, so don't error + putBackToken(it, error_token); + return null; + } + const decls = try parseErrorTagList(arena, it, tree); + const rbrace = try expectToken(it, tree, .RBrace); + + const node = try arena.create(Node.ErrorSetDecl); + node.* = Node.ErrorSetDecl{ + .base = Node{ .id = .ErrorSetDecl }, + .error_token = error_token, + .decls = decls, + .rbrace_token = rbrace, + }; + return &node.base; +} + +/// GroupedExpr <- LPAREN Expr RPAREN +fn parseGroupedExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const lparen = eatToken(it, .LParen) orelse return null; + const expr = try expectNode(arena, it, tree, parseExpr, AstError{ + .ExpectedExpr = AstError.ExpectedExpr{ .token = it.index }, + }); + const rparen = try expectToken(it, tree, .RParen); + + const node = try arena.create(Node.GroupedExpression); + node.* = Node.GroupedExpression{ + .base = Node{ .id = .GroupedExpression }, + .lparen = lparen, + .expr = expr, + .rparen = rparen, + }; + return &node.base; +} + +/// IfTypeExpr <- IfPrefix TypeExpr (KEYWORD_else Payload? TypeExpr)? +fn parseIfTypeExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + return parseIf(arena, it, tree, parseTypeExpr); +} + +/// LabeledTypeExpr +/// <- BlockLabel Block +/// / BlockLabel? LoopTypeExpr +fn parseLabeledTypeExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const label = parseBlockLabel(arena, it, tree); + + if (label) |token| { + if (try parseBlock(arena, it, tree)) |node| { + node.cast(Node.Block).?.label = token; + return node; + } + } + + if (try parseLoopTypeExpr(arena, it, tree)) |node| { + switch (node.id) { + .For => node.cast(Node.For).?.label = label, + .While => node.cast(Node.While).?.label = label, + else => unreachable, + } + return node; + } + + if (label != null) { + // If we saw a label, there should have been a block next + try tree.errors.push(AstError{ + .ExpectedLBrace = AstError.ExpectedLBrace{ .token = it.index }, + }); + return error.ParseError; + } + return null; +} + +/// LoopTypeExpr <- KEYWORD_inline? (ForTypeExpr / WhileTypeExpr) +fn parseLoopTypeExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const inline_token = eatToken(it, .Keyword_inline); + + if (try parseForTypeExpr(arena, it, tree)) |node| { + node.cast(Node.For).?.inline_token = inline_token; + return node; + } + + if (try parseWhileTypeExpr(arena, it, tree)) |node| { + node.cast(Node.While).?.inline_token = inline_token; + return node; + } + + if (inline_token == null) return null; + + // If we've seen "inline", there should have been a "for" or "while" + try tree.errors.push(AstError{ + .ExpectedInlinable = AstError.ExpectedInlinable{ .token = it.index }, + }); + return error.ParseError; +} + +/// ForTypeExpr <- ForPrefix TypeExpr (KEYWORD_else TypeExpr)? +fn parseForTypeExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const node = (try parseForPrefix(arena, it, tree)) orelse return null; + const for_prefix = node.cast(Node.For).?; + + const type_expr = try expectNode(arena, it, tree, parseTypeExpr, AstError{ + .ExpectedTypeExpr = AstError.ExpectedTypeExpr{ .token = it.index }, + }); + for_prefix.body = type_expr; + + if (eatToken(it, .Keyword_else)) |else_token| { + const else_expr = try expectNode(arena, it, tree, parseTypeExpr, AstError{ + .ExpectedTypeExpr = AstError.ExpectedTypeExpr{ .token = it.index }, + }); + + const else_node = try arena.create(Node.Else); + else_node.* = Node.Else{ + .base = Node{ .id = .Else }, + .else_token = else_token, + .payload = null, + .body = else_expr, + }; + + for_prefix.@"else" = else_node; + } + + return node; +} + +/// WhileTypeExpr <- WhilePrefix TypeExpr (KEYWORD_else Payload? TypeExpr)? +fn parseWhileTypeExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const node = (try parseWhilePrefix(arena, it, tree)) orelse return null; + const while_prefix = node.cast(Node.While).?; + + const type_expr = try expectNode(arena, it, tree, parseTypeExpr, AstError{ + .ExpectedTypeExpr = AstError.ExpectedTypeExpr{ .token = it.index }, + }); + while_prefix.body = type_expr; + + if (eatToken(it, .Keyword_else)) |else_token| { + const payload = try parsePayload(arena, it, tree); + + const else_expr = try expectNode(arena, it, tree, parseTypeExpr, AstError{ + .ExpectedTypeExpr = AstError.ExpectedTypeExpr{ .token = it.index }, + }); + + const else_node = try arena.create(Node.Else); + else_node.* = Node.Else{ + .base = Node{ .id = .Else }, + .else_token = else_token, + .payload = null, + .body = else_expr, + }; + + while_prefix.@"else" = else_node; + } + + return node; +} + +/// SwitchExpr <- KEYWORD_switch LPAREN Expr RPAREN LBRACE SwitchProngList RBRACE +fn parseSwitchExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const switch_token = eatToken(it, .Keyword_switch) orelse return null; + _ = try expectToken(it, tree, .LParen); + const expr_node = try expectNode(arena, it, tree, parseExpr, AstError{ + .ExpectedExpr = AstError.ExpectedExpr{ .token = it.index }, + }); + _ = try expectToken(it, tree, .RParen); + _ = try expectToken(it, tree, .LBrace); + const cases = try parseSwitchProngList(arena, it, tree); + const rbrace = try expectToken(it, tree, .RBrace); + + const node = try arena.create(Node.Switch); + node.* = Node.Switch{ + .base = Node{ .id = .Switch }, + .switch_token = switch_token, + .expr = expr_node, + .cases = cases, + .rbrace = rbrace, + }; + return &node.base; +} + +/// AsmExpr <- KEYWORD_asm KEYWORD_volatile? LPAREN STRINGLITERAL AsmOutput? RPAREN +fn parseAsmExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const asm_token = eatToken(it, .Keyword_asm) orelse return null; + const volatile_token = eatToken(it, .Keyword_volatile); + _ = try expectToken(it, tree, .LParen); + const template = try expectNode(arena, it, tree, parseStringLiteral, AstError{ + .ExpectedStringLiteral = AstError.ExpectedStringLiteral{ .token = it.index }, + }); + + const node = try arena.create(Node.Asm); + node.* = Node.Asm{ + .base = Node{ .id = .Asm }, + .asm_token = asm_token, + .volatile_token = volatile_token, + .template = template, + .outputs = Node.Asm.OutputList.init(arena), + .inputs = Node.Asm.InputList.init(arena), + .clobbers = Node.Asm.ClobberList.init(arena), + .rparen = undefined, + }; + + try parseAsmOutput(arena, it, tree, node); + node.rparen = try expectToken(it, tree, .RParen); + return &node.base; +} + +/// DOT IDENTIFIER +fn parseEnumLiteral(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const dot = eatToken(it, .Period) orelse return null; + const name = try expectToken(it, tree, .Identifier); + const node = try arena.create(Node.EnumLiteral); + node.* = Node.EnumLiteral{ + .base = Node{ .id = .EnumLiteral }, + .dot = dot, + .name = name, + }; + return &node.base; +} + +/// AsmOutput <- COLON AsmOutputList AsmInput? +fn parseAsmOutput(arena: *Allocator, it: *TokenIterator, tree: *Tree, asm_node: *Node.Asm) !void { + if (eatToken(it, .Colon) == null) return; + asm_node.outputs = try parseAsmOutputList(arena, it, tree); + try parseAsmInput(arena, it, tree, asm_node); +} + +/// AsmOutputItem <- LBRACKET IDENTIFIER RBRACKET STRINGLITERAL LPAREN (MINUSRARROW TypeExpr / IDENTIFIER) RPAREN +fn parseAsmOutputItem(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node.AsmOutput { + const lbracket = eatToken(it, .LBracket) orelse return null; + const name = try expectNode(arena, it, tree, parseIdentifier, AstError{ + .ExpectedIdentifier = AstError.ExpectedIdentifier{ .token = it.index }, + }); + _ = try expectToken(it, tree, .RBracket); + + const constraint = try expectNode(arena, it, tree, parseStringLiteral, AstError{ + .ExpectedStringLiteral = AstError.ExpectedStringLiteral{ .token = it.index }, + }); + + _ = try expectToken(it, tree, .LParen); + const kind = blk: { + if (eatToken(it, .Arrow) != null) { + const return_ident = try expectNode(arena, it, tree, parseTypeExpr, AstError{ + .ExpectedTypeExpr = AstError.ExpectedTypeExpr{ .token = it.index }, + }); + break :blk Node.AsmOutput.Kind{ .Return = return_ident }; + } + const variable = try expectNode(arena, it, tree, parseIdentifier, AstError{ + .ExpectedIdentifier = AstError.ExpectedIdentifier{ .token = it.index }, + }); + break :blk Node.AsmOutput.Kind{ .Variable = variable.cast(Node.Identifier).? }; + }; + const rparen = try expectToken(it, tree, .RParen); + + const node = try arena.create(Node.AsmOutput); + node.* = Node.AsmOutput{ + .base = Node{ .id = .AsmOutput }, + .lbracket = lbracket, + .symbolic_name = name, + .constraint = constraint, + .kind = kind, + .rparen = rparen, + }; + return node; +} + +/// AsmInput <- COLON AsmInputList AsmClobbers? +fn parseAsmInput(arena: *Allocator, it: *TokenIterator, tree: *Tree, asm_node: *Node.Asm) !void { + if (eatToken(it, .Colon) == null) return; + asm_node.inputs = try parseAsmInputList(arena, it, tree); + try parseAsmClobbers(arena, it, tree, asm_node); +} + +/// AsmInputItem <- LBRACKET IDENTIFIER RBRACKET STRINGLITERAL LPAREN Expr RPAREN +fn parseAsmInputItem(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node.AsmInput { + const lbracket = eatToken(it, .LBracket) orelse return null; + const name = try expectNode(arena, it, tree, parseIdentifier, AstError{ + .ExpectedIdentifier = AstError.ExpectedIdentifier{ .token = it.index }, + }); + _ = try expectToken(it, tree, .RBracket); + + const constraint = try expectNode(arena, it, tree, parseStringLiteral, AstError{ + .ExpectedStringLiteral = AstError.ExpectedStringLiteral{ .token = it.index }, + }); + + _ = try expectToken(it, tree, .LParen); + const expr = try expectNode(arena, it, tree, parseExpr, AstError{ + .ExpectedExpr = AstError.ExpectedExpr{ .token = it.index }, + }); + const rparen = try expectToken(it, tree, .RParen); + + const node = try arena.create(Node.AsmInput); + node.* = Node.AsmInput{ + .base = Node{ .id = .AsmInput }, + .lbracket = lbracket, + .symbolic_name = name, + .constraint = constraint, + .expr = expr, + .rparen = rparen, + }; + return node; +} + +/// AsmClobbers <- COLON StringList +/// StringList <- (STRINGLITERAL COMMA)* STRINGLITERAL? +fn parseAsmClobbers(arena: *Allocator, it: *TokenIterator, tree: *Tree, asm_node: *Node.Asm) !void { + if (eatToken(it, .Colon) == null) return; + asm_node.clobbers = try ListParseFn( + Node.Asm.ClobberList, + parseStringLiteral, + )(arena, it, tree); +} + +/// BreakLabel <- COLON IDENTIFIER +fn parseBreakLabel(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + _ = eatToken(it, .Colon) orelse return null; + return try expectNode(arena, it, tree, parseIdentifier, AstError{ + .ExpectedIdentifier = AstError.ExpectedIdentifier{ .token = it.index }, + }); +} + +/// BlockLabel <- IDENTIFIER COLON +fn parseBlockLabel(arena: *Allocator, it: *TokenIterator, tree: *Tree) ?TokenIndex { + const identifier = eatToken(it, .Identifier) orelse return null; + if (eatToken(it, .Colon) != null) return identifier; + putBackToken(it, identifier); + return null; +} + +/// FieldInit <- DOT IDENTIFIER EQUAL Expr +fn parseFieldInit(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const period_token = eatToken(it, .Period) orelse return null; + const name_token = try expectToken(it, tree, .Identifier); + const eq_token = eatToken(it, .Equal) orelse { + // `.Name` may also be an enum literal, which is a later rule. + putBackToken(it, name_token); + putBackToken(it, period_token); + return null; + }; + const expr_node = try expectNode(arena, it, tree, parseExpr, AstError{ + .ExpectedExpr = AstError.ExpectedExpr{ .token = it.index }, + }); + + const node = try arena.create(Node.FieldInitializer); + node.* = Node.FieldInitializer{ + .base = Node{ .id = .FieldInitializer }, + .period_token = period_token, + .name_token = name_token, + .expr = expr_node, + }; + return &node.base; +} + +/// WhileContinueExpr <- COLON LPAREN AssignExpr RPAREN +fn parseWhileContinueExpr(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + _ = eatToken(it, .Colon) orelse return null; + _ = try expectToken(it, tree, .LParen); + const node = try expectNode(arena, it, tree, parseAssignExpr, AstError{ + .ExpectedExprOrAssignment = AstError.ExpectedExprOrAssignment{ .token = it.index }, + }); + _ = try expectToken(it, tree, .RParen); + return node; +} + +/// LinkSection <- KEYWORD_linksection LPAREN Expr RPAREN +fn parseLinkSection(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + _ = eatToken(it, .Keyword_linksection) orelse return null; + _ = try expectToken(it, tree, .LParen); + const expr_node = try expectNode(arena, it, tree, parseExpr, AstError{ + .ExpectedExpr = AstError.ExpectedExpr{ .token = it.index }, + }); + _ = try expectToken(it, tree, .RParen); + return expr_node; +} + +/// FnCC +/// <- KEYWORD_nakedcc +/// / KEYWORD_stdcallcc +/// / KEYWORD_extern +/// / KEYWORD_async +fn parseFnCC(arena: *Allocator, it: *TokenIterator, tree: *Tree) ?FnCC { + if (eatToken(it, .Keyword_nakedcc)) |token| return FnCC{ .CC = token }; + if (eatToken(it, .Keyword_stdcallcc)) |token| return FnCC{ .CC = token }; + if (eatToken(it, .Keyword_extern)) |token| return FnCC{ .Extern = token }; + if (eatToken(it, .Keyword_async)) |token| return FnCC{ .CC = token }; + return null; +} + +const FnCC = union(enum) { + CC: TokenIndex, + Extern: TokenIndex, +}; + +/// ParamDecl <- (KEYWORD_noalias / KEYWORD_comptime)? (IDENTIFIER COLON)? ParamType +fn parseParamDecl(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const doc_comments = try parseDocComment(arena, it, tree); + const noalias_token = eatToken(it, .Keyword_noalias); + const comptime_token = if (noalias_token == null) eatToken(it, .Keyword_comptime) else null; + const name_token = blk: { + const identifier = eatToken(it, .Identifier) orelse break :blk null; + if (eatToken(it, .Colon) != null) break :blk identifier; + putBackToken(it, identifier); // ParamType may also be an identifier + break :blk null; + }; + const param_type = (try parseParamType(arena, it, tree)) orelse { + // Only return cleanly if no keyword, identifier, or doc comment was found + if (noalias_token == null and + comptime_token == null and + name_token == null and + doc_comments == null) return null; + try tree.errors.push(AstError{ + .ExpectedParamType = AstError.ExpectedParamType{ .token = it.index }, + }); + return error.ParseError; + }; + + const param_decl = try arena.create(Node.ParamDecl); + param_decl.* = Node.ParamDecl{ + .base = Node{ .id = .ParamDecl }, + .doc_comments = doc_comments, + .comptime_token = comptime_token, + .noalias_token = noalias_token, + .name_token = name_token, + // TODO: These should be squished into a ParamType enum + .type_node = undefined, + .var_args_token = null, + }; + switch (param_type) { + .VarType => |node| param_decl.type_node = node, + .TypeExpr => |node| param_decl.type_node = node, + .VarArgs => |token| param_decl.var_args_token = token, + } + return ¶m_decl.base; +} + +/// ParamType +/// <- KEYWORD_var +/// / DOT3 +/// / TypeExpr +fn parseParamType(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?ParamType { + if (try parseVarType(arena, it, tree)) |node| return ParamType{ .VarType = node }; + if (eatToken(it, .Ellipsis3)) |token| return ParamType{ .VarArgs = token }; + if (try parseTypeExpr(arena, it, tree)) |node| return ParamType{ .TypeExpr = node }; + return null; +} + +// TODO: Move to ast.Node.ParamDecl.ParamType +const ParamType = union(enum) { + VarType: *Node, + VarArgs: TokenIndex, + TypeExpr: *Node, +}; + +/// IfPrefix <- KEYWORD_if LPAREN Expr RPAREN PtrPayload? +fn parseIfPrefix(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const if_token = eatToken(it, .Keyword_if) orelse return null; + _ = try expectToken(it, tree, .LParen); + const condition = try expectNode(arena, it, tree, parseExpr, AstError{ + .ExpectedExpr = AstError.ExpectedExpr{ .token = it.index }, + }); + _ = try expectToken(it, tree, .RParen); + const payload = try parsePtrPayload(arena, it, tree); + + const node = try arena.create(Node.If); + node.* = Node.If{ + .base = Node{ .id = .If }, + .if_token = if_token, + .condition = condition, + .payload = payload, + .body = undefined, // set by caller + .@"else" = null, + }; + return &node.base; +} + +/// WhilePrefix <- KEYWORD_while LPAREN Expr RPAREN PtrPayload? WhileContinueExpr? +fn parseWhilePrefix(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const while_token = eatToken(it, .Keyword_while) orelse return null; + + _ = try expectToken(it, tree, .LParen); + const condition = try expectNode(arena, it, tree, parseExpr, AstError{ + .ExpectedExpr = AstError.ExpectedExpr{ .token = it.index }, + }); + _ = try expectToken(it, tree, .RParen); + + const payload = try parsePtrPayload(arena, it, tree); + const continue_expr = try parseWhileContinueExpr(arena, it, tree); + + const node = try arena.create(Node.While); + node.* = Node.While{ + .base = Node{ .id = .While }, + .label = null, + .inline_token = null, + .while_token = while_token, + .condition = condition, + .payload = payload, + .continue_expr = continue_expr, + .body = undefined, // set by caller + .@"else" = null, + }; + return &node.base; +} + +/// ForPrefix <- KEYWORD_for LPAREN Expr RPAREN PtrIndexPayload +fn parseForPrefix(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const for_token = eatToken(it, .Keyword_for) orelse return null; + + _ = try expectToken(it, tree, .LParen); + const array_expr = try expectNode(arena, it, tree, parseExpr, AstError{ + .ExpectedExpr = AstError.ExpectedExpr{ .token = it.index }, + }); + _ = try expectToken(it, tree, .RParen); + + const payload = try expectNode(arena, it, tree, parsePtrIndexPayload, AstError{ + .ExpectedPayload = AstError.ExpectedPayload{ .token = it.index }, + }); + + const node = try arena.create(Node.For); + node.* = Node.For{ + .base = Node{ .id = .For }, + .label = null, + .inline_token = null, + .for_token = for_token, + .array_expr = array_expr, + .payload = payload, + .body = undefined, // set by caller + .@"else" = null, + }; + return &node.base; +} + +/// Payload <- PIPE IDENTIFIER PIPE +fn parsePayload(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const lpipe = eatToken(it, .Pipe) orelse return null; + const identifier = try expectNode(arena, it, tree, parseIdentifier, AstError{ + .ExpectedIdentifier = AstError.ExpectedIdentifier{ .token = it.index }, + }); + const rpipe = try expectToken(it, tree, .Pipe); + + const node = try arena.create(Node.Payload); + node.* = Node.Payload{ + .base = Node{ .id = .Payload }, + .lpipe = lpipe, + .error_symbol = identifier, + .rpipe = rpipe, + }; + return &node.base; +} + +/// PtrPayload <- PIPE ASTERISK? IDENTIFIER PIPE +fn parsePtrPayload(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const lpipe = eatToken(it, .Pipe) orelse return null; + const asterisk = eatToken(it, .Asterisk); + const identifier = try expectNode(arena, it, tree, parseIdentifier, AstError{ + .ExpectedIdentifier = AstError.ExpectedIdentifier{ .token = it.index }, + }); + const rpipe = try expectToken(it, tree, .Pipe); + + const node = try arena.create(Node.PointerPayload); + node.* = Node.PointerPayload{ + .base = Node{ .id = .PointerPayload }, + .lpipe = lpipe, + .ptr_token = asterisk, + .value_symbol = identifier, + .rpipe = rpipe, + }; + return &node.base; +} + +/// PtrIndexPayload <- PIPE ASTERISK? IDENTIFIER (COMMA IDENTIFIER)? PIPE +fn parsePtrIndexPayload(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const lpipe = eatToken(it, .Pipe) orelse return null; + const asterisk = eatToken(it, .Asterisk); + const identifier = try expectNode(arena, it, tree, parseIdentifier, AstError{ + .ExpectedIdentifier = AstError.ExpectedIdentifier{ .token = it.index }, + }); + + const index = if (eatToken(it, .Comma) == null) + null + else + try expectNode(arena, it, tree, parseIdentifier, AstError{ + .ExpectedIdentifier = AstError.ExpectedIdentifier{ .token = it.index }, + }); + + const rpipe = try expectToken(it, tree, .Pipe); + + const node = try arena.create(Node.PointerIndexPayload); + node.* = Node.PointerIndexPayload{ + .base = Node{ .id = .PointerIndexPayload }, + .lpipe = lpipe, + .ptr_token = asterisk, + .value_symbol = identifier, + .index_symbol = index, + .rpipe = rpipe, + }; + return &node.base; +} + +/// SwitchProng <- SwitchCase EQUALRARROW PtrPayload? AssignExpr +fn parseSwitchProng(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const node = (try parseSwitchCase(arena, it, tree)) orelse return null; + const arrow = try expectToken(it, tree, .EqualAngleBracketRight); + const payload = try parsePtrPayload(arena, it, tree); + const expr = try expectNode(arena, it, tree, parseAssignExpr, AstError{ + .ExpectedExprOrAssignment = AstError.ExpectedExprOrAssignment{ .token = it.index }, + }); + + const switch_case = node.cast(Node.SwitchCase).?; + switch_case.arrow_token = arrow; + switch_case.payload = payload; + switch_case.expr = expr; + + return node; +} + +/// SwitchCase +/// <- SwitchItem (COMMA SwitchItem)* COMMA? +/// / KEYWORD_else +fn parseSwitchCase(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + var list = Node.SwitchCase.ItemList.init(arena); + + if (try parseSwitchItem(arena, it, tree)) |first_item| { + try list.push(first_item); + while (eatToken(it, .Comma) != null) { + const next_item = (try parseSwitchItem(arena, it, tree)) orelse break; + try list.push(next_item); + } + } else if (eatToken(it, .Keyword_else)) |else_token| { + const else_node = try arena.create(Node.SwitchElse); + else_node.* = Node.SwitchElse{ + .base = Node{ .id = .SwitchElse }, + .token = else_token, + }; + try list.push(&else_node.base); + } else return null; + + const node = try arena.create(Node.SwitchCase); + node.* = Node.SwitchCase{ + .base = Node{ .id = .SwitchCase }, + .items = list, + .arrow_token = undefined, // set by caller + .payload = null, + .expr = undefined, // set by caller + }; + return &node.base; +} + +/// SwitchItem <- Expr (DOT3 Expr)? +fn parseSwitchItem(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const expr = (try parseExpr(arena, it, tree)) orelse return null; + if (eatToken(it, .Ellipsis3)) |token| { + const range_end = try expectNode(arena, it, tree, parseExpr, AstError{ + .ExpectedExpr = AstError.ExpectedExpr{ .token = it.index }, + }); + + const node = try arena.create(Node.InfixOp); + node.* = Node.InfixOp{ + .base = Node{ .id = .InfixOp }, + .op_token = token, + .lhs = expr, + .op = Node.InfixOp.Op{ .Range = {} }, + .rhs = range_end, + }; + return &node.base; + } + return expr; +} + +/// AssignOp +/// <- ASTERISKEQUAL +/// / SLASHEQUAL +/// / PERCENTEQUAL +/// / PLUSEQUAL +/// / MINUSEQUAL +/// / LARROW2EQUAL +/// / RARROW2EQUAL +/// / AMPERSANDEQUAL +/// / CARETEQUAL +/// / PIPEEQUAL +/// / ASTERISKPERCENTEQUAL +/// / PLUSPERCENTEQUAL +/// / MINUSPERCENTEQUAL +/// / EQUAL +fn parseAssignOp(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const Op = Node.InfixOp.Op; + + const token = nextToken(it); + const op = switch (token.ptr.id) { + .AsteriskEqual => Op{ .AssignTimes = {} }, + .SlashEqual => Op{ .AssignDiv = {} }, + .PercentEqual => Op{ .AssignMod = {} }, + .PlusEqual => Op{ .AssignPlus = {} }, + .MinusEqual => Op{ .AssignMinus = {} }, + .AngleBracketAngleBracketLeftEqual => Op{ .AssignBitShiftLeft = {} }, + .AngleBracketAngleBracketRightEqual => Op{ .AssignBitShiftRight = {} }, + .AmpersandEqual => Op{ .AssignBitAnd = {} }, + .CaretEqual => Op{ .AssignBitXor = {} }, + .PipeEqual => Op{ .AssignBitOr = {} }, + .AsteriskPercentEqual => Op{ .AssignTimesWarp = {} }, + .PlusPercentEqual => Op{ .AssignPlusWrap = {} }, + .MinusPercentEqual => Op{ .AssignMinusWrap = {} }, + .Equal => Op{ .Assign = {} }, + else => { + putBackToken(it, token.index); + return null; + }, + }; + + const node = try arena.create(Node.InfixOp); + node.* = Node.InfixOp{ + .base = Node{ .id = .InfixOp }, + .op_token = token.index, + .lhs = undefined, // set by caller + .op = op, + .rhs = undefined, // set by caller + }; + return &node.base; +} + +/// CompareOp +/// <- EQUALEQUAL +/// / EXCLAMATIONMARKEQUAL +/// / LARROW +/// / RARROW +/// / LARROWEQUAL +/// / RARROWEQUAL +fn parseCompareOp(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const ops = Node.InfixOp.Op; + + const token = nextToken(it); + const op = switch (token.ptr.id) { + .EqualEqual => ops{ .EqualEqual = {} }, + .BangEqual => ops{ .BangEqual = {} }, + .AngleBracketLeft => ops{ .LessThan = {} }, + .AngleBracketRight => ops{ .GreaterThan = {} }, + .AngleBracketLeftEqual => ops{ .LessOrEqual = {} }, + .AngleBracketRightEqual => ops{ .GreaterOrEqual = {} }, + else => { + putBackToken(it, token.index); + return null; + }, + }; + + return try createInfixOp(arena, token.index, op); +} + +/// BitwiseOp +/// <- AMPERSAND +/// / CARET +/// / PIPE +/// / KEYWORD_orelse +/// / KEYWORD_catch Payload? +fn parseBitwiseOp(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const ops = Node.InfixOp.Op; + + const token = nextToken(it); + const op = switch (token.ptr.id) { + .Ampersand => ops{ .BitAnd = {} }, + .Caret => ops{ .BitXor = {} }, + .Pipe => ops{ .BitOr = {} }, + .Keyword_orelse => ops{ .UnwrapOptional = {} }, + .Keyword_catch => ops{ .Catch = try parsePayload(arena, it, tree) }, + else => { + putBackToken(it, token.index); + return null; + }, + }; + + return try createInfixOp(arena, token.index, op); +} + +/// BitShiftOp +/// <- LARROW2 +/// / RARROW2 +fn parseBitShiftOp(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const ops = Node.InfixOp.Op; + + const token = nextToken(it); + const op = switch (token.ptr.id) { + .AngleBracketAngleBracketLeft => ops{ .BitShiftLeft = {} }, + .AngleBracketAngleBracketRight => ops{ .BitShiftRight = {} }, + else => { + putBackToken(it, token.index); + return null; + }, + }; + + return try createInfixOp(arena, token.index, op); +} + +/// AdditionOp +/// <- PLUS +/// / MINUS +/// / PLUS2 +/// / PLUSPERCENT +/// / MINUSPERCENT +fn parseAdditionOp(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const ops = Node.InfixOp.Op; + + const token = nextToken(it); + const op = switch (token.ptr.id) { + .Plus => ops{ .Add = {} }, + .Minus => ops{ .Sub = {} }, + .PlusPlus => ops{ .ArrayCat = {} }, + .PlusPercent => ops{ .AddWrap = {} }, + .MinusPercent => ops{ .SubWrap = {} }, + else => { + putBackToken(it, token.index); + return null; + }, + }; + + return try createInfixOp(arena, token.index, op); +} + +/// MultiplyOp +/// <- PIPE2 +/// / ASTERISK +/// / SLASH +/// / PERCENT +/// / ASTERISK2 +/// / ASTERISKPERCENT +fn parseMultiplyOp(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const ops = Node.InfixOp.Op; + + const token = nextToken(it); + const op = switch (token.ptr.id) { + .PipePipe => ops{ .BoolOr = {} }, + .Asterisk => ops{ .Mult = {} }, + .Slash => ops{ .Div = {} }, + .Percent => ops{ .Mod = {} }, + .AsteriskAsterisk => ops{ .ArrayMult = {} }, + .AsteriskPercent => ops{ .MultWrap = {} }, + else => { + putBackToken(it, token.index); + return null; + }, + }; + + return try createInfixOp(arena, token.index, op); +} + +/// PrefixOp +/// <- EXCLAMATIONMARK +/// / MINUS +/// / TILDE +/// / MINUSPERCENT +/// / AMPERSAND +/// / KEYWORD_try +/// / KEYWORD_await +fn parsePrefixOp(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const ops = Node.PrefixOp.Op; + + const token = nextToken(it); + const op = switch (token.ptr.id) { + .Bang => ops{ .BoolNot = {} }, + .Minus => ops{ .Negation = {} }, + .Tilde => ops{ .BitNot = {} }, + .MinusPercent => ops{ .NegationWrap = {} }, + .Ampersand => ops{ .AddressOf = {} }, + .Keyword_try => ops{ .Try = {} }, + .Keyword_await => ops{ .Await = {} }, + else => { + putBackToken(it, token.index); + return null; + }, + }; + + const node = try arena.create(Node.PrefixOp); + node.* = Node.PrefixOp{ + .base = Node{ .id = .PrefixOp }, + .op_token = token.index, + .op = op, + .rhs = undefined, + }; + return &node.base; +} + +// TODO: ArrayTypeStart is either an array or a slice, but const/allowzero only work on +// pointers. Consider updating this rule: +// ... +// / ArrayTypeStart +// / SliceTypeStart (ByteAlign / KEYWORD_const / KEYWORD_volatile / KEYWORD_allowzero)* +// / PtrTypeStart ... + +/// PrefixTypeOp +/// <- QUESTIONMARK +/// / KEYWORD_anyframe MINUSRARROW +/// / ArrayTypeStart (ByteAlign / KEYWORD_const / KEYWORD_volatile / KEYWORD_allowzero)* +/// / PtrTypeStart (KEYWORD_align LPAREN Expr (COLON INTEGER COLON INTEGER)? RPAREN / KEYWORD_const / KEYWORD_volatile / KEYWORD_allowzero)* +fn parsePrefixTypeOp(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + if (eatToken(it, .QuestionMark)) |token| { + const node = try arena.create(Node.PrefixOp); + node.* = Node.PrefixOp{ + .base = Node{ .id = .PrefixOp }, + .op_token = token, + .op = Node.PrefixOp.Op.OptionalType, + .rhs = undefined, // set by caller + }; + return &node.base; + } + + // TODO: Returning a AnyFrameType instead of PrefixOp makes casting and setting .rhs or + // .return_type more difficult for the caller (see parsePrefixOpExpr helper). + // Consider making the AnyFrameType a member of PrefixOp and add a + // PrefixOp.AnyFrameType variant? + if (eatToken(it, .Keyword_anyframe)) |token| { + const arrow = eatToken(it, .Arrow) orelse { + putBackToken(it, token); + return null; + }; + const node = try arena.create(Node.AnyFrameType); + node.* = Node.AnyFrameType{ + .base = Node{ .id = .AnyFrameType }, + .anyframe_token = token, + .result = Node.AnyFrameType.Result{ + .arrow_token = arrow, + .return_type = undefined, // set by caller + }, + }; + return &node.base; + } + + if (try parseArrayTypeStart(arena, it, tree)) |node| { + switch (node.cast(Node.PrefixOp).?.op) { + .ArrayType => {}, + .SliceType => |*slice_type| { + // Collect pointer qualifiers in any order, but disallow duplicates + while (true) { + if (try parseByteAlign(arena, it, tree)) |align_expr| { + if (slice_type.align_info != null) { + try tree.errors.push(AstError{ + .ExtraAlignQualifier = AstError.ExtraAlignQualifier{ .token = it.index }, + }); + return error.ParseError; + } + slice_type.align_info = Node.PrefixOp.PtrInfo.Align{ + .node = align_expr, + .bit_range = null, + }; + continue; + } + if (eatToken(it, .Keyword_const)) |const_token| { + if (slice_type.const_token != null) { + try tree.errors.push(AstError{ + .ExtraConstQualifier = AstError.ExtraConstQualifier{ .token = it.index }, + }); + return error.ParseError; + } + slice_type.const_token = const_token; + continue; + } + if (eatToken(it, .Keyword_volatile)) |volatile_token| { + if (slice_type.volatile_token != null) { + try tree.errors.push(AstError{ + .ExtraVolatileQualifier = AstError.ExtraVolatileQualifier{ .token = it.index }, + }); + return error.ParseError; + } + slice_type.volatile_token = volatile_token; + continue; + } + if (eatToken(it, .Keyword_allowzero)) |allowzero_token| { + if (slice_type.allowzero_token != null) { + try tree.errors.push(AstError{ + .ExtraAllowZeroQualifier = AstError.ExtraAllowZeroQualifier{ .token = it.index }, + }); + return error.ParseError; + } + slice_type.allowzero_token = allowzero_token; + continue; + } + break; + } + }, + else => unreachable, + } + return node; + } + + if (try parsePtrTypeStart(arena, it, tree)) |node| { + // If the token encountered was **, there will be two nodes instead of one. + // The attributes should be applied to the rightmost operator. + const prefix_op = node.cast(Node.PrefixOp).?; + var ptr_info = if (tree.tokens.at(prefix_op.op_token).id == .AsteriskAsterisk) + &prefix_op.rhs.cast(Node.PrefixOp).?.op.PtrType + else + &prefix_op.op.PtrType; + + while (true) { + if (eatToken(it, .Keyword_align)) |align_token| { + const lparen = try expectToken(it, tree, .LParen); + const expr_node = try expectNode(arena, it, tree, parseExpr, AstError{ + .ExpectedExpr = AstError.ExpectedExpr{ .token = it.index }, + }); + + // Optional bit range + const bit_range = if (eatToken(it, .Colon)) |_| bit_range_value: { + const range_start = try expectNode(arena, it, tree, parseIntegerLiteral, AstError{ + .ExpectedIntegerLiteral = AstError.ExpectedIntegerLiteral{ .token = it.index }, + }); + _ = try expectToken(it, tree, .Colon); + const range_end = try expectNode(arena, it, tree, parseIntegerLiteral, AstError{ + .ExpectedIntegerLiteral = AstError.ExpectedIntegerLiteral{ .token = it.index }, + }); + + break :bit_range_value Node.PrefixOp.PtrInfo.Align.BitRange{ + .start = range_start, + .end = range_end, + }; + } else null; + _ = try expectToken(it, tree, .RParen); + + ptr_info.align_info = Node.PrefixOp.PtrInfo.Align{ + .node = expr_node, + .bit_range = bit_range, + }; + + continue; + } + if (eatToken(it, .Keyword_const)) |const_token| { + ptr_info.const_token = const_token; + continue; + } + if (eatToken(it, .Keyword_volatile)) |volatile_token| { + ptr_info.volatile_token = volatile_token; + continue; + } + if (eatToken(it, .Keyword_allowzero)) |allowzero_token| { + ptr_info.allowzero_token = allowzero_token; + continue; + } + break; + } + + return node; + } + + return null; +} + +/// SuffixOp +/// <- LBRACKET Expr (DOT2 Expr?)? RBRACKET +/// / DOT IDENTIFIER +/// / DOTASTERISK +/// / DOTQUESTIONMARK +fn parseSuffixOp(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const Op = Node.SuffixOp.Op; + const OpAndToken = struct { + op: Node.SuffixOp.Op, + token: TokenIndex, + }; + const op_and_token = blk: { + if (eatToken(it, .LBracket)) |_| { + const index_expr = try expectNode(arena, it, tree, parseExpr, AstError{ + .ExpectedExpr = AstError.ExpectedExpr{ .token = it.index }, + }); + + if (eatToken(it, .Ellipsis2) != null) { + const end_expr = try parseExpr(arena, it, tree); + break :blk OpAndToken{ + .op = Op{ + .Slice = Op.Slice{ + .start = index_expr, + .end = end_expr, + }, + }, + .token = try expectToken(it, tree, .RBracket), + }; + } + + break :blk OpAndToken{ + .op = Op{ .ArrayAccess = index_expr }, + .token = try expectToken(it, tree, .RBracket), + }; + } + + if (eatToken(it, .Period)) |period| { + if (try parseIdentifier(arena, it, tree)) |identifier| { + // TODO: It's a bit weird to return an InfixOp from the SuffixOp parser. + // Should there be an ast.Node.SuffixOp.FieldAccess variant? Or should + // this grammar rule be altered? + const node = try arena.create(Node.InfixOp); + node.* = Node.InfixOp{ + .base = Node{ .id = .InfixOp }, + .op_token = period, + .lhs = undefined, // set by caller + .op = Node.InfixOp.Op.Period, + .rhs = identifier, + }; + return &node.base; + } + if (eatToken(it, .Asterisk)) |asterisk| { + break :blk OpAndToken{ .op = Op{ .Deref = {} }, .token = asterisk }; + } + if (eatToken(it, .QuestionMark)) |question_mark| { + break :blk OpAndToken{ .op = Op{ .UnwrapOptional = {} }, .token = question_mark }; + } + try tree.errors.push(AstError{ + .ExpectedSuffixOp = AstError.ExpectedSuffixOp{ .token = it.index }, + }); + return null; + } + + return null; + }; + + const node = try arena.create(Node.SuffixOp); + node.* = Node.SuffixOp{ + .base = Node{ .id = .SuffixOp }, + .lhs = undefined, // set by caller + .op = op_and_token.op, + .rtoken = op_and_token.token, + }; + return &node.base; +} + +/// FnCallArguments <- LPAREN ExprList RPAREN +/// ExprList <- (Expr COMMA)* Expr? +fn parseFnCallArguments(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?AnnotatedParamList { + if (eatToken(it, .LParen) == null) return null; + const list = try ListParseFn(Node.FnProto.ParamList, parseExpr)(arena, it, tree); + const rparen = try expectToken(it, tree, .RParen); + return AnnotatedParamList{ .list = list, .rparen = rparen }; +} + +const AnnotatedParamList = struct { + list: Node.FnProto.ParamList, // NOTE: may also be any other type SegmentedList(*Node, 2) + rparen: TokenIndex, +}; + +/// ArrayTypeStart <- LBRACKET Expr? RBRACKET +fn parseArrayTypeStart(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const lbracket = eatToken(it, .LBracket) orelse return null; + const expr = try parseExpr(arena, it, tree); + const rbracket = try expectToken(it, tree, .RBracket); + + const op = if (expr) |element_type| + Node.PrefixOp.Op{ .ArrayType = element_type } + else + Node.PrefixOp.Op{ + .SliceType = Node.PrefixOp.PtrInfo{ + .allowzero_token = null, + .align_info = null, + .const_token = null, + .volatile_token = null, + }, + }; + + const node = try arena.create(Node.PrefixOp); + node.* = Node.PrefixOp{ + .base = Node{ .id = .PrefixOp }, + .op_token = lbracket, + .op = op, + .rhs = undefined, // set by caller + }; + return &node.base; +} + +/// PtrTypeStart +/// <- ASTERISK +/// / ASTERISK2 +/// / PTRUNKNOWN +/// / PTRC +fn parsePtrTypeStart(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const token = eatAnnotatedToken(it, .Asterisk) orelse + eatAnnotatedToken(it, .AsteriskAsterisk) orelse + eatAnnotatedToken(it, .BracketStarBracket) orelse + eatAnnotatedToken(it, .BracketStarCBracket) orelse + return null; + + const node = try arena.create(Node.PrefixOp); + node.* = Node.PrefixOp{ + .base = Node{ .id = .PrefixOp }, + .op_token = token.index, + .op = Node.PrefixOp.Op{ + .PtrType = Node.PrefixOp.PtrInfo{ + .allowzero_token = null, + .align_info = null, + .const_token = null, + .volatile_token = null, + }, + }, + .rhs = undefined, // set by caller + }; + + // Special case for **, which is its own token + if (token.ptr.id == .AsteriskAsterisk) { + const child = try arena.create(Node.PrefixOp); + child.* = Node.PrefixOp{ + .base = Node{ .id = .PrefixOp }, + .op_token = token.index, + .op = Node.PrefixOp.Op{ + .PtrType = Node.PrefixOp.PtrInfo{ + .allowzero_token = null, + .align_info = null, + .const_token = null, + .volatile_token = null, + }, + }, + .rhs = undefined, // set by caller + }; + node.rhs = &child.base; + } + + return &node.base; +} + +/// ContainerDeclAuto <- ContainerDeclType LBRACE ContainerMembers RBRACE +fn parseContainerDeclAuto(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const node = (try parseContainerDeclType(arena, it, tree)) orelse return null; + const lbrace = try expectToken(it, tree, .LBrace); + const members = try parseContainerMembers(arena, it, tree); + const rbrace = try expectToken(it, tree, .RBrace); + + const decl_type = node.cast(Node.ContainerDecl).?; + decl_type.fields_and_decls = members; + decl_type.lbrace_token = lbrace; + decl_type.rbrace_token = rbrace; + + return node; +} + +/// ContainerDeclType +/// <- KEYWORD_struct +/// / KEYWORD_enum (LPAREN Expr RPAREN)? +/// / KEYWORD_union (LPAREN (KEYWORD_enum (LPAREN Expr RPAREN)? / Expr) RPAREN)? +fn parseContainerDeclType(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const kind_token = nextToken(it); + + const init_arg_expr = switch (kind_token.ptr.id) { + .Keyword_struct => Node.ContainerDecl.InitArg{ .None = {} }, + .Keyword_enum => blk: { + if (eatToken(it, .LParen) != null) { + const expr = try expectNode(arena, it, tree, parseExpr, AstError{ + .ExpectedExpr = AstError.ExpectedExpr{ .token = it.index }, + }); + _ = try expectToken(it, tree, .RParen); + break :blk Node.ContainerDecl.InitArg{ .Type = expr }; + } + break :blk Node.ContainerDecl.InitArg{ .None = {} }; + }, + .Keyword_union => blk: { + if (eatToken(it, .LParen) != null) { + if (eatToken(it, .Keyword_enum) != null) { + if (eatToken(it, .LParen) != null) { + const expr = try expectNode(arena, it, tree, parseExpr, AstError{ + .ExpectedExpr = AstError.ExpectedExpr{ .token = it.index }, + }); + _ = try expectToken(it, tree, .RParen); + _ = try expectToken(it, tree, .RParen); + break :blk Node.ContainerDecl.InitArg{ .Enum = expr }; + } + _ = try expectToken(it, tree, .RParen); + break :blk Node.ContainerDecl.InitArg{ .Enum = null }; + } + const expr = try expectNode(arena, it, tree, parseExpr, AstError{ + .ExpectedExpr = AstError.ExpectedExpr{ .token = it.index }, + }); + _ = try expectToken(it, tree, .RParen); + break :blk Node.ContainerDecl.InitArg{ .Type = expr }; + } + break :blk Node.ContainerDecl.InitArg{ .None = {} }; + }, + else => { + putBackToken(it, kind_token.index); + return null; + }, + }; + + const node = try arena.create(Node.ContainerDecl); + node.* = Node.ContainerDecl{ + .base = Node{ .id = .ContainerDecl }, + .layout_token = null, + .kind_token = kind_token.index, + .init_arg_expr = init_arg_expr, + .fields_and_decls = undefined, // set by caller + .lbrace_token = undefined, // set by caller + .rbrace_token = undefined, // set by caller + }; + return &node.base; +} + +/// ByteAlign <- KEYWORD_align LPAREN Expr RPAREN +fn parseByteAlign(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + _ = eatToken(it, .Keyword_align) orelse return null; + _ = try expectToken(it, tree, .LParen); + const expr = try expectNode(arena, it, tree, parseExpr, AstError{ + .ExpectedExpr = AstError.ExpectedExpr{ .token = it.index }, + }); + _ = try expectToken(it, tree, .RParen); + return expr; +} + +/// IdentifierList <- (IDENTIFIER COMMA)* IDENTIFIER? +/// Only ErrorSetDecl parses an IdentifierList +fn parseErrorTagList(arena: *Allocator, it: *TokenIterator, tree: *Tree) !Node.ErrorSetDecl.DeclList { + return try ListParseFn(Node.ErrorSetDecl.DeclList, parseErrorTag)(arena, it, tree); +} + +/// SwitchProngList <- (SwitchProng COMMA)* SwitchProng? +fn parseSwitchProngList(arena: *Allocator, it: *TokenIterator, tree: *Tree) !Node.Switch.CaseList { + return try ListParseFn(Node.Switch.CaseList, parseSwitchProng)(arena, it, tree); +} + +/// AsmOutputList <- (AsmOutputItem COMMA)* AsmOutputItem? +fn parseAsmOutputList(arena: *Allocator, it: *TokenIterator, tree: *Tree) Error!Node.Asm.OutputList { + return try ListParseFn(Node.Asm.OutputList, parseAsmOutputItem)(arena, it, tree); +} + +/// AsmInputList <- (AsmInputItem COMMA)* AsmInputItem? +fn parseAsmInputList(arena: *Allocator, it: *TokenIterator, tree: *Tree) Error!Node.Asm.InputList { + return try ListParseFn(Node.Asm.InputList, parseAsmInputItem)(arena, it, tree); +} + +/// ParamDeclList <- (ParamDecl COMMA)* ParamDecl? +fn parseParamDeclList(arena: *Allocator, it: *TokenIterator, tree: *Tree) !Node.FnProto.ParamList { + return try ListParseFn(Node.FnProto.ParamList, parseParamDecl)(arena, it, tree); +} + +fn ParseFn(comptime T: type) type { + return fn (*Allocator, *TokenIterator, *Tree) Error!T; +} + +const NodeParseFn = fn (*Allocator, *TokenIterator, *Tree) Error!?*Node; + +fn ListParseFn(comptime L: type, comptime nodeParseFn: var) ParseFn(L) { + return struct { + pub fn parse(arena: *Allocator, it: *TokenIterator, tree: *Tree) !L { + var list = L.init(arena); + while (try nodeParseFn(arena, it, tree)) |node| { + try list.push(node); + if (eatToken(it, .Comma) == null) break; + } + return list; + } + }.parse; +} + +fn SimpleBinOpParseFn(comptime token: Token.Id, comptime op: Node.InfixOp.Op) NodeParseFn { + return struct { + pub fn parse(arena: *Allocator, it: *TokenIterator, tree: *Tree) Error!?*Node { + const op_token = eatToken(it, token) orelse return null; + const node = try arena.create(Node.InfixOp); + node.* = Node.InfixOp{ + .base = Node{ .id = .InfixOp }, + .op_token = op_token, + .lhs = undefined, // set by caller + .op = op, + .rhs = undefined, // set by caller + }; + return &node.base; + } + }.parse; +} + +// Helper parsers not included in the grammar + +fn parseBuiltinCall(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const token = eatToken(it, .Builtin) orelse return null; + const params = (try parseFnCallArguments(arena, it, tree)) orelse { + try tree.errors.push(AstError{ + .ExpectedParamList = AstError.ExpectedParamList{ .token = it.index }, + }); + return error.ParseError; + }; + const node = try arena.create(Node.BuiltinCall); + node.* = Node.BuiltinCall{ + .base = Node{ .id = .BuiltinCall }, + .builtin_token = token, + .params = params.list, + .rparen_token = params.rparen, + }; + return &node.base; +} + +fn parseErrorTag(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const doc_comments = try parseDocComment(arena, it, tree); // no need to rewind on failure + const token = eatToken(it, .Identifier) orelse return null; + + const node = try arena.create(Node.ErrorTag); + node.* = Node.ErrorTag{ + .base = Node{ .id = .ErrorTag }, + .doc_comments = doc_comments, + .name_token = token, + }; + return &node.base; +} + +fn parseIdentifier(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const token = eatToken(it, .Identifier) orelse return null; + const node = try arena.create(Node.Identifier); + node.* = Node.Identifier{ + .base = Node{ .id = .Identifier }, + .token = token, + }; + return &node.base; +} + +fn parseVarType(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const token = eatToken(it, .Keyword_var) orelse return null; + const node = try arena.create(Node.VarType); + node.* = Node.VarType{ + .base = Node{ .id = .VarType }, + .token = token, + }; + return &node.base; +} + +fn createLiteral(arena: *Allocator, comptime T: type, token: TokenIndex) !*Node { + const result = try arena.create(T); + result.* = T{ + .base = Node{ .id = Node.typeToId(T) }, + .token = token, + }; + return &result.base; +} + +// string literal or multiline string literal +fn parseStringLiteral(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + if (eatToken(it, .StringLiteral)) |token| { + const node = try arena.create(Node.StringLiteral); + node.* = Node.StringLiteral{ + .base = Node{ .id = .StringLiteral }, + .token = token, + }; + return &node.base; + } + + if (eatToken(it, .MultilineStringLiteralLine)) |first_line| { + const node = try arena.create(Node.MultilineStringLiteral); + node.* = Node.MultilineStringLiteral{ + .base = Node{ .id = .MultilineStringLiteral }, + .lines = Node.MultilineStringLiteral.LineList.init(arena), + }; + try node.lines.push(first_line); + while (eatToken(it, .MultilineStringLiteralLine)) |line| + try node.lines.push(line); + + return &node.base; + } + + return null; +} + +fn parseIntegerLiteral(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const token = eatToken(it, .IntegerLiteral) orelse return null; + const node = try arena.create(Node.IntegerLiteral); + node.* = Node.IntegerLiteral{ + .base = Node{ .id = .IntegerLiteral }, + .token = token, + }; + return &node.base; +} + +fn parseFloatLiteral(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const token = eatToken(it, .FloatLiteral) orelse return null; + const node = try arena.create(Node.FloatLiteral); + node.* = Node.FloatLiteral{ + .base = Node{ .id = .FloatLiteral }, + .token = token, + }; + return &node.base; +} + +fn parseTry(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const token = eatToken(it, .Keyword_try) orelse return null; + const node = try arena.create(Node.PrefixOp); + node.* = Node.PrefixOp{ + .base = Node{ .id = .PrefixOp }, + .op_token = token, + .op = Node.PrefixOp.Op.Try, + .rhs = undefined, // set by caller + }; + return &node.base; +} + +fn parseUse(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node { + const token = eatToken(it, .Keyword_usingnamespace) orelse return null; + const node = try arena.create(Node.Use); + node.* = Node.Use{ + .base = Node{ .id = .Use }, + .doc_comments = null, + .visib_token = null, + .use_token = token, + .expr = undefined, + .semicolon_token = undefined, + }; + return &node.base; +} + +/// IfPrefix Body (KEYWORD_else Payload? Body)? +fn parseIf(arena: *Allocator, it: *TokenIterator, tree: *Tree, bodyParseFn: NodeParseFn) !?*Node { + const node = (try parseIfPrefix(arena, it, tree)) orelse return null; + const if_prefix = node.cast(Node.If).?; + + if_prefix.body = try expectNode(arena, it, tree, bodyParseFn, AstError{ + .InvalidToken = AstError.InvalidToken{ .token = it.index }, + }); + + const else_token = eatToken(it, .Keyword_else) orelse return node; + const payload = try parsePayload(arena, it, tree); + const else_expr = try expectNode(arena, it, tree, bodyParseFn, AstError{ + .InvalidToken = AstError.InvalidToken{ .token = it.index }, + }); + const else_node = try arena.create(Node.Else); + else_node.* = Node.Else{ + .base = Node{ .id = .Else }, + .else_token = else_token, + .payload = payload, + .body = else_expr, + }; + if_prefix.@"else" = else_node; + + return node; +} + +/// Eat a multiline doc comment +fn parseDocComment(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node.DocComment { + var lines = Node.DocComment.LineList.init(arena); + while (eatToken(it, .DocComment)) |line| { + try lines.push(line); + } + + if (lines.len == 0) return null; + + const node = try arena.create(Node.DocComment); + node.* = Node.DocComment{ + .base = Node{ .id = .DocComment }, + .lines = lines, + }; + return node; +} + +/// Eat a single-line doc comment on the same line as another node +fn parseAppendedDocComment(arena: *Allocator, it: *TokenIterator, tree: *Tree, after_token: TokenIndex) !?*Node.DocComment { + const comment_token = eatToken(it, .DocComment) orelse return null; + if (tree.tokensOnSameLine(after_token, comment_token)) { + const node = try arena.create(Node.DocComment); + node.* = Node.DocComment{ + .base = Node{ .id = .DocComment }, + .lines = Node.DocComment.LineList.init(arena), + }; + try node.lines.push(comment_token); + return node; + } + putBackToken(it, comment_token); + return null; +} + +/// Op* Child +fn parsePrefixOpExpr( + arena: *Allocator, + it: *TokenIterator, + tree: *Tree, + opParseFn: NodeParseFn, + childParseFn: NodeParseFn, +) Error!?*Node { + if (try opParseFn(arena, it, tree)) |first_op| { + var rightmost_op = first_op; + while (true) { + switch (rightmost_op.id) { + .PrefixOp => { + var prefix_op = rightmost_op.cast(Node.PrefixOp).?; + // If the token encountered was **, there will be two nodes + if (tree.tokens.at(prefix_op.op_token).id == .AsteriskAsterisk) { + rightmost_op = prefix_op.rhs; + prefix_op = rightmost_op.cast(Node.PrefixOp).?; + } + if (try opParseFn(arena, it, tree)) |rhs| { + prefix_op.rhs = rhs; + rightmost_op = rhs; + } else break; + }, + .AnyFrameType => { + const prom = rightmost_op.cast(Node.AnyFrameType).?; + if (try opParseFn(arena, it, tree)) |rhs| { + prom.result.?.return_type = rhs; + rightmost_op = rhs; + } else break; + }, + else => unreachable, + } + } + + // If any prefix op existed, a child node on the RHS is required + switch (rightmost_op.id) { + .PrefixOp => { + const prefix_op = rightmost_op.cast(Node.PrefixOp).?; + prefix_op.rhs = try expectNode(arena, it, tree, childParseFn, AstError{ + .InvalidToken = AstError.InvalidToken{ .token = it.index }, + }); + }, + .AnyFrameType => { + const prom = rightmost_op.cast(Node.AnyFrameType).?; + prom.result.?.return_type = try expectNode(arena, it, tree, childParseFn, AstError{ + .InvalidToken = AstError.InvalidToken{ .token = it.index }, + }); + }, + else => unreachable, + } + + return first_op; + } + + // Otherwise, the child node is optional + return try childParseFn(arena, it, tree); +} + +/// Child (Op Child)* +/// Child (Op Child)? +fn parseBinOpExpr( + arena: *Allocator, + it: *TokenIterator, + tree: *Tree, + opParseFn: NodeParseFn, + childParseFn: NodeParseFn, + chain: enum { + Once, + Infinitely, + }, +) Error!?*Node { + var res = (try childParseFn(arena, it, tree)) orelse return null; + + while (try opParseFn(arena, it, tree)) |node| { + const right = try expectNode(arena, it, tree, childParseFn, AstError{ + .InvalidToken = AstError.InvalidToken{ .token = it.index }, + }); + const left = res; + res = node; + + const op = node.cast(Node.InfixOp).?; + op.*.lhs = left; + op.*.rhs = right; + + switch (chain) { + .Once => break, + .Infinitely => continue, + } + } + + return res; +} + +fn createInfixOp(arena: *Allocator, index: TokenIndex, op: Node.InfixOp.Op) !*Node { + const node = try arena.create(Node.InfixOp); + node.* = Node.InfixOp{ + .base = Node{ .id = .InfixOp }, + .op_token = index, + .lhs = undefined, + .op = op, + .rhs = undefined, + }; + return &node.base; +} + +fn eatToken(it: *TokenIterator, id: Token.Id) ?TokenIndex { + return if (eatAnnotatedToken(it, id)) |token| token.index else null; +} + +fn eatAnnotatedToken(it: *TokenIterator, id: Token.Id) ?AnnotatedToken { + return if (it.peek().?.id == id) nextToken(it) else null; +} + +fn expectToken(it: *TokenIterator, tree: *Tree, id: Token.Id) Error!TokenIndex { + const token = nextToken(it); + if (token.ptr.id != id) { + try tree.errors.push(AstError{ + .ExpectedToken = AstError.ExpectedToken{ .token = token.index, .expected_id = id }, + }); + return error.ParseError; + } + return token.index; +} + +fn nextToken(it: *TokenIterator) AnnotatedToken { + const result = AnnotatedToken{ + .index = it.index, + .ptr = it.next().?, + }; + assert(result.ptr.id != .LineComment); + + while (true) { + const next_tok = it.peek() orelse return result; + if (next_tok.id != .LineComment) return result; + _ = it.next(); + } +} + +fn putBackToken(it: *TokenIterator, putting_back: TokenIndex) void { + while (true) { + const prev_tok = it.prev() orelse return; + if (prev_tok.id == .LineComment) continue; + assert(it.list.at(putting_back) == prev_tok); + return; + } +} + +const AnnotatedToken = struct { + index: TokenIndex, + ptr: *Token, +}; + +fn expectNode( + arena: *Allocator, + it: *TokenIterator, + tree: *Tree, + parseFn: NodeParseFn, + err: AstError, // if parsing fails +) Error!*Node { + return (try parseFn(arena, it, tree)) orelse { + try tree.errors.push(err); + return error.ParseError; + }; +} + +test "std.zig.parser" { + _ = @import("parser_test.zig"); +} diff --git a/lib/std/zig/parse_string_literal.zig b/lib/std/zig/parse_string_literal.zig new file mode 100644 index 0000000000..acae0b64c7 --- /dev/null +++ b/lib/std/zig/parse_string_literal.zig @@ -0,0 +1,76 @@ +const std = @import("../std.zig"); +const assert = std.debug.assert; + +const State = enum { + Start, + Backslash, +}; + +pub const ParseStringLiteralError = error{ + OutOfMemory, + + /// When this is returned, index will be the position of the character. + InvalidCharacter, +}; + +/// caller owns returned memory +pub fn parseStringLiteral( + allocator: *std.mem.Allocator, + bytes: []const u8, + bad_index: *usize, // populated if error.InvalidCharacter is returned +) ParseStringLiteralError![]u8 { + const first_index = if (bytes[0] == 'c') usize(2) else usize(1); + assert(bytes[bytes.len - 1] == '"'); + + var list = std.ArrayList(u8).init(allocator); + errdefer list.deinit(); + + const slice = bytes[first_index..]; + try list.ensureCapacity(slice.len - 1); + + var state = State.Start; + for (slice) |b, index| { + switch (state) { + State.Start => switch (b) { + '\\' => state = State.Backslash, + '\n' => { + bad_index.* = index; + return error.InvalidCharacter; + }, + '"' => return list.toOwnedSlice(), + else => try list.append(b), + }, + State.Backslash => switch (b) { + 'x' => @panic("TODO"), + 'u' => @panic("TODO"), + 'U' => @panic("TODO"), + 'n' => { + try list.append('\n'); + state = State.Start; + }, + 'r' => { + try list.append('\r'); + state = State.Start; + }, + '\\' => { + try list.append('\\'); + state = State.Start; + }, + 't' => { + try list.append('\t'); + state = State.Start; + }, + '"' => { + try list.append('"'); + state = State.Start; + }, + else => { + bad_index.* = index; + return error.InvalidCharacter; + }, + }, + else => unreachable, + } + } + unreachable; +} diff --git a/lib/std/zig/parser_test.zig b/lib/std/zig/parser_test.zig new file mode 100644 index 0000000000..2c7978ba83 --- /dev/null +++ b/lib/std/zig/parser_test.zig @@ -0,0 +1,2650 @@ +// TODO remove `use` keyword eventually: https://github.com/ziglang/zig/issues/2591 +test "zig fmt: change use to usingnamespace" { + try testTransform( + \\use @import("std"); + , + \\usingnamespace @import("std"); + \\ + ); +} + +test "zig fmt: async function" { + try testCanonical( + \\pub const Server = struct { + \\ handleRequestFn: async fn (*Server, *const std.net.Address, File) void, + \\}; + \\test "hi" { + \\ var ptr = @ptrCast(async fn (i32) void, other); + \\} + \\ + ); +} + +test "zig fmt: whitespace fixes" { + try testTransform("test \"\" {\r\n\tconst hi = x;\r\n}\n// zig fmt: off\ntest \"\"{\r\n\tconst a = b;}\r\n", + \\test "" { + \\ const hi = x; + \\} + \\// zig fmt: off + \\test ""{ + \\ const a = b;} + \\ + ); +} + +test "zig fmt: while else err prong with no block" { + try testCanonical( + \\test "" { + \\ const result = while (returnError()) |value| { + \\ break value; + \\ } else |err| i32(2); + \\ expect(result == 2); + \\} + \\ + ); +} + +test "zig fmt: tagged union with enum values" { + try testCanonical( + \\const MultipleChoice2 = union(enum(u32)) { + \\ Unspecified1: i32, + \\ A: f32 = 20, + \\ Unspecified2: void, + \\ B: bool = 40, + \\ Unspecified3: i32, + \\ C: i8 = 60, + \\ Unspecified4: void, + \\ D: void = 1000, + \\ Unspecified5: i32, + \\}; + \\ + ); +} + +test "zig fmt: allowzero pointer" { + try testCanonical( + \\const T = [*]allowzero const u8; + \\ + ); +} + +test "zig fmt: enum literal" { + try testCanonical( + \\const x = .hi; + \\ + ); +} + +test "zig fmt: enum literal inside array literal" { + try testCanonical( + \\test "enums in arrays" { + \\ var colors = []Color{.Green}; + \\ colors = []Colors{ .Green, .Cyan }; + \\ colors = []Colors{ + \\ .Grey, + \\ .Green, + \\ .Cyan, + \\ }; + \\} + \\ + ); +} + +test "zig fmt: character literal larger than u8" { + try testCanonical( + \\const x = '\u{01f4a9}'; + \\ + ); +} + +test "zig fmt: infix operator and then multiline string literal" { + try testCanonical( + \\const x = "" ++ + \\ \\ hi + \\; + \\ + ); +} + +test "zig fmt: C pointers" { + try testCanonical( + \\const Ptr = [*c]i32; + \\ + ); +} + +test "zig fmt: threadlocal" { + try testCanonical( + \\threadlocal var x: i32 = 1234; + \\ + ); +} + +test "zig fmt: linksection" { + try testCanonical( + \\export var aoeu: u64 linksection(".text.derp") = 1234; + \\export nakedcc fn _start() linksection(".text.boot") noreturn {} + \\ + ); +} + +test "zig fmt: correctly move doc comments on struct fields" { + try testTransform( + \\pub const section_64 = extern struct { + \\ sectname: [16]u8, /// name of this section + \\ segname: [16]u8, /// segment this section goes in + \\}; + , + \\pub const section_64 = extern struct { + \\ /// name of this section + \\ sectname: [16]u8, + \\ /// segment this section goes in + \\ segname: [16]u8, + \\}; + \\ + ); +} + +test "zig fmt: doc comments on param decl" { + try testCanonical( + \\pub const Allocator = struct { + \\ shrinkFn: fn ( + \\ self: *Allocator, + \\ /// Guaranteed to be the same as what was returned from most recent call to + \\ /// `allocFn`, `reallocFn`, or `shrinkFn`. + \\ old_mem: []u8, + \\ /// Guaranteed to be the same as what was returned from most recent call to + \\ /// `allocFn`, `reallocFn`, or `shrinkFn`. + \\ old_alignment: u29, + \\ /// Guaranteed to be less than or equal to `old_mem.len`. + \\ new_byte_count: usize, + \\ /// Guaranteed to be less than or equal to `old_alignment`. + \\ new_alignment: u29, + \\ ) []u8, + \\}; + \\ + ); +} + +test "zig fmt: aligned struct field" { + try testCanonical( + \\pub const S = struct { + \\ f: i32 align(32), + \\}; + \\ + ); +} + +test "zig fmt: preserve space between async fn definitions" { + try testCanonical( + \\async fn a() void {} + \\ + \\async fn b() void {} + \\ + ); +} + +test "zig fmt: comment to disable/enable zig fmt first" { + try testCanonical( + \\// Test trailing comma syntax + \\// zig fmt: off + \\ + \\const struct_trailing_comma = struct { x: i32, y: i32, }; + ); +} + +test "zig fmt: comment to disable/enable zig fmt" { + try testTransform( + \\const a = b; + \\// zig fmt: off + \\const c = d; + \\// zig fmt: on + \\const e = f; + , + \\const a = b; + \\// zig fmt: off + \\const c = d; + \\// zig fmt: on + \\const e = f; + \\ + ); +} + +test "zig fmt: line comment following 'zig fmt: off'" { + try testCanonical( + \\// zig fmt: off + \\// Test + \\const e = f; + ); +} + +test "zig fmt: doc comment following 'zig fmt: off'" { + try testCanonical( + \\// zig fmt: off + \\/// test + \\const e = f; + ); +} + +test "zig fmt: line and doc comment following 'zig fmt: off'" { + try testCanonical( + \\// zig fmt: off + \\// test 1 + \\/// test 2 + \\const e = f; + ); +} + +test "zig fmt: doc and line comment following 'zig fmt: off'" { + try testCanonical( + \\// zig fmt: off + \\/// test 1 + \\// test 2 + \\const e = f; + ); +} + +test "zig fmt: alternating 'zig fmt: off' and 'zig fmt: on'" { + try testCanonical( + \\// zig fmt: off + \\// zig fmt: on + \\// zig fmt: off + \\const e = f; + \\// zig fmt: off + \\// zig fmt: on + \\// zig fmt: off + \\const a = b; + \\// zig fmt: on + \\const c = d; + \\// zig fmt: on + \\ + ); +} + +test "zig fmt: line comment following 'zig fmt: on'" { + try testCanonical( + \\// zig fmt: off + \\const e = f; + \\// zig fmt: on + \\// test + \\const e = f; + \\ + ); +} + +test "zig fmt: doc comment following 'zig fmt: on'" { + try testCanonical( + \\// zig fmt: off + \\const e = f; + \\// zig fmt: on + \\/// test + \\const e = f; + \\ + ); +} + +test "zig fmt: line and doc comment following 'zig fmt: on'" { + try testCanonical( + \\// zig fmt: off + \\const e = f; + \\// zig fmt: on + \\// test1 + \\/// test2 + \\const e = f; + \\ + ); +} + +test "zig fmt: doc and line comment following 'zig fmt: on'" { + try testCanonical( + \\// zig fmt: off + \\const e = f; + \\// zig fmt: on + \\/// test1 + \\// test2 + \\const e = f; + \\ + ); +} + +test "zig fmt: pointer of unknown length" { + try testCanonical( + \\fn foo(ptr: [*]u8) void {} + \\ + ); +} + +test "zig fmt: spaces around slice operator" { + try testCanonical( + \\var a = b[c..d]; + \\var a = b[c + 1 .. d]; + \\var a = b[c + 1 ..]; + \\var a = b[c .. d + 1]; + \\var a = b[c.a..d.e]; + \\ + ); +} + +test "zig fmt: async call in if condition" { + try testCanonical( + \\comptime { + \\ if (async b()) { + \\ a(); + \\ } + \\} + \\ + ); +} + +test "zig fmt: 2nd arg multiline string" { + try testCanonical( + \\comptime { + \\ cases.addAsm("hello world linux x86_64", + \\ \\.text + \\ , "Hello, world!\n"); + \\} + \\ + ); +} + +test "zig fmt: if condition wraps" { + try testTransform( + \\comptime { + \\ if (cond and + \\ cond) { + \\ return x; + \\ } + \\ while (cond and + \\ cond) { + \\ return x; + \\ } + \\ if (a == b and + \\ c) { + \\ a = b; + \\ } + \\ while (a == b and + \\ c) { + \\ a = b; + \\ } + \\ if ((cond and + \\ cond)) { + \\ return x; + \\ } + \\ while ((cond and + \\ cond)) { + \\ return x; + \\ } + \\ var a = if (a) |*f| x: { + \\ break :x &a.b; + \\ } else |err| err; + \\} + , + \\comptime { + \\ if (cond and + \\ cond) + \\ { + \\ return x; + \\ } + \\ while (cond and + \\ cond) + \\ { + \\ return x; + \\ } + \\ if (a == b and + \\ c) + \\ { + \\ a = b; + \\ } + \\ while (a == b and + \\ c) + \\ { + \\ a = b; + \\ } + \\ if ((cond and + \\ cond)) + \\ { + \\ return x; + \\ } + \\ while ((cond and + \\ cond)) + \\ { + \\ return x; + \\ } + \\ var a = if (a) |*f| x: { + \\ break :x &a.b; + \\ } else |err| err; + \\} + \\ + ); +} + +test "zig fmt: if condition has line break but must not wrap" { + try testCanonical( + \\comptime { + \\ if (self.user_input_options.put(name, UserInputOption{ + \\ .name = name, + \\ .used = false, + \\ }) catch unreachable) |*prev_value| { + \\ foo(); + \\ bar(); + \\ } + \\ if (put( + \\ a, + \\ b, + \\ )) { + \\ foo(); + \\ } + \\} + \\ + ); +} + +test "zig fmt: same-line doc comment on variable declaration" { + try testTransform( + \\pub const MAP_ANONYMOUS = 0x1000; /// allocated from memory, swap space + \\pub const MAP_FILE = 0x0000; /// map from file (default) + \\ + \\pub const EMEDIUMTYPE = 124; /// Wrong medium type + \\ + \\// nameserver query return codes + \\pub const ENSROK = 0; /// DNS server returned answer with no data + , + \\/// allocated from memory, swap space + \\pub const MAP_ANONYMOUS = 0x1000; + \\/// map from file (default) + \\pub const MAP_FILE = 0x0000; + \\ + \\/// Wrong medium type + \\pub const EMEDIUMTYPE = 124; + \\ + \\// nameserver query return codes + \\/// DNS server returned answer with no data + \\pub const ENSROK = 0; + \\ + ); +} + +test "zig fmt: if-else with comment before else" { + try testCanonical( + \\comptime { + \\ // cexp(finite|nan +- i inf|nan) = nan + i nan + \\ if ((hx & 0x7fffffff) != 0x7f800000) { + \\ return Complex(f32).new(y - y, y - y); + \\ } // cexp(-inf +- i inf|nan) = 0 + i0 + \\ else if (hx & 0x80000000 != 0) { + \\ return Complex(f32).new(0, 0); + \\ } // cexp(+inf +- i inf|nan) = inf + i nan + \\ else { + \\ return Complex(f32).new(x, y - y); + \\ } + \\} + \\ + ); +} + +test "zig fmt: if nested" { + try testCanonical( + \\pub fn foo() void { + \\ return if ((aInt & bInt) >= 0) + \\ if (aInt < bInt) + \\ GE_LESS + \\ else if (aInt == bInt) + \\ GE_EQUAL + \\ else + \\ GE_GREATER + \\ else if (aInt > bInt) + \\ GE_LESS + \\ else if (aInt == bInt) + \\ GE_EQUAL + \\ else + \\ GE_GREATER; + \\} + \\ + ); +} + +test "zig fmt: respect line breaks in if-else" { + try testCanonical( + \\comptime { + \\ return if (cond) a else b; + \\ return if (cond) + \\ a + \\ else + \\ b; + \\ return if (cond) + \\ a + \\ else if (cond) + \\ b + \\ else + \\ c; + \\} + \\ + ); +} + +test "zig fmt: respect line breaks after infix operators" { + try testCanonical( + \\comptime { + \\ self.crc = + \\ lookup_tables[0][p[7]] ^ + \\ lookup_tables[1][p[6]] ^ + \\ lookup_tables[2][p[5]] ^ + \\ lookup_tables[3][p[4]] ^ + \\ lookup_tables[4][@truncate(u8, self.crc >> 24)] ^ + \\ lookup_tables[5][@truncate(u8, self.crc >> 16)] ^ + \\ lookup_tables[6][@truncate(u8, self.crc >> 8)] ^ + \\ lookup_tables[7][@truncate(u8, self.crc >> 0)]; + \\} + \\ + ); +} + +test "zig fmt: fn decl with trailing comma" { + try testTransform( + \\fn foo(a: i32, b: i32,) void {} + , + \\fn foo( + \\ a: i32, + \\ b: i32, + \\) void {} + \\ + ); +} + +test "zig fmt: var_args with trailing comma" { + try testCanonical( + \\pub fn add( + \\ a: ..., + \\) void {} + \\ + ); +} + +test "zig fmt: enum decl with no trailing comma" { + try testTransform( + \\const StrLitKind = enum {Normal, C}; + , + \\const StrLitKind = enum { + \\ Normal, + \\ C, + \\}; + \\ + ); +} + +test "zig fmt: switch comment before prong" { + try testCanonical( + \\comptime { + \\ switch (a) { + \\ // hi + \\ 0 => {}, + \\ } + \\} + \\ + ); +} + +test "zig fmt: struct literal no trailing comma" { + try testTransform( + \\const a = foo{ .x = 1, .y = 2 }; + \\const a = foo{ .x = 1, + \\ .y = 2 }; + , + \\const a = foo{ .x = 1, .y = 2 }; + \\const a = foo{ + \\ .x = 1, + \\ .y = 2, + \\}; + \\ + ); +} + +test "zig fmt: struct literal containing a multiline expression" { + try testTransform( + \\const a = A{ .x = if (f1()) 10 else 20 }; + \\const a = A{ .x = if (f1()) 10 else 20, }; + \\const a = A{ .x = if (f1()) + \\ 10 else 20 }; + \\const a = A{ .x = if (f1()) 10 else 20, .y = f2() + 100 }; + \\const a = A{ .x = if (f1()) 10 else 20, .y = f2() + 100, }; + \\const a = A{ .x = if (f1()) + \\ 10 else 20}; + \\const a = A{ .x = switch(g) {0 => "ok", else => "no"} }; + \\ + , + \\const a = A{ .x = if (f1()) 10 else 20 }; + \\const a = A{ + \\ .x = if (f1()) 10 else 20, + \\}; + \\const a = A{ + \\ .x = if (f1()) + \\ 10 + \\ else + \\ 20, + \\}; + \\const a = A{ .x = if (f1()) 10 else 20, .y = f2() + 100 }; + \\const a = A{ + \\ .x = if (f1()) 10 else 20, + \\ .y = f2() + 100, + \\}; + \\const a = A{ + \\ .x = if (f1()) + \\ 10 + \\ else + \\ 20, + \\}; + \\const a = A{ + \\ .x = switch (g) { + \\ 0 => "ok", + \\ else => "no", + \\ }, + \\}; + \\ + ); +} + +test "zig fmt: array literal with hint" { + try testTransform( + \\const a = []u8{ + \\ 1, 2, // + \\ 3, + \\ 4, + \\ 5, + \\ 6, + \\ 7 }; + \\const a = []u8{ + \\ 1, 2, // + \\ 3, + \\ 4, + \\ 5, + \\ 6, + \\ 7, 8 }; + \\const a = []u8{ + \\ 1, 2, // + \\ 3, + \\ 4, + \\ 5, + \\ 6, // blah + \\ 7, 8 }; + \\const a = []u8{ + \\ 1, 2, // + \\ 3, // + \\ 4, + \\ 5, + \\ 6, + \\ 7 }; + \\const a = []u8{ + \\ 1, + \\ 2, + \\ 3, 4, // + \\ 5, 6, // + \\ 7, 8, // + \\}; + , + \\const a = []u8{ + \\ 1, 2, + \\ 3, 4, + \\ 5, 6, + \\ 7, + \\}; + \\const a = []u8{ + \\ 1, 2, + \\ 3, 4, + \\ 5, 6, + \\ 7, 8, + \\}; + \\const a = []u8{ + \\ 1, 2, + \\ 3, 4, + \\ 5, 6, // blah + \\ 7, 8, + \\}; + \\const a = []u8{ + \\ 1, 2, + \\ 3, // + \\ 4, + \\ 5, 6, + \\ 7, + \\}; + \\const a = []u8{ + \\ 1, + \\ 2, + \\ 3, + \\ 4, + \\ 5, + \\ 6, + \\ 7, + \\ 8, + \\}; + \\ + ); +} + +test "zig fmt: array literal veritical column alignment" { + try testTransform( + \\const a = []u8{ + \\ 1000, 200, + \\ 30, 4, + \\ 50000, 60 + \\}; + \\const a = []u8{0, 1, 2, 3, 40, + \\ 4,5,600,7, + \\ 80, + \\ 9, 10, 11, 0, 13, 14, 15}; + \\ + , + \\const a = []u8{ + \\ 1000, 200, + \\ 30, 4, + \\ 50000, 60, + \\}; + \\const a = []u8{ + \\ 0, 1, 2, 3, 40, + \\ 4, 5, 600, 7, 80, + \\ 9, 10, 11, 0, 13, + \\ 14, 15, + \\}; + \\ + ); +} + +test "zig fmt: multiline string with backslash at end of line" { + try testCanonical( + \\comptime { + \\ err( + \\ \\\ + \\ ); + \\} + \\ + ); +} + +test "zig fmt: multiline string parameter in fn call with trailing comma" { + try testCanonical( + \\fn foo() void { + \\ try stdout.print( + \\ \\ZIG_CMAKE_BINARY_DIR {} + \\ \\ZIG_C_HEADER_FILES {} + \\ \\ZIG_DIA_GUIDS_LIB {} + \\ \\ + \\ , + \\ std.cstr.toSliceConst(c.ZIG_CMAKE_BINARY_DIR), + \\ std.cstr.toSliceConst(c.ZIG_CXX_COMPILER), + \\ std.cstr.toSliceConst(c.ZIG_DIA_GUIDS_LIB), + \\ ); + \\} + \\ + ); +} + +test "zig fmt: trailing comma on fn call" { + try testCanonical( + \\comptime { + \\ var module = try Module.create( + \\ allocator, + \\ zig_lib_dir, + \\ full_cache_dir, + \\ ); + \\} + \\ + ); +} + +test "zig fmt: multi line arguments without last comma" { + try testTransform( + \\pub fn foo( + \\ a: usize, + \\ b: usize, + \\ c: usize, + \\ d: usize + \\) usize { + \\ return a + b + c + d; + \\} + \\ + , + \\pub fn foo(a: usize, b: usize, c: usize, d: usize) usize { + \\ return a + b + c + d; + \\} + \\ + ); +} + +test "zig fmt: empty block with only comment" { + try testCanonical( + \\comptime { + \\ { + \\ // comment + \\ } + \\} + \\ + ); +} + +test "zig fmt: no trailing comma on struct decl" { + try testTransform( + \\const RoundParam = struct { + \\ k: usize, s: u32, t: u32 + \\}; + , + \\const RoundParam = struct { + \\ k: usize, + \\ s: u32, + \\ t: u32, + \\}; + \\ + ); +} + +test "zig fmt: extra newlines at the end" { + try testTransform( + \\const a = b; + \\ + \\ + \\ + , + \\const a = b; + \\ + ); +} + +test "zig fmt: simple asm" { + try testTransform( + \\comptime { + \\ asm volatile ( + \\ \\.globl aoeu; + \\ \\.type aoeu, @function; + \\ \\.set aoeu, derp; + \\ ); + \\ + \\ asm ("not real assembly" + \\ :[a] "x" (x),); + \\ asm ("not real assembly" + \\ :[a] "x" (->i32),:[a] "x" (1),); + \\ asm ("still not real assembly" + \\ :::"a","b",); + \\} + , + \\comptime { + \\ asm volatile ( + \\ \\.globl aoeu; + \\ \\.type aoeu, @function; + \\ \\.set aoeu, derp; + \\ ); + \\ + \\ asm ("not real assembly" + \\ : [a] "x" (x) + \\ ); + \\ asm ("not real assembly" + \\ : [a] "x" (-> i32) + \\ : [a] "x" (1) + \\ ); + \\ asm ("still not real assembly" + \\ : + \\ : + \\ : "a", "b" + \\ ); + \\} + \\ + ); +} + +test "zig fmt: nested struct literal with one item" { + try testCanonical( + \\const a = foo{ + \\ .item = bar{ .a = b }, + \\}; + \\ + ); +} + +test "zig fmt: switch cases trailing comma" { + try testTransform( + \\fn switch_cases(x: i32) void { + \\ switch (x) { + \\ 1,2,3 => {}, + \\ 4,5, => {}, + \\ 6... 8, => {}, + \\ else => {}, + \\ } + \\} + , + \\fn switch_cases(x: i32) void { + \\ switch (x) { + \\ 1, 2, 3 => {}, + \\ 4, + \\ 5, + \\ => {}, + \\ 6...8 => {}, + \\ else => {}, + \\ } + \\} + \\ + ); +} + +test "zig fmt: slice align" { + try testCanonical( + \\const A = struct { + \\ items: []align(A) T, + \\}; + \\ + ); +} + +test "zig fmt: add trailing comma to array literal" { + try testTransform( + \\comptime { + \\ return []u16{'m', 's', 'y', 's', '-' // hi + \\ }; + \\ return []u16{'m', 's', 'y', 's', + \\ '-'}; + \\ return []u16{'m', 's', 'y', 's', '-'}; + \\} + , + \\comptime { + \\ return []u16{ + \\ 'm', 's', 'y', 's', '-', // hi + \\ }; + \\ return []u16{ + \\ 'm', 's', 'y', 's', + \\ '-', + \\ }; + \\ return []u16{ 'm', 's', 'y', 's', '-' }; + \\} + \\ + ); +} + +test "zig fmt: first thing in file is line comment" { + try testCanonical( + \\// Introspection and determination of system libraries needed by zig. + \\ + \\// Introspection and determination of system libraries needed by zig. + \\ + \\const std = @import("std"); + \\ + ); +} + +test "zig fmt: line comment after doc comment" { + try testCanonical( + \\/// doc comment + \\// line comment + \\fn foo() void {} + \\ + ); +} + +test "zig fmt: float literal with exponent" { + try testCanonical( + \\test "bit field alignment" { + \\ assert(@typeOf(&blah.b) == *align(1:3:6) const u3); + \\} + \\ + ); +} + +test "zig fmt: float literal with exponent" { + try testCanonical( + \\test "aoeu" { + \\ switch (state) { + \\ TermState.Start => switch (c) { + \\ '\x1b' => state = TermState.Escape, + \\ else => try out.writeByte(c), + \\ }, + \\ } + \\} + \\ + ); +} +test "zig fmt: float literal with exponent" { + try testCanonical( + \\pub const f64_true_min = 4.94065645841246544177e-324; + \\const threshold = 0x1.a827999fcef32p+1022; + \\ + ); +} + +test "zig fmt: if-else end of comptime" { + try testCanonical( + \\comptime { + \\ if (a) { + \\ b(); + \\ } else { + \\ b(); + \\ } + \\} + \\ + ); +} + +test "zig fmt: nested blocks" { + try testCanonical( + \\comptime { + \\ { + \\ { + \\ { + \\ a(); + \\ } + \\ } + \\ } + \\} + \\ + ); +} + +test "zig fmt: block with same line comment after end brace" { + try testCanonical( + \\comptime { + \\ { + \\ b(); + \\ } // comment + \\} + \\ + ); +} + +test "zig fmt: statements with comment between" { + try testCanonical( + \\comptime { + \\ a = b; + \\ // comment + \\ a = b; + \\} + \\ + ); +} + +test "zig fmt: statements with empty line between" { + try testCanonical( + \\comptime { + \\ a = b; + \\ + \\ a = b; + \\} + \\ + ); +} + +test "zig fmt: ptr deref operator and unwrap optional operator" { + try testCanonical( + \\const a = b.*; + \\const a = b.?; + \\ + ); +} + +test "zig fmt: comment after if before another if" { + try testCanonical( + \\test "aoeu" { + \\ // comment + \\ if (x) { + \\ bar(); + \\ } + \\} + \\ + \\test "aoeu" { + \\ if (x) { + \\ foo(); + \\ } + \\ // comment + \\ if (x) { + \\ bar(); + \\ } + \\} + \\ + ); +} + +test "zig fmt: line comment between if block and else keyword" { + try testCanonical( + \\test "aoeu" { + \\ // cexp(finite|nan +- i inf|nan) = nan + i nan + \\ if ((hx & 0x7fffffff) != 0x7f800000) { + \\ return Complex(f32).new(y - y, y - y); + \\ } + \\ // cexp(-inf +- i inf|nan) = 0 + i0 + \\ else if (hx & 0x80000000 != 0) { + \\ return Complex(f32).new(0, 0); + \\ } + \\ // cexp(+inf +- i inf|nan) = inf + i nan + \\ // another comment + \\ else { + \\ return Complex(f32).new(x, y - y); + \\ } + \\} + \\ + ); +} + +test "zig fmt: same line comments in expression" { + try testCanonical( + \\test "aoeu" { + \\ const x = ( // a + \\ 0 // b + \\ ); // c + \\} + \\ + ); +} + +test "zig fmt: add comma on last switch prong" { + try testTransform( + \\test "aoeu" { + \\switch (self.init_arg_expr) { + \\ InitArg.Type => |t| { }, + \\ InitArg.None, + \\ InitArg.Enum => { } + \\} + \\ switch (self.init_arg_expr) { + \\ InitArg.Type => |t| { }, + \\ InitArg.None, + \\ InitArg.Enum => { }//line comment + \\ } + \\} + , + \\test "aoeu" { + \\ switch (self.init_arg_expr) { + \\ InitArg.Type => |t| {}, + \\ InitArg.None, InitArg.Enum => {}, + \\ } + \\ switch (self.init_arg_expr) { + \\ InitArg.Type => |t| {}, + \\ InitArg.None, InitArg.Enum => {}, //line comment + \\ } + \\} + \\ + ); +} + +test "zig fmt: same-line comment after a statement" { + try testCanonical( + \\test "" { + \\ a = b; + \\ debug.assert(H.digest_size <= H.block_size); // HMAC makes this assumption + \\ a = b; + \\} + \\ + ); +} + +test "zig fmt: same-line comment after var decl in struct" { + try testCanonical( + \\pub const vfs_cap_data = extern struct { + \\ const Data = struct {}; // when on disk. + \\}; + \\ + ); +} + +test "zig fmt: same-line comment after field decl" { + try testCanonical( + \\pub const dirent = extern struct { + \\ d_name: u8, + \\ d_name: u8, // comment 1 + \\ d_name: u8, + \\ d_name: u8, // comment 2 + \\ d_name: u8, + \\}; + \\ + ); +} + +test "zig fmt: same-line comment after switch prong" { + try testCanonical( + \\test "" { + \\ switch (err) { + \\ error.PathAlreadyExists => {}, // comment 2 + \\ else => return err, // comment 1 + \\ } + \\} + \\ + ); +} + +test "zig fmt: same-line comment after non-block if expression" { + try testCanonical( + \\comptime { + \\ if (sr > n_uword_bits - 1) // d > r + \\ return 0; + \\} + \\ + ); +} + +test "zig fmt: same-line comment on comptime expression" { + try testCanonical( + \\test "" { + \\ comptime assert(@typeId(T) == builtin.TypeId.Int); // must pass an integer to absInt + \\} + \\ + ); +} + +test "zig fmt: switch with empty body" { + try testCanonical( + \\test "" { + \\ foo() catch |err| switch (err) {}; + \\} + \\ + ); +} + +test "zig fmt: line comments in struct initializer" { + try testCanonical( + \\fn foo() void { + \\ return Self{ + \\ .a = b, + \\ + \\ // Initialize these two fields to buffer_size so that + \\ // in `readFn` we treat the state as being able to read + \\ .start_index = buffer_size, + \\ .end_index = buffer_size, + \\ + \\ // middle + \\ + \\ .a = b, + \\ + \\ // end + \\ }; + \\} + \\ + ); +} + +test "zig fmt: first line comment in struct initializer" { + try testCanonical( + \\pub async fn acquire(self: *Self) HeldLock { + \\ return HeldLock{ + \\ // guaranteed allocation elision + \\ .held = self.lock.acquire(), + \\ .value = &self.private_data, + \\ }; + \\} + \\ + ); +} + +test "zig fmt: doc comments before struct field" { + try testCanonical( + \\pub const Allocator = struct { + \\ /// Allocate byte_count bytes and return them in a slice, with the + \\ /// slice's pointer aligned at least to alignment bytes. + \\ allocFn: fn () void, + \\}; + \\ + ); +} + +test "zig fmt: error set declaration" { + try testCanonical( + \\const E = error{ + \\ A, + \\ B, + \\ + \\ C, + \\}; + \\ + \\const Error = error{ + \\ /// no more memory + \\ OutOfMemory, + \\}; + \\ + \\const Error = error{ + \\ /// no more memory + \\ OutOfMemory, + \\ + \\ /// another + \\ Another, + \\ + \\ // end + \\}; + \\ + \\const Error = error{OutOfMemory}; + \\const Error = error{}; + \\ + ); +} + +test "zig fmt: union(enum(u32)) with assigned enum values" { + try testCanonical( + \\const MultipleChoice = union(enum(u32)) { + \\ A = 20, + \\ B = 40, + \\ C = 60, + \\ D = 1000, + \\}; + \\ + ); +} + +test "zig fmt: resume from suspend block" { + try testCanonical( + \\fn foo() void { + \\ suspend { + \\ resume @frame(); + \\ } + \\} + \\ + ); +} + +test "zig fmt: comments before error set decl" { + try testCanonical( + \\const UnexpectedError = error{ + \\ /// The Operating System returned an undocumented error code. + \\ Unexpected, + \\ // another + \\ Another, + \\ + \\ // in between + \\ + \\ // at end + \\}; + \\ + ); +} + +test "zig fmt: comments before switch prong" { + try testCanonical( + \\test "" { + \\ switch (err) { + \\ error.PathAlreadyExists => continue, + \\ + \\ // comment 1 + \\ + \\ // comment 2 + \\ else => return err, + \\ // at end + \\ } + \\} + \\ + ); +} + +test "zig fmt: comments before var decl in struct" { + try testCanonical( + \\pub const vfs_cap_data = extern struct { + \\ // All of these are mandated as little endian + \\ // when on disk. + \\ const Data = struct { + \\ permitted: u32, + \\ inheritable: u32, + \\ }; + \\ + \\ // in between + \\ + \\ /// All of these are mandated as little endian + \\ /// when on disk. + \\ const Data = struct { + \\ permitted: u32, + \\ inheritable: u32, + \\ }; + \\ + \\ // at end + \\}; + \\ + ); +} + +test "zig fmt: array literal with 1 item on 1 line" { + try testCanonical( + \\var s = []const u64{0} ** 25; + \\ + ); +} + +test "zig fmt: comments before global variables" { + try testCanonical( + \\/// Foo copies keys and values before they go into the map, and + \\/// frees them when they get removed. + \\pub const Foo = struct {}; + \\ + ); +} + +test "zig fmt: comments in statements" { + try testCanonical( + \\test "std" { + \\ // statement comment + \\ _ = @import("foo/bar.zig"); + \\ + \\ // middle + \\ // middle2 + \\ + \\ // end + \\} + \\ + ); +} + +test "zig fmt: comments before test decl" { + try testCanonical( + \\/// top level doc comment + \\test "hi" {} + \\ + \\// top level normal comment + \\test "hi" {} + \\ + \\// middle + \\ + \\// end + \\ + ); +} + +test "zig fmt: preserve spacing" { + try testCanonical( + \\const std = @import("std"); + \\ + \\pub fn main() !void { + \\ var stdout_file = try std.io.getStdOut; + \\ var stdout_file = try std.io.getStdOut; + \\ + \\ var stdout_file = try std.io.getStdOut; + \\ var stdout_file = try std.io.getStdOut; + \\} + \\ + ); +} + +test "zig fmt: return types" { + try testCanonical( + \\pub fn main() !void {} + \\pub fn main() var {} + \\pub fn main() i32 {} + \\ + ); +} + +test "zig fmt: imports" { + try testCanonical( + \\const std = @import("std"); + \\const std = @import(); + \\ + ); +} + +test "zig fmt: global declarations" { + try testCanonical( + \\const a = b; + \\pub const a = b; + \\var a = b; + \\pub var a = b; + \\const a: i32 = b; + \\pub const a: i32 = b; + \\var a: i32 = b; + \\pub var a: i32 = b; + \\extern const a: i32 = b; + \\pub extern const a: i32 = b; + \\extern var a: i32 = b; + \\pub extern var a: i32 = b; + \\extern "a" const a: i32 = b; + \\pub extern "a" const a: i32 = b; + \\extern "a" var a: i32 = b; + \\pub extern "a" var a: i32 = b; + \\ + ); +} + +test "zig fmt: extern declaration" { + try testCanonical( + \\extern var foo: c_int; + \\ + ); +} + +test "zig fmt: alignment" { + try testCanonical( + \\var foo: c_int align(1); + \\ + ); +} + +test "zig fmt: C main" { + try testCanonical( + \\fn main(argc: c_int, argv: **u8) c_int { + \\ const a = b; + \\} + \\ + ); +} + +test "zig fmt: return" { + try testCanonical( + \\fn foo(argc: c_int, argv: **u8) c_int { + \\ return 0; + \\} + \\ + \\fn bar() void { + \\ return; + \\} + \\ + ); +} + +test "zig fmt: pointer attributes" { + try testCanonical( + \\extern fn f1(s: *align(*u8) u8) c_int; + \\extern fn f2(s: **align(1) *const *volatile u8) c_int; + \\extern fn f3(s: *align(1) const *align(1) volatile *const volatile u8) c_int; + \\extern fn f4(s: *align(1) const volatile u8) c_int; + \\ + ); +} + +test "zig fmt: slice attributes" { + try testCanonical( + \\extern fn f1(s: *align(*u8) u8) c_int; + \\extern fn f2(s: **align(1) *const *volatile u8) c_int; + \\extern fn f3(s: *align(1) const *align(1) volatile *const volatile u8) c_int; + \\extern fn f4(s: *align(1) const volatile u8) c_int; + \\ + ); +} + +test "zig fmt: test declaration" { + try testCanonical( + \\test "test name" { + \\ const a = 1; + \\ var b = 1; + \\} + \\ + ); +} + +test "zig fmt: infix operators" { + try testCanonical( + \\test "infix operators" { + \\ var i = undefined; + \\ i = 2; + \\ i *= 2; + \\ i |= 2; + \\ i ^= 2; + \\ i <<= 2; + \\ i >>= 2; + \\ i &= 2; + \\ i *= 2; + \\ i *%= 2; + \\ i -= 2; + \\ i -%= 2; + \\ i += 2; + \\ i +%= 2; + \\ i /= 2; + \\ i %= 2; + \\ _ = i == i; + \\ _ = i != i; + \\ _ = i != i; + \\ _ = i.i; + \\ _ = i || i; + \\ _ = i!i; + \\ _ = i ** i; + \\ _ = i ++ i; + \\ _ = i orelse i; + \\ _ = i % i; + \\ _ = i / i; + \\ _ = i *% i; + \\ _ = i * i; + \\ _ = i -% i; + \\ _ = i - i; + \\ _ = i +% i; + \\ _ = i + i; + \\ _ = i << i; + \\ _ = i >> i; + \\ _ = i & i; + \\ _ = i ^ i; + \\ _ = i | i; + \\ _ = i >= i; + \\ _ = i <= i; + \\ _ = i > i; + \\ _ = i < i; + \\ _ = i and i; + \\ _ = i or i; + \\} + \\ + ); +} + +test "zig fmt: precedence" { + try testCanonical( + \\test "precedence" { + \\ a!b(); + \\ (a!b)(); + \\ !a!b; + \\ !(a!b); + \\ !a{}; + \\ !(a{}); + \\ a + b{}; + \\ (a + b){}; + \\ a << b + c; + \\ (a << b) + c; + \\ a & b << c; + \\ (a & b) << c; + \\ a ^ b & c; + \\ (a ^ b) & c; + \\ a | b ^ c; + \\ (a | b) ^ c; + \\ a == b | c; + \\ (a == b) | c; + \\ a and b == c; + \\ (a and b) == c; + \\ a or b and c; + \\ (a or b) and c; + \\ (a or b) and c; + \\} + \\ + ); +} + +test "zig fmt: prefix operators" { + try testCanonical( + \\test "prefix operators" { + \\ try return --%~!&0; + \\} + \\ + ); +} + +test "zig fmt: call expression" { + try testCanonical( + \\test "test calls" { + \\ a(); + \\ a(1); + \\ a(1, 2); + \\ a(1, 2) + a(1, 2); + \\} + \\ + ); +} + +test "zig fmt: var args" { + try testCanonical( + \\fn print(args: ...) void {} + \\ + ); +} + +test "zig fmt: var type" { + try testCanonical( + \\fn print(args: var) var {} + \\ + ); +} + +test "zig fmt: functions" { + try testCanonical( + \\extern fn puts(s: *const u8) c_int; + \\extern "c" fn puts(s: *const u8) c_int; + \\export fn puts(s: *const u8) c_int; + \\inline fn puts(s: *const u8) c_int; + \\noinline fn puts(s: *const u8) c_int; + \\pub extern fn puts(s: *const u8) c_int; + \\pub extern "c" fn puts(s: *const u8) c_int; + \\pub export fn puts(s: *const u8) c_int; + \\pub inline fn puts(s: *const u8) c_int; + \\pub noinline fn puts(s: *const u8) c_int; + \\pub extern fn puts(s: *const u8) align(2 + 2) c_int; + \\pub extern "c" fn puts(s: *const u8) align(2 + 2) c_int; + \\pub export fn puts(s: *const u8) align(2 + 2) c_int; + \\pub inline fn puts(s: *const u8) align(2 + 2) c_int; + \\pub noinline fn puts(s: *const u8) align(2 + 2) c_int; + \\ + ); +} + +test "zig fmt: multiline string" { + try testCanonical( + \\test "" { + \\ const s1 = + \\ \\one + \\ \\two) + \\ \\three + \\ ; + \\ const s2 = + \\ c\\one + \\ c\\two) + \\ c\\three + \\ ; + \\ const s3 = // hi + \\ \\one + \\ \\two) + \\ \\three + \\ ; + \\} + \\ + ); +} + +test "zig fmt: values" { + try testCanonical( + \\test "values" { + \\ 1; + \\ 1.0; + \\ "string"; + \\ c"cstring"; + \\ 'c'; + \\ true; + \\ false; + \\ null; + \\ undefined; + \\ anyerror; + \\ this; + \\ unreachable; + \\} + \\ + ); +} + +test "zig fmt: indexing" { + try testCanonical( + \\test "test index" { + \\ a[0]; + \\ a[0 + 5]; + \\ a[0..]; + \\ a[0..5]; + \\ a[a[0]]; + \\ a[a[0..]]; + \\ a[a[0..5]]; + \\ a[a[0]..]; + \\ a[a[0..5]..]; + \\ a[a[0]..a[0]]; + \\ a[a[0..5]..a[0]]; + \\ a[a[0..5]..a[0..5]]; + \\} + \\ + ); +} + +test "zig fmt: struct declaration" { + try testCanonical( + \\const S = struct { + \\ const Self = @This(); + \\ f1: u8, + \\ pub f3: u8, + \\ + \\ fn method(self: *Self) Self { + \\ return self.*; + \\ } + \\ + \\ f2: u8, + \\}; + \\ + \\const Ps = packed struct { + \\ a: u8, + \\ pub b: u8, + \\ + \\ c: u8, + \\}; + \\ + \\const Es = extern struct { + \\ a: u8, + \\ pub b: u8, + \\ + \\ c: u8, + \\}; + \\ + ); +} + +test "zig fmt: enum declaration" { + try testCanonical( + \\const E = enum { + \\ Ok, + \\ SomethingElse = 0, + \\}; + \\ + \\const E2 = enum(u8) { + \\ Ok, + \\ SomethingElse = 255, + \\ SomethingThird, + \\}; + \\ + \\const Ee = extern enum { + \\ Ok, + \\ SomethingElse, + \\ SomethingThird, + \\}; + \\ + \\const Ep = packed enum { + \\ Ok, + \\ SomethingElse, + \\ SomethingThird, + \\}; + \\ + ); +} + +test "zig fmt: union declaration" { + try testCanonical( + \\const U = union { + \\ Int: u8, + \\ Float: f32, + \\ None, + \\ Bool: bool, + \\}; + \\ + \\const Ue = union(enum) { + \\ Int: u8, + \\ Float: f32, + \\ None, + \\ Bool: bool, + \\}; + \\ + \\const E = enum { + \\ Int, + \\ Float, + \\ None, + \\ Bool, + \\}; + \\ + \\const Ue2 = union(E) { + \\ Int: u8, + \\ Float: f32, + \\ None, + \\ Bool: bool, + \\}; + \\ + \\const Eu = extern union { + \\ Int: u8, + \\ Float: f32, + \\ None, + \\ Bool: bool, + \\}; + \\ + ); +} + +test "zig fmt: arrays" { + try testCanonical( + \\test "test array" { + \\ const a: [2]u8 = [2]u8{ + \\ 1, + \\ 2, + \\ }; + \\ const a: [2]u8 = []u8{ + \\ 1, + \\ 2, + \\ }; + \\ const a: [0]u8 = []u8{}; + \\} + \\ + ); +} + +test "zig fmt: container initializers" { + try testCanonical( + \\const a0 = []u8{}; + \\const a1 = []u8{1}; + \\const a2 = []u8{ + \\ 1, + \\ 2, + \\ 3, + \\ 4, + \\}; + \\const s0 = S{}; + \\const s1 = S{ .a = 1 }; + \\const s2 = S{ + \\ .a = 1, + \\ .b = 2, + \\}; + \\ + ); +} + +test "zig fmt: catch" { + try testCanonical( + \\test "catch" { + \\ const a: anyerror!u8 = 0; + \\ _ = a catch return; + \\ _ = a catch |err| return; + \\} + \\ + ); +} + +test "zig fmt: blocks" { + try testCanonical( + \\test "blocks" { + \\ { + \\ const a = 0; + \\ const b = 0; + \\ } + \\ + \\ blk: { + \\ const a = 0; + \\ const b = 0; + \\ } + \\ + \\ const r = blk: { + \\ const a = 0; + \\ const b = 0; + \\ }; + \\} + \\ + ); +} + +test "zig fmt: switch" { + try testCanonical( + \\test "switch" { + \\ switch (0) { + \\ 0 => {}, + \\ 1 => unreachable, + \\ 2, 3 => {}, + \\ 4...7 => {}, + \\ 1 + 4 * 3 + 22 => {}, + \\ else => { + \\ const a = 1; + \\ const b = a; + \\ }, + \\ } + \\ + \\ const res = switch (0) { + \\ 0 => 0, + \\ 1 => 2, + \\ 1 => a = 4, + \\ else => 4, + \\ }; + \\ + \\ const Union = union(enum) { + \\ Int: i64, + \\ Float: f64, + \\ }; + \\ + \\ switch (u) { + \\ Union.Int => |int| {}, + \\ Union.Float => |*float| unreachable, + \\ } + \\} + \\ + ); +} + +test "zig fmt: while" { + try testCanonical( + \\test "while" { + \\ while (10 < 1) unreachable; + \\ + \\ while (10 < 1) unreachable else unreachable; + \\ + \\ while (10 < 1) { + \\ unreachable; + \\ } + \\ + \\ while (10 < 1) + \\ unreachable; + \\ + \\ var i: usize = 0; + \\ while (i < 10) : (i += 1) { + \\ continue; + \\ } + \\ + \\ i = 0; + \\ while (i < 10) : (i += 1) + \\ continue; + \\ + \\ i = 0; + \\ var j: usize = 0; + \\ while (i < 10) : ({ + \\ i += 1; + \\ j += 1; + \\ }) { + \\ continue; + \\ } + \\ + \\ var a: ?u8 = 2; + \\ while (a) |v| : (a = null) { + \\ continue; + \\ } + \\ + \\ while (a) |v| : (a = null) + \\ unreachable; + \\ + \\ label: while (10 < 0) { + \\ unreachable; + \\ } + \\ + \\ const res = while (0 < 10) { + \\ break 7; + \\ } else { + \\ unreachable; + \\ }; + \\ + \\ const res = while (0 < 10) + \\ break 7 + \\ else + \\ unreachable; + \\ + \\ var a: anyerror!u8 = 0; + \\ while (a) |v| { + \\ a = error.Err; + \\ } else |err| { + \\ i = 1; + \\ } + \\ + \\ comptime var k: usize = 0; + \\ inline while (i < 10) : (i += 1) + \\ j += 2; + \\} + \\ + ); +} + +test "zig fmt: for" { + try testCanonical( + \\test "for" { + \\ for (a) |v| { + \\ continue; + \\ } + \\ + \\ for (a) |v| continue; + \\ + \\ for (a) |v| continue else return; + \\ + \\ for (a) |v| { + \\ continue; + \\ } else return; + \\ + \\ for (a) |v| continue else { + \\ return; + \\ } + \\ + \\ for (a) |v| + \\ continue + \\ else + \\ return; + \\ + \\ for (a) |v| + \\ continue; + \\ + \\ for (a) |*v| + \\ continue; + \\ + \\ for (a) |v, i| { + \\ continue; + \\ } + \\ + \\ for (a) |v, i| + \\ continue; + \\ + \\ for (a) |b| switch (b) { + \\ c => {}, + \\ d => {}, + \\ }; + \\ + \\ for (a) |b| + \\ switch (b) { + \\ c => {}, + \\ d => {}, + \\ }; + \\ + \\ const res = for (a) |v, i| { + \\ break v; + \\ } else { + \\ unreachable; + \\ }; + \\ + \\ var num: usize = 0; + \\ inline for (a) |v, i| { + \\ num += v; + \\ num += i; + \\ } + \\} + \\ + ); + + try testTransform( + \\test "fix for" { + \\ for (a) |x| + \\ f(x) else continue; + \\} + \\ + , + \\test "fix for" { + \\ for (a) |x| + \\ f(x) + \\ else continue; + \\} + \\ + ); +} + +test "zig fmt: if" { + try testCanonical( + \\test "if" { + \\ if (10 < 0) { + \\ unreachable; + \\ } + \\ + \\ if (10 < 0) unreachable; + \\ + \\ if (10 < 0) { + \\ unreachable; + \\ } else { + \\ const a = 20; + \\ } + \\ + \\ if (10 < 0) { + \\ unreachable; + \\ } else if (5 < 0) { + \\ unreachable; + \\ } else { + \\ const a = 20; + \\ } + \\ + \\ const is_world_broken = if (10 < 0) true else false; + \\ const some_number = 1 + if (10 < 0) 2 else 3; + \\ + \\ const a: ?u8 = 10; + \\ const b: ?u8 = null; + \\ if (a) |v| { + \\ const some = v; + \\ } else if (b) |*v| { + \\ unreachable; + \\ } else { + \\ const some = 10; + \\ } + \\ + \\ const non_null_a = if (a) |v| v else 0; + \\ + \\ const a_err: anyerror!u8 = 0; + \\ if (a_err) |v| { + \\ const p = v; + \\ } else |err| { + \\ unreachable; + \\ } + \\} + \\ + ); +} + +test "zig fmt: defer" { + try testCanonical( + \\test "defer" { + \\ var i: usize = 0; + \\ defer i = 1; + \\ defer { + \\ i += 2; + \\ i *= i; + \\ } + \\ + \\ errdefer i += 3; + \\ errdefer { + \\ i += 2; + \\ i /= i; + \\ } + \\} + \\ + ); +} + +test "zig fmt: comptime" { + try testCanonical( + \\fn a() u8 { + \\ return 5; + \\} + \\ + \\fn b(comptime i: u8) u8 { + \\ return i; + \\} + \\ + \\const av = comptime a(); + \\const av2 = comptime blk: { + \\ var res = a(); + \\ res *= b(2); + \\ break :blk res; + \\}; + \\ + \\comptime { + \\ _ = a(); + \\} + \\ + \\test "comptime" { + \\ const av3 = comptime a(); + \\ const av4 = comptime blk: { + \\ var res = a(); + \\ res *= a(); + \\ break :blk res; + \\ }; + \\ + \\ comptime var i = 0; + \\ comptime { + \\ i = a(); + \\ i += b(i); + \\ } + \\} + \\ + ); +} + +test "zig fmt: fn type" { + try testCanonical( + \\fn a(i: u8) u8 { + \\ return i + 1; + \\} + \\ + \\const a: fn (u8) u8 = undefined; + \\const b: extern fn (u8) u8 = undefined; + \\const c: nakedcc fn (u8) u8 = undefined; + \\const ap: fn (u8) u8 = a; + \\ + ); +} + +test "zig fmt: inline asm" { + try testCanonical( + \\pub fn syscall1(number: usize, arg1: usize) usize { + \\ return asm volatile ("syscall" + \\ : [ret] "={rax}" (-> usize) + \\ : [number] "{rax}" (number), + \\ [arg1] "{rdi}" (arg1) + \\ : "rcx", "r11" + \\ ); + \\} + \\ + ); +} + +test "zig fmt: async functions" { + try testCanonical( + \\async fn simpleAsyncFn() void { + \\ const a = async a.b(); + \\ x += 1; + \\ suspend; + \\ x += 1; + \\ suspend; + \\ const p: anyframe->void = async simpleAsyncFn() catch unreachable; + \\ await p; + \\} + \\ + \\test "suspend, resume, await" { + \\ const p: anyframe = async testAsyncSeq(); + \\ resume p; + \\ await p; + \\} + \\ + ); +} + +test "zig fmt: noasync" { + try testCanonical( + \\const a = noasync foo(); + \\ + ); +} + +test "zig fmt: Block after if" { + try testCanonical( + \\test "Block after if" { + \\ if (true) { + \\ const a = 0; + \\ } + \\ + \\ { + \\ const a = 0; + \\ } + \\} + \\ + ); +} + +test "zig fmt: use" { + try testCanonical( + \\usingnamespace @import("std"); + \\pub usingnamespace @import("std"); + \\ + ); +} + +test "zig fmt: string identifier" { + try testCanonical( + \\const @"a b" = @"c d".@"e f"; + \\fn @"g h"() void {} + \\ + ); +} + +test "zig fmt: error return" { + try testCanonical( + \\fn err() anyerror { + \\ call(); + \\ return error.InvalidArgs; + \\} + \\ + ); +} + +test "zig fmt: comptime block in container" { + try testCanonical( + \\pub fn container() type { + \\ return struct { + \\ comptime { + \\ if (false) { + \\ unreachable; + \\ } + \\ } + \\ }; + \\} + \\ + ); +} + +test "zig fmt: inline asm parameter alignment" { + try testCanonical( + \\pub fn main() void { + \\ asm volatile ( + \\ \\ foo + \\ \\ bar + \\ ); + \\ asm volatile ( + \\ \\ foo + \\ \\ bar + \\ : [_] "" (-> usize), + \\ [_] "" (-> usize) + \\ ); + \\ asm volatile ( + \\ \\ foo + \\ \\ bar + \\ : + \\ : [_] "" (0), + \\ [_] "" (0) + \\ ); + \\ asm volatile ( + \\ \\ foo + \\ \\ bar + \\ : + \\ : + \\ : "", "" + \\ ); + \\ asm volatile ( + \\ \\ foo + \\ \\ bar + \\ : [_] "" (-> usize), + \\ [_] "" (-> usize) + \\ : [_] "" (0), + \\ [_] "" (0) + \\ : "", "" + \\ ); + \\} + \\ + ); +} + +test "zig fmt: multiline string in array" { + try testCanonical( + \\const Foo = [][]const u8{ + \\ \\aaa + \\, + \\ \\bbb + \\}; + \\ + \\fn bar() void { + \\ const Foo = [][]const u8{ + \\ \\aaa + \\ , + \\ \\bbb + \\ }; + \\ const Bar = [][]const u8{ // comment here + \\ \\aaa + \\ \\ + \\ , // and another comment can go here + \\ \\bbb + \\ }; + \\} + \\ + ); +} + +test "zig fmt: if type expr" { + try testCanonical( + \\const mycond = true; + \\pub fn foo() if (mycond) i32 else void { + \\ if (mycond) { + \\ return 42; + \\ } + \\} + \\ + ); +} +test "zig fmt: file ends with struct field" { + try testTransform( + \\a: bool + , + \\a: bool, + \\ + ); +} + +test "zig fmt: comment after empty comment" { + try testTransform( + \\const x = true; // + \\// + \\// + \\//a + \\ + , + \\const x = true; + \\//a + \\ + ); +} + +test "zig fmt: line comment in array" { + try testTransform( + \\test "a" { + \\ var arr = [_]u32{ + \\ 0 + \\ // 1, + \\ // 2, + \\ }; + \\} + \\ + , + \\test "a" { + \\ var arr = [_]u32{ + \\ 0, // 1, + \\ // 2, + \\ }; + \\} + \\ + ); + try testCanonical( + \\test "a" { + \\ var arr = [_]u32{ + \\ 0, + \\ // 1, + \\ // 2, + \\ }; + \\} + \\ + ); +} + +test "zig fmt: comment after params" { + try testTransform( + \\fn a( + \\ b: u32 + \\ // c: u32, + \\ // d: u32, + \\) void {} + \\ + , + \\fn a( + \\ b: u32, // c: u32, + \\ // d: u32, + \\) void {} + \\ + ); + try testCanonical( + \\fn a( + \\ b: u32, + \\ // c: u32, + \\ // d: u32, + \\) void {} + \\ + ); +} + +test "zig fmt: comment in array initializer/access" { + try testCanonical( + \\test "a" { + \\ var a = x{ //aa + \\ //bb + \\ }; + \\ var a = []x{ //aa + \\ //bb + \\ }; + \\ var b = [ //aa + \\ _ + \\ ]x{ //aa + \\ //bb + \\ 9, + \\ }; + \\ var c = b[ //aa + \\ 0 + \\ ]; + \\ var d = [_ + \\ //aa + \\ ]x{ //aa + \\ //bb + \\ 9, + \\ }; + \\ var e = d[0 + \\ //aa + \\ ]; + \\} + \\ + ); +} + +test "zig fmt: comments at several places in struct init" { + try testTransform( + \\var bar = Bar{ + \\ .x = 10, // test + \\ .y = "test" + \\ // test + \\}; + \\ + , + \\var bar = Bar{ + \\ .x = 10, // test + \\ .y = "test", // test + \\}; + \\ + ); + + try testCanonical( + \\var bar = Bar{ // test + \\ .x = 10, // test + \\ .y = "test", + \\ // test + \\}; + \\ + ); +} + +const std = @import("std"); +const mem = std.mem; +const warn = std.debug.warn; +const io = std.io; +const maxInt = std.math.maxInt; + +var fixed_buffer_mem: [100 * 1024]u8 = undefined; + +fn testParse(source: []const u8, allocator: *mem.Allocator, anything_changed: *bool) ![]u8 { + var stderr_file = try io.getStdErr(); + var stderr = &stderr_file.outStream().stream; + + const tree = try std.zig.parse(allocator, source); + defer tree.deinit(); + + var error_it = tree.errors.iterator(0); + while (error_it.next()) |parse_error| { + const token = tree.tokens.at(parse_error.loc()); + const loc = tree.tokenLocation(0, parse_error.loc()); + try stderr.print("(memory buffer):{}:{}: error: ", loc.line + 1, loc.column + 1); + try tree.renderError(parse_error, stderr); + try stderr.print("\n{}\n", source[loc.line_start..loc.line_end]); + { + var i: usize = 0; + while (i < loc.column) : (i += 1) { + try stderr.write(" "); + } + } + { + const caret_count = token.end - token.start; + var i: usize = 0; + while (i < caret_count) : (i += 1) { + try stderr.write("~"); + } + } + try stderr.write("\n"); + } + if (tree.errors.len != 0) { + return error.ParseError; + } + + var buffer = try std.Buffer.initSize(allocator, 0); + errdefer buffer.deinit(); + + var buffer_out_stream = io.BufferOutStream.init(&buffer); + anything_changed.* = try std.zig.render(allocator, &buffer_out_stream.stream, tree); + return buffer.toOwnedSlice(); +} + +fn testTransform(source: []const u8, expected_source: []const u8) !void { + const needed_alloc_count = x: { + // Try it once with unlimited memory, make sure it works + var fixed_allocator = std.heap.FixedBufferAllocator.init(fixed_buffer_mem[0..]); + var failing_allocator = std.debug.FailingAllocator.init(&fixed_allocator.allocator, maxInt(usize)); + var anything_changed: bool = undefined; + const result_source = try testParse(source, &failing_allocator.allocator, &anything_changed); + if (!mem.eql(u8, result_source, expected_source)) { + warn("\n====== expected this output: =========\n"); + warn("{}", expected_source); + warn("\n======== instead found this: =========\n"); + warn("{}", result_source); + warn("\n======================================\n"); + return error.TestFailed; + } + const changes_expected = source.ptr != expected_source.ptr; + if (anything_changed != changes_expected) { + warn("std.zig.render returned {} instead of {}\n", anything_changed, changes_expected); + return error.TestFailed; + } + std.testing.expect(anything_changed == changes_expected); + failing_allocator.allocator.free(result_source); + break :x failing_allocator.index; + }; + + var fail_index: usize = 0; + while (fail_index < needed_alloc_count) : (fail_index += 1) { + var fixed_allocator = std.heap.FixedBufferAllocator.init(fixed_buffer_mem[0..]); + var failing_allocator = std.debug.FailingAllocator.init(&fixed_allocator.allocator, fail_index); + var anything_changed: bool = undefined; + if (testParse(source, &failing_allocator.allocator, &anything_changed)) |_| { + return error.NondeterministicMemoryUsage; + } else |err| switch (err) { + error.OutOfMemory => { + if (failing_allocator.allocated_bytes != failing_allocator.freed_bytes) { + warn( + "\nfail_index: {}/{}\nallocated bytes: {}\nfreed bytes: {}\nallocations: {}\ndeallocations: {}\n", + fail_index, + needed_alloc_count, + failing_allocator.allocated_bytes, + failing_allocator.freed_bytes, + failing_allocator.allocations, + failing_allocator.deallocations, + ); + return error.MemoryLeakDetected; + } + }, + error.ParseError => @panic("test failed"), + else => @panic("test failed"), + } + } +} + +fn testCanonical(source: []const u8) !void { + return testTransform(source, source); +} diff --git a/lib/std/zig/perf_test.zig b/lib/std/zig/perf_test.zig new file mode 100644 index 0000000000..e0723d8519 --- /dev/null +++ b/lib/std/zig/perf_test.zig @@ -0,0 +1,36 @@ +const std = @import("std"); +const mem = std.mem; +const warn = std.debug.warn; +const Tokenizer = std.zig.Tokenizer; +const Parser = std.zig.Parser; +const io = std.io; + +const source = @embedFile("../os.zig"); +var fixed_buffer_mem: [10 * 1024 * 1024]u8 = undefined; + +pub fn main() !void { + var i: usize = 0; + var timer = try std.time.Timer.start(); + const start = timer.lap(); + const iterations = 100; + var memory_used: usize = 0; + while (i < iterations) : (i += 1) { + memory_used += testOnce(); + } + const end = timer.read(); + memory_used /= iterations; + const elapsed_s = @intToFloat(f64, end - start) / std.time.ns_per_s; + const bytes_per_sec = @intToFloat(f64, source.len * iterations) / elapsed_s; + const mb_per_sec = bytes_per_sec / (1024 * 1024); + + var stdout_file = try std.io.getStdOut(); + const stdout = &stdout_file.outStream().stream; + try stdout.print("{:.3} MiB/s, {} KiB used \n", mb_per_sec, memory_used / 1024); +} + +fn testOnce() usize { + var fixed_buf_alloc = std.heap.FixedBufferAllocator.init(fixed_buffer_mem[0..]); + var allocator = &fixed_buf_alloc.allocator; + _ = std.zig.parse(allocator, source) catch @panic("parse failure"); + return fixed_buf_alloc.end_index; +} diff --git a/lib/std/zig/render.zig b/lib/std/zig/render.zig new file mode 100644 index 0000000000..6268a056f5 --- /dev/null +++ b/lib/std/zig/render.zig @@ -0,0 +1,2226 @@ +const std = @import("../std.zig"); +const builtin = @import("builtin"); +const assert = std.debug.assert; +const mem = std.mem; +const ast = std.zig.ast; +const Token = std.zig.Token; + +const indent_delta = 4; + +pub const Error = error{ + /// Ran out of memory allocating call stack frames to complete rendering. + OutOfMemory, +}; + +/// Returns whether anything changed +pub fn render(allocator: *mem.Allocator, stream: var, tree: *ast.Tree) (@typeOf(stream).Child.Error || Error)!bool { + comptime assert(@typeId(@typeOf(stream)) == builtin.TypeId.Pointer); + + var anything_changed: bool = false; + + // make a passthrough stream that checks whether something changed + const MyStream = struct { + const MyStream = @This(); + const StreamError = @typeOf(stream).Child.Error; + const Stream = std.io.OutStream(StreamError); + + anything_changed_ptr: *bool, + child_stream: @typeOf(stream), + stream: Stream, + source_index: usize, + source: []const u8, + + fn write(iface_stream: *Stream, bytes: []const u8) StreamError!void { + const self = @fieldParentPtr(MyStream, "stream", iface_stream); + + if (!self.anything_changed_ptr.*) { + const end = self.source_index + bytes.len; + if (end > self.source.len) { + self.anything_changed_ptr.* = true; + } else { + const src_slice = self.source[self.source_index..end]; + self.source_index += bytes.len; + if (!mem.eql(u8, bytes, src_slice)) { + self.anything_changed_ptr.* = true; + } + } + } + + try self.child_stream.write(bytes); + } + }; + var my_stream = MyStream{ + .stream = MyStream.Stream{ .writeFn = MyStream.write }, + .child_stream = stream, + .anything_changed_ptr = &anything_changed, + .source_index = 0, + .source = tree.source, + }; + + try renderRoot(allocator, &my_stream.stream, tree); + + if (!anything_changed and my_stream.source_index != my_stream.source.len) { + anything_changed = true; + } + + return anything_changed; +} + +fn renderRoot( + allocator: *mem.Allocator, + stream: var, + tree: *ast.Tree, +) (@typeOf(stream).Child.Error || Error)!void { + var tok_it = tree.tokens.iterator(0); + + // render all the line comments at the beginning of the file + while (tok_it.next()) |token| { + if (token.id != Token.Id.LineComment) break; + try stream.print("{}\n", mem.trimRight(u8, tree.tokenSlicePtr(token), " ")); + if (tok_it.peek()) |next_token| { + const loc = tree.tokenLocationPtr(token.end, next_token); + if (loc.line >= 2) { + try stream.writeByte('\n'); + } + } + } + + var start_col: usize = 0; + var it = tree.root_node.decls.iterator(0); + while (true) { + var decl = (it.next() orelse return).*; + + // This loop does the following: + // + // - Iterates through line/doc comment tokens that precedes the current + // decl. + // - Figures out the first token index (`copy_start_token_index`) which + // hasn't been copied to the output stream yet. + // - Detects `zig fmt: (off|on)` in the line comment tokens, and + // determines whether the current decl should be reformatted or not. + // + var token_index = decl.firstToken(); + var fmt_active = true; + var found_fmt_directive = false; + + var copy_start_token_index = token_index; + + while (token_index != 0) { + token_index -= 1; + const token = tree.tokens.at(token_index); + switch (token.id) { + Token.Id.LineComment => {}, + Token.Id.DocComment => { + copy_start_token_index = token_index; + continue; + }, + else => break, + } + + if (mem.eql(u8, mem.trim(u8, tree.tokenSlicePtr(token)[2..], " "), "zig fmt: off")) { + if (!found_fmt_directive) { + fmt_active = false; + found_fmt_directive = true; + } + } else if (mem.eql(u8, mem.trim(u8, tree.tokenSlicePtr(token)[2..], " "), "zig fmt: on")) { + if (!found_fmt_directive) { + fmt_active = true; + found_fmt_directive = true; + } + } + } + + if (!fmt_active) { + // Reformatting is disabled for the current decl and possibly some + // more decls that follow. + // Find the next `decl` for which reformatting is re-enabled. + token_index = decl.firstToken(); + + while (!fmt_active) { + decl = (it.next() orelse { + // If there's no next reformatted `decl`, just copy the + // remaining input tokens and bail out. + const start = tree.tokens.at(copy_start_token_index).start; + try copyFixingWhitespace(stream, tree.source[start..]); + return; + }).*; + var decl_first_token_index = decl.firstToken(); + + while (token_index < decl_first_token_index) : (token_index += 1) { + const token = tree.tokens.at(token_index); + switch (token.id) { + Token.Id.LineComment => {}, + Token.Id.Eof => unreachable, + else => continue, + } + if (mem.eql(u8, mem.trim(u8, tree.tokenSlicePtr(token)[2..], " "), "zig fmt: on")) { + fmt_active = true; + } else if (mem.eql(u8, mem.trim(u8, tree.tokenSlicePtr(token)[2..], " "), "zig fmt: off")) { + fmt_active = false; + } + } + } + + // Found the next `decl` for which reformatting is enabled. Copy + // the input tokens before the `decl` that haven't been copied yet. + var copy_end_token_index = decl.firstToken(); + token_index = copy_end_token_index; + while (token_index != 0) { + token_index -= 1; + const token = tree.tokens.at(token_index); + switch (token.id) { + Token.Id.LineComment => {}, + Token.Id.DocComment => { + copy_end_token_index = token_index; + continue; + }, + else => break, + } + } + + const start = tree.tokens.at(copy_start_token_index).start; + const end = tree.tokens.at(copy_end_token_index).start; + try copyFixingWhitespace(stream, tree.source[start..end]); + } + + try renderTopLevelDecl(allocator, stream, tree, 0, &start_col, decl); + if (it.peek()) |next_decl| { + try renderExtraNewline(tree, stream, &start_col, next_decl.*); + } + } +} + +fn renderExtraNewline(tree: *ast.Tree, stream: var, start_col: *usize, node: *ast.Node) @typeOf(stream).Child.Error!void { + const first_token = node.firstToken(); + var prev_token = first_token; + while (tree.tokens.at(prev_token - 1).id == Token.Id.DocComment) { + prev_token -= 1; + } + const prev_token_end = tree.tokens.at(prev_token - 1).end; + const loc = tree.tokenLocation(prev_token_end, first_token); + if (loc.line >= 2) { + try stream.writeByte('\n'); + start_col.* = 0; + } +} + +fn renderTopLevelDecl(allocator: *mem.Allocator, stream: var, tree: *ast.Tree, indent: usize, start_col: *usize, decl: *ast.Node) (@typeOf(stream).Child.Error || Error)!void { + switch (decl.id) { + ast.Node.Id.FnProto => { + const fn_proto = @fieldParentPtr(ast.Node.FnProto, "base", decl); + + try renderDocComments(tree, stream, fn_proto, indent, start_col); + + if (fn_proto.body_node) |body_node| { + try renderExpression(allocator, stream, tree, indent, start_col, decl, Space.Space); + try renderExpression(allocator, stream, tree, indent, start_col, body_node, Space.Newline); + } else { + try renderExpression(allocator, stream, tree, indent, start_col, decl, Space.None); + try renderToken(tree, stream, tree.nextToken(decl.lastToken()), indent, start_col, Space.Newline); + } + }, + + ast.Node.Id.Use => { + const use_decl = @fieldParentPtr(ast.Node.Use, "base", decl); + + if (use_decl.visib_token) |visib_token| { + try renderToken(tree, stream, visib_token, indent, start_col, Space.Space); // pub + } + // TODO after depracating use, go back to this: + //try renderToken(tree, stream, use_decl.use_token, indent, start_col, Space.Space); // usingnamespace + try stream.write("usingnamespace "); + try renderExpression(allocator, stream, tree, indent, start_col, use_decl.expr, Space.None); + try renderToken(tree, stream, use_decl.semicolon_token, indent, start_col, Space.Newline); // ; + }, + + ast.Node.Id.VarDecl => { + const var_decl = @fieldParentPtr(ast.Node.VarDecl, "base", decl); + + try renderDocComments(tree, stream, var_decl, indent, start_col); + try renderVarDecl(allocator, stream, tree, indent, start_col, var_decl); + }, + + ast.Node.Id.TestDecl => { + const test_decl = @fieldParentPtr(ast.Node.TestDecl, "base", decl); + + try renderDocComments(tree, stream, test_decl, indent, start_col); + try renderToken(tree, stream, test_decl.test_token, indent, start_col, Space.Space); + try renderExpression(allocator, stream, tree, indent, start_col, test_decl.name, Space.Space); + try renderExpression(allocator, stream, tree, indent, start_col, test_decl.body_node, Space.Newline); + }, + + ast.Node.Id.ContainerField => { + const field = @fieldParentPtr(ast.Node.ContainerField, "base", decl); + + try renderDocComments(tree, stream, field, indent, start_col); + + if (field.visib_token) |visib_token| { + try renderToken(tree, stream, visib_token, indent, start_col, Space.Space); // pub + } + + if (field.type_expr == null and field.value_expr == null) { + return renderToken(tree, stream, field.name_token, indent, start_col, Space.Comma); // name, + } else if (field.type_expr != null and field.value_expr == null) { + try renderToken(tree, stream, field.name_token, indent, start_col, Space.None); // name + try renderToken(tree, stream, tree.nextToken(field.name_token), indent, start_col, Space.Space); // : + + if (field.align_expr) |align_value_expr| { + try renderExpression(allocator, stream, tree, indent, start_col, field.type_expr.?, Space.Space); // type + const lparen_token = tree.prevToken(align_value_expr.firstToken()); + const align_kw = tree.prevToken(lparen_token); + const rparen_token = tree.nextToken(align_value_expr.lastToken()); + try renderToken(tree, stream, align_kw, indent, start_col, Space.None); // align + try renderToken(tree, stream, lparen_token, indent, start_col, Space.None); // ( + try renderExpression(allocator, stream, tree, indent, start_col, align_value_expr, Space.None); // alignment + try renderToken(tree, stream, rparen_token, indent, start_col, Space.Comma); // ) + } else { + try renderExpression(allocator, stream, tree, indent, start_col, field.type_expr.?, Space.Comma); // type, + } + } else if (field.type_expr == null and field.value_expr != null) { + try renderToken(tree, stream, field.name_token, indent, start_col, Space.Space); // name + try renderToken(tree, stream, tree.nextToken(field.name_token), indent, start_col, Space.Space); // = + return renderExpression(allocator, stream, tree, indent, start_col, field.value_expr.?, Space.Comma); // value + } else { + try renderToken(tree, stream, field.name_token, indent, start_col, Space.None); // name + try renderToken(tree, stream, tree.nextToken(field.name_token), indent, start_col, Space.Space); // : + try renderExpression(allocator, stream, tree, indent, start_col, field.type_expr.?, Space.Space); // type + try renderToken(tree, stream, tree.nextToken(field.type_expr.?.lastToken()), indent, start_col, Space.Space); // = + return renderExpression(allocator, stream, tree, indent, start_col, field.value_expr.?, Space.Comma); // value, + } + }, + + ast.Node.Id.Comptime => { + assert(!decl.requireSemiColon()); + try renderExpression(allocator, stream, tree, indent, start_col, decl, Space.Newline); + }, + else => unreachable, + } +} + +fn renderExpression( + allocator: *mem.Allocator, + stream: var, + tree: *ast.Tree, + indent: usize, + start_col: *usize, + base: *ast.Node, + space: Space, +) (@typeOf(stream).Child.Error || Error)!void { + switch (base.id) { + ast.Node.Id.Identifier => { + const identifier = @fieldParentPtr(ast.Node.Identifier, "base", base); + return renderToken(tree, stream, identifier.token, indent, start_col, space); + }, + ast.Node.Id.Block => { + const block = @fieldParentPtr(ast.Node.Block, "base", base); + + if (block.label) |label| { + try renderToken(tree, stream, label, indent, start_col, Space.None); + try renderToken(tree, stream, tree.nextToken(label), indent, start_col, Space.Space); + } + + if (block.statements.len == 0) { + try renderToken(tree, stream, block.lbrace, indent + indent_delta, start_col, Space.None); + return renderToken(tree, stream, block.rbrace, indent, start_col, space); + } else { + const block_indent = indent + indent_delta; + try renderToken(tree, stream, block.lbrace, block_indent, start_col, Space.Newline); + + var it = block.statements.iterator(0); + while (it.next()) |statement| { + try stream.writeByteNTimes(' ', block_indent); + try renderStatement(allocator, stream, tree, block_indent, start_col, statement.*); + + if (it.peek()) |next_statement| { + try renderExtraNewline(tree, stream, start_col, next_statement.*); + } + } + + try stream.writeByteNTimes(' ', indent); + return renderToken(tree, stream, block.rbrace, indent, start_col, space); + } + }, + ast.Node.Id.Defer => { + const defer_node = @fieldParentPtr(ast.Node.Defer, "base", base); + + try renderToken(tree, stream, defer_node.defer_token, indent, start_col, Space.Space); + return renderExpression(allocator, stream, tree, indent, start_col, defer_node.expr, space); + }, + ast.Node.Id.Comptime => { + const comptime_node = @fieldParentPtr(ast.Node.Comptime, "base", base); + + try renderToken(tree, stream, comptime_node.comptime_token, indent, start_col, Space.Space); + return renderExpression(allocator, stream, tree, indent, start_col, comptime_node.expr, space); + }, + + ast.Node.Id.Suspend => { + const suspend_node = @fieldParentPtr(ast.Node.Suspend, "base", base); + + if (suspend_node.body) |body| { + try renderToken(tree, stream, suspend_node.suspend_token, indent, start_col, Space.Space); + return renderExpression(allocator, stream, tree, indent, start_col, body, space); + } else { + return renderToken(tree, stream, suspend_node.suspend_token, indent, start_col, space); + } + }, + + ast.Node.Id.InfixOp => { + const infix_op_node = @fieldParentPtr(ast.Node.InfixOp, "base", base); + + const op_space = switch (infix_op_node.op) { + ast.Node.InfixOp.Op.Period, ast.Node.InfixOp.Op.ErrorUnion, ast.Node.InfixOp.Op.Range => Space.None, + else => Space.Space, + }; + try renderExpression(allocator, stream, tree, indent, start_col, infix_op_node.lhs, op_space); + + const after_op_space = blk: { + const loc = tree.tokenLocation(tree.tokens.at(infix_op_node.op_token).end, tree.nextToken(infix_op_node.op_token)); + break :blk if (loc.line == 0) op_space else Space.Newline; + }; + + try renderToken(tree, stream, infix_op_node.op_token, indent, start_col, after_op_space); + if (after_op_space == Space.Newline and + tree.tokens.at(tree.nextToken(infix_op_node.op_token)).id != Token.Id.MultilineStringLiteralLine) + { + try stream.writeByteNTimes(' ', indent + indent_delta); + start_col.* = indent + indent_delta; + } + + switch (infix_op_node.op) { + ast.Node.InfixOp.Op.Catch => |maybe_payload| if (maybe_payload) |payload| { + try renderExpression(allocator, stream, tree, indent, start_col, payload, Space.Space); + }, + else => {}, + } + + return renderExpression(allocator, stream, tree, indent, start_col, infix_op_node.rhs, space); + }, + + ast.Node.Id.PrefixOp => { + const prefix_op_node = @fieldParentPtr(ast.Node.PrefixOp, "base", base); + + switch (prefix_op_node.op) { + ast.Node.PrefixOp.Op.PtrType => |ptr_info| { + const star_offset = switch (tree.tokens.at(prefix_op_node.op_token).id) { + Token.Id.AsteriskAsterisk => usize(1), + else => usize(0), + }; + try renderTokenOffset(tree, stream, prefix_op_node.op_token, indent, start_col, Space.None, star_offset); // * + if (ptr_info.allowzero_token) |allowzero_token| { + try renderToken(tree, stream, allowzero_token, indent, start_col, Space.Space); // allowzero + } + if (ptr_info.align_info) |align_info| { + const lparen_token = tree.prevToken(align_info.node.firstToken()); + const align_token = tree.prevToken(lparen_token); + + try renderToken(tree, stream, align_token, indent, start_col, Space.None); // align + try renderToken(tree, stream, lparen_token, indent, start_col, Space.None); // ( + + try renderExpression(allocator, stream, tree, indent, start_col, align_info.node, Space.None); + + if (align_info.bit_range) |bit_range| { + const colon1 = tree.prevToken(bit_range.start.firstToken()); + const colon2 = tree.prevToken(bit_range.end.firstToken()); + + try renderToken(tree, stream, colon1, indent, start_col, Space.None); // : + try renderExpression(allocator, stream, tree, indent, start_col, bit_range.start, Space.None); + try renderToken(tree, stream, colon2, indent, start_col, Space.None); // : + try renderExpression(allocator, stream, tree, indent, start_col, bit_range.end, Space.None); + + const rparen_token = tree.nextToken(bit_range.end.lastToken()); + try renderToken(tree, stream, rparen_token, indent, start_col, Space.Space); // ) + } else { + const rparen_token = tree.nextToken(align_info.node.lastToken()); + try renderToken(tree, stream, rparen_token, indent, start_col, Space.Space); // ) + } + } + if (ptr_info.const_token) |const_token| { + try renderToken(tree, stream, const_token, indent, start_col, Space.Space); // const + } + if (ptr_info.volatile_token) |volatile_token| { + try renderToken(tree, stream, volatile_token, indent, start_col, Space.Space); // volatile + } + }, + + ast.Node.PrefixOp.Op.SliceType => |ptr_info| { + try renderToken(tree, stream, prefix_op_node.op_token, indent, start_col, Space.None); // [ + try renderToken(tree, stream, tree.nextToken(prefix_op_node.op_token), indent, start_col, Space.None); // ] + + if (ptr_info.allowzero_token) |allowzero_token| { + try renderToken(tree, stream, allowzero_token, indent, start_col, Space.Space); // allowzero + } + if (ptr_info.align_info) |align_info| { + const lparen_token = tree.prevToken(align_info.node.firstToken()); + const align_token = tree.prevToken(lparen_token); + + try renderToken(tree, stream, align_token, indent, start_col, Space.None); // align + try renderToken(tree, stream, lparen_token, indent, start_col, Space.None); // ( + + try renderExpression(allocator, stream, tree, indent, start_col, align_info.node, Space.None); + + if (align_info.bit_range) |bit_range| { + const colon1 = tree.prevToken(bit_range.start.firstToken()); + const colon2 = tree.prevToken(bit_range.end.firstToken()); + + try renderToken(tree, stream, colon1, indent, start_col, Space.None); // : + try renderExpression(allocator, stream, tree, indent, start_col, bit_range.start, Space.None); + try renderToken(tree, stream, colon2, indent, start_col, Space.None); // : + try renderExpression(allocator, stream, tree, indent, start_col, bit_range.end, Space.None); + + const rparen_token = tree.nextToken(bit_range.end.lastToken()); + try renderToken(tree, stream, rparen_token, indent, start_col, Space.Space); // ) + } else { + const rparen_token = tree.nextToken(align_info.node.lastToken()); + try renderToken(tree, stream, rparen_token, indent, start_col, Space.Space); // ) + } + } + if (ptr_info.const_token) |const_token| { + try renderToken(tree, stream, const_token, indent, start_col, Space.Space); + } + if (ptr_info.volatile_token) |volatile_token| { + try renderToken(tree, stream, volatile_token, indent, start_col, Space.Space); + } + }, + + ast.Node.PrefixOp.Op.ArrayType => |array_index| { + const lbracket = prefix_op_node.op_token; + const rbracket = tree.nextToken(array_index.lastToken()); + + try renderToken(tree, stream, lbracket, indent, start_col, Space.None); // [ + + const starts_with_comment = tree.tokens.at(lbracket + 1).id == .LineComment; + const ends_with_comment = tree.tokens.at(rbracket - 1).id == .LineComment; + const new_indent = if (ends_with_comment) indent + indent_delta else indent; + const new_space = if (ends_with_comment) Space.Newline else Space.None; + try renderExpression(allocator, stream, tree, new_indent, start_col, array_index, new_space); + if (starts_with_comment) { + try stream.writeByte('\n'); + } + if (ends_with_comment or starts_with_comment) { + try stream.writeByteNTimes(' ', indent); + } + try renderToken(tree, stream, rbracket, indent, start_col, Space.None); // ] + }, + ast.Node.PrefixOp.Op.BitNot, + ast.Node.PrefixOp.Op.BoolNot, + ast.Node.PrefixOp.Op.Negation, + ast.Node.PrefixOp.Op.NegationWrap, + ast.Node.PrefixOp.Op.OptionalType, + ast.Node.PrefixOp.Op.AddressOf, + => { + try renderToken(tree, stream, prefix_op_node.op_token, indent, start_col, Space.None); + }, + + ast.Node.PrefixOp.Op.Try, + ast.Node.PrefixOp.Op.Await, + ast.Node.PrefixOp.Op.Cancel, + ast.Node.PrefixOp.Op.Resume, + => { + try renderToken(tree, stream, prefix_op_node.op_token, indent, start_col, Space.Space); + }, + } + + return renderExpression(allocator, stream, tree, indent, start_col, prefix_op_node.rhs, space); + }, + + ast.Node.Id.SuffixOp => { + const suffix_op = @fieldParentPtr(ast.Node.SuffixOp, "base", base); + + switch (suffix_op.op) { + @TagType(ast.Node.SuffixOp.Op).Call => |*call_info| { + if (call_info.async_token) |async_token| { + try renderToken(tree, stream, async_token, indent, start_col, Space.Space); + } + + try renderExpression(allocator, stream, tree, indent, start_col, suffix_op.lhs, Space.None); + + const lparen = tree.nextToken(suffix_op.lhs.lastToken()); + + if (call_info.params.len == 0) { + try renderToken(tree, stream, lparen, indent, start_col, Space.None); + return renderToken(tree, stream, suffix_op.rtoken, indent, start_col, space); + } + + const src_has_trailing_comma = blk: { + const maybe_comma = tree.prevToken(suffix_op.rtoken); + break :blk tree.tokens.at(maybe_comma).id == Token.Id.Comma; + }; + + if (src_has_trailing_comma) { + const new_indent = indent + indent_delta; + try renderToken(tree, stream, lparen, new_indent, start_col, Space.Newline); + + var it = call_info.params.iterator(0); + while (true) { + const param_node = it.next().?; + + const param_node_new_indent = if (param_node.*.id == ast.Node.Id.MultilineStringLiteral) blk: { + break :blk indent; + } else blk: { + try stream.writeByteNTimes(' ', new_indent); + break :blk new_indent; + }; + + if (it.peek()) |next_node| { + try renderExpression(allocator, stream, tree, param_node_new_indent, start_col, param_node.*, Space.None); + const comma = tree.nextToken(param_node.*.lastToken()); + try renderToken(tree, stream, comma, new_indent, start_col, Space.Newline); // , + try renderExtraNewline(tree, stream, start_col, next_node.*); + } else { + try renderExpression(allocator, stream, tree, param_node_new_indent, start_col, param_node.*, Space.Comma); + try stream.writeByteNTimes(' ', indent); + return renderToken(tree, stream, suffix_op.rtoken, indent, start_col, space); + } + } + } + + try renderToken(tree, stream, lparen, indent, start_col, Space.None); // ( + + var it = call_info.params.iterator(0); + while (it.next()) |param_node| { + try renderExpression(allocator, stream, tree, indent, start_col, param_node.*, Space.None); + + if (it.peek() != null) { + const comma = tree.nextToken(param_node.*.lastToken()); + try renderToken(tree, stream, comma, indent, start_col, Space.Space); + } + } + return renderToken(tree, stream, suffix_op.rtoken, indent, start_col, space); + }, + + ast.Node.SuffixOp.Op.ArrayAccess => |index_expr| { + const lbracket = tree.prevToken(index_expr.firstToken()); + const rbracket = tree.nextToken(index_expr.lastToken()); + + try renderExpression(allocator, stream, tree, indent, start_col, suffix_op.lhs, Space.None); + try renderToken(tree, stream, lbracket, indent, start_col, Space.None); // [ + + const starts_with_comment = tree.tokens.at(lbracket + 1).id == .LineComment; + const ends_with_comment = tree.tokens.at(rbracket - 1).id == .LineComment; + const new_indent = if (ends_with_comment) indent + indent_delta else indent; + const new_space = if (ends_with_comment) Space.Newline else Space.None; + try renderExpression(allocator, stream, tree, new_indent, start_col, index_expr, new_space); + if (starts_with_comment) { + try stream.writeByte('\n'); + } + if (ends_with_comment or starts_with_comment) { + try stream.writeByteNTimes(' ', indent); + } + return renderToken(tree, stream, rbracket, indent, start_col, space); // ] + }, + + ast.Node.SuffixOp.Op.Deref, ast.Node.SuffixOp.Op.UnwrapOptional => { + try renderExpression(allocator, stream, tree, indent, start_col, suffix_op.lhs, Space.None); + try renderToken(tree, stream, tree.prevToken(suffix_op.rtoken), indent, start_col, Space.None); // . + return renderToken(tree, stream, suffix_op.rtoken, indent, start_col, space); // * or ? + }, + + @TagType(ast.Node.SuffixOp.Op).Slice => |range| { + try renderExpression(allocator, stream, tree, indent, start_col, suffix_op.lhs, Space.None); + + const lbracket = tree.prevToken(range.start.firstToken()); + const dotdot = tree.nextToken(range.start.lastToken()); + + const after_start_space_bool = nodeCausesSliceOpSpace(range.start) or + (if (range.end) |end| nodeCausesSliceOpSpace(end) else false); + const after_start_space = if (after_start_space_bool) Space.Space else Space.None; + const after_op_space = if (range.end != null) after_start_space else Space.None; + + try renderToken(tree, stream, lbracket, indent, start_col, Space.None); // [ + try renderExpression(allocator, stream, tree, indent, start_col, range.start, after_start_space); + try renderToken(tree, stream, dotdot, indent, start_col, after_op_space); // .. + if (range.end) |end| { + try renderExpression(allocator, stream, tree, indent, start_col, end, Space.None); + } + return renderToken(tree, stream, suffix_op.rtoken, indent, start_col, space); // ] + }, + + ast.Node.SuffixOp.Op.StructInitializer => |*field_inits| { + const lbrace = tree.nextToken(suffix_op.lhs.lastToken()); + + if (field_inits.len == 0) { + try renderExpression(allocator, stream, tree, indent, start_col, suffix_op.lhs, Space.None); + try renderToken(tree, stream, lbrace, indent + indent_delta, start_col, Space.None); + return renderToken(tree, stream, suffix_op.rtoken, indent, start_col, space); + } + + const src_has_trailing_comma = blk: { + const maybe_comma = tree.prevToken(suffix_op.rtoken); + break :blk tree.tokens.at(maybe_comma).id == Token.Id.Comma; + }; + + const src_same_line = blk: { + const loc = tree.tokenLocation(tree.tokens.at(lbrace).end, suffix_op.rtoken); + break :blk loc.line == 0; + }; + + const expr_outputs_one_line = blk: { + // render field expressions until a LF is found + var it = field_inits.iterator(0); + while (it.next()) |field_init| { + var find_stream = FindByteOutStream.init('\n'); + var dummy_col: usize = 0; + try renderExpression(allocator, &find_stream.stream, tree, 0, &dummy_col, field_init.*, Space.None); + if (find_stream.byte_found) break :blk false; + } + break :blk true; + }; + + if (field_inits.len == 1) blk: { + const field_init = field_inits.at(0).*.cast(ast.Node.FieldInitializer).?; + + if (field_init.expr.cast(ast.Node.SuffixOp)) |nested_suffix_op| { + if (nested_suffix_op.op == ast.Node.SuffixOp.Op.StructInitializer) { + break :blk; + } + } + + // if the expression outputs to multiline, make this struct multiline + if (!expr_outputs_one_line or src_has_trailing_comma) { + break :blk; + } + + try renderExpression(allocator, stream, tree, indent, start_col, suffix_op.lhs, Space.None); + try renderToken(tree, stream, lbrace, indent, start_col, Space.Space); + try renderExpression(allocator, stream, tree, indent, start_col, &field_init.base, Space.Space); + return renderToken(tree, stream, suffix_op.rtoken, indent, start_col, space); + } + + if (!src_has_trailing_comma and src_same_line and expr_outputs_one_line) { + // render all on one line, no trailing comma + try renderExpression(allocator, stream, tree, indent, start_col, suffix_op.lhs, Space.None); + try renderToken(tree, stream, lbrace, indent, start_col, Space.Space); + + var it = field_inits.iterator(0); + while (it.next()) |field_init| { + if (it.peek() != null) { + try renderExpression(allocator, stream, tree, indent, start_col, field_init.*, Space.None); + + const comma = tree.nextToken(field_init.*.lastToken()); + try renderToken(tree, stream, comma, indent, start_col, Space.Space); + } else { + try renderExpression(allocator, stream, tree, indent, start_col, field_init.*, Space.Space); + } + } + + return renderToken(tree, stream, suffix_op.rtoken, indent, start_col, space); + } + + const new_indent = indent + indent_delta; + + try renderExpression(allocator, stream, tree, new_indent, start_col, suffix_op.lhs, Space.None); + try renderToken(tree, stream, lbrace, new_indent, start_col, Space.Newline); + + var it = field_inits.iterator(0); + while (it.next()) |field_init| { + try stream.writeByteNTimes(' ', new_indent); + + if (it.peek()) |next_field_init| { + try renderExpression(allocator, stream, tree, new_indent, start_col, field_init.*, Space.None); + + const comma = tree.nextToken(field_init.*.lastToken()); + try renderToken(tree, stream, comma, new_indent, start_col, Space.Newline); + + try renderExtraNewline(tree, stream, start_col, next_field_init.*); + } else { + try renderExpression(allocator, stream, tree, new_indent, start_col, field_init.*, Space.Comma); + } + } + + try stream.writeByteNTimes(' ', indent); + return renderToken(tree, stream, suffix_op.rtoken, indent, start_col, space); + }, + + ast.Node.SuffixOp.Op.ArrayInitializer => |*exprs| { + const lbrace = tree.nextToken(suffix_op.lhs.lastToken()); + + if (exprs.len == 0) { + try renderExpression(allocator, stream, tree, indent, start_col, suffix_op.lhs, Space.None); + try renderToken(tree, stream, lbrace, indent, start_col, Space.None); + return renderToken(tree, stream, suffix_op.rtoken, indent, start_col, space); + } + if (exprs.len == 1 and tree.tokens.at(exprs.at(0).*.lastToken() + 1).id == .RBrace) { + const expr = exprs.at(0).*; + + try renderExpression(allocator, stream, tree, indent, start_col, suffix_op.lhs, Space.None); + try renderToken(tree, stream, lbrace, indent, start_col, Space.None); + try renderExpression(allocator, stream, tree, indent, start_col, expr, Space.None); + return renderToken(tree, stream, suffix_op.rtoken, indent, start_col, space); + } + + try renderExpression(allocator, stream, tree, indent, start_col, suffix_op.lhs, Space.None); + + // scan to find row size + const maybe_row_size: ?usize = blk: { + var count: usize = 1; + var it = exprs.iterator(0); + while (true) { + const expr = it.next().?.*; + if (it.peek()) |next_expr| { + const expr_last_token = expr.*.lastToken() + 1; + const loc = tree.tokenLocation(tree.tokens.at(expr_last_token).end, next_expr.*.firstToken()); + if (loc.line != 0) break :blk count; + count += 1; + } else { + const expr_last_token = expr.*.lastToken(); + const loc = tree.tokenLocation(tree.tokens.at(expr_last_token).end, suffix_op.rtoken); + if (loc.line == 0) { + // all on one line + const src_has_trailing_comma = trailblk: { + const maybe_comma = tree.prevToken(suffix_op.rtoken); + break :trailblk tree.tokens.at(maybe_comma).id == Token.Id.Comma; + }; + if (src_has_trailing_comma) { + break :blk 1; // force row size 1 + } else { + break :blk null; // no newlines + } + } + break :blk count; + } + } + }; + + if (maybe_row_size) |row_size| { + // A place to store the width of each expression and its column's maximum + var widths = try allocator.alloc(usize, exprs.len + row_size); + defer allocator.free(widths); + mem.set(usize, widths, 0); + + var expr_widths = widths[0 .. widths.len - row_size]; + var column_widths = widths[widths.len - row_size ..]; + + // Null stream for counting the printed length of each expression + var null_stream = std.io.NullOutStream.init(); + var counting_stream = std.io.CountingOutStream(std.io.NullOutStream.Error).init(&null_stream.stream); + + var it = exprs.iterator(0); + var i: usize = 0; + + while (it.next()) |expr| : (i += 1) { + counting_stream.bytes_written = 0; + var dummy_col: usize = 0; + try renderExpression(allocator, &counting_stream.stream, tree, indent, &dummy_col, expr.*, Space.None); + const width = @intCast(usize, counting_stream.bytes_written); + const col = i % row_size; + column_widths[col] = std.math.max(column_widths[col], width); + expr_widths[i] = width; + } + + var new_indent = indent + indent_delta; + + if (tree.tokens.at(tree.nextToken(lbrace)).id != Token.Id.MultilineStringLiteralLine) { + try renderToken(tree, stream, lbrace, new_indent, start_col, Space.Newline); + try stream.writeByteNTimes(' ', new_indent); + } else { + new_indent -= indent_delta; + try renderToken(tree, stream, lbrace, new_indent, start_col, Space.None); + } + + it.set(0); + i = 0; + var col: usize = 1; + while (it.next()) |expr| : (i += 1) { + if (it.peek()) |next_expr| { + try renderExpression(allocator, stream, tree, new_indent, start_col, expr.*, Space.None); + + const comma = tree.nextToken(expr.*.lastToken()); + + if (col != row_size) { + try renderToken(tree, stream, comma, new_indent, start_col, Space.Space); // , + + const padding = column_widths[i % row_size] - expr_widths[i]; + try stream.writeByteNTimes(' ', padding); + + col += 1; + continue; + } + col = 1; + + if (tree.tokens.at(tree.nextToken(comma)).id != Token.Id.MultilineStringLiteralLine) { + try renderToken(tree, stream, comma, new_indent, start_col, Space.Newline); // , + } else { + try renderToken(tree, stream, comma, new_indent, start_col, Space.None); // , + } + + try renderExtraNewline(tree, stream, start_col, next_expr.*); + if (next_expr.*.id != ast.Node.Id.MultilineStringLiteral) { + try stream.writeByteNTimes(' ', new_indent); + } + } else { + try renderExpression(allocator, stream, tree, new_indent, start_col, expr.*, Space.Comma); // , + } + } + const last_node = it.prev().?; + if (last_node.*.id != ast.Node.Id.MultilineStringLiteral) { + try stream.writeByteNTimes(' ', indent); + } + return renderToken(tree, stream, suffix_op.rtoken, indent, start_col, space); + } else { + try renderToken(tree, stream, lbrace, indent, start_col, Space.Space); + var it = exprs.iterator(0); + while (it.next()) |expr| { + if (it.peek()) |next_expr| { + try renderExpression(allocator, stream, tree, indent, start_col, expr.*, Space.None); + const comma = tree.nextToken(expr.*.lastToken()); + try renderToken(tree, stream, comma, indent, start_col, Space.Space); // , + } else { + try renderExpression(allocator, stream, tree, indent, start_col, expr.*, Space.Space); + } + } + + return renderToken(tree, stream, suffix_op.rtoken, indent, start_col, space); + } + }, + } + }, + + ast.Node.Id.ControlFlowExpression => { + const flow_expr = @fieldParentPtr(ast.Node.ControlFlowExpression, "base", base); + + switch (flow_expr.kind) { + ast.Node.ControlFlowExpression.Kind.Break => |maybe_label| { + if (maybe_label == null and flow_expr.rhs == null) { + return renderToken(tree, stream, flow_expr.ltoken, indent, start_col, space); // break + } + + try renderToken(tree, stream, flow_expr.ltoken, indent, start_col, Space.Space); // break + if (maybe_label) |label| { + const colon = tree.nextToken(flow_expr.ltoken); + try renderToken(tree, stream, colon, indent, start_col, Space.None); // : + + if (flow_expr.rhs == null) { + return renderExpression(allocator, stream, tree, indent, start_col, label, space); // label + } + try renderExpression(allocator, stream, tree, indent, start_col, label, Space.Space); // label + } + }, + ast.Node.ControlFlowExpression.Kind.Continue => |maybe_label| { + assert(flow_expr.rhs == null); + + if (maybe_label == null and flow_expr.rhs == null) { + return renderToken(tree, stream, flow_expr.ltoken, indent, start_col, space); // continue + } + + try renderToken(tree, stream, flow_expr.ltoken, indent, start_col, Space.Space); // continue + if (maybe_label) |label| { + const colon = tree.nextToken(flow_expr.ltoken); + try renderToken(tree, stream, colon, indent, start_col, Space.None); // : + + return renderExpression(allocator, stream, tree, indent, start_col, label, space); + } + }, + ast.Node.ControlFlowExpression.Kind.Return => { + if (flow_expr.rhs == null) { + return renderToken(tree, stream, flow_expr.ltoken, indent, start_col, space); + } + try renderToken(tree, stream, flow_expr.ltoken, indent, start_col, Space.Space); + }, + } + + return renderExpression(allocator, stream, tree, indent, start_col, flow_expr.rhs.?, space); + }, + + ast.Node.Id.Payload => { + const payload = @fieldParentPtr(ast.Node.Payload, "base", base); + + try renderToken(tree, stream, payload.lpipe, indent, start_col, Space.None); + try renderExpression(allocator, stream, tree, indent, start_col, payload.error_symbol, Space.None); + return renderToken(tree, stream, payload.rpipe, indent, start_col, space); + }, + + ast.Node.Id.PointerPayload => { + const payload = @fieldParentPtr(ast.Node.PointerPayload, "base", base); + + try renderToken(tree, stream, payload.lpipe, indent, start_col, Space.None); + if (payload.ptr_token) |ptr_token| { + try renderToken(tree, stream, ptr_token, indent, start_col, Space.None); + } + try renderExpression(allocator, stream, tree, indent, start_col, payload.value_symbol, Space.None); + return renderToken(tree, stream, payload.rpipe, indent, start_col, space); + }, + + ast.Node.Id.PointerIndexPayload => { + const payload = @fieldParentPtr(ast.Node.PointerIndexPayload, "base", base); + + try renderToken(tree, stream, payload.lpipe, indent, start_col, Space.None); + if (payload.ptr_token) |ptr_token| { + try renderToken(tree, stream, ptr_token, indent, start_col, Space.None); + } + try renderExpression(allocator, stream, tree, indent, start_col, payload.value_symbol, Space.None); + + if (payload.index_symbol) |index_symbol| { + const comma = tree.nextToken(payload.value_symbol.lastToken()); + + try renderToken(tree, stream, comma, indent, start_col, Space.Space); + try renderExpression(allocator, stream, tree, indent, start_col, index_symbol, Space.None); + } + + return renderToken(tree, stream, payload.rpipe, indent, start_col, space); + }, + + ast.Node.Id.GroupedExpression => { + const grouped_expr = @fieldParentPtr(ast.Node.GroupedExpression, "base", base); + + try renderToken(tree, stream, grouped_expr.lparen, indent, start_col, Space.None); + try renderExpression(allocator, stream, tree, indent, start_col, grouped_expr.expr, Space.None); + return renderToken(tree, stream, grouped_expr.rparen, indent, start_col, space); + }, + + ast.Node.Id.FieldInitializer => { + const field_init = @fieldParentPtr(ast.Node.FieldInitializer, "base", base); + + try renderToken(tree, stream, field_init.period_token, indent, start_col, Space.None); // . + try renderToken(tree, stream, field_init.name_token, indent, start_col, Space.Space); // name + try renderToken(tree, stream, tree.nextToken(field_init.name_token), indent, start_col, Space.Space); // = + return renderExpression(allocator, stream, tree, indent, start_col, field_init.expr, space); + }, + + ast.Node.Id.IntegerLiteral => { + const integer_literal = @fieldParentPtr(ast.Node.IntegerLiteral, "base", base); + return renderToken(tree, stream, integer_literal.token, indent, start_col, space); + }, + ast.Node.Id.FloatLiteral => { + const float_literal = @fieldParentPtr(ast.Node.FloatLiteral, "base", base); + return renderToken(tree, stream, float_literal.token, indent, start_col, space); + }, + ast.Node.Id.StringLiteral => { + const string_literal = @fieldParentPtr(ast.Node.StringLiteral, "base", base); + return renderToken(tree, stream, string_literal.token, indent, start_col, space); + }, + ast.Node.Id.CharLiteral => { + const char_literal = @fieldParentPtr(ast.Node.CharLiteral, "base", base); + return renderToken(tree, stream, char_literal.token, indent, start_col, space); + }, + ast.Node.Id.BoolLiteral => { + const bool_literal = @fieldParentPtr(ast.Node.CharLiteral, "base", base); + return renderToken(tree, stream, bool_literal.token, indent, start_col, space); + }, + ast.Node.Id.NullLiteral => { + const null_literal = @fieldParentPtr(ast.Node.NullLiteral, "base", base); + return renderToken(tree, stream, null_literal.token, indent, start_col, space); + }, + ast.Node.Id.Unreachable => { + const unreachable_node = @fieldParentPtr(ast.Node.Unreachable, "base", base); + return renderToken(tree, stream, unreachable_node.token, indent, start_col, space); + }, + ast.Node.Id.ErrorType => { + const error_type = @fieldParentPtr(ast.Node.ErrorType, "base", base); + return renderToken(tree, stream, error_type.token, indent, start_col, space); + }, + ast.Node.Id.VarType => { + const var_type = @fieldParentPtr(ast.Node.VarType, "base", base); + return renderToken(tree, stream, var_type.token, indent, start_col, space); + }, + ast.Node.Id.ContainerDecl => { + const container_decl = @fieldParentPtr(ast.Node.ContainerDecl, "base", base); + + if (container_decl.layout_token) |layout_token| { + try renderToken(tree, stream, layout_token, indent, start_col, Space.Space); + } + + switch (container_decl.init_arg_expr) { + .None => { + try renderToken(tree, stream, container_decl.kind_token, indent, start_col, Space.Space); // union + }, + .Enum => |enum_tag_type| { + try renderToken(tree, stream, container_decl.kind_token, indent, start_col, Space.None); // union + + const lparen = tree.nextToken(container_decl.kind_token); + const enum_token = tree.nextToken(lparen); + + try renderToken(tree, stream, lparen, indent, start_col, Space.None); // ( + try renderToken(tree, stream, enum_token, indent, start_col, Space.None); // enum + + if (enum_tag_type) |expr| { + try renderToken(tree, stream, tree.nextToken(enum_token), indent, start_col, Space.None); // ( + try renderExpression(allocator, stream, tree, indent, start_col, expr, Space.None); + + const rparen = tree.nextToken(expr.lastToken()); + try renderToken(tree, stream, rparen, indent, start_col, Space.None); // ) + try renderToken(tree, stream, tree.nextToken(rparen), indent, start_col, Space.Space); // ) + } else { + try renderToken(tree, stream, tree.nextToken(enum_token), indent, start_col, Space.Space); // ) + } + }, + .Type => |type_expr| { + try renderToken(tree, stream, container_decl.kind_token, indent, start_col, Space.None); // union + + const lparen = tree.nextToken(container_decl.kind_token); + const rparen = tree.nextToken(type_expr.lastToken()); + + try renderToken(tree, stream, lparen, indent, start_col, Space.None); // ( + try renderExpression(allocator, stream, tree, indent, start_col, type_expr, Space.None); + try renderToken(tree, stream, rparen, indent, start_col, Space.Space); // ) + }, + } + + if (container_decl.fields_and_decls.len == 0) { + try renderToken(tree, stream, container_decl.lbrace_token, indent + indent_delta, start_col, Space.None); // { + return renderToken(tree, stream, container_decl.rbrace_token, indent, start_col, space); // } + } else { + const new_indent = indent + indent_delta; + try renderToken(tree, stream, container_decl.lbrace_token, new_indent, start_col, Space.Newline); // { + + var it = container_decl.fields_and_decls.iterator(0); + while (it.next()) |decl| { + try stream.writeByteNTimes(' ', new_indent); + try renderTopLevelDecl(allocator, stream, tree, new_indent, start_col, decl.*); + + if (it.peek()) |next_decl| { + try renderExtraNewline(tree, stream, start_col, next_decl.*); + } + } + + try stream.writeByteNTimes(' ', indent); + return renderToken(tree, stream, container_decl.rbrace_token, indent, start_col, space); // } + } + }, + + ast.Node.Id.ErrorSetDecl => { + const err_set_decl = @fieldParentPtr(ast.Node.ErrorSetDecl, "base", base); + + const lbrace = tree.nextToken(err_set_decl.error_token); + + if (err_set_decl.decls.len == 0) { + try renderToken(tree, stream, err_set_decl.error_token, indent, start_col, Space.None); + try renderToken(tree, stream, lbrace, indent, start_col, Space.None); + return renderToken(tree, stream, err_set_decl.rbrace_token, indent, start_col, space); + } + + if (err_set_decl.decls.len == 1) blk: { + const node = err_set_decl.decls.at(0).*; + + // if there are any doc comments or same line comments + // don't try to put it all on one line + if (node.cast(ast.Node.ErrorTag)) |tag| { + if (tag.doc_comments != null) break :blk; + } else { + break :blk; + } + + try renderToken(tree, stream, err_set_decl.error_token, indent, start_col, Space.None); // error + try renderToken(tree, stream, lbrace, indent, start_col, Space.None); // { + try renderExpression(allocator, stream, tree, indent, start_col, node, Space.None); + return renderToken(tree, stream, err_set_decl.rbrace_token, indent, start_col, space); // } + } + + try renderToken(tree, stream, err_set_decl.error_token, indent, start_col, Space.None); // error + try renderToken(tree, stream, lbrace, indent, start_col, Space.Newline); // { + const new_indent = indent + indent_delta; + + var it = err_set_decl.decls.iterator(0); + while (it.next()) |node| { + try stream.writeByteNTimes(' ', new_indent); + + if (it.peek()) |next_node| { + try renderExpression(allocator, stream, tree, new_indent, start_col, node.*, Space.None); + try renderToken(tree, stream, tree.nextToken(node.*.lastToken()), new_indent, start_col, Space.Newline); // , + + try renderExtraNewline(tree, stream, start_col, next_node.*); + } else { + try renderExpression(allocator, stream, tree, new_indent, start_col, node.*, Space.Comma); + } + } + + try stream.writeByteNTimes(' ', indent); + return renderToken(tree, stream, err_set_decl.rbrace_token, indent, start_col, space); // } + }, + + ast.Node.Id.ErrorTag => { + const tag = @fieldParentPtr(ast.Node.ErrorTag, "base", base); + + try renderDocComments(tree, stream, tag, indent, start_col); + return renderToken(tree, stream, tag.name_token, indent, start_col, space); // name + }, + + ast.Node.Id.MultilineStringLiteral => { + // TODO: Don't indent in this function, but let the caller indent. + // If this has been implemented, a lot of hacky solutions in i.e. ArrayInit and FunctionCall can be removed + const multiline_str_literal = @fieldParentPtr(ast.Node.MultilineStringLiteral, "base", base); + + var skip_first_indent = true; + if (tree.tokens.at(multiline_str_literal.firstToken() - 1).id != Token.Id.LineComment) { + try stream.print("\n"); + skip_first_indent = false; + } + + var i: usize = 0; + while (i < multiline_str_literal.lines.len) : (i += 1) { + const t = multiline_str_literal.lines.at(i).*; + if (!skip_first_indent) { + try stream.writeByteNTimes(' ', indent + indent_delta); + } + try renderToken(tree, stream, t, indent, start_col, Space.None); + skip_first_indent = false; + } + try stream.writeByteNTimes(' ', indent); + }, + ast.Node.Id.UndefinedLiteral => { + const undefined_literal = @fieldParentPtr(ast.Node.UndefinedLiteral, "base", base); + return renderToken(tree, stream, undefined_literal.token, indent, start_col, space); + }, + + ast.Node.Id.BuiltinCall => { + const builtin_call = @fieldParentPtr(ast.Node.BuiltinCall, "base", base); + + try renderToken(tree, stream, builtin_call.builtin_token, indent, start_col, Space.None); // @name + try renderToken(tree, stream, tree.nextToken(builtin_call.builtin_token), indent, start_col, Space.None); // ( + + var it = builtin_call.params.iterator(0); + while (it.next()) |param_node| { + try renderExpression(allocator, stream, tree, indent, start_col, param_node.*, Space.None); + + if (it.peek() != null) { + const comma_token = tree.nextToken(param_node.*.lastToken()); + try renderToken(tree, stream, comma_token, indent, start_col, Space.Space); // , + } + } + return renderToken(tree, stream, builtin_call.rparen_token, indent, start_col, space); // ) + }, + + ast.Node.Id.FnProto => { + const fn_proto = @fieldParentPtr(ast.Node.FnProto, "base", base); + + if (fn_proto.visib_token) |visib_token_index| { + const visib_token = tree.tokens.at(visib_token_index); + assert(visib_token.id == Token.Id.Keyword_pub or visib_token.id == Token.Id.Keyword_export); + + try renderToken(tree, stream, visib_token_index, indent, start_col, Space.Space); // pub + } + + if (fn_proto.extern_export_inline_token) |extern_export_inline_token| { + try renderToken(tree, stream, extern_export_inline_token, indent, start_col, Space.Space); // extern/export + } + + if (fn_proto.lib_name) |lib_name| { + try renderExpression(allocator, stream, tree, indent, start_col, lib_name, Space.Space); + } + + if (fn_proto.cc_token) |cc_token| { + try renderToken(tree, stream, cc_token, indent, start_col, Space.Space); // stdcallcc + } + + const lparen = if (fn_proto.name_token) |name_token| blk: { + try renderToken(tree, stream, fn_proto.fn_token, indent, start_col, Space.Space); // fn + try renderToken(tree, stream, name_token, indent, start_col, Space.None); // name + break :blk tree.nextToken(name_token); + } else blk: { + try renderToken(tree, stream, fn_proto.fn_token, indent, start_col, Space.Space); // fn + break :blk tree.nextToken(fn_proto.fn_token); + }; + + const rparen = tree.prevToken(switch (fn_proto.return_type) { + ast.Node.FnProto.ReturnType.Explicit => |node| node.firstToken(), + ast.Node.FnProto.ReturnType.InferErrorSet => |node| tree.prevToken(node.firstToken()), + }); + + const src_params_trailing_comma = blk: { + const maybe_comma = tree.tokens.at(rparen - 1).id; + break :blk maybe_comma == .Comma or maybe_comma == .LineComment; + }; + + if (!src_params_trailing_comma) { + try renderToken(tree, stream, lparen, indent, start_col, Space.None); // ( + + // render all on one line, no trailing comma + var it = fn_proto.params.iterator(0); + while (it.next()) |param_decl_node| { + try renderParamDecl(allocator, stream, tree, indent, start_col, param_decl_node.*, Space.None); + + if (it.peek() != null) { + const comma = tree.nextToken(param_decl_node.*.lastToken()); + try renderToken(tree, stream, comma, indent, start_col, Space.Space); // , + } + } + } else { + // one param per line + const new_indent = indent + indent_delta; + try renderToken(tree, stream, lparen, new_indent, start_col, Space.Newline); // ( + + var it = fn_proto.params.iterator(0); + while (it.next()) |param_decl_node| { + try stream.writeByteNTimes(' ', new_indent); + try renderParamDecl(allocator, stream, tree, new_indent, start_col, param_decl_node.*, Space.Comma); + } + try stream.writeByteNTimes(' ', indent); + } + + try renderToken(tree, stream, rparen, indent, start_col, Space.Space); // ) + + if (fn_proto.align_expr) |align_expr| { + const align_rparen = tree.nextToken(align_expr.lastToken()); + const align_lparen = tree.prevToken(align_expr.firstToken()); + const align_kw = tree.prevToken(align_lparen); + + try renderToken(tree, stream, align_kw, indent, start_col, Space.None); // align + try renderToken(tree, stream, align_lparen, indent, start_col, Space.None); // ( + try renderExpression(allocator, stream, tree, indent, start_col, align_expr, Space.None); + try renderToken(tree, stream, align_rparen, indent, start_col, Space.Space); // ) + } + + if (fn_proto.section_expr) |section_expr| { + const section_rparen = tree.nextToken(section_expr.lastToken()); + const section_lparen = tree.prevToken(section_expr.firstToken()); + const section_kw = tree.prevToken(section_lparen); + + try renderToken(tree, stream, section_kw, indent, start_col, Space.None); // section + try renderToken(tree, stream, section_lparen, indent, start_col, Space.None); // ( + try renderExpression(allocator, stream, tree, indent, start_col, section_expr, Space.None); + try renderToken(tree, stream, section_rparen, indent, start_col, Space.Space); // ) + } + + switch (fn_proto.return_type) { + ast.Node.FnProto.ReturnType.Explicit => |node| { + return renderExpression(allocator, stream, tree, indent, start_col, node, space); + }, + ast.Node.FnProto.ReturnType.InferErrorSet => |node| { + try renderToken(tree, stream, tree.prevToken(node.firstToken()), indent, start_col, Space.None); // ! + return renderExpression(allocator, stream, tree, indent, start_col, node, space); + }, + } + }, + + ast.Node.Id.AnyFrameType => { + const anyframe_type = @fieldParentPtr(ast.Node.AnyFrameType, "base", base); + + if (anyframe_type.result) |result| { + try renderToken(tree, stream, anyframe_type.anyframe_token, indent, start_col, Space.None); // anyframe + try renderToken(tree, stream, result.arrow_token, indent, start_col, Space.None); // -> + return renderExpression(allocator, stream, tree, indent, start_col, result.return_type, space); + } else { + return renderToken(tree, stream, anyframe_type.anyframe_token, indent, start_col, space); // anyframe + } + }, + + ast.Node.Id.DocComment => unreachable, // doc comments are attached to nodes + + ast.Node.Id.Switch => { + const switch_node = @fieldParentPtr(ast.Node.Switch, "base", base); + + try renderToken(tree, stream, switch_node.switch_token, indent, start_col, Space.Space); // switch + try renderToken(tree, stream, tree.nextToken(switch_node.switch_token), indent, start_col, Space.None); // ( + + const rparen = tree.nextToken(switch_node.expr.lastToken()); + const lbrace = tree.nextToken(rparen); + + if (switch_node.cases.len == 0) { + try renderExpression(allocator, stream, tree, indent, start_col, switch_node.expr, Space.None); + try renderToken(tree, stream, rparen, indent, start_col, Space.Space); // ) + try renderToken(tree, stream, lbrace, indent, start_col, Space.None); // { + return renderToken(tree, stream, switch_node.rbrace, indent, start_col, space); // } + } + + try renderExpression(allocator, stream, tree, indent, start_col, switch_node.expr, Space.None); + + const new_indent = indent + indent_delta; + + try renderToken(tree, stream, rparen, indent, start_col, Space.Space); // ) + try renderToken(tree, stream, lbrace, new_indent, start_col, Space.Newline); // { + + var it = switch_node.cases.iterator(0); + while (it.next()) |node| { + try stream.writeByteNTimes(' ', new_indent); + try renderExpression(allocator, stream, tree, new_indent, start_col, node.*, Space.Comma); + + if (it.peek()) |next_node| { + try renderExtraNewline(tree, stream, start_col, next_node.*); + } + } + + try stream.writeByteNTimes(' ', indent); + return renderToken(tree, stream, switch_node.rbrace, indent, start_col, space); // } + }, + + ast.Node.Id.SwitchCase => { + const switch_case = @fieldParentPtr(ast.Node.SwitchCase, "base", base); + + assert(switch_case.items.len != 0); + const src_has_trailing_comma = blk: { + const last_node = switch_case.items.at(switch_case.items.len - 1).*; + const maybe_comma = tree.nextToken(last_node.lastToken()); + break :blk tree.tokens.at(maybe_comma).id == Token.Id.Comma; + }; + + if (switch_case.items.len == 1 or !src_has_trailing_comma) { + var it = switch_case.items.iterator(0); + while (it.next()) |node| { + if (it.peek()) |next_node| { + try renderExpression(allocator, stream, tree, indent, start_col, node.*, Space.None); + + const comma_token = tree.nextToken(node.*.lastToken()); + try renderToken(tree, stream, comma_token, indent, start_col, Space.Space); // , + try renderExtraNewline(tree, stream, start_col, next_node.*); + } else { + try renderExpression(allocator, stream, tree, indent, start_col, node.*, Space.Space); + } + } + } else { + var it = switch_case.items.iterator(0); + while (true) { + const node = it.next().?; + if (it.peek()) |next_node| { + try renderExpression(allocator, stream, tree, indent, start_col, node.*, Space.None); + + const comma_token = tree.nextToken(node.*.lastToken()); + try renderToken(tree, stream, comma_token, indent, start_col, Space.Newline); // , + try renderExtraNewline(tree, stream, start_col, next_node.*); + try stream.writeByteNTimes(' ', indent); + } else { + try renderExpression(allocator, stream, tree, indent, start_col, node.*, Space.Comma); + try stream.writeByteNTimes(' ', indent); + break; + } + } + } + + try renderToken(tree, stream, switch_case.arrow_token, indent, start_col, Space.Space); // => + + if (switch_case.payload) |payload| { + try renderExpression(allocator, stream, tree, indent, start_col, payload, Space.Space); + } + + return renderExpression(allocator, stream, tree, indent, start_col, switch_case.expr, space); + }, + ast.Node.Id.SwitchElse => { + const switch_else = @fieldParentPtr(ast.Node.SwitchElse, "base", base); + return renderToken(tree, stream, switch_else.token, indent, start_col, space); + }, + ast.Node.Id.Else => { + const else_node = @fieldParentPtr(ast.Node.Else, "base", base); + + const body_is_block = nodeIsBlock(else_node.body); + const same_line = body_is_block or tree.tokensOnSameLine(else_node.else_token, else_node.body.lastToken()); + + const after_else_space = if (same_line or else_node.payload != null) Space.Space else Space.Newline; + try renderToken(tree, stream, else_node.else_token, indent, start_col, after_else_space); + + if (else_node.payload) |payload| { + const payload_space = if (same_line) Space.Space else Space.Newline; + try renderExpression(allocator, stream, tree, indent, start_col, payload, payload_space); + } + + if (same_line) { + return renderExpression(allocator, stream, tree, indent, start_col, else_node.body, space); + } + + try stream.writeByteNTimes(' ', indent + indent_delta); + start_col.* = indent + indent_delta; + return renderExpression(allocator, stream, tree, indent, start_col, else_node.body, space); + }, + + ast.Node.Id.While => { + const while_node = @fieldParentPtr(ast.Node.While, "base", base); + + if (while_node.label) |label| { + try renderToken(tree, stream, label, indent, start_col, Space.None); // label + try renderToken(tree, stream, tree.nextToken(label), indent, start_col, Space.Space); // : + } + + if (while_node.inline_token) |inline_token| { + try renderToken(tree, stream, inline_token, indent, start_col, Space.Space); // inline + } + + try renderToken(tree, stream, while_node.while_token, indent, start_col, Space.Space); // while + try renderToken(tree, stream, tree.nextToken(while_node.while_token), indent, start_col, Space.None); // ( + try renderExpression(allocator, stream, tree, indent, start_col, while_node.condition, Space.None); + + const cond_rparen = tree.nextToken(while_node.condition.lastToken()); + + const body_is_block = nodeIsBlock(while_node.body); + + var block_start_space: Space = undefined; + var after_body_space: Space = undefined; + + if (body_is_block) { + block_start_space = Space.BlockStart; + after_body_space = if (while_node.@"else" == null) space else Space.SpaceOrOutdent; + } else if (tree.tokensOnSameLine(cond_rparen, while_node.body.lastToken())) { + block_start_space = Space.Space; + after_body_space = if (while_node.@"else" == null) space else Space.Space; + } else { + block_start_space = Space.Newline; + after_body_space = if (while_node.@"else" == null) space else Space.Newline; + } + + { + const rparen_space = if (while_node.payload != null or while_node.continue_expr != null) Space.Space else block_start_space; + try renderToken(tree, stream, cond_rparen, indent, start_col, rparen_space); // ) + } + + if (while_node.payload) |payload| { + const payload_space = if (while_node.continue_expr != null) Space.Space else block_start_space; + try renderExpression(allocator, stream, tree, indent, start_col, payload, payload_space); + } + + if (while_node.continue_expr) |continue_expr| { + const rparen = tree.nextToken(continue_expr.lastToken()); + const lparen = tree.prevToken(continue_expr.firstToken()); + const colon = tree.prevToken(lparen); + + try renderToken(tree, stream, colon, indent, start_col, Space.Space); // : + try renderToken(tree, stream, lparen, indent, start_col, Space.None); // ( + + try renderExpression(allocator, stream, tree, indent, start_col, continue_expr, Space.None); + + try renderToken(tree, stream, rparen, indent, start_col, block_start_space); // ) + } + + var new_indent = indent; + if (block_start_space == Space.Newline) { + new_indent += indent_delta; + try stream.writeByteNTimes(' ', new_indent); + start_col.* = new_indent; + } + + try renderExpression(allocator, stream, tree, indent, start_col, while_node.body, after_body_space); + + if (while_node.@"else") |@"else"| { + if (after_body_space == Space.Newline) { + try stream.writeByteNTimes(' ', indent); + start_col.* = indent; + } + return renderExpression(allocator, stream, tree, indent, start_col, &@"else".base, space); + } + }, + + ast.Node.Id.For => { + const for_node = @fieldParentPtr(ast.Node.For, "base", base); + + if (for_node.label) |label| { + try renderToken(tree, stream, label, indent, start_col, Space.None); // label + try renderToken(tree, stream, tree.nextToken(label), indent, start_col, Space.Space); // : + } + + if (for_node.inline_token) |inline_token| { + try renderToken(tree, stream, inline_token, indent, start_col, Space.Space); // inline + } + + try renderToken(tree, stream, for_node.for_token, indent, start_col, Space.Space); // for + try renderToken(tree, stream, tree.nextToken(for_node.for_token), indent, start_col, Space.None); // ( + try renderExpression(allocator, stream, tree, indent, start_col, for_node.array_expr, Space.None); + + const rparen = tree.nextToken(for_node.array_expr.lastToken()); + + const body_is_block = for_node.body.id == ast.Node.Id.Block; + const src_one_line_to_body = !body_is_block and tree.tokensOnSameLine(rparen, for_node.body.firstToken()); + const body_on_same_line = body_is_block or src_one_line_to_body; + + try renderToken(tree, stream, rparen, indent, start_col, Space.Space); // ) + + const space_after_payload = if (body_on_same_line) Space.Space else Space.Newline; + try renderExpression(allocator, stream, tree, indent, start_col, for_node.payload, space_after_payload); // |x| + + const space_after_body = blk: { + if (for_node.@"else") |@"else"| { + const src_one_line_to_else = tree.tokensOnSameLine(rparen, @"else".firstToken()); + if (body_is_block or src_one_line_to_else) { + break :blk Space.Space; + } else { + break :blk Space.Newline; + } + } else { + break :blk space; + } + }; + + const body_indent = if (body_on_same_line) indent else indent + indent_delta; + if (!body_on_same_line) try stream.writeByteNTimes(' ', body_indent); + try renderExpression(allocator, stream, tree, body_indent, start_col, for_node.body, space_after_body); // { body } + + if (for_node.@"else") |@"else"| { + if (space_after_body == Space.Newline) try stream.writeByteNTimes(' ', indent); + return renderExpression(allocator, stream, tree, indent, start_col, &@"else".base, space); // else + } + }, + + ast.Node.Id.If => { + const if_node = @fieldParentPtr(ast.Node.If, "base", base); + + const lparen = tree.prevToken(if_node.condition.firstToken()); + const rparen = tree.nextToken(if_node.condition.lastToken()); + + try renderToken(tree, stream, if_node.if_token, indent, start_col, Space.Space); // if + try renderToken(tree, stream, lparen, indent, start_col, Space.None); // ( + + try renderExpression(allocator, stream, tree, indent, start_col, if_node.condition, Space.None); // condition + + const body_is_if_block = if_node.body.id == ast.Node.Id.If; + const body_is_block = nodeIsBlock(if_node.body); + + if (body_is_if_block) { + try renderExtraNewline(tree, stream, start_col, if_node.body); + } else if (body_is_block) { + const after_rparen_space = if (if_node.payload == null) Space.BlockStart else Space.Space; + try renderToken(tree, stream, rparen, indent, start_col, after_rparen_space); // ) + + if (if_node.payload) |payload| { + try renderExpression(allocator, stream, tree, indent, start_col, payload, Space.BlockStart); // |x| + } + + if (if_node.@"else") |@"else"| { + try renderExpression(allocator, stream, tree, indent, start_col, if_node.body, Space.SpaceOrOutdent); + return renderExpression(allocator, stream, tree, indent, start_col, &@"else".base, space); + } else { + return renderExpression(allocator, stream, tree, indent, start_col, if_node.body, space); + } + } + + const src_has_newline = !tree.tokensOnSameLine(rparen, if_node.body.lastToken()); + + if (src_has_newline) { + const after_rparen_space = if (if_node.payload == null) Space.Newline else Space.Space; + try renderToken(tree, stream, rparen, indent, start_col, after_rparen_space); // ) + + if (if_node.payload) |payload| { + try renderExpression(allocator, stream, tree, indent, start_col, payload, Space.Newline); + } + + const new_indent = indent + indent_delta; + try stream.writeByteNTimes(' ', new_indent); + + if (if_node.@"else") |@"else"| { + const else_is_block = nodeIsBlock(@"else".body); + try renderExpression(allocator, stream, tree, new_indent, start_col, if_node.body, Space.Newline); + try stream.writeByteNTimes(' ', indent); + + if (else_is_block) { + try renderToken(tree, stream, @"else".else_token, indent, start_col, Space.Space); // else + + if (@"else".payload) |payload| { + try renderExpression(allocator, stream, tree, indent, start_col, payload, Space.Space); + } + + return renderExpression(allocator, stream, tree, indent, start_col, @"else".body, space); + } else { + const after_else_space = if (@"else".payload == null) Space.Newline else Space.Space; + try renderToken(tree, stream, @"else".else_token, indent, start_col, after_else_space); // else + + if (@"else".payload) |payload| { + try renderExpression(allocator, stream, tree, indent, start_col, payload, Space.Newline); + } + try stream.writeByteNTimes(' ', new_indent); + + return renderExpression(allocator, stream, tree, new_indent, start_col, @"else".body, space); + } + } else { + return renderExpression(allocator, stream, tree, new_indent, start_col, if_node.body, space); + } + } + + try renderToken(tree, stream, rparen, indent, start_col, Space.Space); // ) + + if (if_node.payload) |payload| { + try renderExpression(allocator, stream, tree, indent, start_col, payload, Space.Space); + } + + if (if_node.@"else") |@"else"| { + try renderExpression(allocator, stream, tree, indent, start_col, if_node.body, Space.Space); + try renderToken(tree, stream, @"else".else_token, indent, start_col, Space.Space); + + if (@"else".payload) |payload| { + try renderExpression(allocator, stream, tree, indent, start_col, payload, Space.Space); + } + + return renderExpression(allocator, stream, tree, indent, start_col, @"else".body, space); + } else { + return renderExpression(allocator, stream, tree, indent, start_col, if_node.body, space); + } + }, + + ast.Node.Id.Asm => { + const asm_node = @fieldParentPtr(ast.Node.Asm, "base", base); + + try renderToken(tree, stream, asm_node.asm_token, indent, start_col, Space.Space); // asm + + if (asm_node.volatile_token) |volatile_token| { + try renderToken(tree, stream, volatile_token, indent, start_col, Space.Space); // volatile + try renderToken(tree, stream, tree.nextToken(volatile_token), indent, start_col, Space.None); // ( + } else { + try renderToken(tree, stream, tree.nextToken(asm_node.asm_token), indent, start_col, Space.None); // ( + } + + if (asm_node.outputs.len == 0 and asm_node.inputs.len == 0 and asm_node.clobbers.len == 0) { + try renderExpression(allocator, stream, tree, indent, start_col, asm_node.template, Space.None); + return renderToken(tree, stream, asm_node.rparen, indent, start_col, space); + } + + try renderExpression(allocator, stream, tree, indent, start_col, asm_node.template, Space.Newline); + + const indent_once = indent + indent_delta; + + if (asm_node.template.id == ast.Node.Id.MultilineStringLiteral) { + // After rendering a multiline string literal the cursor is + // already offset by indent + try stream.writeByteNTimes(' ', indent_delta); + } else { + try stream.writeByteNTimes(' ', indent_once); + } + + const colon1 = tree.nextToken(asm_node.template.lastToken()); + const indent_extra = indent_once + 2; + + const colon2 = if (asm_node.outputs.len == 0) blk: { + try renderToken(tree, stream, colon1, indent, start_col, Space.Newline); // : + try stream.writeByteNTimes(' ', indent_once); + + break :blk tree.nextToken(colon1); + } else blk: { + try renderToken(tree, stream, colon1, indent, start_col, Space.Space); // : + + var it = asm_node.outputs.iterator(0); + while (true) { + const asm_output = it.next().?; + const node = &(asm_output.*).base; + + if (it.peek()) |next_asm_output| { + try renderExpression(allocator, stream, tree, indent_extra, start_col, node, Space.None); + const next_node = &(next_asm_output.*).base; + + const comma = tree.prevToken(next_asm_output.*.firstToken()); + try renderToken(tree, stream, comma, indent_extra, start_col, Space.Newline); // , + try renderExtraNewline(tree, stream, start_col, next_node); + + try stream.writeByteNTimes(' ', indent_extra); + } else if (asm_node.inputs.len == 0 and asm_node.clobbers.len == 0) { + try renderExpression(allocator, stream, tree, indent_extra, start_col, node, Space.Newline); + try stream.writeByteNTimes(' ', indent); + return renderToken(tree, stream, asm_node.rparen, indent, start_col, space); + } else { + try renderExpression(allocator, stream, tree, indent_extra, start_col, node, Space.Newline); + try stream.writeByteNTimes(' ', indent_once); + const comma_or_colon = tree.nextToken(node.lastToken()); + break :blk switch (tree.tokens.at(comma_or_colon).id) { + Token.Id.Comma => tree.nextToken(comma_or_colon), + else => comma_or_colon, + }; + } + } + }; + + const colon3 = if (asm_node.inputs.len == 0) blk: { + try renderToken(tree, stream, colon2, indent, start_col, Space.Newline); // : + try stream.writeByteNTimes(' ', indent_once); + + break :blk tree.nextToken(colon2); + } else blk: { + try renderToken(tree, stream, colon2, indent, start_col, Space.Space); // : + + var it = asm_node.inputs.iterator(0); + while (true) { + const asm_input = it.next().?; + const node = &(asm_input.*).base; + + if (it.peek()) |next_asm_input| { + try renderExpression(allocator, stream, tree, indent_extra, start_col, node, Space.None); + const next_node = &(next_asm_input.*).base; + + const comma = tree.prevToken(next_asm_input.*.firstToken()); + try renderToken(tree, stream, comma, indent_extra, start_col, Space.Newline); // , + try renderExtraNewline(tree, stream, start_col, next_node); + + try stream.writeByteNTimes(' ', indent_extra); + } else if (asm_node.clobbers.len == 0) { + try renderExpression(allocator, stream, tree, indent_extra, start_col, node, Space.Newline); + try stream.writeByteNTimes(' ', indent); + return renderToken(tree, stream, asm_node.rparen, indent, start_col, space); // ) + } else { + try renderExpression(allocator, stream, tree, indent_extra, start_col, node, Space.Newline); + try stream.writeByteNTimes(' ', indent_once); + const comma_or_colon = tree.nextToken(node.lastToken()); + break :blk switch (tree.tokens.at(comma_or_colon).id) { + Token.Id.Comma => tree.nextToken(comma_or_colon), + else => comma_or_colon, + }; + } + } + }; + + try renderToken(tree, stream, colon3, indent, start_col, Space.Space); // : + + var it = asm_node.clobbers.iterator(0); + while (true) { + const clobber_node = it.next().?.*; + + if (it.peek() == null) { + try renderExpression(allocator, stream, tree, indent_extra, start_col, clobber_node, Space.Newline); + try stream.writeByteNTimes(' ', indent); + return renderToken(tree, stream, asm_node.rparen, indent, start_col, space); + } else { + try renderExpression(allocator, stream, tree, indent_extra, start_col, clobber_node, Space.None); + const comma = tree.nextToken(clobber_node.lastToken()); + try renderToken(tree, stream, comma, indent_once, start_col, Space.Space); // , + } + } + }, + + ast.Node.Id.AsmInput => { + const asm_input = @fieldParentPtr(ast.Node.AsmInput, "base", base); + + try stream.write("["); + try renderExpression(allocator, stream, tree, indent, start_col, asm_input.symbolic_name, Space.None); + try stream.write("] "); + try renderExpression(allocator, stream, tree, indent, start_col, asm_input.constraint, Space.None); + try stream.write(" ("); + try renderExpression(allocator, stream, tree, indent, start_col, asm_input.expr, Space.None); + return renderToken(tree, stream, asm_input.lastToken(), indent, start_col, space); // ) + }, + + ast.Node.Id.AsmOutput => { + const asm_output = @fieldParentPtr(ast.Node.AsmOutput, "base", base); + + try stream.write("["); + try renderExpression(allocator, stream, tree, indent, start_col, asm_output.symbolic_name, Space.None); + try stream.write("] "); + try renderExpression(allocator, stream, tree, indent, start_col, asm_output.constraint, Space.None); + try stream.write(" ("); + + switch (asm_output.kind) { + ast.Node.AsmOutput.Kind.Variable => |variable_name| { + try renderExpression(allocator, stream, tree, indent, start_col, &variable_name.base, Space.None); + }, + ast.Node.AsmOutput.Kind.Return => |return_type| { + try stream.write("-> "); + try renderExpression(allocator, stream, tree, indent, start_col, return_type, Space.None); + }, + } + + return renderToken(tree, stream, asm_output.lastToken(), indent, start_col, space); // ) + }, + + ast.Node.Id.EnumLiteral => { + const enum_literal = @fieldParentPtr(ast.Node.EnumLiteral, "base", base); + + try renderToken(tree, stream, enum_literal.dot, indent, start_col, Space.None); // . + return renderToken(tree, stream, enum_literal.name, indent, start_col, space); // name + }, + + ast.Node.Id.ContainerField, + ast.Node.Id.Root, + ast.Node.Id.VarDecl, + ast.Node.Id.Use, + ast.Node.Id.TestDecl, + ast.Node.Id.ParamDecl, + => unreachable, + } +} + +fn renderVarDecl( + allocator: *mem.Allocator, + stream: var, + tree: *ast.Tree, + indent: usize, + start_col: *usize, + var_decl: *ast.Node.VarDecl, +) (@typeOf(stream).Child.Error || Error)!void { + if (var_decl.visib_token) |visib_token| { + try renderToken(tree, stream, visib_token, indent, start_col, Space.Space); // pub + } + + if (var_decl.extern_export_token) |extern_export_token| { + try renderToken(tree, stream, extern_export_token, indent, start_col, Space.Space); // extern + + if (var_decl.lib_name) |lib_name| { + try renderExpression(allocator, stream, tree, indent, start_col, lib_name, Space.Space); // "lib" + } + } + + if (var_decl.comptime_token) |comptime_token| { + try renderToken(tree, stream, comptime_token, indent, start_col, Space.Space); // comptime + } + + if (var_decl.thread_local_token) |thread_local_token| { + try renderToken(tree, stream, thread_local_token, indent, start_col, Space.Space); // threadlocal + } + try renderToken(tree, stream, var_decl.mut_token, indent, start_col, Space.Space); // var + + const name_space = if (var_decl.type_node == null and (var_decl.align_node != null or + var_decl.section_node != null or var_decl.init_node != null)) Space.Space else Space.None; + try renderToken(tree, stream, var_decl.name_token, indent, start_col, name_space); + + if (var_decl.type_node) |type_node| { + try renderToken(tree, stream, tree.nextToken(var_decl.name_token), indent, start_col, Space.Space); + const s = if (var_decl.align_node != null or + var_decl.section_node != null or + var_decl.init_node != null) Space.Space else Space.None; + try renderExpression(allocator, stream, tree, indent, start_col, type_node, s); + } + + if (var_decl.align_node) |align_node| { + const lparen = tree.prevToken(align_node.firstToken()); + const align_kw = tree.prevToken(lparen); + const rparen = tree.nextToken(align_node.lastToken()); + try renderToken(tree, stream, align_kw, indent, start_col, Space.None); // align + try renderToken(tree, stream, lparen, indent, start_col, Space.None); // ( + try renderExpression(allocator, stream, tree, indent, start_col, align_node, Space.None); + const s = if (var_decl.section_node != null or var_decl.init_node != null) Space.Space else Space.None; + try renderToken(tree, stream, rparen, indent, start_col, s); // ) + } + + if (var_decl.section_node) |section_node| { + const lparen = tree.prevToken(section_node.firstToken()); + const section_kw = tree.prevToken(lparen); + const rparen = tree.nextToken(section_node.lastToken()); + try renderToken(tree, stream, section_kw, indent, start_col, Space.None); // linksection + try renderToken(tree, stream, lparen, indent, start_col, Space.None); // ( + try renderExpression(allocator, stream, tree, indent, start_col, section_node, Space.None); + const s = if (var_decl.init_node != null) Space.Space else Space.None; + try renderToken(tree, stream, rparen, indent, start_col, s); // ) + } + + if (var_decl.init_node) |init_node| { + const s = if (init_node.id == ast.Node.Id.MultilineStringLiteral) Space.None else Space.Space; + try renderToken(tree, stream, var_decl.eq_token, indent, start_col, s); // = + try renderExpression(allocator, stream, tree, indent, start_col, init_node, Space.None); + } + + try renderToken(tree, stream, var_decl.semicolon_token, indent, start_col, Space.Newline); +} + +fn renderParamDecl( + allocator: *mem.Allocator, + stream: var, + tree: *ast.Tree, + indent: usize, + start_col: *usize, + base: *ast.Node, + space: Space, +) (@typeOf(stream).Child.Error || Error)!void { + const param_decl = @fieldParentPtr(ast.Node.ParamDecl, "base", base); + + try renderDocComments(tree, stream, param_decl, indent, start_col); + + if (param_decl.comptime_token) |comptime_token| { + try renderToken(tree, stream, comptime_token, indent, start_col, Space.Space); + } + if (param_decl.noalias_token) |noalias_token| { + try renderToken(tree, stream, noalias_token, indent, start_col, Space.Space); + } + if (param_decl.name_token) |name_token| { + try renderToken(tree, stream, name_token, indent, start_col, Space.None); + try renderToken(tree, stream, tree.nextToken(name_token), indent, start_col, Space.Space); // : + } + if (param_decl.var_args_token) |var_args_token| { + try renderToken(tree, stream, var_args_token, indent, start_col, space); + } else { + try renderExpression(allocator, stream, tree, indent, start_col, param_decl.type_node, space); + } +} + +fn renderStatement( + allocator: *mem.Allocator, + stream: var, + tree: *ast.Tree, + indent: usize, + start_col: *usize, + base: *ast.Node, +) (@typeOf(stream).Child.Error || Error)!void { + switch (base.id) { + ast.Node.Id.VarDecl => { + const var_decl = @fieldParentPtr(ast.Node.VarDecl, "base", base); + try renderVarDecl(allocator, stream, tree, indent, start_col, var_decl); + }, + else => { + if (base.requireSemiColon()) { + try renderExpression(allocator, stream, tree, indent, start_col, base, Space.None); + + const semicolon_index = tree.nextToken(base.lastToken()); + assert(tree.tokens.at(semicolon_index).id == Token.Id.Semicolon); + try renderToken(tree, stream, semicolon_index, indent, start_col, Space.Newline); + } else { + try renderExpression(allocator, stream, tree, indent, start_col, base, Space.Newline); + } + }, + } +} + +const Space = enum { + None, + Newline, + Comma, + Space, + SpaceOrOutdent, + NoNewline, + NoComment, + BlockStart, +}; + +fn renderTokenOffset( + tree: *ast.Tree, + stream: var, + token_index: ast.TokenIndex, + indent: usize, + start_col: *usize, + space: Space, + token_skip_bytes: usize, +) (@typeOf(stream).Child.Error || Error)!void { + if (space == Space.BlockStart) { + if (start_col.* < indent + indent_delta) + return renderToken(tree, stream, token_index, indent, start_col, Space.Space); + try renderToken(tree, stream, token_index, indent, start_col, Space.Newline); + try stream.writeByteNTimes(' ', indent); + start_col.* = indent; + return; + } + + var token = tree.tokens.at(token_index); + try stream.write(mem.trimRight(u8, tree.tokenSlicePtr(token)[token_skip_bytes..], " ")); + + if (space == Space.NoComment) + return; + + var next_token = tree.tokens.at(token_index + 1); + + if (space == Space.Comma) switch (next_token.id) { + Token.Id.Comma => return renderToken(tree, stream, token_index + 1, indent, start_col, Space.Newline), + Token.Id.LineComment => { + try stream.write(", "); + return renderToken(tree, stream, token_index + 1, indent, start_col, Space.Newline); + }, + else => { + if (token_index + 2 < tree.tokens.len and tree.tokens.at(token_index + 2).id == Token.Id.MultilineStringLiteralLine) { + try stream.write(","); + return; + } else { + try stream.write(",\n"); + start_col.* = 0; + return; + } + }, + }; + + // Skip over same line doc comments + var offset: usize = 1; + if (next_token.id == Token.Id.DocComment) { + const loc = tree.tokenLocationPtr(token.end, next_token); + if (loc.line == 0) { + offset += 1; + next_token = tree.tokens.at(token_index + offset); + } + } + + if (next_token.id != Token.Id.LineComment) blk: { + switch (space) { + Space.None, Space.NoNewline => return, + Space.Newline => { + if (next_token.id == Token.Id.MultilineStringLiteralLine) { + return; + } else { + try stream.write("\n"); + start_col.* = 0; + return; + } + }, + Space.Space, Space.SpaceOrOutdent => { + if (next_token.id == Token.Id.MultilineStringLiteralLine) + return; + try stream.writeByte(' '); + return; + }, + Space.NoComment, Space.Comma, Space.BlockStart => unreachable, + } + } + + while (true) { + const comment_is_empty = mem.trimRight(u8, tree.tokenSlicePtr(next_token), " ").len == 2; + if (comment_is_empty) { + switch (space) { + Space.Newline => { + offset += 1; + token = next_token; + next_token = tree.tokens.at(token_index + offset); + if (next_token.id != .LineComment) { + try stream.writeByte('\n'); + start_col.* = 0; + return; + } + }, + else => break, + } + } else { + break; + } + } + + var loc = tree.tokenLocationPtr(token.end, next_token); + if (loc.line == 0) { + try stream.print(" {}", mem.trimRight(u8, tree.tokenSlicePtr(next_token), " ")); + offset = 2; + token = next_token; + next_token = tree.tokens.at(token_index + offset); + if (next_token.id != Token.Id.LineComment) { + switch (space) { + Space.None, Space.Space => { + try stream.writeByte('\n'); + const after_comment_token = tree.tokens.at(token_index + offset); + const next_line_indent = switch (after_comment_token.id) { + Token.Id.RParen, Token.Id.RBrace, Token.Id.RBracket => indent, + else => indent + indent_delta, + }; + try stream.writeByteNTimes(' ', next_line_indent); + start_col.* = next_line_indent; + }, + Space.SpaceOrOutdent => { + try stream.writeByte('\n'); + try stream.writeByteNTimes(' ', indent); + start_col.* = indent; + }, + Space.Newline => { + if (next_token.id == Token.Id.MultilineStringLiteralLine) { + return; + } else { + try stream.write("\n"); + start_col.* = 0; + return; + } + }, + Space.NoNewline => {}, + Space.NoComment, Space.Comma, Space.BlockStart => unreachable, + } + return; + } + loc = tree.tokenLocationPtr(token.end, next_token); + } + + while (true) { + assert(loc.line != 0); + const newline_count = if (loc.line == 1) u8(1) else u8(2); + try stream.writeByteNTimes('\n', newline_count); + try stream.writeByteNTimes(' ', indent); + try stream.write(mem.trimRight(u8, tree.tokenSlicePtr(next_token), " ")); + + offset += 1; + token = next_token; + next_token = tree.tokens.at(token_index + offset); + if (next_token.id != Token.Id.LineComment) { + switch (space) { + Space.Newline => { + if (next_token.id == Token.Id.MultilineStringLiteralLine) { + return; + } else { + try stream.write("\n"); + start_col.* = 0; + return; + } + }, + Space.None, Space.Space => { + try stream.writeByte('\n'); + + const after_comment_token = tree.tokens.at(token_index + offset); + const next_line_indent = switch (after_comment_token.id) { + Token.Id.RParen, Token.Id.RBrace, Token.Id.RBracket => blk: { + if (indent > indent_delta) { + break :blk indent - indent_delta; + } else { + break :blk 0; + } + }, + else => indent, + }; + try stream.writeByteNTimes(' ', next_line_indent); + start_col.* = next_line_indent; + }, + Space.SpaceOrOutdent => { + try stream.writeByte('\n'); + try stream.writeByteNTimes(' ', indent); + start_col.* = indent; + }, + Space.NoNewline => {}, + Space.NoComment, Space.Comma, Space.BlockStart => unreachable, + } + return; + } + loc = tree.tokenLocationPtr(token.end, next_token); + } +} + +fn renderToken( + tree: *ast.Tree, + stream: var, + token_index: ast.TokenIndex, + indent: usize, + start_col: *usize, + space: Space, +) (@typeOf(stream).Child.Error || Error)!void { + return renderTokenOffset(tree, stream, token_index, indent, start_col, space, 0); +} + +fn renderDocComments( + tree: *ast.Tree, + stream: var, + node: var, + indent: usize, + start_col: *usize, +) (@typeOf(stream).Child.Error || Error)!void { + const comment = node.doc_comments orelse return; + var it = comment.lines.iterator(0); + const first_token = node.firstToken(); + while (it.next()) |line_token_index| { + if (line_token_index.* < first_token) { + try renderToken(tree, stream, line_token_index.*, indent, start_col, Space.Newline); + try stream.writeByteNTimes(' ', indent); + } else { + try renderToken(tree, stream, line_token_index.*, indent, start_col, Space.NoComment); + try stream.write("\n"); + try stream.writeByteNTimes(' ', indent); + } + } +} + +fn nodeIsBlock(base: *const ast.Node) bool { + return switch (base.id) { + ast.Node.Id.Block, + ast.Node.Id.If, + ast.Node.Id.For, + ast.Node.Id.While, + ast.Node.Id.Switch, + => true, + else => false, + }; +} + +fn nodeCausesSliceOpSpace(base: *ast.Node) bool { + const infix_op = base.cast(ast.Node.InfixOp) orelse return false; + return switch (infix_op.op) { + ast.Node.InfixOp.Op.Period => false, + else => true, + }; +} + +// An OutStream that returns whether the given character has been written to it. +// The contents are not written to anything. +const FindByteOutStream = struct { + const Self = FindByteOutStream; + pub const Error = error{}; + pub const Stream = std.io.OutStream(Error); + + pub stream: Stream, + pub byte_found: bool, + byte: u8, + + pub fn init(byte: u8) Self { + return Self{ + .stream = Stream{ .writeFn = writeFn }, + .byte = byte, + .byte_found = false, + }; + } + + fn writeFn(out_stream: *Stream, bytes: []const u8) Error!void { + const self = @fieldParentPtr(Self, "stream", out_stream); + if (self.byte_found) return; + self.byte_found = blk: { + for (bytes) |b| + if (b == self.byte) break :blk true; + break :blk false; + }; + } +}; + +fn copyFixingWhitespace(stream: var, slice: []const u8) @typeOf(stream).Child.Error!void { + for (slice) |byte| switch (byte) { + '\t' => try stream.write(" "), + '\r' => {}, + else => try stream.writeByte(byte), + }; +} diff --git a/lib/std/zig/tokenizer.zig b/lib/std/zig/tokenizer.zig new file mode 100644 index 0000000000..b0a6cd1122 --- /dev/null +++ b/lib/std/zig/tokenizer.zig @@ -0,0 +1,1602 @@ +const std = @import("../std.zig"); +const mem = std.mem; + +pub const Token = struct { + id: Id, + start: usize, + end: usize, + + pub const Keyword = struct { + bytes: []const u8, + id: Id, + }; + + pub const keywords = [_]Keyword{ + Keyword{ .bytes = "align", .id = Id.Keyword_align }, + Keyword{ .bytes = "allowzero", .id = Id.Keyword_allowzero }, + Keyword{ .bytes = "and", .id = Id.Keyword_and }, + Keyword{ .bytes = "anyframe", .id = Id.Keyword_anyframe }, + Keyword{ .bytes = "asm", .id = Id.Keyword_asm }, + Keyword{ .bytes = "async", .id = Id.Keyword_async }, + Keyword{ .bytes = "await", .id = Id.Keyword_await }, + Keyword{ .bytes = "break", .id = Id.Keyword_break }, + Keyword{ .bytes = "catch", .id = Id.Keyword_catch }, + Keyword{ .bytes = "comptime", .id = Id.Keyword_comptime }, + Keyword{ .bytes = "const", .id = Id.Keyword_const }, + Keyword{ .bytes = "continue", .id = Id.Keyword_continue }, + Keyword{ .bytes = "defer", .id = Id.Keyword_defer }, + Keyword{ .bytes = "else", .id = Id.Keyword_else }, + Keyword{ .bytes = "enum", .id = Id.Keyword_enum }, + Keyword{ .bytes = "errdefer", .id = Id.Keyword_errdefer }, + Keyword{ .bytes = "error", .id = Id.Keyword_error }, + Keyword{ .bytes = "export", .id = Id.Keyword_export }, + Keyword{ .bytes = "extern", .id = Id.Keyword_extern }, + Keyword{ .bytes = "false", .id = Id.Keyword_false }, + Keyword{ .bytes = "fn", .id = Id.Keyword_fn }, + Keyword{ .bytes = "for", .id = Id.Keyword_for }, + Keyword{ .bytes = "if", .id = Id.Keyword_if }, + Keyword{ .bytes = "inline", .id = Id.Keyword_inline }, + Keyword{ .bytes = "nakedcc", .id = Id.Keyword_nakedcc }, + Keyword{ .bytes = "noalias", .id = Id.Keyword_noalias }, + Keyword{ .bytes = "noasync", .id = Id.Keyword_noasync }, + Keyword{ .bytes = "noinline", .id = Id.Keyword_noinline }, + Keyword{ .bytes = "null", .id = Id.Keyword_null }, + Keyword{ .bytes = "or", .id = Id.Keyword_or }, + Keyword{ .bytes = "orelse", .id = Id.Keyword_orelse }, + Keyword{ .bytes = "packed", .id = Id.Keyword_packed }, + Keyword{ .bytes = "pub", .id = Id.Keyword_pub }, + Keyword{ .bytes = "resume", .id = Id.Keyword_resume }, + Keyword{ .bytes = "return", .id = Id.Keyword_return }, + Keyword{ .bytes = "linksection", .id = Id.Keyword_linksection }, + Keyword{ .bytes = "stdcallcc", .id = Id.Keyword_stdcallcc }, + Keyword{ .bytes = "struct", .id = Id.Keyword_struct }, + Keyword{ .bytes = "suspend", .id = Id.Keyword_suspend }, + Keyword{ .bytes = "switch", .id = Id.Keyword_switch }, + Keyword{ .bytes = "test", .id = Id.Keyword_test }, + Keyword{ .bytes = "threadlocal", .id = Id.Keyword_threadlocal }, + Keyword{ .bytes = "true", .id = Id.Keyword_true }, + Keyword{ .bytes = "try", .id = Id.Keyword_try }, + Keyword{ .bytes = "undefined", .id = Id.Keyword_undefined }, + Keyword{ .bytes = "union", .id = Id.Keyword_union }, + Keyword{ .bytes = "unreachable", .id = Id.Keyword_unreachable }, + Keyword{ .bytes = "use", .id = Id.Keyword_usingnamespace }, + Keyword{ .bytes = "usingnamespace", .id = Id.Keyword_usingnamespace }, + Keyword{ .bytes = "var", .id = Id.Keyword_var }, + Keyword{ .bytes = "volatile", .id = Id.Keyword_volatile }, + Keyword{ .bytes = "while", .id = Id.Keyword_while }, + }; + + // TODO perfect hash at comptime + fn getKeyword(bytes: []const u8) ?Id { + for (keywords) |kw| { + if (mem.eql(u8, kw.bytes, bytes)) { + return kw.id; + } + } + return null; + } + + pub const Id = enum { + Invalid, + Invalid_ampersands, + Identifier, + StringLiteral, + MultilineStringLiteralLine, + CharLiteral, + Eof, + Builtin, + Bang, + Pipe, + PipePipe, + PipeEqual, + Equal, + EqualEqual, + EqualAngleBracketRight, + BangEqual, + LParen, + RParen, + Semicolon, + Percent, + PercentEqual, + LBrace, + RBrace, + LBracket, + RBracket, + Period, + Ellipsis2, + Ellipsis3, + Caret, + CaretEqual, + Plus, + PlusPlus, + PlusEqual, + PlusPercent, + PlusPercentEqual, + Minus, + MinusEqual, + MinusPercent, + MinusPercentEqual, + Asterisk, + AsteriskEqual, + AsteriskAsterisk, + AsteriskPercent, + AsteriskPercentEqual, + Arrow, + Colon, + Slash, + SlashEqual, + Comma, + Ampersand, + AmpersandEqual, + QuestionMark, + AngleBracketLeft, + AngleBracketLeftEqual, + AngleBracketAngleBracketLeft, + AngleBracketAngleBracketLeftEqual, + AngleBracketRight, + AngleBracketRightEqual, + AngleBracketAngleBracketRight, + AngleBracketAngleBracketRightEqual, + Tilde, + IntegerLiteral, + FloatLiteral, + LineComment, + DocComment, + BracketStarBracket, + BracketStarCBracket, + ShebangLine, + Keyword_align, + Keyword_allowzero, + Keyword_and, + Keyword_asm, + Keyword_async, + Keyword_await, + Keyword_break, + Keyword_catch, + Keyword_comptime, + Keyword_const, + Keyword_continue, + Keyword_defer, + Keyword_else, + Keyword_enum, + Keyword_errdefer, + Keyword_error, + Keyword_export, + Keyword_extern, + Keyword_false, + Keyword_fn, + Keyword_for, + Keyword_if, + Keyword_inline, + Keyword_nakedcc, + Keyword_noalias, + Keyword_noasync, + Keyword_noinline, + Keyword_null, + Keyword_or, + Keyword_orelse, + Keyword_packed, + Keyword_anyframe, + Keyword_pub, + Keyword_resume, + Keyword_return, + Keyword_linksection, + Keyword_stdcallcc, + Keyword_struct, + Keyword_suspend, + Keyword_switch, + Keyword_test, + Keyword_threadlocal, + Keyword_true, + Keyword_try, + Keyword_undefined, + Keyword_union, + Keyword_unreachable, + Keyword_usingnamespace, + Keyword_var, + Keyword_volatile, + Keyword_while, + + pub fn symbol(id: Id) []const u8 { + return switch (id) { + .Invalid => "Invalid", + .Invalid_ampersands => "&&", + .Identifier => "Identifier", + .StringLiteral => "StringLiteral", + .MultilineStringLiteralLine => "MultilineStringLiteralLine", + .CharLiteral => "CharLiteral", + .Eof => "Eof", + .Builtin => "Builtin", + .IntegerLiteral => "IntegerLiteral", + .FloatLiteral => "FloatLiteral", + .LineComment => "LineComment", + .DocComment => "DocComment", + .ShebangLine => "ShebangLine", + + .Bang => "!", + .Pipe => "|", + .PipePipe => "||", + .PipeEqual => "|=", + .Equal => "=", + .EqualEqual => "==", + .EqualAngleBracketRight => "=>", + .BangEqual => "!=", + .LParen => "(", + .RParen => ")", + .Semicolon => ";", + .Percent => "%", + .PercentEqual => "%=", + .LBrace => "{", + .RBrace => "}", + .LBracket => "[", + .RBracket => "]", + .Period => ".", + .Ellipsis2 => "..", + .Ellipsis3 => "...", + .Caret => "^", + .CaretEqual => "^=", + .Plus => "+", + .PlusPlus => "++", + .PlusEqual => "+=", + .PlusPercent => "+%", + .PlusPercentEqual => "+%=", + .Minus => "-", + .MinusEqual => "-=", + .MinusPercent => "-%", + .MinusPercentEqual => "-%=", + .Asterisk => "*", + .AsteriskEqual => "*=", + .AsteriskAsterisk => "**", + .AsteriskPercent => "*%", + .AsteriskPercentEqual => "*%=", + .Arrow => "->", + .Colon => ":", + .Slash => "/", + .SlashEqual => "/=", + .Comma => ",", + .Ampersand => "&", + .AmpersandEqual => "&=", + .QuestionMark => "?", + .AngleBracketLeft => "<", + .AngleBracketLeftEqual => "<=", + .AngleBracketAngleBracketLeft => "<<", + .AngleBracketAngleBracketLeftEqual => "<<=", + .AngleBracketRight => ">", + .AngleBracketRightEqual => ">=", + .AngleBracketAngleBracketRight => ">>", + .AngleBracketAngleBracketRightEqual => ">>=", + .Tilde => "~", + .BracketStarBracket => "[*]", + .BracketStarCBracket => "[*c]", + .Keyword_align => "align", + .Keyword_allowzero => "allowzero", + .Keyword_and => "and", + .Keyword_anyframe => "anyframe", + .Keyword_asm => "asm", + .Keyword_async => "async", + .Keyword_await => "await", + .Keyword_break => "break", + .Keyword_catch => "catch", + .Keyword_comptime => "comptime", + .Keyword_const => "const", + .Keyword_continue => "continue", + .Keyword_defer => "defer", + .Keyword_else => "else", + .Keyword_enum => "enum", + .Keyword_errdefer => "errdefer", + .Keyword_error => "error", + .Keyword_export => "export", + .Keyword_extern => "extern", + .Keyword_false => "false", + .Keyword_fn => "fn", + .Keyword_for => "for", + .Keyword_if => "if", + .Keyword_inline => "inline", + .Keyword_nakedcc => "nakedcc", + .Keyword_noalias => "noalias", + .Keyword_noasync => "noasync", + .Keyword_noinline => "noinline", + .Keyword_null => "null", + .Keyword_or => "or", + .Keyword_orelse => "orelse", + .Keyword_packed => "packed", + .Keyword_pub => "pub", + .Keyword_resume => "resume", + .Keyword_return => "return", + .Keyword_linksection => "linksection", + .Keyword_stdcallcc => "stdcallcc", + .Keyword_struct => "struct", + .Keyword_suspend => "suspend", + .Keyword_switch => "switch", + .Keyword_test => "test", + .Keyword_threadlocal => "threadlocal", + .Keyword_true => "true", + .Keyword_try => "try", + .Keyword_undefined => "undefined", + .Keyword_union => "union", + .Keyword_unreachable => "unreachable", + .Keyword_usingnamespace => "usingnamespace", + .Keyword_var => "var", + .Keyword_volatile => "volatile", + .Keyword_while => "while", + }; + } + }; +}; + +pub const Tokenizer = struct { + buffer: []const u8, + index: usize, + pending_invalid_token: ?Token, + + /// For debugging purposes + pub fn dump(self: *Tokenizer, token: *const Token) void { + std.debug.warn("{} \"{}\"\n", @tagName(token.id), self.buffer[token.start..token.end]); + } + + pub fn init(buffer: []const u8) Tokenizer { + if (mem.startsWith(u8, buffer, "#!")) { + const src_start = if (mem.indexOfScalar(u8, buffer, '\n')) |i| i + 1 else buffer.len; + return Tokenizer{ + .buffer = buffer, + .index = src_start, + .pending_invalid_token = Token{ + .id = Token.Id.ShebangLine, + .start = 0, + .end = src_start, + }, + }; + } else { + // Skip the UTF-8 BOM if present + const src_start = if (mem.startsWith(u8, buffer, "\xEF\xBB\xBF")) 3 else usize(0); + return Tokenizer{ + .buffer = buffer, + .index = src_start, + .pending_invalid_token = null, + }; + } + } + + const State = enum { + Start, + Identifier, + Builtin, + C, + StringLiteral, + StringLiteralBackslash, + MultilineStringLiteralLine, + CharLiteral, + CharLiteralBackslash, + CharLiteralHexEscape, + CharLiteralUnicodeEscapeSawU, + CharLiteralUnicodeEscape, + CharLiteralUnicodeInvalid, + CharLiteralEnd, + Backslash, + Equal, + Bang, + Pipe, + Minus, + MinusPercent, + Asterisk, + AsteriskPercent, + Slash, + LineCommentStart, + LineComment, + DocCommentStart, + DocComment, + Zero, + IntegerLiteral, + IntegerLiteralWithRadix, + IntegerLiteralWithRadixHex, + NumberDot, + NumberDotHex, + FloatFraction, + FloatFractionHex, + FloatExponentUnsigned, + FloatExponentUnsignedHex, + FloatExponentNumber, + FloatExponentNumberHex, + Ampersand, + Caret, + Percent, + Plus, + PlusPercent, + AngleBracketLeft, + AngleBracketAngleBracketLeft, + AngleBracketRight, + AngleBracketAngleBracketRight, + Period, + Period2, + SawAtSign, + LBracket, + LBracketStar, + LBracketStarC, + }; + + pub fn next(self: *Tokenizer) Token { + if (self.pending_invalid_token) |token| { + self.pending_invalid_token = null; + return token; + } + const start_index = self.index; + var state = State.Start; + var result = Token{ + .id = Token.Id.Eof, + .start = self.index, + .end = undefined, + }; + var seen_escape_digits: usize = undefined; + while (self.index < self.buffer.len) : (self.index += 1) { + const c = self.buffer[self.index]; + switch (state) { + State.Start => switch (c) { + ' ', '\n', '\t', '\r' => { + result.start = self.index + 1; + }, + 'c' => { + state = State.C; + result.id = Token.Id.Identifier; + }, + '"' => { + state = State.StringLiteral; + result.id = Token.Id.StringLiteral; + }, + '\'' => { + state = State.CharLiteral; + }, + 'a'...'b', 'd'...'z', 'A'...'Z', '_' => { + state = State.Identifier; + result.id = Token.Id.Identifier; + }, + '@' => { + state = State.SawAtSign; + }, + '=' => { + state = State.Equal; + }, + '!' => { + state = State.Bang; + }, + '|' => { + state = State.Pipe; + }, + '(' => { + result.id = Token.Id.LParen; + self.index += 1; + break; + }, + ')' => { + result.id = Token.Id.RParen; + self.index += 1; + break; + }, + '[' => { + state = State.LBracket; + }, + ']' => { + result.id = Token.Id.RBracket; + self.index += 1; + break; + }, + ';' => { + result.id = Token.Id.Semicolon; + self.index += 1; + break; + }, + ',' => { + result.id = Token.Id.Comma; + self.index += 1; + break; + }, + '?' => { + result.id = Token.Id.QuestionMark; + self.index += 1; + break; + }, + ':' => { + result.id = Token.Id.Colon; + self.index += 1; + break; + }, + '%' => { + state = State.Percent; + }, + '*' => { + state = State.Asterisk; + }, + '+' => { + state = State.Plus; + }, + '<' => { + state = State.AngleBracketLeft; + }, + '>' => { + state = State.AngleBracketRight; + }, + '^' => { + state = State.Caret; + }, + '\\' => { + state = State.Backslash; + result.id = Token.Id.MultilineStringLiteralLine; + }, + '{' => { + result.id = Token.Id.LBrace; + self.index += 1; + break; + }, + '}' => { + result.id = Token.Id.RBrace; + self.index += 1; + break; + }, + '~' => { + result.id = Token.Id.Tilde; + self.index += 1; + break; + }, + '.' => { + state = State.Period; + }, + '-' => { + state = State.Minus; + }, + '/' => { + state = State.Slash; + }, + '&' => { + state = State.Ampersand; + }, + '0' => { + state = State.Zero; + result.id = Token.Id.IntegerLiteral; + }, + '1'...'9' => { + state = State.IntegerLiteral; + result.id = Token.Id.IntegerLiteral; + }, + else => { + result.id = Token.Id.Invalid; + self.index += 1; + break; + }, + }, + + State.SawAtSign => switch (c) { + '"' => { + result.id = Token.Id.Identifier; + state = State.StringLiteral; + }, + else => { + // reinterpret as a builtin + self.index -= 1; + state = State.Builtin; + result.id = Token.Id.Builtin; + }, + }, + + State.LBracket => switch (c) { + '*' => { + state = State.LBracketStar; + }, + else => { + result.id = Token.Id.LBracket; + break; + }, + }, + + State.LBracketStar => switch (c) { + 'c' => { + state = State.LBracketStarC; + }, + ']' => { + result.id = Token.Id.BracketStarBracket; + self.index += 1; + break; + }, + else => { + result.id = Token.Id.Invalid; + break; + }, + }, + + State.LBracketStarC => switch (c) { + ']' => { + result.id = Token.Id.BracketStarCBracket; + self.index += 1; + break; + }, + else => { + result.id = Token.Id.Invalid; + break; + }, + }, + + State.Ampersand => switch (c) { + '&' => { + result.id = Token.Id.Invalid_ampersands; + self.index += 1; + break; + }, + '=' => { + result.id = Token.Id.AmpersandEqual; + self.index += 1; + break; + }, + else => { + result.id = Token.Id.Ampersand; + break; + }, + }, + + State.Asterisk => switch (c) { + '=' => { + result.id = Token.Id.AsteriskEqual; + self.index += 1; + break; + }, + '*' => { + result.id = Token.Id.AsteriskAsterisk; + self.index += 1; + break; + }, + '%' => { + state = State.AsteriskPercent; + }, + else => { + result.id = Token.Id.Asterisk; + break; + }, + }, + + State.AsteriskPercent => switch (c) { + '=' => { + result.id = Token.Id.AsteriskPercentEqual; + self.index += 1; + break; + }, + else => { + result.id = Token.Id.AsteriskPercent; + break; + }, + }, + + State.Percent => switch (c) { + '=' => { + result.id = Token.Id.PercentEqual; + self.index += 1; + break; + }, + else => { + result.id = Token.Id.Percent; + break; + }, + }, + + State.Plus => switch (c) { + '=' => { + result.id = Token.Id.PlusEqual; + self.index += 1; + break; + }, + '+' => { + result.id = Token.Id.PlusPlus; + self.index += 1; + break; + }, + '%' => { + state = State.PlusPercent; + }, + else => { + result.id = Token.Id.Plus; + break; + }, + }, + + State.PlusPercent => switch (c) { + '=' => { + result.id = Token.Id.PlusPercentEqual; + self.index += 1; + break; + }, + else => { + result.id = Token.Id.PlusPercent; + break; + }, + }, + + State.Caret => switch (c) { + '=' => { + result.id = Token.Id.CaretEqual; + self.index += 1; + break; + }, + else => { + result.id = Token.Id.Caret; + break; + }, + }, + + State.Identifier => switch (c) { + 'a'...'z', 'A'...'Z', '_', '0'...'9' => {}, + else => { + if (Token.getKeyword(self.buffer[result.start..self.index])) |id| { + result.id = id; + } + break; + }, + }, + State.Builtin => switch (c) { + 'a'...'z', 'A'...'Z', '_', '0'...'9' => {}, + else => break, + }, + State.Backslash => switch (c) { + '\\' => { + state = State.MultilineStringLiteralLine; + }, + else => break, + }, + State.C => switch (c) { + '\\' => { + state = State.Backslash; + result.id = Token.Id.MultilineStringLiteralLine; + }, + '"' => { + state = State.StringLiteral; + result.id = Token.Id.StringLiteral; + }, + 'a'...'z', 'A'...'Z', '_', '0'...'9' => { + state = State.Identifier; + }, + else => break, + }, + State.StringLiteral => switch (c) { + '\\' => { + state = State.StringLiteralBackslash; + }, + '"' => { + self.index += 1; + break; + }, + '\n' => break, // Look for this error later. + else => self.checkLiteralCharacter(), + }, + + State.StringLiteralBackslash => switch (c) { + '\n' => break, // Look for this error later. + else => { + state = State.StringLiteral; + }, + }, + + State.CharLiteral => switch (c) { + '\\' => { + state = State.CharLiteralBackslash; + }, + '\'' => { + result.id = Token.Id.Invalid; + break; + }, + else => { + if (c < 0x20 or c == 0x7f) { + result.id = Token.Id.Invalid; + break; + } + + state = State.CharLiteralEnd; + }, + }, + + State.CharLiteralBackslash => switch (c) { + '\n' => { + result.id = Token.Id.Invalid; + break; + }, + 'x' => { + state = State.CharLiteralHexEscape; + seen_escape_digits = 0; + }, + 'u' => { + state = State.CharLiteralUnicodeEscapeSawU; + }, + else => { + state = State.CharLiteralEnd; + }, + }, + + State.CharLiteralHexEscape => switch (c) { + '0'...'9', 'a'...'f', 'A'...'F' => { + seen_escape_digits += 1; + if (seen_escape_digits == 2) { + state = State.CharLiteralEnd; + } + }, + else => { + result.id = Token.Id.Invalid; + break; + }, + }, + + State.CharLiteralUnicodeEscapeSawU => switch (c) { + '{' => { + state = State.CharLiteralUnicodeEscape; + seen_escape_digits = 0; + }, + else => { + result.id = Token.Id.Invalid; + state = State.CharLiteralUnicodeInvalid; + }, + }, + + State.CharLiteralUnicodeEscape => switch (c) { + '0'...'9', 'a'...'f', 'A'...'F' => { + seen_escape_digits += 1; + }, + '}' => { + if (seen_escape_digits == 0) { + result.id = Token.Id.Invalid; + state = State.CharLiteralUnicodeInvalid; + } else { + state = State.CharLiteralEnd; + } + }, + else => { + result.id = Token.Id.Invalid; + state = State.CharLiteralUnicodeInvalid; + }, + }, + + State.CharLiteralUnicodeInvalid => switch (c) { + // Keep consuming characters until an obvious stopping point. + // This consolidates e.g. `u{0ab1Q}` into a single invalid token + // instead of creating the tokens `u{0ab1`, `Q`, `}` + '0'...'9', 'a'...'z', 'A'...'Z', '}' => {}, + else => break, + }, + + State.CharLiteralEnd => switch (c) { + '\'' => { + result.id = Token.Id.CharLiteral; + self.index += 1; + break; + }, + else => { + result.id = Token.Id.Invalid; + break; + }, + }, + + State.MultilineStringLiteralLine => switch (c) { + '\n' => { + self.index += 1; + break; + }, + else => self.checkLiteralCharacter(), + }, + + State.Bang => switch (c) { + '=' => { + result.id = Token.Id.BangEqual; + self.index += 1; + break; + }, + else => { + result.id = Token.Id.Bang; + break; + }, + }, + + State.Pipe => switch (c) { + '=' => { + result.id = Token.Id.PipeEqual; + self.index += 1; + break; + }, + '|' => { + result.id = Token.Id.PipePipe; + self.index += 1; + break; + }, + else => { + result.id = Token.Id.Pipe; + break; + }, + }, + + State.Equal => switch (c) { + '=' => { + result.id = Token.Id.EqualEqual; + self.index += 1; + break; + }, + '>' => { + result.id = Token.Id.EqualAngleBracketRight; + self.index += 1; + break; + }, + else => { + result.id = Token.Id.Equal; + break; + }, + }, + + State.Minus => switch (c) { + '>' => { + result.id = Token.Id.Arrow; + self.index += 1; + break; + }, + '=' => { + result.id = Token.Id.MinusEqual; + self.index += 1; + break; + }, + '%' => { + state = State.MinusPercent; + }, + else => { + result.id = Token.Id.Minus; + break; + }, + }, + + State.MinusPercent => switch (c) { + '=' => { + result.id = Token.Id.MinusPercentEqual; + self.index += 1; + break; + }, + else => { + result.id = Token.Id.MinusPercent; + break; + }, + }, + + State.AngleBracketLeft => switch (c) { + '<' => { + state = State.AngleBracketAngleBracketLeft; + }, + '=' => { + result.id = Token.Id.AngleBracketLeftEqual; + self.index += 1; + break; + }, + else => { + result.id = Token.Id.AngleBracketLeft; + break; + }, + }, + + State.AngleBracketAngleBracketLeft => switch (c) { + '=' => { + result.id = Token.Id.AngleBracketAngleBracketLeftEqual; + self.index += 1; + break; + }, + else => { + result.id = Token.Id.AngleBracketAngleBracketLeft; + break; + }, + }, + + State.AngleBracketRight => switch (c) { + '>' => { + state = State.AngleBracketAngleBracketRight; + }, + '=' => { + result.id = Token.Id.AngleBracketRightEqual; + self.index += 1; + break; + }, + else => { + result.id = Token.Id.AngleBracketRight; + break; + }, + }, + + State.AngleBracketAngleBracketRight => switch (c) { + '=' => { + result.id = Token.Id.AngleBracketAngleBracketRightEqual; + self.index += 1; + break; + }, + else => { + result.id = Token.Id.AngleBracketAngleBracketRight; + break; + }, + }, + + State.Period => switch (c) { + '.' => { + state = State.Period2; + }, + else => { + result.id = Token.Id.Period; + break; + }, + }, + + State.Period2 => switch (c) { + '.' => { + result.id = Token.Id.Ellipsis3; + self.index += 1; + break; + }, + else => { + result.id = Token.Id.Ellipsis2; + break; + }, + }, + + State.Slash => switch (c) { + '/' => { + state = State.LineCommentStart; + result.id = Token.Id.LineComment; + }, + '=' => { + result.id = Token.Id.SlashEqual; + self.index += 1; + break; + }, + else => { + result.id = Token.Id.Slash; + break; + }, + }, + State.LineCommentStart => switch (c) { + '/' => { + state = State.DocCommentStart; + }, + '\n' => break, + else => { + state = State.LineComment; + self.checkLiteralCharacter(); + }, + }, + State.DocCommentStart => switch (c) { + '/' => { + state = State.LineComment; + }, + '\n' => { + result.id = Token.Id.DocComment; + break; + }, + else => { + state = State.DocComment; + result.id = Token.Id.DocComment; + self.checkLiteralCharacter(); + }, + }, + State.LineComment, State.DocComment => switch (c) { + '\n' => break, + else => self.checkLiteralCharacter(), + }, + State.Zero => switch (c) { + 'b', 'o' => { + state = State.IntegerLiteralWithRadix; + }, + 'x' => { + state = State.IntegerLiteralWithRadixHex; + }, + else => { + // reinterpret as a normal number + self.index -= 1; + state = State.IntegerLiteral; + }, + }, + State.IntegerLiteral => switch (c) { + '.' => { + state = State.NumberDot; + }, + 'p', 'P', 'e', 'E' => { + state = State.FloatExponentUnsigned; + }, + '0'...'9' => {}, + else => break, + }, + State.IntegerLiteralWithRadix => switch (c) { + '.' => { + state = State.NumberDot; + }, + '0'...'9' => {}, + else => break, + }, + State.IntegerLiteralWithRadixHex => switch (c) { + '.' => { + state = State.NumberDotHex; + }, + 'p', 'P' => { + state = State.FloatExponentUnsignedHex; + }, + '0'...'9', 'a'...'f', 'A'...'F' => {}, + else => break, + }, + State.NumberDot => switch (c) { + '.' => { + self.index -= 1; + state = State.Start; + break; + }, + else => { + self.index -= 1; + result.id = Token.Id.FloatLiteral; + state = State.FloatFraction; + }, + }, + State.NumberDotHex => switch (c) { + '.' => { + self.index -= 1; + state = State.Start; + break; + }, + else => { + self.index -= 1; + result.id = Token.Id.FloatLiteral; + state = State.FloatFractionHex; + }, + }, + State.FloatFraction => switch (c) { + 'e', 'E' => { + state = State.FloatExponentUnsigned; + }, + '0'...'9' => {}, + else => break, + }, + State.FloatFractionHex => switch (c) { + 'p', 'P' => { + state = State.FloatExponentUnsignedHex; + }, + '0'...'9', 'a'...'f', 'A'...'F' => {}, + else => break, + }, + State.FloatExponentUnsigned => switch (c) { + '+', '-' => { + state = State.FloatExponentNumber; + }, + else => { + // reinterpret as a normal exponent number + self.index -= 1; + state = State.FloatExponentNumber; + }, + }, + State.FloatExponentUnsignedHex => switch (c) { + '+', '-' => { + state = State.FloatExponentNumberHex; + }, + else => { + // reinterpret as a normal exponent number + self.index -= 1; + state = State.FloatExponentNumberHex; + }, + }, + State.FloatExponentNumber => switch (c) { + '0'...'9' => {}, + else => break, + }, + State.FloatExponentNumberHex => switch (c) { + '0'...'9', 'a'...'f', 'A'...'F' => {}, + else => break, + }, + } + } else if (self.index == self.buffer.len) { + switch (state) { + State.Start, + State.C, + State.IntegerLiteral, + State.IntegerLiteralWithRadix, + State.IntegerLiteralWithRadixHex, + State.FloatFraction, + State.FloatFractionHex, + State.FloatExponentNumber, + State.FloatExponentNumberHex, + State.StringLiteral, // find this error later + State.MultilineStringLiteralLine, + State.Builtin, + => {}, + + State.Identifier => { + if (Token.getKeyword(self.buffer[result.start..self.index])) |id| { + result.id = id; + } + }, + State.LineCommentStart, State.LineComment => { + result.id = Token.Id.LineComment; + }, + State.DocComment, State.DocCommentStart => { + result.id = Token.Id.DocComment; + }, + + State.NumberDot, + State.NumberDotHex, + State.FloatExponentUnsigned, + State.FloatExponentUnsignedHex, + State.SawAtSign, + State.Backslash, + State.CharLiteral, + State.CharLiteralBackslash, + State.CharLiteralHexEscape, + State.CharLiteralUnicodeEscapeSawU, + State.CharLiteralUnicodeEscape, + State.CharLiteralUnicodeInvalid, + State.CharLiteralEnd, + State.StringLiteralBackslash, + State.LBracketStar, + State.LBracketStarC, + => { + result.id = Token.Id.Invalid; + }, + + State.Equal => { + result.id = Token.Id.Equal; + }, + State.Bang => { + result.id = Token.Id.Bang; + }, + State.Minus => { + result.id = Token.Id.Minus; + }, + State.Slash => { + result.id = Token.Id.Slash; + }, + State.LBracket => { + result.id = Token.Id.LBracket; + }, + State.Zero => { + result.id = Token.Id.IntegerLiteral; + }, + State.Ampersand => { + result.id = Token.Id.Ampersand; + }, + State.Period => { + result.id = Token.Id.Period; + }, + State.Period2 => { + result.id = Token.Id.Ellipsis2; + }, + State.Pipe => { + result.id = Token.Id.Pipe; + }, + State.AngleBracketAngleBracketRight => { + result.id = Token.Id.AngleBracketAngleBracketRight; + }, + State.AngleBracketRight => { + result.id = Token.Id.AngleBracketRight; + }, + State.AngleBracketAngleBracketLeft => { + result.id = Token.Id.AngleBracketAngleBracketLeft; + }, + State.AngleBracketLeft => { + result.id = Token.Id.AngleBracketLeft; + }, + State.PlusPercent => { + result.id = Token.Id.PlusPercent; + }, + State.Plus => { + result.id = Token.Id.Plus; + }, + State.Percent => { + result.id = Token.Id.Percent; + }, + State.Caret => { + result.id = Token.Id.Caret; + }, + State.AsteriskPercent => { + result.id = Token.Id.AsteriskPercent; + }, + State.Asterisk => { + result.id = Token.Id.Asterisk; + }, + State.MinusPercent => { + result.id = Token.Id.MinusPercent; + }, + } + } + + if (result.id == Token.Id.Eof) { + if (self.pending_invalid_token) |token| { + self.pending_invalid_token = null; + return token; + } + } + + result.end = self.index; + return result; + } + + fn checkLiteralCharacter(self: *Tokenizer) void { + if (self.pending_invalid_token != null) return; + const invalid_length = self.getInvalidCharacterLength(); + if (invalid_length == 0) return; + self.pending_invalid_token = Token{ + .id = Token.Id.Invalid, + .start = self.index, + .end = self.index + invalid_length, + }; + } + + fn getInvalidCharacterLength(self: *Tokenizer) u3 { + const c0 = self.buffer[self.index]; + if (c0 < 0x80) { + if (c0 < 0x20 or c0 == 0x7f) { + // ascii control codes are never allowed + // (note that \n was checked before we got here) + return 1; + } + // looks fine to me. + return 0; + } else { + // check utf8-encoded character. + const length = std.unicode.utf8ByteSequenceLength(c0) catch return 1; + if (self.index + length > self.buffer.len) { + return @intCast(u3, self.buffer.len - self.index); + } + const bytes = self.buffer[self.index .. self.index + length]; + switch (length) { + 2 => { + const value = std.unicode.utf8Decode2(bytes) catch return length; + if (value == 0x85) return length; // U+0085 (NEL) + }, + 3 => { + const value = std.unicode.utf8Decode3(bytes) catch return length; + if (value == 0x2028) return length; // U+2028 (LS) + if (value == 0x2029) return length; // U+2029 (PS) + }, + 4 => { + _ = std.unicode.utf8Decode4(bytes) catch return length; + }, + else => unreachable, + } + self.index += length - 1; + return 0; + } + } +}; + +test "tokenizer" { + testTokenize("test", [_]Token.Id{Token.Id.Keyword_test}); +} + +test "tokenizer - unknown length pointer and then c pointer" { + testTokenize( + \\[*]u8 + \\[*c]u8 + , [_]Token.Id{ + Token.Id.BracketStarBracket, + Token.Id.Identifier, + Token.Id.BracketStarCBracket, + Token.Id.Identifier, + }); +} + +test "tokenizer - char literal with hex escape" { + testTokenize( + \\'\x1b' + , [_]Token.Id{.CharLiteral}); + testTokenize( + \\'\x1' + , [_]Token.Id{ .Invalid, .Invalid }); +} + +test "tokenizer - char literal with unicode escapes" { + // Valid unicode escapes + testTokenize( + \\'\u{3}' + , [_]Token.Id{.CharLiteral}); + testTokenize( + \\'\u{01}' + , [_]Token.Id{.CharLiteral}); + testTokenize( + \\'\u{2a}' + , [_]Token.Id{.CharLiteral}); + testTokenize( + \\'\u{3f9}' + , [_]Token.Id{.CharLiteral}); + testTokenize( + \\'\u{6E09aBc1523}' + , [_]Token.Id{.CharLiteral}); + testTokenize( + \\"\u{440}" + , [_]Token.Id{.StringLiteral}); + + // Invalid unicode escapes + testTokenize( + \\'\u' + , [_]Token.Id{.Invalid}); + testTokenize( + \\'\u{{' + , [_]Token.Id{ .Invalid, .Invalid }); + testTokenize( + \\'\u{}' + , [_]Token.Id{ .Invalid, .Invalid }); + testTokenize( + \\'\u{s}' + , [_]Token.Id{ .Invalid, .Invalid }); + testTokenize( + \\'\u{2z}' + , [_]Token.Id{ .Invalid, .Invalid }); + testTokenize( + \\'\u{4a' + , [_]Token.Id{.Invalid}); + + // Test old-style unicode literals + testTokenize( + \\'\u0333' + , [_]Token.Id{ .Invalid, .Invalid }); + testTokenize( + \\'\U0333' + , [_]Token.Id{ .Invalid, .IntegerLiteral, .Invalid }); +} + +test "tokenizer - float literal e exponent" { + testTokenize("a = 4.94065645841246544177e-324;\n", [_]Token.Id{ + Token.Id.Identifier, + Token.Id.Equal, + Token.Id.FloatLiteral, + Token.Id.Semicolon, + }); +} + +test "tokenizer - float literal p exponent" { + testTokenize("a = 0x1.a827999fcef32p+1022;\n", [_]Token.Id{ + Token.Id.Identifier, + Token.Id.Equal, + Token.Id.FloatLiteral, + Token.Id.Semicolon, + }); +} + +test "tokenizer - chars" { + testTokenize("'c'", [_]Token.Id{Token.Id.CharLiteral}); +} + +test "tokenizer - invalid token characters" { + testTokenize("#", [_]Token.Id{Token.Id.Invalid}); + testTokenize("`", [_]Token.Id{Token.Id.Invalid}); + testTokenize("'c", [_]Token.Id{Token.Id.Invalid}); + testTokenize("'", [_]Token.Id{Token.Id.Invalid}); + testTokenize("''", [_]Token.Id{ Token.Id.Invalid, Token.Id.Invalid }); +} + +test "tokenizer - invalid literal/comment characters" { + testTokenize("\"\x00\"", [_]Token.Id{ + Token.Id.StringLiteral, + Token.Id.Invalid, + }); + testTokenize("//\x00", [_]Token.Id{ + Token.Id.LineComment, + Token.Id.Invalid, + }); + testTokenize("//\x1f", [_]Token.Id{ + Token.Id.LineComment, + Token.Id.Invalid, + }); + testTokenize("//\x7f", [_]Token.Id{ + Token.Id.LineComment, + Token.Id.Invalid, + }); +} + +test "tokenizer - utf8" { + testTokenize("//\xc2\x80", [_]Token.Id{Token.Id.LineComment}); + testTokenize("//\xf4\x8f\xbf\xbf", [_]Token.Id{Token.Id.LineComment}); +} + +test "tokenizer - invalid utf8" { + testTokenize("//\x80", [_]Token.Id{ + Token.Id.LineComment, + Token.Id.Invalid, + }); + testTokenize("//\xbf", [_]Token.Id{ + Token.Id.LineComment, + Token.Id.Invalid, + }); + testTokenize("//\xf8", [_]Token.Id{ + Token.Id.LineComment, + Token.Id.Invalid, + }); + testTokenize("//\xff", [_]Token.Id{ + Token.Id.LineComment, + Token.Id.Invalid, + }); + testTokenize("//\xc2\xc0", [_]Token.Id{ + Token.Id.LineComment, + Token.Id.Invalid, + }); + testTokenize("//\xe0", [_]Token.Id{ + Token.Id.LineComment, + Token.Id.Invalid, + }); + testTokenize("//\xf0", [_]Token.Id{ + Token.Id.LineComment, + Token.Id.Invalid, + }); + testTokenize("//\xf0\x90\x80\xc0", [_]Token.Id{ + Token.Id.LineComment, + Token.Id.Invalid, + }); +} + +test "tokenizer - illegal unicode codepoints" { + // unicode newline characters.U+0085, U+2028, U+2029 + testTokenize("//\xc2\x84", [_]Token.Id{Token.Id.LineComment}); + testTokenize("//\xc2\x85", [_]Token.Id{ + Token.Id.LineComment, + Token.Id.Invalid, + }); + testTokenize("//\xc2\x86", [_]Token.Id{Token.Id.LineComment}); + testTokenize("//\xe2\x80\xa7", [_]Token.Id{Token.Id.LineComment}); + testTokenize("//\xe2\x80\xa8", [_]Token.Id{ + Token.Id.LineComment, + Token.Id.Invalid, + }); + testTokenize("//\xe2\x80\xa9", [_]Token.Id{ + Token.Id.LineComment, + Token.Id.Invalid, + }); + testTokenize("//\xe2\x80\xaa", [_]Token.Id{Token.Id.LineComment}); +} + +test "tokenizer - string identifier and builtin fns" { + testTokenize( + \\const @"if" = @import("std"); + , [_]Token.Id{ + Token.Id.Keyword_const, + Token.Id.Identifier, + Token.Id.Equal, + Token.Id.Builtin, + Token.Id.LParen, + Token.Id.StringLiteral, + Token.Id.RParen, + Token.Id.Semicolon, + }); +} + +test "tokenizer - pipe and then invalid" { + testTokenize("||=", [_]Token.Id{ + Token.Id.PipePipe, + Token.Id.Equal, + }); +} + +test "tokenizer - line comment and doc comment" { + testTokenize("//", [_]Token.Id{Token.Id.LineComment}); + testTokenize("// a / b", [_]Token.Id{Token.Id.LineComment}); + testTokenize("// /", [_]Token.Id{Token.Id.LineComment}); + testTokenize("/// a", [_]Token.Id{Token.Id.DocComment}); + testTokenize("///", [_]Token.Id{Token.Id.DocComment}); + testTokenize("////", [_]Token.Id{Token.Id.LineComment}); +} + +test "tokenizer - line comment followed by identifier" { + testTokenize( + \\ Unexpected, + \\ // another + \\ Another, + , [_]Token.Id{ + Token.Id.Identifier, + Token.Id.Comma, + Token.Id.LineComment, + Token.Id.Identifier, + Token.Id.Comma, + }); +} + +test "tokenizer - UTF-8 BOM is recognized and skipped" { + testTokenize("\xEF\xBB\xBFa;\n", [_]Token.Id{ + Token.Id.Identifier, + Token.Id.Semicolon, + }); +} + +fn testTokenize(source: []const u8, expected_tokens: []const Token.Id) void { + var tokenizer = Tokenizer.init(source); + for (expected_tokens) |expected_token_id| { + const token = tokenizer.next(); + if (token.id != expected_token_id) { + std.debug.panic("expected {}, found {}\n", @tagName(expected_token_id), @tagName(token.id)); + } + } + const last_token = tokenizer.next(); + std.testing.expect(last_token.id == Token.Id.Eof); +} -- cgit v1.2.3 From dc7016344eeb3ba2d58f80968c3df9503e7c72e7 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Wed, 25 Sep 2019 23:57:47 -0400 Subject: remove --override-std-dir. fix issues caused by moving std lib --- CMakeLists.txt | 3 +-- build.zig | 9 ++------- lib/std/build.zig | 16 ++-------------- lib/std/special/build_runner.zig | 6 ------ src/codegen.cpp | 13 ++++--------- src/codegen.hpp | 2 +- src/main.cpp | 18 ++++-------------- test/tests.zig | 2 +- 8 files changed, 15 insertions(+), 54 deletions(-) (limited to 'lib') diff --git a/CMakeLists.txt b/CMakeLists.txt index a7fecfa51c..2482a61601 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -601,8 +601,7 @@ else() endif() add_custom_target(zig_build_libuserland ALL COMMAND zig0 build - --override-std-dir std - --override-lib-dir "${CMAKE_SOURCE_DIR}" + --override-lib-dir "${CMAKE_SOURCE_DIR}/lib" libuserland install "-Doutput-dir=${CMAKE_BINARY_DIR}" "-Drelease=${LIBUSERLAND_RELEASE_MODE}" diff --git a/build.zig b/build.zig index b38fb87cb7..390f1594f8 100644 --- a/build.zig +++ b/build.zig @@ -87,11 +87,6 @@ pub fn build(b: *Builder) !void { .source_dir = "lib", .install_dir = .Lib, .install_subdir = "zig", - }); - b.installDirectory(InstallDirectoryOptions{ - .source_dir = "std", - .install_dir = .Lib, - .install_subdir = "zig" ++ fs.path.sep_str ++ "std", .exclude_extensions = [_][]const u8{ "test.zig", "README.md" }, }); @@ -134,9 +129,9 @@ pub fn build(b: *Builder) !void { test_step.dependOn(tests.addPkgTests(b, test_filter, "test/stage1/behavior.zig", "behavior", "Run the behavior tests", modes, false, skip_non_native, skip_libc, is_wine_enabled, is_qemu_enabled, glibc_multi_dir)); - test_step.dependOn(tests.addPkgTests(b, test_filter, "std/std.zig", "std", "Run the standard library tests", modes, false, skip_non_native, skip_libc, is_wine_enabled, is_qemu_enabled, glibc_multi_dir)); + test_step.dependOn(tests.addPkgTests(b, test_filter, "lib/std/std.zig", "std", "Run the standard library tests", modes, false, skip_non_native, skip_libc, is_wine_enabled, is_qemu_enabled, glibc_multi_dir)); - test_step.dependOn(tests.addPkgTests(b, test_filter, "std/special/compiler_rt.zig", "compiler-rt", "Run the compiler_rt tests", modes, true, skip_non_native, true, is_wine_enabled, is_qemu_enabled, glibc_multi_dir)); + test_step.dependOn(tests.addPkgTests(b, test_filter, "lib/std/special/compiler_rt.zig", "compiler-rt", "Run the compiler_rt tests", modes, true, skip_non_native, true, is_wine_enabled, is_qemu_enabled, glibc_multi_dir)); test_step.dependOn(tests.addCompareOutputTests(b, test_filter, modes)); test_step.dependOn(tests.addStandaloneTests(b, test_filter, modes)); diff --git a/lib/std/build.zig b/lib/std/build.zig index 7f9a77351d..3b5299f523 100644 --- a/lib/std/build.zig +++ b/lib/std/build.zig @@ -52,7 +52,6 @@ pub const Builder = struct { cache_root: []const u8, release_mode: ?builtin.Mode, is_release: bool, - override_std_dir: ?[]const u8, override_lib_dir: ?[]const u8, pkg_config_pkg_list: ?(PkgConfigError![]const PkgConfigPkg) = null, @@ -158,7 +157,6 @@ pub const Builder = struct { }, .release_mode = null, .is_release = false, - .override_std_dir = null, .override_lib_dir = null, .install_path = undefined, }; @@ -1439,7 +1437,6 @@ pub const LibExeObjStep = struct { bundle_compiler_rt: bool, disable_stack_probing: bool, c_std: Builder.CStd, - override_std_dir: ?[]const u8, override_lib_dir: ?[]const u8, main_pkg_path: ?[]const u8, exec_cmd_args: ?[]const ?[]const u8, @@ -1570,7 +1567,6 @@ pub const LibExeObjStep = struct { .build_options_contents = std.Buffer.initSize(builder.allocator, 0) catch unreachable, .c_std = Builder.CStd.C99, .system_linker_hack = false, - .override_std_dir = null, .override_lib_dir = null, .main_pkg_path = null, .exec_cmd_args = null, @@ -1883,8 +1879,8 @@ pub const LibExeObjStep = struct { self.build_mode = mode; } - pub fn overrideStdDir(self: *LibExeObjStep, dir_path: []const u8) void { - self.override_std_dir = dir_path; + pub fn overrideZigLibDir(self: *LibExeObjStep, dir_path: []const u8) void { + self.override_lib_dir = self.builder.dupe(dir_path); } pub fn setMainPkgPath(self: *LibExeObjStep, dir_path: []const u8) void { @@ -2300,14 +2296,6 @@ pub const LibExeObjStep = struct { } } - if (self.override_std_dir) |dir| { - try zig_args.append("--override-std-dir"); - try zig_args.append(builder.pathFromRoot(dir)); - } else if (self.builder.override_std_dir) |dir| { - try zig_args.append("--override-std-dir"); - try zig_args.append(builder.pathFromRoot(dir)); - } - if (self.override_lib_dir) |dir| { try zig_args.append("--override-lib-dir"); try zig_args.append(builder.pathFromRoot(dir)); diff --git a/lib/std/special/build_runner.zig b/lib/std/special/build_runner.zig index 01e307d46e..efe3275fe6 100644 --- a/lib/std/special/build_runner.zig +++ b/lib/std/special/build_runner.zig @@ -90,11 +90,6 @@ pub fn main() !void { return usageAndErr(builder, false, try stderr_stream); }); builder.addSearchPrefix(search_prefix); - } else if (mem.eql(u8, arg, "--override-std-dir")) { - builder.override_std_dir = try unwrapArg(arg_it.next(allocator) orelse { - warn("Expected argument after --override-std-dir\n\n"); - return usageAndErr(builder, false, try stderr_stream); - }); } else if (mem.eql(u8, arg, "--override-lib-dir")) { builder.override_lib_dir = try unwrapArg(arg_it.next(allocator) orelse { warn("Expected argument after --override-lib-dir\n\n"); @@ -199,7 +194,6 @@ fn usage(builder: *Builder, already_ran_build: bool, out_stream: var) !void { \\Advanced Options: \\ --build-file [file] Override path to build.zig \\ --cache-dir [path] Override path to zig cache directory - \\ --override-std-dir [arg] Override path to Zig standard library \\ --override-lib-dir [arg] Override path to Zig lib directory \\ --verbose-tokenize Enable compiler debug output for tokenization \\ --verbose-ast Enable compiler debug output for parsing into an AST diff --git a/src/codegen.cpp b/src/codegen.cpp index f3bb210902..a1da6752b3 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -10367,8 +10367,7 @@ CodeGen *create_child_codegen(CodeGen *parent_gen, Buf *root_src_path, OutType o ZigLibCInstallation *libc) { CodeGen *child_gen = codegen_create(nullptr, root_src_path, parent_gen->zig_target, out_type, - parent_gen->build_mode, parent_gen->zig_lib_dir, parent_gen->zig_std_dir, libc, get_stage1_cache_path(), - false); + parent_gen->build_mode, parent_gen->zig_lib_dir, libc, get_stage1_cache_path(), false); child_gen->disable_gen_h = true; child_gen->want_stack_check = WantStackCheckDisabled; child_gen->verbose_tokenize = parent_gen->verbose_tokenize; @@ -10396,7 +10395,7 @@ CodeGen *create_child_codegen(CodeGen *parent_gen, Buf *root_src_path, OutType o } CodeGen *codegen_create(Buf *main_pkg_path, Buf *root_src_path, const ZigTarget *target, - OutType out_type, BuildMode build_mode, Buf *override_lib_dir, Buf *override_std_dir, + OutType out_type, BuildMode build_mode, Buf *override_lib_dir, ZigLibCInstallation *libc, Buf *cache_dir, bool is_test_build) { CodeGen *g = allocate(1); @@ -10414,12 +10413,8 @@ CodeGen *codegen_create(Buf *main_pkg_path, Buf *root_src_path, const ZigTarget g->zig_lib_dir = override_lib_dir; } - if (override_std_dir == nullptr) { - g->zig_std_dir = buf_alloc(); - os_path_join(g->zig_lib_dir, buf_create_from_str("std"), g->zig_std_dir); - } else { - g->zig_std_dir = override_std_dir; - } + g->zig_std_dir = buf_alloc(); + os_path_join(g->zig_lib_dir, buf_create_from_str("std"), g->zig_std_dir); g->zig_c_headers_dir = buf_alloc(); os_path_join(g->zig_lib_dir, buf_create_from_str("include"), g->zig_c_headers_dir); diff --git a/src/codegen.hpp b/src/codegen.hpp index 794a0fd5a6..5be15b0513 100644 --- a/src/codegen.hpp +++ b/src/codegen.hpp @@ -17,7 +17,7 @@ #include CodeGen *codegen_create(Buf *main_pkg_path, Buf *root_src_path, const ZigTarget *target, - OutType out_type, BuildMode build_mode, Buf *zig_lib_dir, Buf *override_std_dir, + OutType out_type, BuildMode build_mode, Buf *zig_lib_dir, ZigLibCInstallation *libc, Buf *cache_dir, bool is_test_build); CodeGen *create_child_codegen(CodeGen *parent_gen, Buf *root_src_path, OutType out_type, diff --git a/src/main.cpp b/src/main.cpp index 68ff97e4db..6f1eff174b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -88,8 +88,7 @@ static int print_full_usage(const char *arg0, FILE *file, int return_code) { " -dirafter [dir] same as -isystem but do it last\n" " -isystem [dir] add additional search path for other .h files\n" " -mllvm [arg] (unsupported) forward an arg to LLVM's option processing\n" - " --override-std-dir [arg] override path to Zig standard library\n" - " --override-lib-dir [arg] override path to Zig lib library\n" + " --override-lib-dir [arg] override path to Zig lib directory\n" " -ffunction-sections places each function in a separate section\n" " -D[macro]=[value] define C [macro] to [value] (1 if [value] omitted)\n" "\n" @@ -490,7 +489,6 @@ int main(int argc, char **argv) { bool want_single_threaded = false; bool disable_gen_h = false; bool bundle_compiler_rt = false; - Buf *override_std_dir = nullptr; Buf *override_lib_dir = nullptr; Buf *main_pkg_path = nullptr; ValgrindSupport valgrind_support = ValgrindSupportAuto; @@ -526,12 +524,6 @@ int main(int argc, char **argv) { } else if (i + 1 < argc && strcmp(argv[i], "--cache-dir") == 0) { cache_dir = argv[i + 1]; i += 1; - } else if (i + 1 < argc && strcmp(argv[i], "--override-std-dir") == 0) { - override_std_dir = buf_create_from_str(argv[i + 1]); - i += 1; - - args.append("--override-std-dir"); - args.append(buf_ptr(override_std_dir)); } else if (i + 1 < argc && strcmp(argv[i], "--override-lib-dir") == 0) { override_lib_dir = buf_create_from_str(argv[i + 1]); i += 1; @@ -590,7 +582,7 @@ int main(int argc, char **argv) { } CodeGen *g = codegen_create(main_pkg_path, build_runner_path, &target, OutTypeExe, - BuildModeDebug, override_lib_dir, override_std_dir, nullptr, &full_cache_dir, false); + BuildModeDebug, override_lib_dir, nullptr, &full_cache_dir, false); g->valgrind_support = valgrind_support; g->enable_time_report = timing_info; codegen_set_out_name(g, buf_create_from_str("build")); @@ -787,8 +779,6 @@ int main(int argc, char **argv) { clang_argv.append(argv[i]); llvm_argv.append(argv[i]); - } else if (strcmp(arg, "--override-std-dir") == 0) { - override_std_dir = buf_create_from_str(argv[i]); } else if (strcmp(arg, "--override-lib-dir") == 0) { override_lib_dir = buf_create_from_str(argv[i]); } else if (strcmp(arg, "--main-pkg-path") == 0) { @@ -1036,7 +1026,7 @@ int main(int argc, char **argv) { } case CmdBuiltin: { CodeGen *g = codegen_create(main_pkg_path, nullptr, &target, - out_type, build_mode, override_lib_dir, override_std_dir, nullptr, nullptr, false); + out_type, build_mode, override_lib_dir, nullptr, nullptr, false); codegen_set_strip(g, strip); for (size_t i = 0; i < link_libs.length; i += 1) { LinkLib *link_lib = codegen_add_link_lib(g, buf_create_from_str(link_libs.at(i))); @@ -1140,7 +1130,7 @@ int main(int argc, char **argv) { cache_dir_buf = buf_create_from_str(cache_dir); } CodeGen *g = codegen_create(main_pkg_path, zig_root_source_file, &target, out_type, build_mode, - override_lib_dir, override_std_dir, libc, cache_dir_buf, cmd == CmdTest); + override_lib_dir, libc, cache_dir_buf, cmd == CmdTest); if (llvm_argv.length >= 2) codegen_set_llvm_argv(g, llvm_argv.items + 1, llvm_argv.length - 2); g->valgrind_support = valgrind_support; g->want_pic = want_pic; diff --git a/test/tests.zig b/test/tests.zig index 20c8276e42..1b51a0c694 100644 --- a/test/tests.zig +++ b/test/tests.zig @@ -408,7 +408,7 @@ pub fn addPkgTests( if (test_target.link_libc) { these_tests.linkSystemLibrary("c"); } - these_tests.overrideStdDir("std"); + these_tests.overrideZigLibDir("lib"); these_tests.enable_wine = is_wine_enabled; these_tests.enable_qemu = is_qemu_enabled; these_tests.glibc_multi_install_dir = glibc_dir; -- cgit v1.2.3